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 };