From 61033814fde8d863336061b622b0ad011930dc18 Mon Sep 17 00:00:00 2001 From: Tannin Date: Mon, 29 Jun 2015 20:28:56 +0200 Subject: bugfix: aboutToChangeData and postDataChanged signals were not correctly set up when mod grouping was enabled --- src/modlistsortproxy.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/modlistsortproxy.cpp') 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(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() -- cgit v1.3.1 From 1e75fd8daeff5329c067919941404e67d5d195c7 Mon Sep 17 00:00:00 2001 From: Tannin Date: Mon, 29 Jun 2015 20:38:16 +0200 Subject: bugfix: dropping files from overwrite on mod failed whien mod grouping was active --- src/modlistsortproxy.cpp | 3 ++- src/qtgroupingproxy.cpp | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src/modlistsortproxy.cpp') diff --git a/src/modlistsortproxy.cpp b/src/modlistsortproxy.cpp index efe60732..39631b67 100644 --- a/src/modlistsortproxy.cpp +++ b/src/modlistsortproxy.cpp @@ -21,6 +21,7 @@ along with Mod Organizer. If not, see . #include "modinfo.h" #include "profile.h" #include "messagedialog.h" +#include "qtgroupingproxy.h" #include #include #include @@ -362,7 +363,7 @@ bool ModListSortProxy::dropMimeData(const QMimeData *data, Qt::DropAction action return false; } if ((row == -1) && (column == -1)) { - return this->sourceModel()->dropMimeData(data, action, -1, -1, mapToSource(parent)); + return sourceModel()->dropMimeData(data, action, -1, -1, mapToSource(parent)); } // in the regular model, when dropping between rows, the row-value passed to // the sourceModel is inconsistent between ascending and descending ordering. diff --git a/src/qtgroupingproxy.cpp b/src/qtgroupingproxy.cpp index c5ee8591..5fcb84d3 100644 --- a/src/qtgroupingproxy.cpp +++ b/src/qtgroupingproxy.cpp @@ -877,9 +877,12 @@ QtGroupingProxy::dropMimeData(const QMimeData *data, Qt::DropAction action, int QModelIndex newIdx = mapToSource(index(max, column, idx)); return sourceModel()->dropMimeData(data, action, max, column, newIdx); } else { - QModelIndex idx = mapToSource(index(row, column, parent)); - - return sourceModel()->dropMimeData(data, action, idx.row(), idx.column(), idx.parent()); + if (row == -1) { + return sourceModel()->dropMimeData(data, action, -1, -1, mapToSource(parent)); + } else { + QModelIndex idx = mapToSource(index(row, column, parent)); + return sourceModel()->dropMimeData(data, action, idx.row(), idx.column(), idx.parent()); + } } } -- cgit v1.3.1