┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/private
diff options
context:
space:
mode:
authorEmmanuel Pescosta <[email protected]>2014-03-03 22:06:56 +0100
committerEmmanuel Pescosta <[email protected]>2014-03-03 22:06:56 +0100
commitd980dccb126a298b6519bef8a6657324347a38b4 (patch)
tree865484a4b72ee94560d1cbcdf243bfecce801226 /src/kitemviews/private
parenteab1b76b76d3492c9787cc11a8e8460c69924dc7 (diff)
Add a hover effect for the selection toggle.
FIXED-IN: 4.13.0 REVIEW: 116028 BUG: 299328
Diffstat (limited to 'src/kitemviews/private')
-rw-r--r--src/kitemviews/private/kitemlistselectiontoggle.cpp33
-rw-r--r--src/kitemviews/private/kitemlistselectiontoggle.h4
2 files changed, 14 insertions, 23 deletions
diff --git a/src/kitemviews/private/kitemlistselectiontoggle.cpp b/src/kitemviews/private/kitemlistselectiontoggle.cpp
index 6bbf3c2ec..accbe5181 100644
--- a/src/kitemviews/private/kitemlistselectiontoggle.cpp
+++ b/src/kitemviews/private/kitemlistselectiontoggle.cpp
@@ -30,7 +30,6 @@ KItemListSelectionToggle::KItemListSelectionToggle(QGraphicsItem* parent) :
m_checked(false),
m_hovered(false)
{
- setAcceptHoverEvents(true);
}
KItemListSelectionToggle::~KItemListSelectionToggle()
@@ -51,6 +50,15 @@ bool KItemListSelectionToggle::isChecked() const
return m_checked;
}
+void KItemListSelectionToggle::setHovered(bool hovered)
+{
+ if (m_hovered != hovered) {
+ m_hovered = hovered;
+ m_pixmap = QPixmap();
+ update();
+ }
+}
+
void KItemListSelectionToggle::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
{
Q_UNUSED(option);
@@ -65,20 +73,6 @@ void KItemListSelectionToggle::paint(QPainter* painter, const QStyleOptionGraphi
painter->drawPixmap(x, y, m_pixmap);
}
-void KItemListSelectionToggle::hoverEnterEvent(QGraphicsSceneHoverEvent* event)
-{
- QGraphicsWidget::hoverEnterEvent(event);
- m_hovered = true;
- m_pixmap = QPixmap();
-}
-
-void KItemListSelectionToggle::hoverLeaveEvent(QGraphicsSceneHoverEvent* event)
-{
- QGraphicsWidget::hoverLeaveEvent(event);
- m_hovered = false;
- m_pixmap = QPixmap();
-}
-
void KItemListSelectionToggle::resizeEvent(QGraphicsSceneResizeEvent* event)
{
QGraphicsWidget::resizeEvent(event);
@@ -97,12 +91,9 @@ void KItemListSelectionToggle::resizeEvent(QGraphicsSceneResizeEvent* event)
void KItemListSelectionToggle::updatePixmap()
{
- const char* icon = m_checked ? "list-remove" : "list-add";
- m_pixmap = KIconLoader::global()->loadIcon(QLatin1String(icon), KIconLoader::NoGroup, iconSize());
-
- if (m_hovered) {
- KIconLoader::global()->iconEffect()->apply(m_pixmap, KIconLoader::Desktop, KIconLoader::ActiveState);
- }
+ const QString icon = m_checked ? "list-remove" : "list-add";
+ const KIconLoader::States state = m_hovered ? KIconLoader::ActiveState : KIconLoader::DisabledState;
+ m_pixmap = KIconLoader::global()->loadIcon(icon, KIconLoader::Desktop, iconSize(), state);
}
int KItemListSelectionToggle::iconSize() const
diff --git a/src/kitemviews/private/kitemlistselectiontoggle.h b/src/kitemviews/private/kitemlistselectiontoggle.h
index ba29293f6..758dc63bb 100644
--- a/src/kitemviews/private/kitemlistselectiontoggle.h
+++ b/src/kitemviews/private/kitemlistselectiontoggle.h
@@ -41,11 +41,11 @@ public:
void setChecked(bool checked);
bool isChecked() const;
+ void setHovered(bool hovered);
+
virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0);
protected:
- virtual void hoverEnterEvent(QGraphicsSceneHoverEvent* event);
- virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent* event);
virtual void resizeEvent(QGraphicsSceneResizeEvent* event);
private: