diff options
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r-- | pictureviewer2.cpp | 53 |
1 files changed, 35 insertions, 18 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp index 4575c95..ce02fc7 100644 --- a/pictureviewer2.cpp +++ b/pictureviewer2.cpp @@ -45,7 +45,7 @@ const QString PictureViewer2::mDefaultFile = ":/picgone.png"; -PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0), mCurPos(0), mFnItem(0), mMappingItem(0), mShowInfoItem(true), mShowMappingItem(true), mShowMarkItem(false) { +PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0), mCurPos(0), mFnItem(0), mMappingItem(0), mShowInfoItem(true), mShowMappingItem(true), mShowMarkItem(false), mShuffle(false) { setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setWindowState(Qt::WindowMaximized); @@ -232,6 +232,8 @@ void PictureViewer2::stopSlide(){ mSlideStopC->setDefaultTextColor(Qt::darkGreen); mSlideAllC->setDefaultTextColor(mDefaultTextColor); mSlideC->setDefaultTextColor(mDefaultTextColor); + mShuffleC->setDefaultTextColor(mDefaultTextColor); + mShuffle = false; } void PictureViewer2::startSlide(){ @@ -241,6 +243,9 @@ void PictureViewer2::startSlide(){ mSlideAllC->setDefaultTextColor(mDefaultTextColor); mSlideC->setDefaultTextColor(Qt::darkGreen); PicDataList data = mPicFilesModel->allFiles(); + if(mShuffle){ + std::random_shuffle(data.begin(), data.end()); + } addFiles(data, true); mCurTimer->start(5000); } @@ -251,6 +256,8 @@ void PictureViewer2::startSlideAll(){ mSlideStopC->setDefaultTextColor(mDefaultTextColor); mSlideAllC->setDefaultTextColor(Qt::darkGreen); mSlideC->setDefaultTextColor(mDefaultTextColor); + mShuffleC->setDefaultTextColor(mDefaultTextColor); + mShuffle = false; mSlideTimerAllRestart = true; mCurTimer->start(5000); } @@ -312,7 +319,12 @@ void PictureViewer2::writeSettings(){ } void PictureViewer2::shuffle(){ - std::random_shuffle(mFiles.begin(), mFiles.end()); + mShuffle = !mShuffle; + if(mShuffle){ + mShuffleC->setDefaultTextColor(Qt::darkGreen); + }else{ + mShuffleC->setDefaultTextColor(mDefaultTextColor); + } } void PictureViewer2::initActions(){ @@ -331,12 +343,6 @@ void PictureViewer2::initActions(){ if(a->data().toInt() == DeleteAction){ mDeleteA = a; } - if(a->data().toInt() == SkipForwardAction){ - mSkipForwardA = a; - } - if(a->data().toInt() == SkipBackwardAction){ - mSkipBackwardA = a; - } } } @@ -426,6 +432,8 @@ void PictureViewer2::doControl(QGraphicsItem *item){ skip(25); }else if(curItem == mSkipBackwardC){ skip(-25); + }else if(curItem == mShuffleC){ + shuffle(); }else if(curItem == mSlideStopC){ stopSlide(); }else if(curItem == mSlideC){ @@ -469,6 +477,9 @@ void PictureViewer2::keyPressEvent(QKeyEvent *e){ startSlideAll(); } } + if(e->key() == Qt::Key_R){ + shuffle(); + } return; } @@ -498,10 +509,10 @@ void PictureViewer2::keyPressEvent(QKeyEvent *e){ next(); } if(e->key() == Qt::Key_PageDown){ - mSkipForwardA->trigger(); + skip(25); } if(e->key() == Qt::Key_PageUp){ - mSkipBackwardA->trigger(); + skip(-25); } e->accept(); } @@ -666,7 +677,7 @@ void PictureViewer2::nextFromAll(){ } void PictureViewer2::constructControlItem(){ - QStringList controls = QStringList() << "Next (>)" << "Previous (<)" << "Skip forward (C->)" << "Skip back (C-<)" << "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>"; QFont f = QFont(); f.setPointSize(14); f.setBold(true); @@ -679,7 +690,7 @@ void PictureViewer2::constructControlItem(){ } } f.setBold(true); - mBoundingRectItem = new BoundingRectItem(QSize(width + 10, 16 * (controls.count() + 3))); + mBoundingRectItem = new BoundingRectItem(QSize(width + 10, 16 * (controls.count() + 4))); mBoundingRectItem->setZValue(5); mScene->addItem(mBoundingRectItem); mNextC = new QGraphicsTextItem(mBoundingRectItem); @@ -702,19 +713,25 @@ void PictureViewer2::constructControlItem(){ mSkipBackwardC->moveBy(0, 64); QGraphicsLineItem *l2 = new QGraphicsLineItem(mBoundingRectItem); l2->setLine(QLine(QPoint(5, 96), QPoint(width, 96))); + mShuffleC = new QGraphicsTextItem(mBoundingRectItem); + mShuffleC->setFont(f); + mShuffleC->setPlainText(controls.at(4)); + mShuffleC->moveBy(0, 96); + QGraphicsLineItem *l3 = new QGraphicsLineItem(mBoundingRectItem); + l3->setLine(QLine(QPoint(5, 128), QPoint(width, 128))); mSlideStopC = new QGraphicsTextItem(mBoundingRectItem); mSlideStopC->setFont(f); - mSlideStopC->setPlainText(controls.at(4)); + mSlideStopC->setPlainText(controls.at(5)); mSlideStopC->setDefaultTextColor(Qt::darkGreen); - mSlideStopC->moveBy(0, 96); + mSlideStopC->moveBy(0, 128); mSlideC = new QGraphicsTextItem(mBoundingRectItem); mSlideC->setFont(f); - mSlideC->setPlainText(controls.at(5)); - mSlideC->moveBy(0, 112); + mSlideC->setPlainText(controls.at(6)); + mSlideC->moveBy(0, 144); mSlideAllC = new QGraphicsTextItem(mBoundingRectItem); mSlideAllC->setFont(f); - mSlideAllC->setPlainText(controls.at(6)); - mSlideAllC->moveBy(0, 128); + mSlideAllC->setPlainText(controls.at(7)); + mSlideAllC->moveBy(0, 160); } void PictureViewer2::setGradient(const QPixmap &pic){ |