File indexing completed on 2024-06-23 04:42:36

0001 // SPDX-FileCopyrightText: 2021 Claudio Cambra <claudio.cambra@gmail.com>
0002 // SPDX-License-Identifier: LGPL-2.1-or-later
0003 
0004 #pragma once
0005 #include <Akonadi/Item>
0006 #include <QAbstractListModel>
0007 #include <QObject>
0008 
0009 class ItemTagsModel : public QAbstractListModel
0010 {
0011     Q_OBJECT
0012     Q_PROPERTY(Akonadi::Item item READ item WRITE setItem NOTIFY itemChanged)
0013 
0014 public:
0015     enum Roles {
0016         NameRole = Qt::UserRole + 1,
0017         IdRole,
0018     };
0019     Q_ENUM(Roles);
0020 
0021     explicit ItemTagsModel(QObject *parent = nullptr);
0022     ~ItemTagsModel() override = default;
0023 
0024     QVariant data(const QModelIndex &idx, int role) const override;
0025     QHash<int, QByteArray> roleNames() const override;
0026     int rowCount(const QModelIndex &parent = {}) const override;
0027 
0028     Akonadi::Item item() const;
0029     void setItem(Akonadi::Item item);
0030 
0031 Q_SIGNALS:
0032     void itemChanged();
0033 
0034 private:
0035     Akonadi::Item m_item;
0036 };