diff options
| author | Tannin <devnull@localhost> | 2015-06-29 20:28:56 +0200 |
|---|---|---|
| committer | Tannin <devnull@localhost> | 2015-06-29 20:28:56 +0200 |
| commit | 61033814fde8d863336061b622b0ad011930dc18 (patch) | |
| tree | 323b473e3de7093a9fdf7bda5a065a3f9a074831 /src/modlistsortproxy.cpp | |
| parent | dc0e67a8b309c20776f63f2145bdfb67fc7f9984 (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.cpp | 9 |
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()
|
