summaryrefslogtreecommitdiffstats
path: root/pictureviewer2.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2012-03-08 07:09:09 +0100
committerArno <am@disconnect.de>2012-03-08 07:09:09 +0100
commitea30d012b7777a2aea1c5e957a7d7566eebef391 (patch)
tree88a1ebdcca7a3184781d4ed4ac29b3892df04d6c /pictureviewer2.cpp
parent57f69839e3bab9ab73f15811374099576216282b (diff)
downloadSheMov-ea30d012b7777a2aea1c5e957a7d7566eebef391.tar.gz
SheMov-ea30d012b7777a2aea1c5e957a7d7566eebef391.tar.bz2
SheMov-ea30d012b7777a2aea1c5e957a7d7566eebef391.zip
Show picture on doubleClick in PicturesWidget
Show picture in PictureViewer2 when double clicking an item in pictures widget. Also shuffle some code around.
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r--pictureviewer2.cpp68
1 files changed, 59 insertions, 9 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp
index 0c2530e..c126c2c 100644
--- a/pictureviewer2.cpp
+++ b/pictureviewer2.cpp
@@ -10,15 +10,17 @@
#include <QGraphicsScene>
#include <QGraphicsPixmapItem>
#include <QImage>
+#include <QWheelEvent>
#include "pictureviewer2.h"
-const QString PictureViewer2::mDefaultFile(":/picgone.png");
-
-PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0) {
+PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0), mCurPos(0), mDefaultFile(":/picgone.png") {
//behave like QDialog, but don't be one...
setWindowFlags(QFlags<Qt::WindowType>(0x1|0x2|0x1000|0x2000|0x10000|0x8000000));
+ //initial file list
+ mFiles = QStringList() << mDefaultFile;
+
//setup gui
mScene = new QGraphicsScene(this);
setScene(mScene);
@@ -28,10 +30,58 @@ PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0)
setMinimumSize(mMinimunSize);
move(50, 50);
setVisible(false);
- setFile();
+ showFile(mFiles.at(mCurPos));
+}
+
+void PictureViewer2::addFiles(const QStringList &files, bool clear){
+ if(clear){
+ mFiles.clear();
+ mFiles = files;
+ mCurPos = 0;
+ return;
+ }
+ foreach(const QString &f, files){
+ if(!mFiles.contains(f)){
+ mFiles.append(f);
+ }
+ }
}
-void PictureViewer2::setFile(const QString file){
+void PictureViewer2::setFile(const QString &file){
+ addFiles(QStringList() << file, true);
+ showFile(mFiles.at(mCurPos));
+}
+
+QSize PictureViewer2::sizeHint() const{
+ return mMinimunSize;
+}
+
+void PictureViewer2::next(){
+ if(mCurPos + 1 >= mFiles.size()){
+ return;
+ }
+ ++mCurPos;
+ showFile(mFiles.at(mCurPos));
+}
+
+void PictureViewer2::previous(){
+ if(mCurPos - 1 < 0){
+ return;
+ }
+ --mCurPos;
+ showFile(mFiles.at(mCurPos));
+}
+
+void PictureViewer2::wheelEvent(QWheelEvent *event){
+ int steps = event->delta() / 8 / 15;
+ if(steps < 0){
+ next();
+ }else{
+ previous();
+ }
+}
+
+void PictureViewer2::showFile(const QString file){
QPixmap pixmap(file);
if(pixmap.isNull()){
return;
@@ -45,9 +95,13 @@ void PictureViewer2::setFile(const QString file){
mCur = 0;
}
mCur = new QGraphicsPixmapItem(pixmap);
+ float cX = width() - pixmap.width() / 2;
+ float cY = height() - pixmap.height() / 2;
+ mCur->setPos(QPointF(cX, cY));
mScene->addItem(mCur);
}
+
void PictureViewer2::setCurPalette(const QPixmap &pic){
QPoint val1 = QPoint(qrand() % pic.width(), qrand() % pic.height());
QPoint val2 = QPoint(qrand() % pic.width(), qrand() % pic.height());
@@ -59,7 +113,3 @@ void PictureViewer2::setCurPalette(const QPixmap &pic){
g.setColorAt(1, c2);
setBackgroundBrush(QBrush(g));
}
-
-QSize PictureViewer2::sizeHint() const{
- return mMinimunSize;
-}