diff options
author | Arno <am@disconnect.de> | 2013-02-08 03:57:41 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2013-02-08 03:57:41 +0100 |
commit | 534ca73d64b13c4604e6823e7d3a7f290b225e1d (patch) | |
tree | b155a08517a059a4d88e2beb4d6933c40568aa03 /filestreemodel.cpp | |
parent | a2c0865ca9491d403ae0032bbc9894c452cc09d0 (diff) | |
download | SheMov-534ca73d64b13c4604e6823e7d3a7f290b225e1d.tar.gz SheMov-534ca73d64b13c4604e6823e7d3a7f290b225e1d.tar.bz2 SheMov-534ca73d64b13c4604e6823e7d3a7f290b225e1d.zip |
Fix "suggest file for burning"
Don't use a SQL-Query to find files. Traverse the model instead. Also
check if the resulting index is already selected. All in all, make it
usable again.
Diffstat (limited to 'filestreemodel.cpp')
-rw-r--r-- | filestreemodel.cpp | 33 |
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{ |