summaryrefslogtreecommitdiff
path: root/src/modlistsortproxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modlistsortproxy.cpp')
-rw-r--r--src/modlistsortproxy.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/modlistsortproxy.cpp b/src/modlistsortproxy.cpp
index f646a079..efe60732 100644
--- a/src/modlistsortproxy.cpp
+++ b/src/modlistsortproxy.cpp
@@ -380,9 +380,12 @@ bool ModListSortProxy::dropMimeData(const QMimeData *data, Qt::DropAction action
void ModListSortProxy::setSourceModel(QAbstractItemModel *sourceModel)
{
QSortFilterProxyModel::setSourceModel(sourceModel);
-
- connect(sourceModel, SIGNAL(aboutToChangeData()), this, SLOT(aboutToChangeData()));
- connect(sourceModel, SIGNAL(postDataChanged()), this, SLOT(postDataChanged()));
+ QtGroupingProxy *proxy = qobject_cast<QtGroupingProxy*>(sourceModel);
+ if (proxy != nullptr) {
+ sourceModel = proxy->sourceModel();
+ }
+ connect(sourceModel, SIGNAL(aboutToChangeData()), this, SLOT(aboutToChangeData()), Qt::UniqueConnection);
+ connect(sourceModel, SIGNAL(postDataChanged()), this, SLOT(postDataChanged()), Qt::UniqueConnection);
}
void ModListSortProxy::aboutToChangeData()