From 7dde763fc69f117cb5a5475542e114fa7a97d956 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Tue, 28 Sep 2010 16:56:49 +0000 Subject: [PATCH] Fix wrong mapping to source model --- Changelog | 1 + src/transferlistwidget.cpp | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Changelog b/Changelog index be81fc1dd..5157e827c 100644 --- a/Changelog +++ b/Changelog @@ -1,6 +1,7 @@ * Mon Sep 27 2010 - Christophe Dumez - v2.4.3 - BUGFIX: Fix encoding issue in command line parameters processing - BUGFIX: Fix possible crash when changing the save path in addition dialog + - BUGFIX: Fix wrong mapping to source model * Sun Sep 26 2010 - Christophe Dumez - v2.4.2 - BUGFIX: Fix display of torrent content in addition dialog diff --git a/src/transferlistwidget.cpp b/src/transferlistwidget.cpp index 5a994b027..d112ccab4 100644 --- a/src/transferlistwidget.cpp +++ b/src/transferlistwidget.cpp @@ -584,10 +584,17 @@ inline QString TransferListWidget::getHashFromRow(int row) const { } inline QModelIndex TransferListWidget::mapToSource(const QModelIndex &index) const { - return labelFilterModel->mapToSource(statusFilterModel->mapToSource(nameFilterModel->mapToSource(index))); + Q_ASSERT(index.isValid()); + if(index.model() == nameFilterModel) + return labelFilterModel->mapToSource(statusFilterModel->mapToSource(nameFilterModel->mapToSource(index))); + if(index.model() == statusFilterModel) + return labelFilterModel->mapToSource(statusFilterModel->mapToSource(index)); + return labelFilterModel->mapToSource(index); } inline QModelIndex TransferListWidget::mapFromSource(const QModelIndex &index) const { + Q_ASSERT(index.isValid()); + Q_ASSERT(index.model() == labelFilterModel); return nameFilterModel->mapFromSource(statusFilterModel->mapFromSource(labelFilterModel->mapFromSource(index))); } @@ -1426,6 +1433,7 @@ void TransferListWidget::loadLastSortedColumn() { } void TransferListWidget::currentChanged(const QModelIndex& current, const QModelIndex&) { + qDebug("CURRENT CHANGED"); QTorrentHandle h; if(current.isValid()) { const int row = mapToSource(current).row();