diff options
| author | Tannin <devnull@localhost> | 2013-08-31 17:11:17 +0200 |
|---|---|---|
| committer | Tannin <devnull@localhost> | 2013-08-31 17:11:17 +0200 |
| commit | 49e1dd23b699b499d9b715ef74cb7ca5b0189584 (patch) | |
| tree | 2ab470822b369a38c8d2dad1d52f584107e14137 /src/downloadlistsortproxy.cpp | |
| parent | 9c31cfa915f71adee8579aa97c12b64903ec9446 (diff) | |
- 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
Diffstat (limited to 'src/downloadlistsortproxy.cpp')
| -rw-r--r-- | src/downloadlistsortproxy.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
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 <http://www.gnu.org/licenses/>. */ #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; } } |
