File indexing completed on 2024-04-21 16:12:19

0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 // SPDX-FileCopyrightText: 2022 Harald Sitter <sitter@kde.org>
0003 
0004 #pragma once
0005 
0006 #include <QAbstractListModel>
0007 
0008 class BugzillaManager;
0009 
0010 class PlatformModel : public QAbstractListModel
0011 {
0012     Q_OBJECT
0013 public:
0014     enum class Role {
0015         Name,
0016     };
0017     Q_ENUM(Role)
0018 
0019     using QAbstractListModel::QAbstractListModel;
0020 
0021     Q_PROPERTY(BugzillaManager *manager MEMBER m_manager WRITE setManager NOTIFY managerChanged)
0022     BugzillaManager *m_manager = nullptr;
0023     void setManager(BugzillaManager *manager);
0024     Q_SIGNAL void managerChanged();
0025 
0026     Q_PROPERTY(int detectedPlatformRow READ detectedPlatformRow NOTIFY detectedPlatformRowChanged)
0027     [[nodiscard]] int detectedPlatformRow();
0028     Q_SIGNAL void detectedPlatformRowChanged();
0029 
0030     Q_PROPERTY(QString error MEMBER m_error NOTIFY errorChanged)
0031     QString m_error;
0032     Q_SIGNAL void errorChanged();
0033 
0034     [[nodiscard]] int rowCount(const QModelIndex &parent) const override;
0035     [[nodiscard]] QVariant data(const QModelIndex &index, int intRole) const override;
0036     [[nodiscard]] QHash<int, QByteArray> roleNames() const override;
0037 
0038 private:
0039     QStringList m_list;
0040 };