summaryrefslogtreecommitdiffstats
path: root/src/qml/qmleffectmanifestparametersmodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qmleffectmanifestparametersmodel.h')
-rw-r--r--src/qml/qmleffectmanifestparametersmodel.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/qml/qmleffectmanifestparametersmodel.h b/src/qml/qmleffectmanifestparametersmodel.h
new file mode 100644
index 0000000000..bd913fb221
--- /dev/null
+++ b/src/qml/qmleffectmanifestparametersmodel.h
@@ -0,0 +1,39 @@
+#pragma once
+#include <QAbstractListModel>
+#include <memory>
+
+#include "effects/effectsmanager.h"
+
+namespace mixxx {
+namespace skin {
+namespace qml {
+
+class QmlEffectManifestParametersModel : public QAbstractListModel {
+ Q_OBJECT
+ public:
+ enum Roles {
+ IdRole = Qt::UserRole + 1,
+ NameRole,
+ ShortNameRole,
+ DescriptionRole,
+ ControlHintRole,
+ ControlKeyRole,
+ };
+ Q_ENUM(Roles)
+
+ explicit QmlEffectManifestParametersModel(
+ EffectManifestPointer pManifest,
+ QObject* parent = nullptr);
+
+ QVariant data(const QModelIndex& index, int role) const override;
+ int rowCount(const QModelIndex& parent) const override;
+ QHash<int, QByteArray> roleNames() const override;
+ Q_INVOKABLE QVariant get(int row) const;
+
+ private:
+ const EffectManifestPointer m_pEffectManifest;
+};
+
+} // namespace qml
+} // namespace skin
+} // namespace mixxx