diff options
-rw-r--r-- | pictureviewer2.cpp | 25 | ||||
-rw-r--r-- | pictureviewer2.h | 5 | ||||
-rw-r--r-- | shemov.cpp | 20 | ||||
-rw-r--r-- | shemov.h | 4 |
4 files changed, 53 insertions, 1 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp index b84d07d..6a547f3 100644 --- a/pictureviewer2.cpp +++ b/pictureviewer2.cpp @@ -195,6 +195,19 @@ void PictureViewer2::previous(){ showFile(mFiles.at(mCurPos)); } +void PictureViewer2::skip(int amount){ + int next = mCurPos + amount; + if(next >= mFiles.size()){ + next = next - mFiles.size(); + } + if(next < 0){ + next = mFiles.size() + next; + } + mMarkA->setChecked(mMarkedFiles.contains(mFiles.at(next))); + showFile(mFiles.at(next)); + mCurPos = next; +} + void PictureViewer2::selectPic(const QString &path){ for(int i = 0; i < mFiles.size(); ++i){ if(mFiles.at(i).at(PicFilesModel::FullPath) == path){ @@ -262,6 +275,12 @@ void PictureViewer2::initActions(){ if(a->data().toInt() == DeleteAction){ mDeleteA = a; } + if(a->data().toInt() == SkipForwardAction){ + mSkipForwardA = a; + } + if(a->data().toInt() == SkipBackwardAction){ + mSkipBackwardA = a; + } } } @@ -368,6 +387,12 @@ void PictureViewer2::keyPressEvent(QKeyEvent *e){ deleteCurrent(); next(); } + if(e->key() == Qt::Key_PageDown){ + mSkipForwardA->trigger(); + } + if(e->key() == Qt::Key_PageUp){ + mSkipBackwardA->trigger(); + } e->accept(); } diff --git a/pictureviewer2.h b/pictureviewer2.h index eabc3a0..6a1c92a 100644 --- a/pictureviewer2.h +++ b/pictureviewer2.h @@ -34,7 +34,7 @@ typedef QList<QList<QVariant> > PicDataList; class PictureViewer2 : public QGraphicsView { Q_OBJECT public: - enum AssocActions { SlideAction, HideAction, MarkAction, DeleteAction }; + enum AssocActions { SlideAction, HideAction, MarkAction, DeleteAction, SkipForwardAction, SkipBackwardAction }; explicit PictureViewer2(QWidget *parent = 0); void addFiles(const PicDataList &files, bool clear = true); void addFiles(const QString &dir, bool clear = true); @@ -52,6 +52,7 @@ class PictureViewer2 : public QGraphicsView { public slots: void next(); void previous(); + void skip(int amount); void selectPic(const QString &path); void slide(bool); void readSettings(); @@ -104,6 +105,8 @@ class PictureViewer2 : public QGraphicsView { QAction *mHideA; QAction *mMarkA; QAction *mDeleteA; + QAction *mSkipForwardA; + QAction *mSkipBackwardA; MappingTreeModel *mMappingTreeModel; PicFilesModel *mPicFilesModel; PicData mCurPicData; @@ -562,6 +562,16 @@ void SheMov::createActions(){ connect(mPVSlideA, SIGNAL(toggled(bool)), this, SLOT(setSlide(bool))); picViewer->addAction(createSeparator()); picViewer->addAction(mPVSlideA); + mPVSkipForwardA = new QAction(tr("Skip 25 forward"), this); + connect(mPVSkipForwardA, SIGNAL(triggered()), this, SLOT(skipForward())); + mPVSkipForwardA->setData(PictureViewer2::SkipForwardAction); + mPVSkipBackA = new QAction(tr("Skip 25 back"), this); + connect(mPVSkipBackA, SIGNAL(triggered()), this, SLOT(skipBack())); + mPVSkipBackA->setData(PictureViewer2::SkipBackwardAction); + picViewer->addAction(createSeparator()); + picViewer->addAction(mPVSkipForwardA); + picViewer->addAction(mPVSkipBackA); + picViewer->addAction(createSeparator()); // Shuffle mPVShuffleA = new QAction(QIcon(":/bizarre_amputee.png"), tr("Shuffle"), this); @@ -1073,3 +1083,13 @@ void SheMov::newPicsDialogWithFiles(){ mNewPicsDialog->addFiles(files); mNewPicsDialog->exec(); } + +void SheMov::skipForward(){ + PictureViewer2 *picViewer = SmGlobals::instance()->pictureViewer(); + picViewer->skip(25); +} + +void SheMov::skipBack(){ + PictureViewer2 *picViewer = SmGlobals::instance()->pictureViewer(); + picViewer->skip(-25); +} @@ -51,6 +51,8 @@ class SheMov : public QMainWindow { void checkMount(bool mounted); void newPicsDialog(); void newPicsDialogWithFiles(); + void skipForward(); + void skipBack(); void analyzeActors(); void analyzeGenres(); @@ -134,6 +136,8 @@ class SheMov : public QMainWindow { QAction *mPVCopyToA; QAction *mPVShowNPDialogA; QAction *mPVAddToNPA; + QAction *mPVSkipForwardA; + QAction *mPVSkipBackA; QActionGroup *mPicActionGroup; //EndActions |