| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #ifndef SETTINGSVIEWMODEL_H
- #define SETTINGSVIEWMODEL_H
- #include <QAbstractListModel>
- class SettingsService;
- class SettingsViewModel : public QAbstractListModel
- {
- Q_OBJECT
- public:
- explicit SettingsViewModel(QObject *parent = nullptr);
- int rowCount(const QModelIndex &parent) const override;
- QVariant data(const QModelIndex &index, int role) const override;
- QHash<int, QByteArray> roleNames() const override;
- bool setData(const QModelIndex &index, const QVariant &value, int role) override;
- Qt::ItemFlags flags(const QModelIndex &index) const override;
- private:
- enum Roles {
- Title = Qt::UserRole + 1,
- Subtitle,
- Value,
- ControlType,
- Model
- };
- struct SettingItem
- {
- QString title;
- QString propertyName;
- QString controlType;
- QString modelName;
- SettingItem(const QString &title, const QString &propertyName, const QString &controlType, const QString &modelName = {}) :
- title(title),
- propertyName(propertyName),
- controlType(controlType),
- modelName(modelName) {}
- };
- SettingsService *settings() const;
- QVariant model(const QString &modelName) const;
- QVariant subtitle(const QString &propertyName, const QString &modelName) const;
- QList<SettingItem> m_items;
- };
- #endif // SETTINGSVIEWMODEL_H
|