Skip to content

Commit 37bad2e

Browse files
committed
Make some interfaces global
1 parent 2a9e6b2 commit 37bad2e

File tree

55 files changed

+273
-263
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+273
-263
lines changed

src/app/appfactory.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ std::shared_ptr<muse::IApplication> AppFactory::newGuiApp(const CmdOptions& opti
390390
app->addModule(new muse::extensions::ExtensionsModule());
391391
app->addModule(new muse::languages::LanguagesModule());
392392
app->addModule(new muse::learn::LearnModule());
393-
app->addModule(new muse::mi::MultiInstancesModule());
393+
app->addModule(new muse::mi::MultiWindowsModule());
394394
app->addModule(new mu::musesounds::MuseSoundsModule());
395395
app->addModule(new mu::notation::NotationModule());
396396
app->addModule(new mu::notation::NotationSceneModule());
@@ -504,7 +504,7 @@ static void addConsoleModules(std::shared_ptr<ConsoleApp> app)
504504
app->addModule(new mu::iex::lrcexport::LyricsExportModule());
505505
#endif
506506

507-
app->addModule(new muse::mi::MultiInstancesModule());
507+
app->addModule(new muse::mi::MultiWindowsModule());
508508
app->addModule(new mu::notation::NotationModule());
509509
app->addModule(new mu::playback::PlaybackModule());
510510
app->addModule(new mu::project::ProjectModule());

src/app/internal/consoleapp.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,10 @@ class ConsoleApp : public muse::BaseApplication, public std::enable_shared_from_
6363
muse::GlobalInject<iex::videoexport::IVideoExportConfiguration> videoExportConfiguration;
6464
muse::GlobalInject<iex::guitarpro::IGuitarProConfiguration> guitarProConfiguration;
6565
muse::GlobalInject<iex::musicxml::IMusicXmlConfiguration> musicXmlConfiguration;
66-
67-
muse::ContextInject<converter::IConverterController> converter = { this };
66+
muse::GlobalInject<muse::audioplugins::IRegisterAudioPluginsScenario> registerAudioPluginsScenario;
67+
muse::GlobalInject<converter::IConverterController> converter;
6868
muse::ContextInject<engraving::IDiagnosticDrawProvider> diagnosticDrawProvider = { this };
6969
muse::ContextInject<muse::autobot::IAutobot> autobot = { this };
70-
muse::ContextInject<muse::audioplugins::IRegisterAudioPluginsScenario> registerAudioPluginsScenario = { this };
7170
muse::ContextInject<playback::ISoundProfilesRepository> soundProfilesRepository = { this };
7271

7372
public:

src/appshell/internal/applicationactioncontroller.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,15 +53,15 @@ class ApplicationActionController : public QObject, public muse::Contextable, pu
5353
muse::GlobalInject<muse::mi::IMultiWindowsProvider> multiwindowsProvider;
5454
muse::GlobalInject<IAppShellConfiguration> configuration;
5555
muse::GlobalInject<muse::languages::ILanguagesService> languagesService;
56+
muse::GlobalInject<muse::IApplication> application;
57+
muse::GlobalInject<muse::extensions::IExtensionInstaller> extensionInstaller;
5658
muse::ContextInject<muse::ui::IUiActionsRegister> actionsRegister = { this };
5759
muse::ContextInject<muse::actions::IActionsDispatcher> dispatcher = { this };
5860
muse::ContextInject<muse::ui::IMainWindow> mainWindow = { this };
5961
muse::ContextInject<muse::IInteractive> interactive = { this };
6062
muse::ContextInject<project::IProjectFilesController> projectFilesController = { this };
6163
muse::ContextInject<muse::audio::ISoundFontController> soundFontController = { this };
6264
muse::ContextInject<IStartupScenario> startupScenario = { this };
63-
muse::GlobalInject<muse::IApplication> application;
64-
muse::ContextInject<muse::extensions::IExtensionInstaller> extensionInstaller = { this };
6565
muse::ContextInject<context::IGlobalContext> globalContext = { this };
6666
muse::ContextInject<context::IUiContextResolver> uiContextResolver = { this };
6767

src/appshell/internal/startupscenario.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ class StartupScenario : public IStartupScenario, public muse::Contextable, publi
4444
{
4545
muse::GlobalInject<muse::mi::IMultiWindowsProvider> multiwindowsProvider;
4646
muse::GlobalInject<IAppShellConfiguration> configuration;
47+
muse::GlobalInject<muse::audioplugins::IRegisterAudioPluginsScenario> registerAudioPluginsScenario;
4748
muse::ContextInject<muse::IInteractive> interactive = { this };
4849
muse::ContextInject<muse::actions::IActionsDispatcher> dispatcher = { this };
4950
muse::ContextInject<ISessionsManager> sessionsManager = { this };
5051
muse::ContextInject<project::IProjectAutoSaver> projectAutoSaver = { this };
51-
muse::ContextInject<muse::audioplugins::IRegisterAudioPluginsScenario> registerAudioPluginsScenario = { this };
5252
muse::ContextInject<muse::update::IAppUpdateScenario> appUpdateScenario = { this };
5353
muse::ContextInject<mu::musesounds::IMuseSoundsCheckUpdateScenario> museSoundsUpdateScenario = { this };
5454
muse::ContextInject<musesounds::IMuseSamplerCheckUpdateScenario> museSamplerCheckForUpdateScenario = { this };

src/appshell/qml/MuseScore/AppShell/appmenumodel.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,11 @@ class AppMenuModel : public muse::uicomponents::AbstractMenuModel
6767
#ifdef MUSE_MODULE_MUSESAMPLER
6868
muse::GlobalInject<muse::musesampler::IMuseSamplerInfo> museSamplerInfo;
6969
#endif
70+
muse::GlobalInject<muse::extensions::IExtensionsProvider> extensionsProvider;
7071
muse::ContextInject<muse::ui::IUiActionsRegister> uiActionsRegister = { this };
7172
muse::ContextInject<IAppMenuModelHook> appMenuModelHook = { this };
7273
muse::ContextInject<mu::context::IGlobalContext> globalContext = { this };
7374
muse::ContextInject<muse::actions::IActionsDispatcher> actionsDispatcher = { this };
74-
muse::ContextInject<muse::extensions::IExtensionsProvider> extensionsProvider = { this };
7575
muse::ContextInject<muse::ui::IMainWindow> mainWindow = { this };
7676
muse::ContextInject<muse::ui::INavigationController> navigationController = { this };
7777
muse::ContextInject<muse::workspace::IWorkspaceManager> workspacesManager = { this };

src/appshell/qml/MuseScore/AppShell/notationpagemodel.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ class NotationPageModel : public QObject, public muse::Contextable, public muse:
5151
muse::GlobalInject<notation::INotationSceneConfiguration> notationSceneConfiguration;
5252
muse::GlobalInject<braille::IBrailleConfiguration> brailleConfiguration;
5353
muse::GlobalInject<IAppShellConfiguration> configuration;
54+
muse::GlobalInject<muse::extensions::IExtensionsProvider> extensionsProvider;
5455
muse::ContextInject<muse::actions::IActionsDispatcher> dispatcher = { this };
5556
muse::ContextInject<muse::dock::IDockWindowProvider> dockWindowProvider = { this };
56-
muse::ContextInject<muse::extensions::IExtensionsProvider> extensionsProvider = { this };
5757
muse::ContextInject<context::IGlobalContext> globalContext = { this };
5858

5959
public:

src/converter/api/converterapi.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ class ConverterApi : public muse::api::ApiObject, public muse::async::Asyncable
3636
Q_OBJECT
3737

3838
muse::GlobalInject<muse::io::IFileSystem> fileSystem;
39+
muse::GlobalInject<IConverterController> converter;
3940
muse::ContextInject<muse::IInteractive> interactive = { this };
40-
muse::ContextInject<IConverterController> converter = { this };
4141

4242
public:
4343
explicit ConverterApi(muse::api::IApiEngine* e);

src/converter/iconvertercontroller.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
#include "global/progress.h"
3232

3333
namespace mu::converter {
34-
class IConverterController : MODULE_CONTEXT_INTERFACE
34+
class IConverterController : MODULE_GLOBAL_INTERFACE
3535
{
3636
INTERFACE_ID(IConverterController)
3737
public:

src/converter/internal/convertercontroller.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ namespace mu::converter {
3838
class ConverterController : public IConverterController, public muse::Contextable
3939
{
4040
muse::GlobalInject<project::IProjectCreator> notationCreator;
41+
muse::GlobalInject<muse::extensions::IExtensionsProvider> extensionsProvider;
4142
muse::ContextInject<project::INotationWritersRegister> writers = { this };
4243
muse::ContextInject<project::IProjectRWRegister> projectRW = { this };
4344
muse::ContextInject<context::IGlobalContext> globalContext = { this };
44-
muse::ContextInject<muse::extensions::IExtensionsProvider> extensionsProvider = { this };
4545

4646
public:
4747
ConverterController(const muse::modularity::ContextPtr& iocCtx)

src/engraving/api/v1/util.cpp

Lines changed: 8 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,6 @@
2828
#include "util.h"
2929

3030
#include "log.h"
31-
#include "modularity/ioc.h"
32-
#include "global/iglobalconfiguration.h"
33-
#include "extensions/iextensionsconfiguration.h"
34-
#include "project/iprojectconfiguration.h"
35-
#include "notation/inotationconfiguration.h"
36-
#include "audio/main/iaudioconfiguration.h"
37-
#include "engraving/infrastructure/mscio.h"
38-
#include "context/iglobalcontext.h"
3931

4032
using namespace muse;
4133

@@ -45,83 +37,45 @@ namespace mu::engraving::apiv1 {
4537
//---------------------------------------------------------
4638

4739
FileIO::FileIO(QObject* parent)
48-
: QObject(parent)
40+
: QObject(parent), muse::Contextable(muse::iocCtxForQmlObject(this))
4941
{
5042
}
5143

5244
// User's MuseScore documents directory (default location for scores, plugins, etc.)
5345
QString FileIO::userDataPath()
5446
{
55-
// Get global configuration to access allowed paths
56-
auto globalConfig = muse::modularity::globalIoc()->resolve<IGlobalConfiguration>("extensions");
57-
if (!globalConfig) {
58-
LOGE() << "Failed to resolve IGlobalConfiguration";
59-
return QString();
60-
}
61-
62-
return globalConfig->userDataPath().toQString();
47+
return globalConfiguration()->userDataPath().toQString();
6348
}
6449

6550
// User-configured Plugins directory (Preferences → Folders → Plugins)
6651
QString FileIO::pluginsUserPath()
6752
{
68-
auto extensionsConfig = muse::modularity::globalIoc()->resolve<extensions::IExtensionsConfiguration>("extensions");
69-
if (!extensionsConfig) {
70-
LOGE() << "Failed to resolve IExtensionsConfiguration";
71-
return QString();
72-
}
73-
74-
return extensionsConfig->pluginsUserPath().toQString();
53+
return extensionsConfiguration()->pluginsUserPath().toQString();
7554
}
7655

7756
// User-configured Scores directory (Preferences → Folders → Scores)
7857
QString FileIO::userProjectsPath()
7958
{
80-
auto projectConfig = muse::modularity::globalIoc()->resolve<mu::project::IProjectConfiguration>("project");
81-
if (!projectConfig) {
82-
LOGE() << "Failed to resolve IProjectConfiguration";
83-
return QString();
84-
}
85-
86-
return projectConfig->userProjectsPath().toQString();
59+
return projectConfiguration()->userProjectsPath().toQString();
8760
}
8861

8962
// User-configured Templates directory (Preferences → Folders → Templates)
9063
QString FileIO::userTemplatesPath()
9164
{
92-
auto projectConfig = muse::modularity::globalIoc()->resolve<mu::project::IProjectConfiguration>("project");
93-
if (!projectConfig) {
94-
LOGE() << "Failed to resolve IProjectConfiguration";
95-
return QString();
96-
}
97-
98-
return projectConfig->userTemplatesPath().toQString();
65+
return projectConfiguration()->userTemplatesPath().toQString();
9966
}
10067

10168
// User-configured Styles directory (Preferences → Folders → Styles)
10269
QString FileIO::userStylesPath()
10370
{
104-
auto notationConfig = muse::modularity::globalIoc()->resolve<mu::notation::INotationConfiguration>("notation");
105-
if (!notationConfig) {
106-
LOGE() << "Failed to resolve INotationConfiguration";
107-
return QString();
108-
}
109-
110-
return notationConfig->userStylesPath().toQString();
71+
return notationConfiguration()->userStylesPath().toQString();
11172
}
11273

11374
// User-configured SoundFonts directories (Preferences → Folders → SoundFonts)
11475
QStringList FileIO::userSoundFontDirectories()
11576
{
11677
QStringList paths;
117-
auto audioConfig = muse::modularity::globalIoc()->resolve<audio::IAudioConfiguration>("audio");
118-
119-
if (!audioConfig) {
120-
LOGE() << "Failed to resolve IAudioConfiguration";
121-
return paths; // empty list
122-
}
123-
124-
for (const auto& path : audioConfig->userSoundFontDirectories()) {
78+
for (const auto& path : audioConfiguration()->userSoundFontDirectories()) {
12579
if (!path.empty()) {
12680
paths << path.toQString();
12781
}
@@ -151,13 +105,7 @@ QString FileIO::pluginDirectoryPath()
151105
// Path of project file (ex: .../Desktop/project.mscz)
152106
QString FileIO::projectPath()
153107
{
154-
auto globalContext = muse::modularity::globalIoc()->resolve<context::IGlobalContext>("project");
155-
if (!globalContext) {
156-
LOGE() << "Failed to resolve IGlobalContext";
157-
return QString();
158-
}
159-
160-
auto project = globalContext->currentProject();
108+
auto project = globalContext()->currentProject();
161109
if (!project) {
162110
return QString();
163111
}

0 commit comments

Comments
 (0)