From 6bd88cc6ef5e4b7e5769d8ff9fbe41c0382f9ef4 Mon Sep 17 00:00:00 2001 From: Arno Date: Thu, 27 Aug 2015 09:51:11 +0200 Subject: Implement shuffle in PictureViewer2 controls Remove action from context menu. --- pictureviewer2.cpp | 53 +++++++++++++++++++++++++++++++++++------------------ pictureviewer2.h | 6 +++--- shemov.cpp | 7 ------- shemov.h | 1 - 4 files changed, 38 insertions(+), 29 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 " << "Slide " << "Slide all "; + QStringList controls = QStringList() << "Next (>)" << "Previous (<)" << "Skip forward (C->)" << "Skip back (C-<)" << "Shuffle (C->R)" << "Stop Slide " << "Slide " << "Slide all "; 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){ diff --git a/pictureviewer2.h b/pictureviewer2.h index 89d0320..31c5bb3 100644 --- a/pictureviewer2.h +++ b/pictureviewer2.h @@ -36,7 +36,7 @@ typedef QList > PicDataList; class PictureViewer2 : public QGraphicsView { Q_OBJECT public: - enum AssocActions { ToggleSlideAction, SlideSelectedAction, SlideAllAction, HideAction, MarkAction, DeleteAction, SkipForwardAction, SkipBackwardAction }; + enum AssocActions { HideAction, MarkAction, DeleteAction }; explicit PictureViewer2(QWidget *parent = 0); void addFiles(const PicDataList &files, bool clear = true); void addFiles(const QString &dir, bool clear = true); @@ -118,6 +118,7 @@ class PictureViewer2 : public QGraphicsView { QGraphicsTextItem *mPreviousC; QGraphicsTextItem *mSkipForwardC; QGraphicsTextItem *mSkipBackwardC; + QGraphicsTextItem *mShuffleC; QGraphicsTextItem *mSlideStopC; QGraphicsTextItem *mSlideC; QGraphicsTextItem *mSlideAllC; @@ -130,8 +131,6 @@ class PictureViewer2 : public QGraphicsView { QAction *mHideA; QAction *mMarkA; QAction *mDeleteA; - QAction *mSkipForwardA; - QAction *mSkipBackwardA; MappingTreeModel *mMappingTreeModel; PicFilesModel *mPicFilesModel; PicData mCurPicData; @@ -139,6 +138,7 @@ class PictureViewer2 : public QGraphicsView { bool mShowInfoItem; bool mShowMappingItem; bool mShowMarkItem; + bool mShuffle; QString mCurrentDir; }; diff --git a/shemov.cpp b/shemov.cpp index a0873d3..32998c5 100644 --- a/shemov.cpp +++ b/shemov.cpp @@ -585,12 +585,6 @@ void SheMov::createActions(){ picViewer->addAction(mPVDeleteA); picViewer->addAction(createSeparator()); - // Shuffle - mPVShuffleA = new QAction(QIcon(":/bizarre_amputee.png"), tr("Shuffle"), this); - connect(mPVShuffleA, SIGNAL(triggered()), picViewer, SLOT(shuffle())); - picViewer->addAction(mPVShuffleA); - picViewer->addAction(createSeparator()); - // Copy to... mPVCopyToA = new QAction(tr("Copy to..."), this); connect(mPVCopyToA, SIGNAL(triggered()), picViewer, SLOT(copyCurrent())); @@ -807,7 +801,6 @@ void SheMov::createMenus(){ headerMenu->addActions(mPicsTreeHeaderGroup->actions()); mPicViewMenu->addMenu(headerMenu); mPicViewMenu->addSeparator(); - mPicViewMenu->addAction(mPVShuffleA); mPicViewMenu->addAction(mPWRefreshA); mViewPicMenuA = menuBar()->addMenu(mPicViewMenu); diff --git a/shemov.h b/shemov.h index f427f46..8247e20 100644 --- a/shemov.h +++ b/shemov.h @@ -137,7 +137,6 @@ class SheMov : public QMainWindow { QAction *mPVClearMarksA; QAction *mPVReplaceA; QAction *mPVSelectAllA; - QAction *mPVShuffleA; QAction *mPVCopyToA; QAction *mPVShowNPDialogA; QAction *mPVAddToNPA; -- cgit v1.2.3-70-g09d2