3131#include " actions/iactionsdispatcher.h"
3232#include " context/iglobalcontext.h"
3333#include " global/iapplication.h"
34+ #include " engraving/iengraving.h"
3435
3536#include " enums.h"
3637#include " engraving/dom/score.h"
@@ -92,12 +93,6 @@ class PluginAPI : public QQuickItem, public muse::extensions::apiv1::IPluginApiV
9293{
9394 Q_OBJECT
9495
95- INJECT (muse::actions::IActionsDispatcher, actionsDispatcher)
96- INJECT (mu::context::IGlobalContext, context)
97- INJECT (mu::project::INotationWritersRegister, writers)
98- INJECT (mu::project::IExportProjectScenario, exportProjectScenario)
99- INJECT (mu::project::IProjectFilesController, projectFilesController)
100-
10196 /* * Path where the plugin is placed in menu */
10297 Q_PROPERTY (QString menuPath READ menuPath WRITE setMenuPath)
10398 /* * Title of this plugin */
@@ -138,9 +133,9 @@ class PluginAPI : public QQuickItem, public muse::extensions::apiv1::IPluginApiV
138133 /* * List of currently open scores (read only).\n \since MuseScore 3.2 */
139134 Q_PROPERTY (QQmlListProperty<mu::engraving::apiv1::Score> scores READ scores)
140135
141- muse::Inject<mu::context::IGlobalContext> context = { this };
142-
143136public:
137+ muse::Inject<muse::actions::IActionsDispatcher> actionsDispatcher = { this };
138+ muse::Inject<mu::context::IGlobalContext> context = { this };
144139 muse::Inject<muse::IApplication> application = { this };
145140
146141public:
@@ -285,6 +280,9 @@ class PluginAPI : public QQuickItem, public muse::extensions::apiv1::IPluginApiV
285280 // / \cond MS_INTERNAL
286281 PluginAPI (QQuickItem* parent = 0 );
287282
283+ explicit PluginAPI (IEngraving* engraving)
284+ : engravingInterface(engraving) {}
285+
288286 static void registerQmlTypes ();
289287
290288 void setup (QQmlEngine* e) override ;
@@ -305,7 +303,8 @@ class PluginAPI : public QQuickItem, public muse::extensions::apiv1::IPluginApiV
305303 Q_INVOKABLE apiv1::MsProcess* newQProcess ();
306304 Q_INVOKABLE bool writeScore (apiv1::Score*, const QString& name, const QString& ext);
307305 Q_INVOKABLE apiv1::Score* readScore (const QString& name, bool noninteractive = false );
308- Q_INVOKABLE void closeScore (apiv1::Score*);
306+ Q_INVOKABLE void closeScore (apiv1::Score* score);
307+ Q_INVOKABLE void closeScore ();
309308
310309 Q_INVOKABLE void log (const QString&);
311310 Q_INVOKABLE void logn (const QString&);
@@ -354,6 +353,8 @@ class PluginAPI : public QQuickItem, public muse::extensions::apiv1::IPluginApiV
354353private:
355354 mu::engraving::Score* currentScore () const ;
356355
356+ IEngraving* engravingInterface;
357+
357358 QString m_pluginType;
358359 QString m_title;
359360 QString m_version;
@@ -362,7 +363,6 @@ class PluginAPI : public QQuickItem, public muse::extensions::apiv1::IPluginApiV
362363 QString m_thumbnailName;
363364 QString m_categoryCode;
364365 muse::async::Notification m_closeRequested;
365- std::optional<project::INotationWriter::UnitType> determineWriterUnitType (const std::string& ext) const ;
366366};
367367
368368#undef DECLARE_API_ENUM
0 commit comments