diff options
author | Ben Boeckel <MathStuf@gmail.com> | 2009-03-19 00:37:40 -0400 |
---|---|---|
committer | Ben Boeckel <MathStuf@gmail.com> | 2009-03-19 00:37:40 -0400 |
commit | 775579fd2c4508f6eb61290b048fddea5f009432 (patch) | |
tree | d51486fba3ee69b369cb21068226e6c9142d099f /sigmodr | |
parent | 8e68d7539f42b2312b3205cdb85644dc80d2f761 (diff) | |
download | sigen-775579fd2c4508f6eb61290b048fddea5f009432.tar.gz sigen-775579fd2c4508f6eb61290b048fddea5f009432.tar.xz sigen-775579fd2c4508f6eb61290b048fddea5f009432.zip |
Move common code out into MapItem
Diffstat (limited to 'sigmodr')
-rw-r--r-- | sigmodr/widgets/MapItem.cpp | 28 | ||||
-rw-r--r-- | sigmodr/widgets/MapItem.h | 2 |
2 files changed, 28 insertions, 2 deletions
diff --git a/sigmodr/widgets/MapItem.cpp b/sigmodr/widgets/MapItem.cpp index cfc102ad..af97bd48 100644 --- a/sigmodr/widgets/MapItem.cpp +++ b/sigmodr/widgets/MapItem.cpp @@ -18,9 +18,13 @@ // Header include #include "MapItem.h" +// KDE includes +#include <KColorScheme> + // Qt includes #include <QtGui/QGraphicsScene> #include <QtGui/QGraphicsSceneMouseEvent> +#include <QtGui/QPainter> #include <QtGui/QStyleOptionGraphicsItem> using namespace Sigmodr::Widgets; @@ -34,13 +38,21 @@ MapItem::MapItem(const bool resizable, QGraphicsScene* parent) : void MapItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { - Q_UNUSED(painter) - Q_UNUSED(option) Q_UNUSED(widget) if (m_resizable && (option->state & QStyle::State_MouseOver)) { // TODO: Draw handle for resizing } + if (option->state & QStyle::State_MouseOver) + { + painter->setPen(QPen(KStatefulBrush(KColorScheme::Selection, KColorScheme::HoverColor).brush(QPalette::Active), 3)); + painter->drawRect(boundingRect()); + } + if (option->state & QStyle::State_Selected) + { + painter->setPen(QPen(KStatefulBrush(KColorScheme::Selection, KColorScheme::ActiveBackground).brush(QPalette::Active), 3)); + painter->drawRect(boundingRect()); + } } void MapItem::focusInEvent(QFocusEvent* event) @@ -82,3 +94,15 @@ void MapItem::resizeBy(const QPointF& size) { Q_UNUSED(size) } + +void MapItem::makeTransparent(QPainter* painter, const int opacity) +{ + QPixmap temp(boundingRect().size().toSize()); + temp.fill(Qt::transparent); + QPainter p; + p.begin(&temp); + p.setCompositionMode(QPainter::CompositionMode_DestinationIn); + p.fillRect(temp.rect(), QColor(0, 0, 0, opacity)); + p.end(); + painter->drawPixmap(0, 0, temp); +} diff --git a/sigmodr/widgets/MapItem.h b/sigmodr/widgets/MapItem.h index 18298fb2..8d95e2d5 100644 --- a/sigmodr/widgets/MapItem.h +++ b/sigmodr/widgets/MapItem.h @@ -54,6 +54,8 @@ class SIGMODRWIDGETS_NO_EXPORT MapItem : public QObject, public QGraphicsItem virtual void resizeBy(const QPointF& size); + void makeTransparent(QPainter* painter, const int opacity); + const bool m_resizable; }; } |