summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2015-08-27 03:03:58 +0200
committerArno <arno@disconnect.de>2015-08-27 03:03:58 +0200
commit230d609d3bc85e49b6743ee06f59cb7c3d636714 (patch)
tree7bde8cb6263e780dd5b73a14bfca7d6e8edf4190
parentb12a9282cd236e5ecab8fda57cec379624457650 (diff)
downloadSheMov-230d609d3bc85e49b6743ee06f59cb7c3d636714.tar.gz
SheMov-230d609d3bc85e49b6743ee06f59cb7c3d636714.tar.bz2
SheMov-230d609d3bc85e49b6743ee06f59cb7c3d636714.zip
Create dummy BoundingRectItem for controls
Draw a dummy rounded rectangle on the bottom left for control items.
-rw-r--r--pictureviewer2.cpp24
-rw-r--r--pictureviewer2.h16
2 files changed, 38 insertions, 2 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp
index f57cab6..71f4a80 100644
--- a/pictureviewer2.cpp
+++ b/pictureviewer2.cpp
@@ -74,6 +74,8 @@ PictureViewer2::PictureViewer2(QWidget *parent) : QGraphicsView(parent), mCur(0)
readSettings();
setMinimumSize(QSize(800, 600));
showFile(mFiles.at(mCurPos));
+ mBoundingRectItem = new BoundingRectItem(QSize(100, 300));
+ mScene->addItem(mBoundingRectItem);
}
void PictureViewer2::addFiles(const PicDataList &files, bool clear){
@@ -453,6 +455,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);
showFile(mCurPicData);
}
@@ -651,7 +655,7 @@ void PictureViewer2::treeToStringRecursive(const SmTreeItem *parent, QTextCursor
}
}
-QPointF PictureViewer2::getPos(PictureViewer2Item *item, int pos, const QPointF &movPos){
+QPointF PictureViewer2::getPos(QGraphicsItem *item, int pos, const QPointF &movPos){
QSizeF curSize = size();
item->setFlags(0);
if(pos == ConfigurationDialog::TopLeft){
@@ -744,6 +748,24 @@ void PictureViewer2Item::paint(QPainter *painter, const QStyleOptionGraphicsItem
painter->restore();
}
+QRectF BoundingRectItem::boundingRect() const {
+ return QRectF(0, 0, mSize.width(), mSize.height());
+}
+
+void BoundingRectItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){
+ Q_UNUSED(option);
+ Q_UNUSED(widget);
+ painter->save();
+ painter->setRenderHint(QPainter::Antialiasing, true);
+ painter->setRenderHint(QPainter::TextAntialiasing, true);
+ QColor bgColor = QColor(Qt::white);
+ bgColor.setAlpha(80);
+ QBrush brush(bgColor);
+ painter->setPen(QColor(Qt::yellow));
+ painter->setBrush(brush);
+ painter->drawRoundedRect(boundingRect(), 15.0, 15.0);
+}
+
void PictureViewerGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *e){
QGraphicsScene::mousePressEvent(e);
QGraphicsItem *item = itemAt(e->scenePos(), QTransform());
diff --git a/pictureviewer2.h b/pictureviewer2.h
index 5b78982..6ebcdd8 100644
--- a/pictureviewer2.h
+++ b/pictureviewer2.h
@@ -15,6 +15,7 @@
#include <QStaticText>
class PictureViewerGraphicsScene;
+class BoundingRectItem;
class QGraphicsPixmapItem;
class QWheelEvent;
class QContextMenuEvent;
@@ -91,7 +92,7 @@ class PictureViewer2 : public QGraphicsView {
void setNextBatch();
QTextDocument *treeToString(const SmTreeItem *root) const;
void treeToStringRecursive(const SmTreeItem *parent, QTextCursor *cursor, int indent) const;
- QPointF getPos(PictureViewer2Item *item, int pos, const QPointF &movPos);
+ QPointF getPos(QGraphicsItem *item, int pos, const QPointF &movPos);
QString constructWindowTitle() const;
PicDataList mFiles;
PicDataList mMarkedFiles;
@@ -107,10 +108,12 @@ class PictureViewer2 : public QGraphicsView {
const static QString mDefaultFile;
PictureViewer2Item *mFnItem;
PictureViewer2Item *mMappingItem;
+ BoundingRectItem *mBoundingRectItem;
bool mUseGradient;
QColor mBgColor;
QPointF mInfoPos;
QPointF mMappingPos;
+ QPointF mBoundingPos;
QAction *mSlideA;
QAction *mToggleSlideA;
QAction *mSlideAllA;
@@ -143,6 +146,17 @@ class PictureViewer2Item : public QGraphicsItem {
QTextDocument *mDoc;
};
+class BoundingRectItem : public QGraphicsItem {
+ public:
+ explicit BoundingRectItem(const QSize &size, QGraphicsItem *parent = 0) : QGraphicsItem(parent), mSize(size) {}
+ QRectF boundingRect() const;
+ virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
+
+ private:
+ QSize mSize;
+
+};
+
class PictureViewerGraphicsScene : public QGraphicsScene {
public:
explicit PictureViewerGraphicsScene(QObject *parent = 0) : QGraphicsScene(parent) {}