27 QmlSource(
const QString& execution,
const QString& ui)
28 : execution{execution}
33 QmlSource(
const std::vector<QString>& vec)
35 SCORE_ASSERT(vec.size() == 2);
50 const std::string_view language{};
53 static const inline std::array<MemberSpec, 2> specification{
54 MemberSpec{QObject::tr(
"Execution"), &QmlSource::execution,
"QML"},
55 MemberSpec{QObject::tr(
"GUI"), &QmlSource::ui,
"QML"},
58 friend bool operator==(
const QmlSource& lhs,
const QmlSource& rhs) {
59 return lhs.execution == rhs.execution && lhs.ui == rhs.ui;
61 friend bool operator!=(
const QmlSource& lhs,
const QmlSource& rhs) {
64 friend bool operator!=(
const QmlSource& lhs,
const std::vector<QString>& rhs) {
65 return rhs.size() != 2 || lhs.execution != rhs[0]|| lhs.ui != rhs[1];
67 friend bool operator!=(
const std::vector<QString>& rhs,
const QmlSource& lhs) {
68 return rhs.size() != 2 || lhs.execution != rhs[0]|| lhs.ui != rhs[1];
102 SCORE_SERIALIZE_FRIENDS
106 bool hasExternalUI()
const noexcept {
return bool(m_ui_component); }
112 template <
typename Impl>
119 void setExecutionScript(
const QString& script);
120 const QString& executionScript()
const noexcept {
return m_program.execution; }
121 void executionScriptOk() W_SIGNAL(executionScriptOk);
122 void executionScriptChanged(
const QString& arg_1) W_SIGNAL(executionScriptChanged, arg_1);
123 const QByteArray& qmlData()
const noexcept {
return m_qmlData; }
125 void setUiScript(
const QString& script);
126 const QString& uiScript()
const noexcept {
return m_program.ui; }
127 void uiScriptOk() W_SIGNAL(uiScriptOk);
128 void uiScriptChanged(
const QString& arg_1) W_SIGNAL(uiScriptChanged, arg_1);
130 void setState(
const JS::JSState& s);
131 void updateState(
const QString& k,
const ossia::value& v);
132 const JS::JSState& state()
const noexcept {
return m_state; }
133 void stateChanged() W_SIGNAL(stateChanged);
134 void stateElementChanged(
const QString& k,
const ossia::value& v) W_SIGNAL(stateElementChanged, k, v);
136 JS::Script* currentExecutionObject()
const noexcept;
137 QQuickItem* currentUI()
const noexcept;
138 bool isGpu()
const noexcept;
139 bool hasUi()
const noexcept;
141 QWidget* parent)
const noexcept;
146 QString rootPath()
const noexcept;
149 const QString&
rootFile() const noexcept {
return m_root; }
162 static QmlSource readProgramFromFile(
const QString& qmlPath)
noexcept;
165 static QString uiPathFor(
const QString& qmlPath)
noexcept;
166 bool validate(
const std::vector<QString>& str)
const noexcept;
167 void errorMessage(
const QString& arg_2)
const
168 W_SIGNAL(errorMessage, arg_2);
170 const QmlSource& program() const noexcept {
return m_program; }
172 void programChanged() W_SIGNAL(programChanged);
174 void mapExternalFiles(
Process::ExternalFileMap& map) override;
176 void uiToExecution(const QVariant& v) W_SIGNAL(uiToExecution, v);
177 void executionToUi(const QVariant& v) W_SIGNAL(executionToUi, v);
179 PROPERTY(QString, executionScript READ executionScript WRITE setExecutionScript NOTIFY executionScriptChanged)
180 PROPERTY(QString, uiScript READ uiScript WRITE setUiScript NOTIFY uiScriptChanged)
181 PROPERTY(JS::QmlSource, program READ program WRITE setProgram NOTIFY programChanged)
182 PROPERTY(JS::JSState, state READ state WRITE setState NOTIFY stateChanged)
184 QString effect() const noexcept override;
185 void loadPreset(const
Process::Preset& preset) override;
186 Process::Preset savePreset() const noexcept override;
187 bool presetMatches(const
Process::Preset& preset) const noexcept override;
188 Process::ScriptChangeResult setQmlData(const QByteArray&,
bool isFile);
194 void updateFileLink() noexcept;
196 QByteArray m_qmlData;
198 QQmlComponent* m_ui_component{};
199 mutable QPointer<QQuickItem> m_ui_object{};
201 mutable ComponentCache m_cache;
204 bool m_modified{
true};
const QString & rootFile() const noexcept
Path of the .qml this script was taken from; empty if it was written here.
Definition JSProcessModel.hpp:149
Definition DocumentContext.hpp:18