#ifndef TAGLISTDELEGATE_H // 头文件保护，防止重复包含
#define TAGLISTDELEGATE_H

#include <QStyledItemDelegate> // 引入QStyledItemDelegate类
#include "editorsettingsoptions.h" // 自定义的编辑器设置选项头文件

class TagListDelegate
    : public QStyledItemDelegate // 声明TagListDelegate类，继承自QStyledItemDelegate
{
    Q_OBJECT // 宏，用于支持Qt的信号和槽机制
            public : explicit TagListDelegate(QObject *parent = nullptr); // 构造函数声明

    // QAbstractItemDelegate接口
public:
    virtual void paint(QPainter *painter, const QStyleOptionViewItem &option,
                       const QModelIndex &index) const override; // 重写paint函数，用于绘制项
    virtual QSize
    sizeHint(const QStyleOptionViewItem &option,
             const QModelIndex &index) const override; // 重写sizeHint函数，用于获取项的大小
    void setTheme(Theme::Value theme); // 设置主题的函数声明

private:
    QString m_displayFont; // 显示字体的字符串
    QFont m_titleFont; // 标题字体
    QFont m_titleSelectedFont; // 选中状态下的标题字体（在提供的代码中未使用）
    QFont m_dateFont; // 日期字体（在提供的代码中未使用）
    QColor m_titleColor; // 标题颜色
    Theme::Value m_theme; // 主题枚举值
};

#endif // TAGLISTDELEGATE_H