summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-01-02 23:33:17 +0100
committerArno <arno@disconnect.de>2018-01-02 23:33:17 +0100
commit54079b4b80af46663590c46109fabeb5cc94a6db (patch)
tree7d372b6551207301e53d1acca8a11dd288d4773f
parentaab351093e3ba713f1179a797d0f5929bdb4c92c (diff)
downloadShemovCleaner-54079b4b80af46663590c46109fabeb5cc94a6db.tar.gz
ShemovCleaner-54079b4b80af46663590c46109fabeb5cc94a6db.tar.bz2
ShemovCleaner-54079b4b80af46663590c46109fabeb5cc94a6db.zip
Sort size numerically, not alphabetically
-rw-r--r--filesorter.cpp7
-rw-r--r--filewidget.cpp8
-rw-r--r--filewidget.h2
3 files changed, 14 insertions, 3 deletions
diff --git a/filesorter.cpp b/filesorter.cpp
index d78b46d..7c6d1d1 100644
--- a/filesorter.cpp
+++ b/filesorter.cpp
@@ -45,5 +45,12 @@ bool VideoSorter::lessThan(const QModelIndex &source_left, const QModelIndex &so
return leftData < rightData;
}
+ //special case for size
+ if(source_left.column() == FileWidget::SizeColumn){
+ qint64 left = source_left.data(FileWidget::SizeRole).toInt();
+ qint64 right = source_right.data(FileWidget::SizeRole).toInt();
+ return left < right;
+ }
+
return QSortFilterProxyModel::lessThan(source_left, source_right);
}
diff --git a/filewidget.cpp b/filewidget.cpp
index 458dd45..d3fe7d9 100644
--- a/filewidget.cpp
+++ b/filewidget.cpp
@@ -485,9 +485,13 @@ QList<QStandardItem*> FileWidget::constructRow(CachedFileData *fd) const{
fData[IconColumn]->setIcon(QIcon(":/gaping_ass.png"));
}
qint64 size = fd->size;
- QLocale l;
- QString sizeStr = QString("%1").arg(l.toString(size));
+ QString sizeStr;
+ if(size){
+ QLocale l;
+ sizeStr = QString("%1").arg(l.toString(size));
+ }
fData[SizeColumn]->setText(sizeStr);
+ fData[SizeColumn]->setData(size, SizeRole);
bool copied = fd->copied;
if(copied){
fData[CopiedColumn]->setText(QChar(0x2642));
diff --git a/filewidget.h b/filewidget.h
index 468821f..0d66d9d 100644
--- a/filewidget.h
+++ b/filewidget.h
@@ -31,7 +31,7 @@ class FileWidget : public QWidget {
Q_OBJECT
public:
enum FileAttrs { NotPresent = 0, Present = 1, NoVideo = 2, ParentDir = 3, Directory = 4, Origin = 5 };
- enum CustomRoles { AttrsRole = Qt::UserRole + 1, FullPathRole = Qt::UserRole + 2, DurationRole = Qt::UserRole + 3, MD5SumRole = Qt::UserRole + 4, SecondsRole = Qt::UserRole + 5 };
+ enum CustomRoles { AttrsRole = Qt::UserRole + 1, FullPathRole = Qt::UserRole + 2, DurationRole = Qt::UserRole + 3, MD5SumRole = Qt::UserRole + 4, SecondsRole = Qt::UserRole + 5, SizeRole = Qt::UserRole + 6 };
enum { ColumnCount = 7 };
enum Columns { IconColumn = 0, NameColumn = 1, CopiedColumn = 2, MimeColumn = 3, DurationColumn = 4, SizeColumn = 5, Md5Column = 6 };
enum FileAction { Copy, Cut, Paste };