summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2011-05-27 19:00:03 +0200
committerArno <am@disconnect.de>2011-05-27 19:00:03 +0200
commit58ba968b492479f6a4539bceaefe3eaa88aab8f7 (patch)
tree84670022123ae15c15a3f8d80da622bf7373250c
parentbd74eb2df37dd84ecf0279971c64c23ac5de8bce (diff)
downloadSheMov-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.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;