diff options
author | Arno <am@disconnect.de> | 2011-05-27 19:00:03 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2011-05-27 19:00:03 +0200 |
commit | 58ba968b492479f6a4539bceaefe3eaa88aab8f7 (patch) | |
tree | 84670022123ae15c15a3f8d80da622bf7373250c | |
parent | bd74eb2df37dd84ecf0279971c64c23ac5de8bce (diff) | |
download | SheMov-58ba968b492479f6a4539bceaefe3eaa88aab8f7.tar.gz SheMov-58ba968b492479f6a4539bceaefe3eaa88aab8f7.tar.bz2 SheMov-58ba968b492479f6a4539bceaefe3eaa88aab8f7.zip |
Implemented FilesTreeModel::fileSizeLessThan
Implemented function to find movie files less a specific size to
suggest suitable files for burning. Not tested, and I guess I have
to take the picture size into account.
-rw-r--r-- | filestreemodel.cpp | 17 | ||||
-rw-r--r-- | filestreemodel.h | 2 |
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; |