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
4032using namespace muse ;
4133
@@ -45,83 +37,45 @@ namespace mu::engraving::apiv1 {
4537// ---------------------------------------------------------
4638
4739FileIO::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.)
5345QString 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)
6651QString 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)
7857QString 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)
9063QString 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)
10269QString 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)
11475QStringList 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)
152106QString 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