Choice model settings was added

This commit is contained in:
2023-04-10 19:24:25 +02:00
parent 25e8a3ea79
commit 4a52926be9
31 changed files with 938 additions and 227 deletions

View File

@@ -0,0 +1,47 @@
#ifndef SETTINGSVIEWMODEL_H
#define SETTINGSVIEWMODEL_H
#include <QAbstractListModel>
#include "models/basemodel.h"
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;
private:
enum Roles {
Title = Qt::UserRole + 1,
PropertyName,
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) {}
};
QVariant model(const QString &modelName) const;
QList<SettingItem> m_items;
QMap<QString, BaseModel *> m_models;
};
#endif // SETTINGSVIEWMODEL_H