File indexing completed on 2024-05-12 05:47:30

0001 /*
0002  * SPDX-FileCopyrightText: 2011 Peter Penz <peter.penz19@gmail.com>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KITEMLISTSELECTIONTOGGLE_H
0007 #define KITEMLISTSELECTIONTOGGLE_H
0008 
0009 #include "dolphin_export.h"
0010 
0011 #include <QGraphicsWidget>
0012 #include <QPixmap>
0013 
0014 /**
0015  * @brief Allows to toggle between the selected and unselected state of an item.
0016  */
0017 class DOLPHIN_EXPORT KItemListSelectionToggle : public QGraphicsWidget
0018 {
0019     Q_OBJECT
0020 
0021 public:
0022     explicit KItemListSelectionToggle(QGraphicsItem *parent);
0023     ~KItemListSelectionToggle() override;
0024 
0025     void setChecked(bool checked);
0026     bool isChecked() const;
0027 
0028     void setHovered(bool hovered);
0029 
0030     void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override;
0031 
0032 protected:
0033     void resizeEvent(QGraphicsSceneResizeEvent *event) override;
0034 
0035 private:
0036     void updatePixmap();
0037     int iconSize() const;
0038 
0039 private:
0040     bool m_checked;
0041     bool m_hovered;
0042     QPixmap m_pixmap;
0043 };
0044 
0045 #endif