]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/private/kitemlistselectiontoggle.cpp
Fix minor typos
[dolphin.git] / src / kitemviews / private / kitemlistselectiontoggle.cpp
index 6bbf3c2ec812aac39334ba35dd47eb0b42d47830..5519e4da8d2ad78cecab31d8428595efe553aebb 100644 (file)
 
 #include "kitemlistselectiontoggle.h"
 
-#include <KIconEffect>
 #include <KIconLoader>
-#include <QPainter>
 
-#include <KDebug>
+#include <QIcon>
+#include <QPainter>
 
 KItemListSelectionToggle::KItemListSelectionToggle(QGraphicsItem* parent) :
-    QGraphicsWidget(parent, 0),
+    QGraphicsWidget(parent, nullptr),
     m_checked(false),
     m_hovered(false)
 {
-    setAcceptHoverEvents(true);
 }
 
 KItemListSelectionToggle::~KItemListSelectionToggle()
@@ -51,6 +49,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);
@@ -60,31 +67,17 @@ void KItemListSelectionToggle::paint(QPainter* painter, const QStyleOptionGraphi
         updatePixmap();
     }
 
-    const qreal x = (size().width()  - qreal(m_pixmap.width()))  / 2;
-    const qreal y = (size().height() - qreal(m_pixmap.height())) / 2;
+    const qreal x = (size().width()  - qreal(m_pixmap.width() / m_pixmap.devicePixelRatioF()))  / 2;
+    const qreal y = (size().height() - qreal(m_pixmap.height() / m_pixmap.devicePixelRatioF())) / 2;
     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);
 
     if (!m_pixmap.isNull()) {
-        const int pixmapSize = m_pixmap.size().width(); // Pixmap width is always equal pixmap height
+        const int pixmapSize = m_pixmap.size().width() / m_pixmap.devicePixelRatioF(); // Pixmap width is always equal pixmap height
 
         if (pixmapSize != iconSize()) {
             // If the required icon size is different from the actual pixmap size,
@@ -97,12 +90,8 @@ 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 ? QStringLiteral("emblem-remove") : QStringLiteral("emblem-added");
+    m_pixmap = QIcon::fromTheme(icon).pixmap(iconSize(), m_hovered ? QIcon::Active : QIcon::Disabled);
 }
 
 int KItemListSelectionToggle::iconSize() const
@@ -124,4 +113,3 @@ int KItemListSelectionToggle::iconSize() const
     return iconSize;
 }
 
-#include "kitemlistselectiontoggle.moc"