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