summaryrefslogtreecommitdiffstats
path: root/picfilesmodel.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2015-08-12 19:29:44 +0200
committerArno <arno@disconnect.de>2015-08-12 19:29:44 +0200
commitdc2927587eb758754babf98adb764c3bbdccd024 (patch)
tree7fc3a9c94f2e895862de0523a06475a3572112e7 /picfilesmodel.cpp
parent49b943474c4ac39ee5f0f2e900fddd1253a84366 (diff)
downloadSheMov-dc2927587eb758754babf98adb764c3bbdccd024.tar.gz
SheMov-dc2927587eb758754babf98adb764c3bbdccd024.tar.bz2
SheMov-dc2927587eb758754babf98adb764c3bbdccd024.zip
Implement slide through all pictures
Wow, that was much more complicated than I first thought, but it seems to work. Maybe it's much more convoluted than it has to be :)
Diffstat (limited to 'picfilesmodel.cpp')
-rw-r--r--picfilesmodel.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/picfilesmodel.cpp b/picfilesmodel.cpp
index dfe0f2d..3eff4cb 100644
--- a/picfilesmodel.cpp
+++ b/picfilesmodel.cpp
@@ -296,6 +296,34 @@ QList<int> PicFilesModel::mappingPIdsFromFiles(QList<int> fileIds) const{
return retval;
}
+void PicFilesModel::allPicIds(){
+ mAllPics.clear();
+ mCurrentBatch = 0;
+ QSqlQuery q("SELECT tfilename, cmd5sum, ipicsid FROM pics ORDER BY random()", mDb);
+ while(q.next()){
+ QList<QVariant> cur;
+ cur << q.value(0) << q.value(1) << q.value(2);
+ mAllPics << cur;
+ }
+}
+
+QList<QList<QVariant> > PicFilesModel::getNextBatch(){
+ if(mCurrentBatch * 100 >= mAllPics.count()){
+ mCurrentBatch = 0;
+ }
+ int start = mCurrentBatch * 100;
+ QList<QList<QVariant> > res = mAllPics.mid(start, 100);
+ QList<QList<QVariant> > retval;
+ for(QList<QList<QVariant> >::const_iterator it = res.constBegin(); it != res.constEnd(); ++it){
+ QList<QVariant> c = *it;
+ QList<QVariant> item;
+ item << Helper::createArchivePath(c.value(0).toString(), c.value(1).toString()) << c.value(2);
+ retval << item;
+ }
+ ++mCurrentBatch;
+ return retval;
+}
+
void PicFilesModel::populate(){
SmTreeItem *root = new SmTreeItem(NumFields);
QStringList idList;