summaryrefslogtreecommitdiffstats
path: root/archiveview.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-08-22 15:42:38 +0200
committerArno <am@disconnect.de>2013-08-22 15:42:38 +0200
commita74ed29b3cdac32e4ca1a5480e806798a7ddb0eb (patch)
tree1b268455e2d10c75a06d006f87812366a2f8e714 /archiveview.cpp
parent369c14264c664b38049ac081cf60b8485a4042cb (diff)
downloadSheMov-a74ed29b3cdac32e4ca1a5480e806798a7ddb0eb.tar.gz
SheMov-a74ed29b3cdac32e4ca1a5480e806798a7ddb0eb.tar.bz2
SheMov-a74ed29b3cdac32e4ca1a5480e806798a7ddb0eb.zip
ArchiveProxy: Sort numeric by SeriesPart
Implement lessThan for ArchiveProxy.
Diffstat (limited to 'archiveview.cpp')
-rw-r--r--archiveview.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/archiveview.cpp b/archiveview.cpp
index 7523461..fcfe04d 100644
--- a/archiveview.cpp
+++ b/archiveview.cpp
@@ -416,6 +416,24 @@ bool ArchiveProxy::filterAcceptsRow(int sourceRow, const QModelIndex &sourcePare
return model->matchRecursive(nameIdx, mFilter);
}
+bool ArchiveProxy::lessThan(const QModelIndex &left, const QModelIndex &right) const{
+ int lNodeType = left.data(ArchiveModel::TypeRole).toInt();
+ int rNodeType = right.data(ArchiveModel::TypeRole).toInt();
+ if((lNodeType == ArchiveModel::SeriesPartNode) && (rNodeType == ArchiveModel::SeriesPartNode)){
+ int lPartNo = left.data(ArchiveModel::SeriesPartRole).toInt();
+ int rPartNo = right.data(ArchiveModel::SeriesPartRole).toInt();
+ if((lPartNo > -1) && (rPartNo > -1)){
+ return (lPartNo < rPartNo);
+ }
+ QString lSubtitle = left.data(ArchiveModel::SubtitleRole).toString();
+ QString rSubtitle = right.data(ArchiveModel::SubtitleRole).toString();
+ if(!lSubtitle.isEmpty() && !rSubtitle.isEmpty()){
+ return (lSubtitle < rSubtitle);
+ }
+ }
+ return QSortFilterProxyModel::lessThan(left, right);
+}
+
ArchiveFilesProxy::ArchiveFilesProxy(QObject *parent) : QSortFilterProxyModel(parent) {}
/* Mapping Editor Widget */