summaryrefslogtreecommitdiffstats
path: root/archiveproxy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archiveproxy.cpp')
-rw-r--r--archiveproxy.cpp92
1 files changed, 0 insertions, 92 deletions
diff --git a/archiveproxy.cpp b/archiveproxy.cpp
deleted file mode 100644
index 90374c6..0000000
--- a/archiveproxy.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version
- 2 of the License, or (at your option) any later version.
-*/
-
-#include <QStringList>
-#include <QRegExp>
-#include <QList>
-
-#include "archiveproxy.h"
-#include "moviemodel.h"
-
-ArchiveProxy::ArchiveProxy(QObject *parent) : QSortFilterProxyModel(parent){};
-
-void ArchiveProxy::setFilter(const QString &filter, FilterMode mode){
- mFilterMode = mode;
- switch(mFilterMode){
- case NoFilter:
- mGenreFilter = QString();
- mActorFilter = QString();
- mTitleFilter = QString();
- break;
- case GenreFilter:
- mGenreFilter = filter;
- break;
- case ActorFilter:
- mActorFilter = filter;
- break;
- case TitleFilter:
- mTitleFilter = filter.toLower();
- break;
- }
- invalidate();
-}
-
-bool ArchiveProxy::filterAcceptsRow(int sourceRow, const QModelIndex & /*sourceParent*/) const{
- if(mFilterMode == NoFilter){
- return true;
- }
- MovieModel *model = static_cast<MovieModel*>(sourceModel());
- Q_ASSERT(model != 0);
- if(mFilterMode == ActorFilter){
- QModelIndex idx = model->index(sourceRow, 0, QModelIndex());
- QStringList actors = model->data(idx, MovieModel::ActorsRole).toStringList();
- return actors.contains(mActorFilter);
- }
- if(mFilterMode == GenreFilter){
- QModelIndex idx = model->index(sourceRow, 4, QModelIndex());
- QString genre = idx.data().toString();
- return (genre == mGenreFilter);
- }
- if(mFilterMode == TitleFilter){
- QModelIndex idx = model->index(sourceRow, 0, QModelIndex());
- QString title = idx.data().toString();
- QRegExp re(mTitleFilter);
- return( re.indexIn(title) != -1);
- }
- return true;
-}
-
-void ArchiveProxy::clearFilter(){
- mFilterMode = NoFilter;
- mGenreFilter = QString();
- mActorFilter = QString();
- mTitleFilter = QString();
- invalidate();
-}
-
-bool ArchiveProxy::lessThan(const QModelIndex &left, const QModelIndex &right) const{
- if(left.column() > 0){
- return QSortFilterProxyModel::lessThan(left, right);
- }
- QString lbase = left.data(MovieModel::TitleBaseRole).toString();
- QString rbase = right.data(MovieModel::TitleBaseRole).toString();
- if(lbase == rbase){
- int lseriesno = left.data(MovieModel::SeriesNoRole).toInt();
- int rseriesno = right.data(MovieModel::SeriesNoRole).toInt();
- if(lseriesno == rseriesno){
- int lpartno = left.data(MovieModel::PartNoRole).toInt();
- int rpartno = right.data(MovieModel::PartNoRole).toInt();
- return (lpartno < rpartno);
- }else{
- return (lseriesno < rseriesno);
- }
- }else{
- return (lbase < rbase);
- }
- return QSortFilterProxyModel::lessThan(left, right);
-}
-