diff options
author | Arno <arno@disconnect.de> | 2016-09-17 04:18:17 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2016-09-17 04:18:17 +0200 |
commit | 77c6343c4e8d5ac03c491cd30207d9294fbd817c (patch) | |
tree | d81316fa4ebbdae6afaf44c007ed8f33f79dc88a | |
parent | 22d5bcbcb79dea84e7aab4e2032ae3638fbca581 (diff) | |
download | ShemovCleaner-77c6343c4e8d5ac03c491cd30207d9294fbd817c.tar.gz ShemovCleaner-77c6343c4e8d5ac03c491cd30207d9294fbd817c.tar.bz2 ShemovCleaner-77c6343c4e8d5ac03c491cd30207d9294fbd817c.zip |
Fix sorting in TorrentWidget
Sort files by DateTime instead of string comparison.
-rw-r--r-- | filesorter.cpp | 7 | ||||
-rw-r--r-- | torrentwidget.cpp | 4 | ||||
-rw-r--r-- | torrentwidget.h | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/filesorter.cpp b/filesorter.cpp index aee6177..d78b46d 100644 --- a/filesorter.cpp +++ b/filesorter.cpp @@ -1,3 +1,5 @@ +#include <QDateTime> + #include "filesorter.h" #include "torrentwidget.h" #include "filewidget.h" @@ -10,6 +12,11 @@ bool FileSorter::lessThan(const QModelIndex &source_left, const QModelIndex &sou QVariant rightData = sourceModel()->data(source_right, TorrentWidget::PresentRole); return leftData.toInt() < rightData.toInt(); } + if(source_left.column() == TorrentWidget::CreatedColumn){ + QDateTime leftData = source_left.data(TorrentWidget::CreatedRole).toDateTime(); + QDateTime rightData = source_right.data(TorrentWidget::CreatedRole).toDateTime(); + return leftData < rightData; + } return QSortFilterProxyModel::lessThan(source_left, source_right); } diff --git a/torrentwidget.cpp b/torrentwidget.cpp index bb392d0..28a86c1 100644 --- a/torrentwidget.cpp +++ b/torrentwidget.cpp @@ -159,6 +159,9 @@ void TorrentWidget::gatherData(){ for(int i = 0; i < ColumnCount; ++i){ QStandardItem *item = new QStandardItem; item->setEditable(false); + if(i == CreatedColumn){ + item->setFont(QFont("courier new")); + } fData << item; } int result = 0; @@ -170,6 +173,7 @@ void TorrentWidget::gatherData(){ fData[NameColumn]->setText(fi.fileName()); fData[NameColumn]->setData(fi.absoluteFilePath(), FullPathRole); fData[CreatedColumn]->setText(fi.created().toString(Qt::RFC2822Date)); + fData[CreatedColumn]->setData(fi.created(), CreatedRole); if(result){ fData[IconColumn]->setIcon(QIcon(":/huge_bra.png")); fData[IconColumn]->setData(Present, PresentRole); diff --git a/torrentwidget.h b/torrentwidget.h index 075e6c5..15992b3 100644 --- a/torrentwidget.h +++ b/torrentwidget.h @@ -20,7 +20,7 @@ class TorrentDisplay; class TorrentWidget : public QWidget { Q_OBJECT public: - enum CustomRoles { PresentRole = Qt::UserRole + 1, FullPathRole = Qt::UserRole + 2 }; + enum CustomRoles { PresentRole = Qt::UserRole + 1, FullPathRole = Qt::UserRole + 2, CreatedRole = Qt::UserRole + 3 }; enum { ColumnCount = 3 }; enum Columns { IconColumn = 0, NameColumn = 1, CreatedColumn = 2 }; enum Present { NotPresent = 0, Present = 1 }; |