summaryrefslogtreecommitdiffstats
path: root/sigmodr
diff options
context:
space:
mode:
authorBen Boeckel <MathStuf@gmail.com>2009-03-19 00:37:40 -0400
committerBen Boeckel <MathStuf@gmail.com>2009-03-19 00:37:40 -0400
commit775579fd2c4508f6eb61290b048fddea5f009432 (patch)
treed51486fba3ee69b369cb21068226e6c9142d099f /sigmodr
parent8e68d7539f42b2312b3205cdb85644dc80d2f761 (diff)
downloadsigen-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.cpp28
-rw-r--r--sigmodr/widgets/MapItem.h2
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;
};
}