diff options
Diffstat (limited to 'src/qml/qmlvisibleeffectsmodel.h')
-rw-r--r-- | src/qml/qmlvisibleeffectsmodel.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/qml/qmlvisibleeffectsmodel.h b/src/qml/qmlvisibleeffectsmodel.h new file mode 100644 index 0000000000..b061471a35 --- /dev/null +++ b/src/qml/qmlvisibleeffectsmodel.h @@ -0,0 +1,38 @@ +#pragma once +#include <QAbstractListModel> +#include <memory> + +#include "effects/effectsmanager.h" + +namespace mixxx { +namespace skin { +namespace qml { + +class QmlVisibleEffectsModel : public QAbstractListModel { + Q_OBJECT + public: + enum Roles { + EffectIdRole = Qt::UserRole + 1, + }; + Q_ENUM(Roles) + + explicit QmlVisibleEffectsModel( + std::shared_ptr<EffectsManager> pEffectsManager, + 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 slots: + void slotVisibleEffectsUpdated(); + + private: + const std::shared_ptr<EffectsManager> m_pEffectsManager; + QList<EffectManifestPointer> m_visibleEffectManifests; +}; + +} // namespace qml +} // namespace skin +} // namespace mixxx |