summaryrefslogtreecommitdiffstats
path: root/filestreemodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filestreemodel.cpp')
-rw-r--r--filestreemodel.cpp33
1 files changed, 17 insertions, 16 deletions
diff --git a/filestreemodel.cpp b/filestreemodel.cpp
index a762c1f..d290d5c 100644
--- a/filestreemodel.cpp
+++ b/filestreemodel.cpp
@@ -44,7 +44,6 @@ 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");
- mFileSizeLessThanQueryTemplate = QString("SELECT cmd5sum FROM files WHERE bisize <= :size AND sifiletype = 1 AND idvd = -1 ORDER BY bisize DESC LIMIT %1");
mUpdateSeriesPartQuery = new QSqlQuery(mDb);
mUpdateSeriesPartQuery->prepare("UPDATE files SET iseriespart_id = :partid WHERE ifiles_id = :fileid");
@@ -417,21 +416,23 @@ QMap<QString, QString> FilesTreeModel::pictureMetaInfo(const QModelIndex &idx){
return retval;
}
-QModelIndexList FilesTreeModel::fileSizeLessThan(quint64 size, quint16 limit) const {
- QModelIndexList retval;
- QString queryString = mFileSizeLessThanQueryTemplate.arg(QString::number(limit));
- QSqlQuery query(mDb);
- query.prepare(queryString);
- query.bindValue(":size", size);
- query.exec();
- while(query.next()){
- QVariant md5sum = query.value(0);
- QModelIndex curIdx = findRecursive(md5sum, Md5Sum, index(0, Md5Sum, QModelIndex()));
- if(curIdx.isValid()){
- retval << curIdx;
- }
- }
- return retval;
+QModelIndex FilesTreeModel::fileSizeLessThan(quint64 size) const {
+ QModelIndex retval;
+ //bodly assume that movies is the first child...
+ QModelIndex movies = index(0, 0, QModelIndex());
+ QModelIndex cur = index(0, 0, movies);
+ quint64 best = 0;
+ while(cur.isValid()){
+ quint64 curSize = cur.data(FilesTreeModel::SizeRole).toLongLong();
+ if(curSize < size){
+ if(curSize > best){
+ best = curSize;
+ retval = cur;
+ }
+ }
+ cur = index(cur.row() + 1, 0, movies);
+ }
+ return retval;
}
int FilesTreeModel::fileType(const QString &md5sum) const{