summaryrefslogtreecommitdiff
path: root/src/modlistsortproxy.cpp
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2015-06-29 20:28:56 +0200
committerTannin <devnull@localhost>2015-06-29 20:28:56 +0200
commit61033814fde8d863336061b622b0ad011930dc18 (patch)
tree323b473e3de7093a9fdf7bda5a065a3f9a074831 /src/modlistsortproxy.cpp
parentdc0e67a8b309c20776f63f2145bdfb67fc7f9984 (diff)
bugfix: aboutToChangeData and postDataChanged signals were not correctly set up when mod grouping was enabled
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()