diff options
-rw-r--r-- | pictureviewer.cpp | 34 | ||||
-rw-r--r-- | pictureviewer.h | 11 | ||||
-rw-r--r-- | pictureviewerinfoitem.cpp | 48 | ||||
-rw-r--r-- | pictureviewerinfoitem.h | 23 | ||||
-rw-r--r-- | shemov.pro | 2 |
5 files changed, 44 insertions, 74 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(); +} diff --git a/pictureviewer.h b/pictureviewer.h index 2a8374a..83c43d3 100644 --- a/pictureviewer.h +++ b/pictureviewer.h @@ -10,6 +10,7 @@ #include <QGraphicsView> #include <QFileInfoList> +#include <QGraphicsItem> class QGraphicsScene; class QGraphicsPixmapItem; @@ -42,4 +43,14 @@ class PictureViewer : public QGraphicsView { QFileInfoList::const_iterator mCurrentEntry; }; +class PictureviewerInfoItem : public QGraphicsItem { + public: + PictureviewerInfoItem(const QString &fileName, QGraphicsItem *parent = 0); + QRectF boundingRect() const; + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); + + private: + const QString mFileName; +}; + #endif diff --git a/pictureviewerinfoitem.cpp b/pictureviewerinfoitem.cpp deleted file mode 100644 index e80e8c6..0000000 --- a/pictureviewerinfoitem.cpp +++ /dev/null @@ -1,48 +0,0 @@ -/* - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version - 2 of the License, or (at your option) any later version. -*/ - -#include <QApplication> -#include <QFont> -#include <QFontMetrics> -#include <QPen> -#include <QBrush> -#include <QPainter> - -#include "pictureviewerinfoitem.h" - -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(); -} diff --git a/pictureviewerinfoitem.h b/pictureviewerinfoitem.h deleted file mode 100644 index 25deec4..0000000 --- a/pictureviewerinfoitem.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version - 2 of the License, or (at your option) any later version. -*/ - -#ifndef PICTUREVIEWERINFOITEM_H -#define PICTUREVIEWERINFOITEM_H - -#include <QGraphicsItem> - -class PictureviewerInfoItem : public QGraphicsItem { - public: - PictureviewerInfoItem(const QString &fileName, QGraphicsItem *parent = 0); - QRectF boundingRect() const; - void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0); - - private: - const QString mFileName; -}; - -#endif @@ -19,7 +19,6 @@ SOURCES = main.cpp \ statisticsdialog.cpp \ programconfigurator.cpp \ pictureviewer.cpp \ - pictureviewerinfoitem.cpp \ smtreeitem.cpp \ smtreemodel.cpp \ smglobals.cpp \ @@ -47,7 +46,6 @@ HEADERS = listitem.h \ statisticsdialog.h \ programconfigurator.h \ pictureviewer.h \ - pictureviewerinfoitem.h \ smtreeitem.h \ smtreemodel.h \ smglobals.h \ |