diff options
author | Arno <am@disconnect.de> | 2012-03-10 07:29:20 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2012-03-10 07:29:20 +0100 |
commit | 08c7cc837379ae4f085a6cc0d44a8b58bdb5a030 (patch) | |
tree | 50e3a3a69a2abc68d2cbb18f5e8668dba374a40c /pictureviewer2.cpp | |
parent | 8aae1eea458695a19a7ff36bdffbe59c9e7d4cf2 (diff) | |
download | SheMov-08c7cc837379ae4f085a6cc0d44a8b58bdb5a030.tar.gz SheMov-08c7cc837379ae4f085a6cc0d44a8b58bdb5a030.tar.bz2 SheMov-08c7cc837379ae4f085a6cc0d44a8b58bdb5a030.zip |
Slide show
Implement slide show in Pictureviewer2. Slide over all available files
and wrap around when reaching the end of the list.
Also added some more artwork.
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r-- | pictureviewer2.cpp | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp index 3bcc404..1b797d3 100644 --- a/pictureviewer2.cpp +++ b/pictureviewer2.cpp @@ -11,6 +11,9 @@ #include <QGraphicsPixmapItem> #include <QImage> #include <QWheelEvent> +#include <QContextMenuEvent> +#include <QMenu> +#include <QTimer> #include "pictureviewer2.h" #include "pictureswidget.h" @@ -27,6 +30,10 @@ PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0) initialData[PicFilesModel::FullPath] = mDefaultFile; mFiles << initialData; + //picture show + mSlideTimer = new QTimer(this); + connect(mSlideTimer, SIGNAL(timeout()), this, SLOT(next())); + //setup gui mScene = new QGraphicsScene(this); setScene(mScene); @@ -64,20 +71,30 @@ QSize PictureViewer2::sizeHint() const{ void PictureViewer2::next(){ if(mCurPos + 1 >= mFiles.size()){ - return; + mCurPos = 0; + }else{ + ++mCurPos; } - ++mCurPos; showFile(mFiles.at(mCurPos)); } void PictureViewer2::previous(){ if(mCurPos - 1 < 0){ - return; + mCurPos = mFiles.size() - 1; + }else{ + --mCurPos; } - --mCurPos; showFile(mFiles.at(mCurPos)); } +void PictureViewer2::slide(){ + if(mSlideTimer->isActive()){ + mSlideTimer->stop(); + }else{ + mSlideTimer->start(5000); + } +} + void PictureViewer2::wheelEvent(QWheelEvent *event){ int steps = event->delta() / 8 / 15; if(steps < 0){ @@ -87,6 +104,14 @@ void PictureViewer2::wheelEvent(QWheelEvent *event){ } } +void PictureViewer2::contextMenuEvent(QContextMenuEvent *e){ + QMenu ctxMenu; + foreach(QAction *a, actions()){ + ctxMenu.addAction(a); + } + ctxMenu.exec(e->globalPos()); +} + void PictureViewer2::showFile(const PicData &file){ QPixmap pixmap(file.at(PicFilesModel::FullPath).toString()); if(pixmap.isNull()){ |