File indexing completed on 2024-05-12 05:12:43

0001 /*
0002     SPDX-FileCopyrightText: 2010 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <Akonadi/AgentInstance>
0010 
0011 #include <QAbstractItemModel>
0012 #include <QList>
0013 
0014 class QDBusInterface;
0015 
0016 class AgentConfigModel : public QAbstractTableModel
0017 {
0018     Q_OBJECT
0019 public:
0020     explicit AgentConfigModel(QObject *parent = nullptr);
0021     ~AgentConfigModel() override;
0022     void setAgentInstance(const Akonadi::AgentInstance &instance);
0023 
0024     int columnCount(const QModelIndex &parent = QModelIndex()) const override;
0025     int rowCount(const QModelIndex &parent = QModelIndex()) const override;
0026     QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
0027     bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
0028     QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
0029     Qt::ItemFlags flags(const QModelIndex &index) const override;
0030 
0031 public Q_SLOTS:
0032     void reload();
0033     void writeConfig();
0034 
0035 private:
0036     QList<QPair<QString, QVariant>> m_settings;
0037     QDBusInterface *m_interface = nullptr;
0038 };