summaryrefslogtreecommitdiffstats
path: root/pictureviewer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pictureviewer.cpp')
-rw-r--r--pictureviewer.cpp34
1 files changed, 33 insertions, 1 deletions
diff --git a/pictureviewer.cpp b/pictureviewer.cpp
index 915a280..33131de 100644
--- a/pictureviewer.cpp
+++ b/pictureviewer.cpp
@@ -17,7 +17,6 @@
#include <algorithm>
#include "pictureviewer.h"
-#include "pictureviewerinfoitem.h"
#include "helper.h"
PictureViewer::PictureViewer(QWidget *parent) : QGraphicsView(parent), mCurrentPic(0), mInfoItem(0) {
@@ -175,3 +174,36 @@ QPointF PictureViewer::center(const QPixmap &pic){
float y = (viewportSize.height() - pic.height()) / 2;
return QPointF(x, y);
}
+
+PictureviewerInfoItem::PictureviewerInfoItem(const QString &fileName, QGraphicsItem *parent) : QGraphicsItem(parent), mFileName(fileName){
+ setZValue(1);
+}
+
+QRectF PictureviewerInfoItem::boundingRect() const {
+ QSize size = qApp->fontMetrics().size(Qt::TextSingleLine, mFileName);
+ size += QSize(2, 2);
+ QRectF retval;
+ retval.setWidth(size.width());
+ retval.setHeight(size.height());
+ return retval;
+}
+
+void PictureviewerInfoItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){
+ Q_UNUSED(option);
+ Q_UNUSED(widget);
+ painter->save();
+ painter->setRenderHint(QPainter::Antialiasing, false);
+ painter->setRenderHint(QPainter::TextAntialiasing, true);
+ QRectF boundRect = boundingRect();
+ QColor backgroundColor(Qt::white);
+ backgroundColor.setAlpha(70);
+ QBrush brush(backgroundColor);
+ painter->setPen(QPen(Qt::NoPen));
+ painter->setBrush(brush);
+ painter->drawRect(boundRect);
+ QPen pen(Qt:: black);
+ painter->setPen(pen);
+ QPoint start(1, qApp->fontMetrics().ascent() + 1);
+ painter->drawText(start, mFileName);
+ painter->restore();
+}