summaryrefslogtreecommitdiffstats
path: root/pictureviewer2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r--pictureviewer2.cpp61
1 files changed, 57 insertions, 4 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp
index b18f9ed..e9af43d 100644
--- a/pictureviewer2.cpp
+++ b/pictureviewer2.cpp
@@ -73,6 +73,7 @@ PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0)
//setup gui
mScene = new PictureViewerGraphicsScene(this);
+ connect(mScene, SIGNAL(itemClicked(QGraphicsItem*)), this, SLOT(doControl(QGraphicsItem*)));
setScene(mScene);
readSettings();
setMinimumSize(QSize(800, 600));
@@ -231,6 +232,32 @@ void PictureViewer2::selectPic(const QString &path){
}
}
+void PictureViewer2::stopSlide(){
+ mCurTimer->stop();
+ mSlideStopC->setDefaultTextColor(Qt::darkGreen);
+ mSlideAllC->setDefaultTextColor(mDefaultTextColor);
+ mSlideC->setDefaultTextColor(mDefaultTextColor);
+}
+
+void PictureViewer2::startSlide(){
+ mCurTimer->stop();
+ mCurTimer = mSlideTimer;
+ mSlideStopC->setDefaultTextColor(mDefaultTextColor);
+ mSlideAllC->setDefaultTextColor(mDefaultTextColor);
+ mSlideC->setDefaultTextColor(Qt::darkGreen);
+ mCurTimer->start(5000);
+}
+
+void PictureViewer2::startSlideAll(){
+ mCurTimer->stop();
+ mCurTimer = mSlideTimerAll;
+ mSlideStopC->setDefaultTextColor(mDefaultTextColor);
+ mSlideAllC->setDefaultTextColor(Qt::darkGreen);
+ mSlideC->setDefaultTextColor(mDefaultTextColor);
+ mCurTimer->start(5000);
+}
+
+
void PictureViewer2::toggleSlide(bool slide){
if(slide){
mCurTimer->start(5000);
@@ -274,6 +301,8 @@ void PictureViewer2::readSettings(){
mConfigMapPos = s.value("ui/mappingposition").toInt();
mMappingPos = s.value("ui/pvmappingpos", QPointF(20, 20)).toPointF();
mScene->setSceneRect(QRectF(0, 0, width(), height()));
+ mCursorOffset = s.value("ui/cursoroffset").toInt();
+ mScene->setCursorOffset(mCursorOffset);
showFile(mCurPicData);
}
@@ -397,6 +426,27 @@ void PictureViewer2::clearMarks(){
constructInfoItem(mCurPicData, QSize());
}
+void PictureViewer2::doControl(QGraphicsItem *item){
+ QGraphicsTextItem *curItem = static_cast<QGraphicsTextItem*>(item);
+ if(curItem){
+ if(curItem == mNextC){
+ next();
+ }else if(curItem == mPreviousC){
+ previous();
+ }else if(curItem == mSkipForwardC){
+ skip(25);
+ }else if(curItem == mSkipBackwardC){
+ skip(-25);
+ }else if(curItem == mSlideStopC){
+ stopSlide();
+ }else if(curItem == mSlideC){
+ startSlide();
+ }else if(curItem == mSlideAllC){
+ startSlideAll();
+ }
+ }
+}
+
void PictureViewer2::wheelEvent(QWheelEvent *event){
int steps = event->delta() / 8 / 15;
if(steps < 0){
@@ -606,7 +656,7 @@ void PictureViewer2::nextFromAll(){
void PictureViewer2::constructControlItem(){
QStringList controls = QStringList() << "Next (>)" << "Previous (<)" << "Skip forward (>>)" << "Skip back (<<)" << "Stop Slide" << "Slide" << "Slide all";
- QFont f = QFont();
+ QFont f = QFont();
f.setPointSize(14);
f.setBold(true);
QFontMetrics fm(f);
@@ -624,6 +674,7 @@ void PictureViewer2::constructControlItem(){
mNextC = new QGraphicsTextItem(mBoundingRectItem);
mNextC->setFont(f);
mNextC->setPlainText(controls.at(0));
+ mDefaultTextColor = mNextC->defaultTextColor();
mPreviousC = new QGraphicsTextItem(mBoundingRectItem);
mPreviousC->setFont(f);
mPreviousC->setPlainText(controls.at(1));
@@ -651,7 +702,7 @@ void PictureViewer2::constructControlItem(){
mSlideC->moveBy(0, 112);
mSlideAllC = new QGraphicsTextItem(mBoundingRectItem);
mSlideAllC->setFont(f);
- mSlideAllC->setPlainText(controls.at(5));
+ mSlideAllC->setPlainText(controls.at(6));
mSlideAllC->moveBy(0, 128);
}
@@ -822,8 +873,10 @@ void BoundingRectItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *
void PictureViewerGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *e){
QGraphicsScene::mousePressEvent(e);
- QGraphicsItem *item = itemAt(e->scenePos(), QTransform());
+ QPointF curPos = e->scenePos();
+ curPos = QPointF(e->scenePos().x(), e->scenePos().y() - 16);
+ QGraphicsItem *item = itemAt(curPos, QTransform());
if(item){
- //do something!
+ emit itemClicked(item);
}
}