summaryrefslogtreecommitdiffstats
path: root/pictureviewer2.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2015-08-27 05:33:49 +0200
committerArno <arno@disconnect.de>2015-08-27 05:33:49 +0200
commit9eedf8c619c15302d080ee55b513e07a2bf5d591 (patch)
tree9faa533c1d0d73c075b4f6c2123b4ce527db4a62 /pictureviewer2.cpp
parent230d609d3bc85e49b6743ee06f59cb7c3d636714 (diff)
downloadSheMov-9eedf8c619c15302d080ee55b513e07a2bf5d591.tar.gz
SheMov-9eedf8c619c15302d080ee55b513e07a2bf5d591.tar.bz2
SheMov-9eedf8c619c15302d080ee55b513e07a2bf5d591.zip
Display control items
Draw control items in PictureViewer2 at the right centered on the y- axis.
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r--pictureviewer2.cpp62
1 files changed, 58 insertions, 4 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp
index 71f4a80..b18f9ed 100644
--- a/pictureviewer2.cpp
+++ b/pictureviewer2.cpp
@@ -9,6 +9,9 @@
#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsPixmapItem>
+#include <QGraphicsTextItem>
+#include <QGraphicsLineItem>
+#include <QFontMetrics>
#include <QImage>
#include <QWheelEvent>
#include <QContextMenuEvent>
@@ -73,9 +76,9 @@ PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0)
setScene(mScene);
readSettings();
setMinimumSize(QSize(800, 600));
+ constructControlItem();
showFile(mFiles.at(mCurPos));
- mBoundingRectItem = new BoundingRectItem(QSize(100, 300));
- mScene->addItem(mBoundingRectItem);
+
}
void PictureViewer2::addFiles(const PicDataList &files, bool clear){
@@ -455,8 +458,8 @@ void PictureViewer2::hideEvent(QHideEvent *e){
void PictureViewer2::resizeEvent(QResizeEvent *event){
QGraphicsView::resizeEvent(event);
- int brposy = event->size().height() - mBoundingRectItem->boundingRect().size().height() - 5;
- mBoundingRectItem->setPos(5, brposy);
+ qreal ypos = event->size().height() / 2 - mBoundingRectItem->boundingRect().size().height() / 2;
+ mBoundingRectItem->setPos(width() - 15 - mBoundingRectItem->boundingRect().size().width(), ypos);
showFile(mCurPicData);
}
@@ -601,6 +604,57 @@ void PictureViewer2::nextFromAll(){
++mCurPos;
}
+void PictureViewer2::constructControlItem(){
+ QStringList controls = QStringList() << "Next (>)" << "Previous (<)" << "Skip forward (>>)" << "Skip back (<<)" << "Stop Slide" << "Slide" << "Slide all";
+ QFont f = QFont();
+ f.setPointSize(14);
+ f.setBold(true);
+ QFontMetrics fm(f);
+ int width = 0;
+ foreach(QString c, controls){
+ int curWidth = fm.width(c);
+ if(curWidth > width){
+ width = curWidth;
+ }
+ }
+ f.setBold(true);
+ mBoundingRectItem = new BoundingRectItem(QSize(width + 10, 16 * (controls.count() + 3)));
+ mBoundingRectItem->setZValue(5);
+ mScene->addItem(mBoundingRectItem);
+ mNextC = new QGraphicsTextItem(mBoundingRectItem);
+ mNextC->setFont(f);
+ mNextC->setPlainText(controls.at(0));
+ mPreviousC = new QGraphicsTextItem(mBoundingRectItem);
+ mPreviousC->setFont(f);
+ mPreviousC->setPlainText(controls.at(1));
+ mPreviousC->moveBy(0, 16);
+ QGraphicsLineItem *l1 = new QGraphicsLineItem(mBoundingRectItem);
+ l1->setLine(QLine(QPoint(5, 48), QPoint(width, 48)));
+ mSkipForwardC = new QGraphicsTextItem(mBoundingRectItem);
+ mSkipForwardC->setFont(f);
+ mSkipForwardC->setPlainText(controls.at(2));
+ mSkipForwardC->moveBy(0, 48);
+ mSkipBackwardC = new QGraphicsTextItem(mBoundingRectItem);
+ mSkipBackwardC->setFont(f);
+ mSkipBackwardC->setPlainText(controls.at(3));
+ mSkipBackwardC->moveBy(0, 64);
+ QGraphicsLineItem *l2 = new QGraphicsLineItem(mBoundingRectItem);
+ l2->setLine(QLine(QPoint(5, 96), QPoint(width, 96)));
+ mSlideStopC = new QGraphicsTextItem(mBoundingRectItem);
+ mSlideStopC->setFont(f);
+ mSlideStopC->setPlainText(controls.at(4));
+ mSlideStopC->setDefaultTextColor(Qt::darkGreen);
+ mSlideStopC->moveBy(0, 96);
+ mSlideC = new QGraphicsTextItem(mBoundingRectItem);
+ mSlideC->setFont(f);
+ mSlideC->setPlainText(controls.at(5));
+ mSlideC->moveBy(0, 112);
+ mSlideAllC = new QGraphicsTextItem(mBoundingRectItem);
+ mSlideAllC->setFont(f);
+ mSlideAllC->setPlainText(controls.at(5));
+ mSlideAllC->moveBy(0, 128);
+}
+
void PictureViewer2::setGradient(const QPixmap &pic){
QPoint val1 = QPoint(qrand() % pic.width(), qrand() % pic.height());
QPoint val2 = QPoint(qrand() % pic.width(), qrand() % pic.height());