From 2844e586208fed423cbb81f269add2370231b780 Mon Sep 17 00:00:00 2001 From: Arno Date: Sun, 20 Mar 2016 04:22:35 +0100 Subject: Let std::shuffle do the randomization Seems to be more random. Also, this commit introduces c++11, yay! --- picfilesmodel.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'picfilesmodel.cpp') diff --git a/picfilesmodel.cpp b/picfilesmodel.cpp index ec1b82d..482af09 100644 --- a/picfilesmodel.cpp +++ b/picfilesmodel.cpp @@ -10,11 +10,16 @@ #include #include +#include +#include +#include + #include "picfilesmodel.h" #include "smglobals.h" #include "smtreeitem.h" #include "helper.h" + PicFilesModel::PicFilesModel(const QStringList &headers, QObject *parent) : SmTreeModel(headers, parent) { //conjure up model mMappingTreeModel = static_cast(SmGlobals::instance()->model("MappingTree")); @@ -299,24 +304,28 @@ QList PicFilesModel::mappingPIdsFromFiles(QList fileIds) const{ void PicFilesModel::allPicIds(){ mAllPics.clear(); mCurrentBatch = 0; - QSqlQuery q("SELECT tfilename, cmd5sum, ipicsid FROM pics ORDER BY random()", mDb); + QSqlQuery q("SELECT tfilename, cmd5sum, ipicsid FROM pics", mDb); while(q.next()){ QList cur; cur << q.value(0) << q.value(1) << q.value(2); mAllPics << cur; } + unsigned seed = std::chrono::system_clock::now().time_since_epoch().count(); + std::shuffle(mAllPics.begin(), mAllPics.end(), std::default_random_engine(seed)); mCurrentPics = &mAllPics; } void PicFilesModel::recentPicIds(){ mRecentPics.clear(); mCurrentBatch = 0; - QSqlQuery q("SELECT tfilename, cmd5sum, ipicsid FROM pics WHERE dtadded > now() - interval '6 months' ORDER BY random()", mDb); + QSqlQuery q("SELECT tfilename, cmd5sum, ipicsid FROM pics WHERE dtadded > now() - interval '6 months'", mDb); while(q.next()){ QList cur; cur << q.value(0) << q.value(1) << q.value(2); mRecentPics << cur; } + unsigned seed = std::chrono::system_clock::now().time_since_epoch().count(); + std::shuffle(mRecentPics.begin(), mRecentPics.end(), std::default_random_engine(seed)); mCurrentPics = &mRecentPics; } -- cgit v1.2.3-70-g09d2