summaryrefslogtreecommitdiff
path: root/src/downloadlistsortproxy.cpp
diff options
context:
space:
mode:
authorKrzysztof Starecki <krzysztof.starecki@gmail.com>2018-12-30 15:27:25 +0100
committerKrzysztof Starecki <krzysztof.starecki@gmail.com>2018-12-30 15:27:25 +0100
commitc3ad0349d49d87c3670a6b1e699ace3a8fae29d7 (patch)
treebb3fee2d4d79305b332caf67d3ece30104268d33 /src/downloadlistsortproxy.cpp
parent7a71a9eb9e1f1c8e0681038105a6bb8ba888077b (diff)
Tweak downloadlist status sorting behavior
Diffstat (limited to 'src/downloadlistsortproxy.cpp')
-rw-r--r--src/downloadlistsortproxy.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/downloadlistsortproxy.cpp b/src/downloadlistsortproxy.cpp
index ee16860a..1a2606c9 100644
--- a/src/downloadlistsortproxy.cpp
+++ b/src/downloadlistsortproxy.cpp
@@ -44,7 +44,12 @@ bool DownloadListSortProxy::lessThan(const QModelIndex &left,
if (left.column() == DownloadList::COL_NAME) {
return m_Manager->getFileName(left.row()).compare(m_Manager->getFileName(right.row()), Qt::CaseInsensitive) < 0;
} else if (left.column() == DownloadList::COL_STATUS) {
- return m_Manager->getState(left.row()) < m_Manager->getState(right.row());
+ DownloadManager::DownloadState leftState = m_Manager->getState(left.row());
+ DownloadManager::DownloadState rightState = m_Manager->getState(right.row());
+ if (leftState == rightState)
+ return m_Manager->getFileTime(left.row()) > m_Manager->getFileTime(right.row());
+ else
+ return leftState < rightState;
} else if(left.column() == DownloadList::COL_SIZE){
return m_Manager->getFileSize(left.row()) < m_Manager->getFileSize(right.row());
} else {