vlc | branch: master | Fatih Uzunoglu <fuzu...@outlook.com> | Fri Apr 2 01:22:33 2021 +0300| [6f2673000556b63a719eb9273639d74632813186] | committer: Pierre Lamot
qt: add function to access PlayerIdentifier enum from qml Signed-off-by: Pierre Lamot <pie...@videolabs.io> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6f2673000556b63a719eb9273639d74632813186 --- modules/gui/qt/player/player_controlbar_model.cpp | 27 +++++++++++++++++++++++ modules/gui/qt/player/player_controlbar_model.hpp | 10 +++++++++ 2 files changed, 37 insertions(+) diff --git a/modules/gui/qt/player/player_controlbar_model.cpp b/modules/gui/qt/player/player_controlbar_model.cpp index 9496e8f7ba..cc36cb2228 100644 --- a/modules/gui/qt/player/player_controlbar_model.cpp +++ b/modules/gui/qt/player/player_controlbar_model.cpp @@ -18,8 +18,35 @@ #include "player_controlbar_model.hpp" +#include <QMetaEnum> +#include <QJSEngine> + #include "control_list_model.hpp" +QJSValue PlayerControlbarModel::getPlaylistIdentifierListModel(QQmlEngine *engine, QJSEngine *scriptEngine) +{ + Q_UNUSED(engine) + + static const QMetaEnum metaEnum = QMetaEnum::fromType<PlayerIdentifier>(); + + QJSValue array = scriptEngine->newArray(); + + for (int i = 0; i < metaEnum.keyCount(); ++i) + { + QJSValue obj = scriptEngine->newObject(); + + obj.setProperty("identifier", metaEnum.value(i)); + obj.setProperty("name", metaEnum.key(i)); + + array.setProperty(i, obj); + } + + QJSValue value = scriptEngine->newObject(); + value.setProperty("model", array); + + return value; +} + PlayerControlbarModel::PlayerControlbarModel(QObject *parent) : QObject(parent) { m_left = new ControlListModel(this); diff --git a/modules/gui/qt/player/player_controlbar_model.hpp b/modules/gui/qt/player/player_controlbar_model.hpp index 0463122d47..3bf7e4c08c 100644 --- a/modules/gui/qt/player/player_controlbar_model.hpp +++ b/modules/gui/qt/player/player_controlbar_model.hpp @@ -20,6 +20,7 @@ #define PLAYERCONTROLBARMODEL_HPP #include <QObject> +#include <QJSValue> #include <array> class ControlListModel; @@ -44,6 +45,15 @@ public: Miniplayer }; Q_ENUM(PlayerIdentifier) + // This enum is iterated through QMetaEnum, and + // a model out of this enum is generated + // and used in the configuration editor. + // Thanks to MOC, adding an entry to this enum + // is enough for the editor to consider the + // added entry without any other modification. + + static QJSValue getPlaylistIdentifierListModel(class QQmlEngine *engine, + class QJSEngine *scriptEngine); explicit PlayerControlbarModel(QObject *parent = nullptr); ~PlayerControlbarModel(); _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits