From d4d0a083903f7fb6db8866b6736794b8d93faa61 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Mon, 24 Aug 2009 03:03:06 +0000 Subject: [PATCH] - Make sure priority column stays sorted when changing torrents priority (closes #417829) --- src/GUI.cpp | 6 ++++++ src/downloadingTorrents.cpp | 4 ++++ src/downloadingTorrents.h | 3 ++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/GUI.cpp b/src/GUI.cpp index f8cf9eb3f..b62d8540f 100644 --- a/src/GUI.cpp +++ b/src/GUI.cpp @@ -1351,6 +1351,9 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), dis BTSession->increaseDlTorrentPriority(hash); } updateLists(); + // Update sorting if necessary + if(downloadingTorrentTab->isPriorityColumnSorted()) + downloadingTorrentTab->sortDownloadList(); } void GUI::on_actionDecreasePriority_triggered() { @@ -1360,6 +1363,9 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), dis BTSession->decreaseDlTorrentPriority(hash); } updateLists(); + // Update sorting if necessary + if(downloadingTorrentTab->isPriorityColumnSorted()) + downloadingTorrentTab->sortDownloadList(); } // pause selected items in the list diff --git a/src/downloadingTorrents.cpp b/src/downloadingTorrents.cpp index c1a1e7ed2..eef682027 100644 --- a/src/downloadingTorrents.cpp +++ b/src/downloadingTorrents.cpp @@ -718,6 +718,10 @@ void DownloadingTorrents::sortProgressColumn(QTorrentHandle& h) { } } +bool DownloadingTorrents::isPriorityColumnSorted() { + return (downloadList->header()->sortIndicatorSection() == PRIORITY); +} + void DownloadingTorrents::sortDownloadList(int index, Qt::SortOrder sortOrder) { if(index == -1) { index = downloadList->header()->sortIndicatorSection(); diff --git a/src/downloadingTorrents.h b/src/downloadingTorrents.h index 870d04402..6cbb98b8f 100644 --- a/src/downloadingTorrents.h +++ b/src/downloadingTorrents.h @@ -63,6 +63,7 @@ class DownloadingTorrents : public QWidget, public Ui::downloading{ QStringList getSelectedTorrents(bool only_one=false) const; unsigned int getNbTorrentsInList() const; void enablePriorityColumn(bool enable); + bool isPriorityColumnSorted(); signals: void unfinishedTorrentsNumberChanged(unsigned int); @@ -74,7 +75,6 @@ class DownloadingTorrents : public QWidget, public Ui::downloading{ void on_actionSet_upload_limit_triggered(); void displayDLListMenu(const QPoint& pos); void displayDLHoSMenu(const QPoint&); - void sortDownloadList(int index=-1, Qt::SortOrder startSortOrder=Qt::AscendingOrder); void toggleDownloadListSortOrder(int index); void sortDownloadListFloat(int index, Qt::SortOrder sortOrder); void sortDownloadListString(int index, Qt::SortOrder sortOrder); @@ -104,6 +104,7 @@ class DownloadingTorrents : public QWidget, public Ui::downloading{ void loadLastSortedColumn(); void addTorrent(QString hash); void updateMetadata(QTorrentHandle &h); + void sortDownloadList(int index=-1, Qt::SortOrder startSortOrder=Qt::AscendingOrder); };