Skip to content

Commit 046dd7a

Browse files
authored
Merge pull request #31054 from cbjeukendrup/preferences-module
Move Preferences to a separate module: our first proper QML module
2 parents 7c8c27e + 8c272c7 commit 046dd7a

File tree

116 files changed

+603
-463
lines changed

Some content is hidden

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

116 files changed

+603
-463
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,6 @@ __pycache__/
8282

8383
# CMake User presets
8484
CMakeUserPresets.json
85+
86+
# QML language server
87+
**/.qmlls.ini

src/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ if (MUE_BUILD_PLAYBACK_MODULE)
7777
add_subdirectory(playback)
7878
endif()
7979

80+
add_subdirectory(preferences)
81+
8082
if (MUE_BUILD_PRINT_MODULE)
8183
add_subdirectory(print)
8284
endif()
@@ -87,5 +89,3 @@ endif()
8789

8890
# Stubs
8991
add_subdirectory(stubs)
90-
91-

src/app/CMakeLists.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ set(LINK_LIB
131131
palette
132132
inspector
133133
playback
134+
preferences
135+
preferences_qml
136+
preferences_qmlplugin
134137
instrumentsscene
135138
musesounds
136139
)
@@ -421,6 +424,12 @@ elseif(OS_IS_MAC)
421424
DESTINATION ${Mscore_SHARE_NAME}${Mscore_INSTALL_NAME}fonts
422425
)
423426

427+
qt_generate_deploy_qml_app_script(
428+
TARGET MuseScoreStudio
429+
OUTPUT_SCRIPT deploy_script
430+
MACOS_BUNDLE_POST_BUILD
431+
)
432+
424433
###########################################
425434
# Wasm
426435
###########################################

src/app/appfactory.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,8 @@
214214
#include "stubs/playback/playbackstubmodule.h"
215215
#endif
216216

217+
#include "preferences/preferencesmodule.h"
218+
217219
#ifdef MUE_BUILD_PRINT_MODULE
218220
#include "print/printmodule.h"
219221
#endif
@@ -361,6 +363,7 @@ std::shared_ptr<muse::IApplication> AppFactory::newGuiApp(const CmdOptions& opti
361363
app->addModule(new mu::notation::NotationModule());
362364
app->addModule(new mu::palette::PaletteModule());
363365
app->addModule(new mu::playback::PlaybackModule());
366+
app->addModule(new mu::preferences::PreferencesModule());
364367
app->addModule(new muse::extensions::ExtensionsModule());
365368

366369
#ifdef MUE_BUILD_PRINT_MODULE

src/appshell/CMakeLists.txt

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -60,38 +60,6 @@ set(MODULE_SRC
6060
${CMAKE_CURRENT_LIST_DIR}/view/firstlaunchsetup/themespagemodel.h
6161
${CMAKE_CURRENT_LIST_DIR}/view/firstlaunchsetup/tutorialspagemodel.cpp
6262
${CMAKE_CURRENT_LIST_DIR}/view/firstlaunchsetup/tutorialspagemodel.h
63-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/preferencesmodel.cpp
64-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/preferencesmodel.h
65-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/preferencepageitem.cpp
66-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/preferencepageitem.h
67-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/folderspreferencesmodel.cpp
68-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/folderspreferencesmodel.h
69-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/canvaspreferencesmodel.cpp
70-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/canvaspreferencesmodel.h
71-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/saveandpublishpreferencesmodel.cpp
72-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/saveandpublishpreferencesmodel.h
73-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/generalpreferencesmodel.cpp
74-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/generalpreferencesmodel.h
75-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/updatepreferencesmodel.cpp
76-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/updatepreferencesmodel.h
77-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/appearancepreferencesmodel.cpp
78-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/appearancepreferencesmodel.h
79-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/noteinputpreferencesmodel.cpp
80-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/noteinputpreferencesmodel.h
81-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/advancedpreferencesmodel.cpp
82-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/advancedpreferencesmodel.h
83-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/scorepreferencesmodel.cpp
84-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/scorepreferencesmodel.h
85-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/importpreferencesmodel.cpp
86-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/importpreferencesmodel.h
87-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/audiomidipreferencesmodel.cpp
88-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/audiomidipreferencesmodel.h
89-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/percussionpreferencesmodel.cpp
90-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/percussionpreferencesmodel.h
91-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/commonaudioapiconfigurationmodel.cpp
92-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/commonaudioapiconfigurationmodel.h
93-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/braillepreferencesmodel.cpp
94-
${CMAKE_CURRENT_LIST_DIR}/view/preferences/braillepreferencesmodel.h
9563
${CMAKE_CURRENT_LIST_DIR}/view/publish/publishtoolbarmodel.cpp
9664
${CMAKE_CURRENT_LIST_DIR}/view/publish/publishtoolbarmodel.h
9765
${CMAKE_CURRENT_LIST_DIR}/view/internal/iappmenumodelhook.h
@@ -137,7 +105,7 @@ if (NOT OS_IS_MAC)
137105
endif(NOT OS_IS_MAC)
138106

139107
if (QT_SUPPORT)
140-
list(APPEND MODULE_LINK Qt::Core5Compat Qt::Quick Qt::Svg Qt::Widgets)
108+
list(APPEND MODULE_LINK Qt::Quick Qt::Svg Qt::Widgets)
141109
endif()
142110

143111
setup_module()

src/appshell/appshell.qrc

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -14,52 +14,13 @@
1414
<file>qml/AboutDialog.qml</file>
1515
<file>qml/AboutMusicXMLDialog.qml</file>
1616
<file>qml/resources/mu_logo.svg</file>
17-
<file>qml/shared/AccentColorsList.qml</file>
18-
<file>qml/shared/ThemeSamplesList.qml</file>
19-
<file>qml/shared/internal/ThemeSample.qml</file>
2017
<file>qml/FirstLaunchSetup/FirstLaunchSetupDialog.qml</file>
2118
<file>qml/FirstLaunchSetup/Page.qml</file>
2219
<file>qml/FirstLaunchSetup/ThemesPage.qml</file>
2320
<file>qml/FirstLaunchSetup/PlaybackPage.qml</file>
2421
<file>qml/FirstLaunchSetup/TutorialsPage.qml</file>
2522
<file>qml/FirstLaunchSetup/resources/MuseSounds.png</file>
2623
<file>qml/FirstLaunchSetup/resources/VideoTutorials.png</file>
27-
<file>qml/Preferences/PreferencesPage.qml</file>
28-
<file>qml/Preferences/GeneralPreferencesPage.qml</file>
29-
<file>qml/Preferences/UpdatePreferencesPage.qml</file>
30-
<file>qml/Preferences/NoteInputPreferencesPage.qml</file>
31-
<file>qml/Preferences/AppearancePreferencesPage.qml</file>
32-
<file>qml/Preferences/FoldersPreferencesPage.qml</file>
33-
<file>qml/Preferences/AdvancedPreferencesPage.qml</file>
34-
<file>qml/Preferences/CanvasPreferencesPage.qml</file>
35-
<file>qml/Preferences/ScorePreferencesPage.qml</file>
36-
<file>qml/Preferences/ShortcutsPreferencesPage.qml</file>
37-
<file>qml/Preferences/ImportPreferencesPage.qml</file>
38-
<file>qml/Preferences/MidiDeviceMappingPreferencesPage.qml</file>
39-
<file>qml/Preferences/AudioMidiPreferencesPage.qml</file>
40-
<file>qml/Preferences/SaveAndPublishPreferencesPage.qml</file>
41-
<file>qml/Preferences/PreferencesDialog.qml</file>
42-
<file>qml/Preferences/internal/PreferencesButtonsPanel.qml</file>
43-
<file>qml/Preferences/internal/PreferencesMenu.qml</file>
44-
<file>qml/Preferences/internal/ThemesSection.qml</file>
45-
<file>qml/Preferences/internal/AccentColorsSection.qml</file>
46-
<file>qml/Preferences/internal/UiFontSection.qml</file>
47-
<file>qml/Preferences/internal/UiColorsSection.qml</file>
48-
<file>qml/Preferences/internal/ColorAndWallpaperSection.qml</file>
49-
<file>qml/Preferences/internal/PageSection.qml</file>
50-
<file>qml/Preferences/internal/ImportStyleSection.qml</file>
51-
<file>qml/Preferences/internal/CharsetsSection.qml</file>
52-
<file>qml/Preferences/internal/MidiSection.qml</file>
53-
<file>qml/Preferences/internal/MusicXmlSection.qml</file>
54-
<file>qml/Preferences/internal/MidiDevicesSection.qml</file>
55-
<file>qml/Preferences/internal/AudioEngineSection.qml</file>
56-
<file>qml/Preferences/internal/AudioApiSection.qml</file>
57-
<file>qml/Preferences/internal/CommonAudioApiConfiguration.qml</file>
58-
<file>qml/Preferences/internal/ComboBoxWithTitle.qml</file>
59-
<file>qml/Preferences/internal/IncrementalPropertyControlWithTitle.qml</file>
60-
<file>qml/Preferences/internal/KeyboardLayoutsSection.qml</file>
61-
<file>qml/Preferences/internal/SaveToCloudSection.qml</file>
62-
<file>qml/Preferences/internal/WelcomeDialogSection.qml</file>
6324
<file>qml/DevTools/KeyNav/KeyNavExample.qml</file>
6425
<file>qml/DevTools/KeyNav/KeyNavSection.qml</file>
6526
<file>qml/DevTools/KeyNav/KeyNavSubSection.qml</file>
@@ -74,27 +35,8 @@
7435
<file>qml/platform/mac/Main.qml</file>
7536
<file>qml/platform/win/Main.qml</file>
7637
<file>resources/win_opengl_buglist.json</file>
77-
<file>qml/Preferences/internal/BaseSection.qml</file>
78-
<file>qml/Preferences/internal/LanguagesSection.qml</file>
79-
<file>qml/Preferences/internal/AutoSaveSection.qml</file>
80-
<file>qml/Preferences/internal/RemoteControlSection.qml</file>
81-
<file>qml/Preferences/internal/ProgramStartSection.qml</file>
82-
<file>qml/Preferences/internal/FoldersSection.qml</file>
83-
<file>qml/Preferences/internal/ThemeAdditionalOptionsSection.qml</file>
84-
<file>qml/Preferences/internal/AdvancedTopSection.qml</file>
85-
<file>qml/Preferences/internal/ZoomSection.qml</file>
86-
<file>qml/Preferences/internal/ScrollPagesSection.qml</file>
87-
<file>qml/Preferences/internal/NoteInput/NoteInputSection.qml</file>
88-
<file>qml/Preferences/internal/NoteInput/MidiInputSection.qml</file>
89-
<file>qml/Preferences/internal/NoteInput/NotePreviewSection.qml</file>
90-
<file>qml/Preferences/internal/NoteInput/VoiceAssignmentSection.qml</file>
91-
<file>qml/Preferences/internal/NoteInput/NoteColorsSection.qml</file>
92-
<file>qml/Preferences/internal/NoteInput/FretboardDiagramsSection.qml</file>
93-
<file>qml/Preferences/internal/DefaultStyleSection.qml</file>
94-
<file>qml/Preferences/internal/AutomaticUpdateSection.qml</file>
9538
<file>qml/platform/win/AppTitleBar.qml</file>
9639
<file>qml/DevTools/MPE/ArticulationsProfileEditorView.qml</file>
97-
<file>qml/Preferences/internal/MiscellaneousSection.qml</file>
9840
<file>qml/platform/win/AppSystemButtons.qml</file>
9941
<file>qml/platform/AppMenuBar.qml</file>
10042
<file>qml/platform/AppButtonBackground.qml</file>
@@ -103,16 +45,8 @@
10345
<file>resources/welcomedialog/MuseSounds.png</file>
10446
<file>resources/welcomedialog/WhatsNew.png</file>
10547
<file>resources/welcomedialog/ExploreTutorials.png</file>
106-
<file>qml/Preferences/BraillePreferencesPage.qml</file>
107-
<file>qml/Preferences/internal/BrailleSection.qml</file>
108-
<file>qml/Preferences/internal/BrailleAdvancedSection.qml</file>
109-
<file>qml/Preferences/internal/MeiSection.qml</file>
110-
<file>qml/Preferences/internal/PublishMuseScoreComSection.qml</file>
111-
<file>qml/Preferences/internal/MixerSection.qml</file>
112-
<file>qml/Preferences/internal/OnlineSoundsSection.qml</file>
11348
<file>qml/DevTools/Extensions/ExtensionsListView.qml</file>
11449
<file>qml/platform/PlatformMenuBar.qml</file>
115-
<file>qml/Preferences/PercussionPreferencesPage.qml</file>
11650
<file>qml/WelcomeDialog.qml</file>
11751
</qresource>
11852
</RCC>

src/appshell/appshellmodule.cpp

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -45,21 +45,6 @@
4545
#include "view/firstlaunchsetup/firstlaunchsetupmodel.h"
4646
#include "view/firstlaunchsetup/themespagemodel.h"
4747
#include "view/firstlaunchsetup/tutorialspagemodel.h"
48-
#include "view/preferences/preferencesmodel.h"
49-
#include "view/preferences/generalpreferencesmodel.h"
50-
#include "view/preferences/updatepreferencesmodel.h"
51-
#include "view/preferences/appearancepreferencesmodel.h"
52-
#include "view/preferences/folderspreferencesmodel.h"
53-
#include "view/preferences/noteinputpreferencesmodel.h"
54-
#include "view/preferences/advancedpreferencesmodel.h"
55-
#include "view/preferences/canvaspreferencesmodel.h"
56-
#include "view/preferences/saveandpublishpreferencesmodel.h"
57-
#include "view/preferences/scorepreferencesmodel.h"
58-
#include "view/preferences/importpreferencesmodel.h"
59-
#include "view/preferences/audiomidipreferencesmodel.h"
60-
#include "view/preferences/percussionpreferencesmodel.h"
61-
#include "view/preferences/commonaudioapiconfigurationmodel.h"
62-
#include "view/preferences/braillepreferencesmodel.h"
6348
#include "view/publish/publishtoolbarmodel.h"
6449
#include "view/internal/maintoolbarmodel.h"
6550

@@ -123,7 +108,6 @@ void AppShellModule::resolveImports()
123108
ir->registerUri(Uri("musescore://welcomedialog"), ContainerMeta(ContainerType::QmlDialog, "WelcomeDialog.qml"));
124109
ir->registerUri(Uri("musescore://firstLaunchSetup"),
125110
ContainerMeta(ContainerType::QmlDialog, "FirstLaunchSetup/FirstLaunchSetupDialog.qml"));
126-
ir->registerUri(Uri("muse://preferences"), ContainerMeta(ContainerType::QmlDialog, "Preferences/PreferencesDialog.qml"));
127111
}
128112
}
129113

@@ -134,22 +118,7 @@ void AppShellModule::registerResources()
134118

135119
void AppShellModule::registerUiTypes()
136120
{
137-
qmlRegisterType<SettingListModel>("MuseScore.Preferences", 1, 0, "SettingListModel");
138-
qmlRegisterType<PreferencesModel>("MuseScore.Preferences", 1, 0, "PreferencesModel");
139-
qmlRegisterType<GeneralPreferencesModel>("MuseScore.Preferences", 1, 0, "GeneralPreferencesModel");
140-
qmlRegisterType<UpdatePreferencesModel>("MuseScore.Preferences", 1, 0, "UpdatePreferencesModel");
141-
qmlRegisterType<AppearancePreferencesModel>("MuseScore.Preferences", 1, 0, "AppearancePreferencesModel");
142-
qmlRegisterType<FoldersPreferencesModel>("MuseScore.Preferences", 1, 0, "FoldersPreferencesModel");
143-
qmlRegisterType<NoteInputPreferencesModel>("MuseScore.Preferences", 1, 0, "NoteInputPreferencesModel");
144-
qmlRegisterType<AdvancedPreferencesModel>("MuseScore.Preferences", 1, 0, "AdvancedPreferencesModel");
145-
qmlRegisterType<CanvasPreferencesModel>("MuseScore.Preferences", 1, 0, "CanvasPreferencesModel");
146-
qmlRegisterType<SaveAndPublishPreferencesModel>("MuseScore.Preferences", 1, 0, "SaveAndPublishPreferencesModel");
147-
qmlRegisterType<ScorePreferencesModel>("MuseScore.Preferences", 1, 0, "ScorePreferencesModel");
148-
qmlRegisterType<ImportPreferencesModel>("MuseScore.Preferences", 1, 0, "ImportPreferencesModel");
149-
qmlRegisterType<AudioMidiPreferencesModel>("MuseScore.Preferences", 1, 0, "AudioMidiPreferencesModel");
150-
qmlRegisterType<PercussionPreferencesModel>("MuseScore.Preferences", 1, 0, "PercussionPreferencesModel");
151-
qmlRegisterType<CommonAudioApiConfigurationModel>("MuseScore.Preferences", 1, 0, "CommonAudioApiConfigurationModel");
152-
qmlRegisterType<BraillePreferencesModel>("MuseScore.Preferences", 1, 0, "BraillePreferencesModel");
121+
qmlRegisterType<SettingListModel>("MuseScore.AppShell", 1, 0, "SettingListModel");
153122

154123
#if defined(Q_OS_MACOS)
155124
qmlRegisterType<AppMenuModel>("MuseScore.AppShell", 1, 0, "PlatformAppMenuModel");

src/appshell/internal/applicationuiactions.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,15 @@
1919
* You should have received a copy of the GNU General Public License
2020
* along with this program. If not, see <https://www.gnu.org/licenses/>.
2121
*/
22-
#ifndef MU_APPSHELL_APPLICATIONUIACTIONS_H
23-
#define MU_APPSHELL_APPLICATIONUIACTIONS_H
22+
23+
#pragma once
2424

2525
#include "ui/iuiactionsmodule.h"
2626
#include "applicationactioncontroller.h"
2727
#include "modularity/ioc.h"
28-
#include "context/iuicontextresolver.h"
2928
#include "async/asyncable.h"
3029
#include "ui/imainwindow.h"
31-
#include "view/preferences/braillepreferencesmodel.h"
30+
#include "braille/ibrailleconfiguration.h"
3231
#include "notation/inotationconfiguration.h"
3332

3433
#include "dockwindow/idockwindowprovider.h"
@@ -67,5 +66,3 @@ class ApplicationUiActions : public muse::ui::IUiActionsModule, public muse::Inj
6766
muse::async::Channel<muse::actions::ActionCodeList> m_actionCheckedChanged;
6867
};
6968
}
70-
71-
#endif // MU_APPSHELL_APPLICATIONUIACTIONS_H

src/appshell/qml/DevTools/Preferences/SettingsPage.qml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import QtQuick.Layouts 1.15
2626
import Muse.Ui 1.0
2727
import Muse.UiComponents 1.0
2828
import Muse.Dock 1.0
29-
import MuseScore.Preferences 1.0
29+
import MuseScore.AppShell 1.0
3030

3131
ColumnLayout {
3232
id: root

src/appshell/qml/FirstLaunchSetup/ThemesPage.qml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ import QtQuick.Layouts 1.15
2525
import Muse.Ui 1.0
2626
import Muse.UiComponents 1.0
2727
import MuseScore.AppShell 1.0
28-
29-
import "../shared"
28+
import MuseScore.Preferences
3029

3130
Page {
3231
id: root

0 commit comments

Comments
 (0)