summaryrefslogtreecommitdiffstats
path: root/pictureviewer2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r--pictureviewer2.cpp36
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()){