From 49e1dd23b699b499d9b715ef74cb7ca5b0189584 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 31 Aug 2013 17:11:17 +0200 Subject: - mod list can now be sorted by install time - the sorting of download archives wasn't actually by index instead of file time - bugfix: some of the plugins crashed if they failed to create a mod --- src/downloadlistsortproxy.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/downloadlistsortproxy.cpp') diff --git a/src/downloadlistsortproxy.cpp b/src/downloadlistsortproxy.cpp index 7efbd78f..fc743574 100644 --- a/src/downloadlistsortproxy.cpp +++ b/src/downloadlistsortproxy.cpp @@ -18,6 +18,7 @@ along with Mod Organizer. If not, see . */ #include "downloadlistsortproxy.h" +#include "downloadlist.h" DownloadListSortProxy::DownloadListSortProxy(const DownloadManager *manager, QObject *parent) : QSortFilterProxyModel(parent), m_Manager(manager), m_CurrentFilter() @@ -30,18 +31,21 @@ void DownloadListSortProxy::updateFilter(const QString &filter) invalidateFilter(); } + bool DownloadListSortProxy::lessThan(const QModelIndex &left, const QModelIndex &right) const { int leftIndex = sourceModel()->data(left).toInt(); int rightIndex = sourceModel()->data(right).toInt(); - if (left.column() == 0) { + if (left.column() == DownloadList::COL_NAME) { return m_Manager->getFileName(leftIndex).compare(m_Manager->getFileName(rightIndex), Qt::CaseInsensitive) < 0; - } else if (left.column() == 1) { - return leftIndex < rightIndex; - } else { + } else if (left.column() == DownloadList::COL_FILETIME) { + return m_Manager->getFileTime(leftIndex) < m_Manager->getFileTime(rightIndex); + } else if (left.column() == DownloadList::COL_STATUS) { return m_Manager->getState(leftIndex) < m_Manager->getState(rightIndex); + } else { + return leftIndex < rightIndex; } } -- cgit v1.3.1