summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filestreemodel.cpp17
-rw-r--r--filestreemodel.h2
2 files changed, 19 insertions, 0 deletions
diff --git a/filestreemodel.cpp b/filestreemodel.cpp
index 80c6b96..5e0c8ca 100644
--- a/filestreemodel.cpp
+++ b/filestreemodel.cpp
@@ -44,6 +44,8 @@ FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeMo
mDeleteFileQuery->prepare("DELETE FROM files WHERE ifiles_id = :id");
mFileTypeQuery = new QSqlQuery(mDb);
mFileTypeQuery->prepare("SELECT sifiletype FROM files WHERE cmd5sum = :md5");
+ mFileSizeLessThanQuery = new QSqlQuery(mDb);
+ mFileSizeLessThanQuery->prepare("SELECT md5sum FROM files WHERE bisize =< :size AND sifiletype = 1 AND idvd = -1 ORDER BY bisize DESC LIMIT :limit");
//file types
mFileTypes.insert(1, tr("Movie"));
@@ -404,6 +406,21 @@ QMap<QString, QString> FilesTreeModel::pictureMetaInfo(const QModelIndex &idx){
return retval;
}
+QModelIndexList FilesTreeModel::fileSizeLessThan(quint64 size, quint16 limit) const {
+ QModelIndexList retval;
+ mFileSizeLessThanQuery->bindValue(":size", size);
+ mFileSizeLessThanQuery->bindValue(":limit", limit);
+ mFileSizeLessThanQuery->exec();
+ while(mFileSizeLessThanQuery->next()){
+ QVariant md5sum = mFileSizeLessThanQuery->value(0);
+ QModelIndex curIdx = findRecursive(md5sum, Md5Sum);
+ if(curIdx.isValid()){
+ retval << curIdx;
+ }
+ }
+ return retval;
+}
+
int FilesTreeModel::fileType(const QString &md5sum) const{
if(md5sum == "00000000000000000000000000000000"){
return -1;
diff --git a/filestreemodel.h b/filestreemodel.h
index 315e6b2..4039077 100644
--- a/filestreemodel.h
+++ b/filestreemodel.h
@@ -46,6 +46,7 @@ class FilesTreeModel : public SmTreeModel {
QMap<QString, QString> pictureInfo(const QModelIndex &idx) const;
QMap<QString, QString> pictureMetaInfo(const QModelIndex &idx);
int fileType(const QString &md5sum) const;
+ QModelIndexList fileSizeLessThan(quint64 size, quint16 limit = 3) const;
//file manipulation
bool addFile(const QString &fullPath, int type, int quality, int filePart, int seriesPartId, int dvd = -1);
@@ -73,6 +74,7 @@ class FilesTreeModel : public SmTreeModel {
QSqlQuery *mFilesQuery;
QSqlQuery *mDeleteFileQuery;
QSqlQuery *mFileTypeQuery;
+ QSqlQuery *mFileSizeLessThanQuery;
//misc
QHash<int, QString> mFileTypes;