File indexing completed on 2025-03-09 04:51:37

0001 /*
0002  * SPDX-FileCopyrightText: 2014 Christian Mollekopf <mollekopf@kolabsys.com>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0
0005  */
0006 
0007 #pragma once
0008 
0009 #include <QStyledItemDelegate>
0010 
0011 class StyledCalendarDelegate : public QStyledItemDelegate
0012 {
0013     Q_OBJECT
0014 
0015 public:
0016     explicit StyledCalendarDelegate(QObject *parent);
0017     ~StyledCalendarDelegate() override;
0018 
0019     void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
0020     QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override;
0021 
0022     enum Action { Quickview, Total };
0023 
0024 Q_SIGNALS:
0025     void action(const QModelIndex &, int);
0026 
0027 protected:
0028     bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override;
0029 
0030 private:
0031     QList<Action> getActions(const QStyleOptionViewItem &option, const QModelIndex &index) const;
0032     QHash<Action, QIcon> mIcon;
0033 };