diff options
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r-- | pictureviewer2.cpp | 63 |
1 files changed, 58 insertions, 5 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp index 2640c2f..2eb4566 100644 --- a/pictureviewer2.cpp +++ b/pictureviewer2.cpp @@ -61,10 +61,12 @@ PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0) //picture show mSlideTimer = new QTimer(this); mSlideTimerAll = new QTimer(this); + mSlideTimerRecent = new QTimer(this); mCurTimer = mSlideTimer; mSlideTimerAllRestart = true; connect(mSlideTimer, SIGNAL(timeout()), this, SLOT(next())); connect(mSlideTimerAll, SIGNAL(timeout()), this, SLOT(nextFromAll())); + connect(mSlideTimerRecent, SIGNAL(timeout()), this, SLOT(nextFromRecent())); //models + dialogs mMappingTreeModel = static_cast<MappingTreeModel*>(SmGlobals::instance()->model("MappingTree")); @@ -231,6 +233,7 @@ void PictureViewer2::stopSlide(){ mCurTimer->stop(); mSlideStopC->setDefaultTextColor(Qt::darkGreen); mSlideAllC->setDefaultTextColor(mDefaultTextColor); + mSlideRecentC->setDefaultTextColor(mDefaultTextColor); mSlideC->setDefaultTextColor(mDefaultTextColor); mShuffleC->setDefaultTextColor(mDefaultTextColor); mShuffle = false; @@ -256,12 +259,26 @@ void PictureViewer2::startSlideAll(){ mSlideStopC->setDefaultTextColor(mDefaultTextColor); mSlideAllC->setDefaultTextColor(Qt::darkGreen); mSlideC->setDefaultTextColor(mDefaultTextColor); + mSlideRecentC->setDefaultTextColor(mDefaultTextColor); mShuffleC->setDefaultTextColor(mDefaultTextColor); mShuffle = false; mSlideTimerAllRestart = true; mCurTimer->start(5000); } +void PictureViewer2::startSlideRecent(){ + mCurTimer->stop(); + mCurTimer = mSlideTimerRecent; + mSlideStopC->setDefaultTextColor(mDefaultTextColor); + mSlideAllC->setDefaultTextColor(mDefaultTextColor); + mSlideC->setDefaultTextColor(mDefaultTextColor); + mShuffleC->setDefaultTextColor(mDefaultTextColor); + mSlideRecentC->setDefaultTextColor(Qt::darkGreen); + mShuffle = false; + mSlideTimerRecentRestart = true; + mCurTimer->start(5000); +} + void PictureViewer2::toggleSlide(bool slide){ if(slide){ @@ -273,6 +290,7 @@ void PictureViewer2::toggleSlide(bool slide){ void PictureViewer2::slide(bool){ mSlideTimerAll->stop(); + mSlideTimerRecent->stop(); mCurTimer = mSlideTimer; if(mSlideTimer->isActive()){ mSlideTimer->stop(); @@ -285,17 +303,30 @@ void PictureViewer2::slide(bool){ void PictureViewer2::slideThrouhghAll(bool){ mSlideTimer->stop(); + mSlideTimerRecent->stop(); mCurTimer = mSlideTimerAll; mShowMappingItem = true; if(mSlideTimerAll->isActive()){ mSlideTimerAll->stop(); }else{ - mSlideTimer->stop(); mSlideTimerAllRestart = true; mSlideTimerAll->start(5000); } } +void PictureViewer2::slideThrougRecent(bool){ + mSlideTimer->stop(); + mSlideTimerAll->stop(); + mCurTimer = mSlideTimerRecent; + mShowMappingItem = true; + if(mSlideTimerRecent->isActive()){ + mSlideTimerRecent->stop(); + }else{ + mSlideTimerRecentRestart = true; + mSlideTimerRecent->start(5000); + } +} + void PictureViewer2::readSettings(){ QSettings s; mUseGradient = s.value("ui/pvgradient").toBool(); @@ -440,6 +471,8 @@ void PictureViewer2::doControl(QGraphicsItem *item){ startSlide(); }else if(curItem == mSlideAllC){ startSlideAll(); + }else if(curItem == mSlideRecentC){ + startSlideRecent(); } } } @@ -666,7 +699,23 @@ void PictureViewer2::nextFromAll(){ mPicFilesModel->allPicIds(); mSlideTimerAllRestart = false; setNextBatch(); - mSlideTimerAll->start(); + mSlideTimerAll->start(5000); + } + if(mCurPos == mFiles.size()){ + setNextBatch(); + } + mMarkA->setChecked(mMarkedFiles.contains(mFiles.at(mCurPos))); + showFile(mFiles.at(mCurPos)); + ++mCurPos; +} + +void PictureViewer2::nextFromRecent(){ + if(mSlideTimerRecentRestart){ + mSlideTimerRecent->stop(); + mPicFilesModel->recentPicIds(); + mSlideTimerRecentRestart = false; + setNextBatch(); + mSlideTimerRecent->start(5000); } if(mCurPos == mFiles.size()){ setNextBatch(); @@ -677,7 +726,7 @@ void PictureViewer2::nextFromAll(){ } void PictureViewer2::constructControlItem(){ - QStringList controls = QStringList() << "Next (>)" << "Previous (<)" << "Skip forward (C->)" << "Skip back (C-<)" << "Shuffle (C-R)" << "Stop Slide <SP>" << "Slide <SP>" << "Slide all <C-SP>"; + QStringList controls = QStringList() << "Next (>)" << "Previous (<)" << "Skip forward (C->)" << "Skip back (C-<)" << "Shuffle (C-R)" << "Stop Slide <SP>" << "Slide <SP>" << "Slide all <C-SP>" << "Slide recent"; QFont f = QFont(); f.setPointSize(14); f.setBold(true); @@ -737,6 +786,10 @@ void PictureViewer2::constructControlItem(){ mSlideAllC->setFont(f); mSlideAllC->setPlainText(controls.at(7)); mSlideAllC->moveBy(textLeftMargin, 10 * textFactor); + mSlideRecentC = new QGraphicsTextItem(mBoundingRectItem); + mSlideRecentC->setFont(f); + mSlideRecentC->setPlainText(controls.at(8)); + mSlideRecentC->moveBy(textLeftMargin, 11 * textFactor); } void PictureViewer2::setGradient(const QPixmap &pic){ @@ -752,14 +805,14 @@ void PictureViewer2::setGradient(const QPixmap &pic){ } void PictureViewer2::setNextBatch(){ - mSlideTimerAll->stop(); + mCurTimer->stop(); mFiles.clear(); QList<QList<QVariant> > data = mPicFilesModel->getNextBatch(); foreach(QList<QVariant> l, data){ addFile(l.value(0).toString(), l.value(1).toInt()); } mCurPos = 0; - mSlideTimerAll->start(); + mCurTimer->start(); } QTextDocument *PictureViewer2::treeToString(const SmTreeItem *root) const{ |