File indexing completed on 2024-04-21 03:51:00

0001 /*
0002     SPDX-FileCopyrightText: 2008 Daniel Laidig <d.laidig@gmx.de>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #ifndef BUTTONDELEGATE_H
0007 #define BUTTONDELEGATE_H
0008 
0009 #include <QStyledItemDelegate>
0010 
0011 #include <QPoint>
0012 
0013 class Dashboard;
0014 class QToolButton;
0015 
0016 class ButtonDelegate : public QStyledItemDelegate
0017 {
0018     Q_OBJECT
0019 public:
0020     ButtonDelegate(QAbstractItemView *itemView, Dashboard *parent);
0021 
0022     ~ButtonDelegate() override;
0023 
0024     void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
0025 
0026     QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
0027 
0028     QModelIndex hoveredIndex() const;
0029 
0030 public Q_SLOTS:
0031     void slotEdit();
0032     void slotPractice();
0033 
0034 private:
0035     int m_rightMargin;
0036     int m_buttonHeight;
0037     Dashboard *m_dashboard;
0038     QAbstractItemView *m_itemView;
0039     QToolButton *m_editButton;
0040 };
0041 
0042 #endif // BUTTONDELEGATE_H