diff options
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r-- | pictureviewer2.cpp | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp index d5a6300..a5f250b 100644 --- a/pictureviewer2.cpp +++ b/pictureviewer2.cpp @@ -99,8 +99,8 @@ void PictureViewer2::previous(){ showFile(mFiles.at(mCurPos)); } -void PictureViewer2::slide(){ - if(mSlideTimer->isActive()){ +void PictureViewer2::slide(bool){ + if(mSlideTimer->isActive()){ mSlideTimer->stop(); }else{ mSlideTimer->start(5000); @@ -126,6 +126,22 @@ void PictureViewer2::shuffle(){ std::random_shuffle(mFiles.begin(), mFiles.end()); } +void PictureViewer2::initActions(){ + foreach(QAction *a, actions()){ + //never, ever forget this when casting to int + //an invalid QVariant casts to a valid int! + if(!a->data().isValid()){ + continue; + } + if(a->data().toInt() == HideAction){ + mHideA = a; + } + if(a->data().toInt() == SlideAction){ + mSlideA = a; + } + } +} + void PictureViewer2::wheelEvent(QWheelEvent *event){ int steps = event->delta() / 8 / 15; if(steps < 0){ @@ -143,6 +159,22 @@ void PictureViewer2::contextMenuEvent(QContextMenuEvent *e){ ctxMenu.exec(e->globalPos()); } +void PictureViewer2::keyPressEvent(QKeyEvent *e){ + if(e->key() == Qt::Key_Escape){ + mHideA->toggle(); + } + if(e->key() == Qt::Key_Space){ + mSlideA->toggle(); + } + e->accept(); +} + +void PictureViewer2::hideEvent(QHideEvent *){ + if(mSlideTimer->isActive()){ + mSlideA->toggle(); + } +} + void PictureViewer2::showFile(const PicData &file){ QPixmap pixmap(file.at(PicFilesModel::FullPath).toString()); if(pixmap.isNull()){ |