diff --git a/muse b/muse index 5f99999b1b170..f8961d58a933f 160000 --- a/muse +++ b/muse @@ -1 +1 @@ -Subproject commit 5f99999b1b17083524a34206b2aa88fca663fa9b +Subproject commit f8961d58a933fa306d295df2723762eaa773d243 diff --git a/src/appshell/internal/appshellcommandscontroller.cpp b/src/appshell/internal/appshellcommandscontroller.cpp index 210eb496a64ad..4aea3930fe3c3 100644 --- a/src/appshell/internal/appshellcommandscontroller.cpp +++ b/src/appshell/internal/appshellcommandscontroller.cpp @@ -349,10 +349,7 @@ void AppshellCommandsController::doQuit(bool isAllInstances, const muse::io::pat //! in-place, falling back to handing the package to the user. bool applied = false; if (appUpdateService()->canAutoInstall()) { - const muse::RetVal prepared = appUpdateService()->prepareUpdate(installerPath); - if (prepared.ret) { - applied = bool(appUpdateService()->finalizeUpdate(prepared.val)); - } + applied = bool(appUpdateService()->installUpdate()); } if (!applied) { diff --git a/src/appshell/qml/MuseScore/AppShell/CMakeLists.txt b/src/appshell/qml/MuseScore/AppShell/CMakeLists.txt index ea1a95e440112..6c85a648773cd 100644 --- a/src/appshell/qml/MuseScore/AppShell/CMakeLists.txt +++ b/src/appshell/qml/MuseScore/AppShell/CMakeLists.txt @@ -93,7 +93,6 @@ qt_add_qml_module(appshell_qml TARGET muse_ui_qml TARGET muse_uicomponents_qml TARGET muse_cloud_qml - TARGET muse_update_qml TARGET muse_dockwindow_qml TARGET muse_diagnostics_qml TARGET muse_extensions_qml diff --git a/src/appshell/qml/MuseScore/AppShell/HomePage/HomeMenu.qml b/src/appshell/qml/MuseScore/AppShell/HomePage/HomeMenu.qml index 4ba782ac3039e..32d743d81d467 100644 --- a/src/appshell/qml/MuseScore/AppShell/HomePage/HomeMenu.qml +++ b/src/appshell/qml/MuseScore/AppShell/HomePage/HomeMenu.qml @@ -29,7 +29,6 @@ import QtQuick.Layouts import Muse.Ui import Muse.UiComponents import Muse.Cloud -import Muse.Update Item { id: root @@ -130,12 +129,5 @@ Item { } } } - - UpdateBanner { - Layout.fillWidth: true - Layout.margins: 8 - - visible: (hasReadyUpdate || hasCompletedUpdate) && !root.iconsOnly - } } } diff --git a/src/preferences/qml/MuseScore/Preferences/GeneralPreferencesPage.qml b/src/preferences/qml/MuseScore/Preferences/GeneralPreferencesPage.qml index 4274c27a81d5b..9fe0669bce488 100644 --- a/src/preferences/qml/MuseScore/Preferences/GeneralPreferencesPage.qml +++ b/src/preferences/qml/MuseScore/Preferences/GeneralPreferencesPage.qml @@ -125,7 +125,7 @@ PreferencesPage { AutomaticUpdateSection { isAppUpdatable: preferencesModel.isAppUpdatable() needCheckForNewAppVersion: preferencesModel.needCheckForNewAppVersion - autoDownloadNewAppVersion: preferencesModel.autoDownloadNewAppVersion + autoUpdateNewAppVersion: preferencesModel.autoUpdateNewAppVersion museScorePrivacyPolicyUrl: preferencesModel.museScorePrivacyPolicyUrl() navigation.section: root.navigationSection @@ -135,8 +135,8 @@ PreferencesPage { preferencesModel.needCheckForNewAppVersion = check } - onAutoDownloadNewAppVersionChangeRequested: function(download) { - preferencesModel.autoDownloadNewAppVersion = download + onAutoUpdateNewAppVersionChangeRequested: function(enabled) { + preferencesModel.autoUpdateNewAppVersion = enabled } } } diff --git a/src/preferences/qml/MuseScore/Preferences/generalpreferencesmodel.cpp b/src/preferences/qml/MuseScore/Preferences/generalpreferencesmodel.cpp index 2ab7f5e1b2d9f..e120e2c8f82fd 100644 --- a/src/preferences/qml/MuseScore/Preferences/generalpreferencesmodel.cpp +++ b/src/preferences/qml/MuseScore/Preferences/generalpreferencesmodel.cpp @@ -281,21 +281,25 @@ void GeneralPreferencesModel::setNeedCheckForNewAppVersion(bool value) updateConfiguration()->setNeedCheckForUpdate(value); emit needCheckForNewAppVersionChanged(value); + + //! NOTE: Updates can not be downloaded without checking for them; once checking + //! is turned on again, downloading is turned on with it, whatever it was before + setAutoUpdateNewAppVersion(value); } -bool GeneralPreferencesModel::autoDownloadNewAppVersion() const +bool GeneralPreferencesModel::autoUpdateNewAppVersion() const { - return updateConfiguration()->autoDownloadEnabled(); + return updateConfiguration()->autoUpdateEnabled(); } -void GeneralPreferencesModel::setAutoDownloadNewAppVersion(bool value) +void GeneralPreferencesModel::setAutoUpdateNewAppVersion(bool value) { - if (value == autoDownloadNewAppVersion()) { + if (value == autoUpdateNewAppVersion()) { return; } - updateConfiguration()->setAutoDownloadEnabled(value); - emit autoDownloadNewAppVersionChanged(value); + updateConfiguration()->setAutoUpdateEnabled(value); + emit autoUpdateNewAppVersionChanged(value); } QString GeneralPreferencesModel::museScorePrivacyPolicyUrl() const diff --git a/src/preferences/qml/MuseScore/Preferences/generalpreferencesmodel.h b/src/preferences/qml/MuseScore/Preferences/generalpreferencesmodel.h index 1ccfe0c03855b..22e28cef31baf 100644 --- a/src/preferences/qml/MuseScore/Preferences/generalpreferencesmodel.h +++ b/src/preferences/qml/MuseScore/Preferences/generalpreferencesmodel.h @@ -64,7 +64,7 @@ class GeneralPreferencesModel : public QObject, public muse::Contextable, public Q_PROPERTY( bool needCheckForNewAppVersion READ needCheckForNewAppVersion WRITE setNeedCheckForNewAppVersion NOTIFY needCheckForNewAppVersionChanged) Q_PROPERTY( - bool autoDownloadNewAppVersion READ autoDownloadNewAppVersion WRITE setAutoDownloadNewAppVersion NOTIFY autoDownloadNewAppVersionChanged) + bool autoUpdateNewAppVersion READ autoUpdateNewAppVersion WRITE setAutoUpdateNewAppVersion NOTIFY autoUpdateNewAppVersionChanged) muse::GlobalInject configuration; muse::GlobalInject languagesConfiguration; @@ -98,7 +98,7 @@ class GeneralPreferencesModel : public QObject, public muse::Contextable, public void setShowWelcomeDialog(bool show); bool needCheckForNewAppVersion() const; - bool autoDownloadNewAppVersion() const; + bool autoUpdateNewAppVersion() const; Q_INVOKABLE bool isAppUpdatable() const; Q_INVOKABLE QString museScorePrivacyPolicyUrl() const; @@ -111,7 +111,7 @@ public slots: void setCurrentStartupMode(int mode); void setStartupScorePath(const QString& scorePath); void setNeedCheckForNewAppVersion(bool value); - void setAutoDownloadNewAppVersion(bool value); + void setAutoUpdateNewAppVersion(bool value); signals: void languagesChanged(QVariantList languages); @@ -129,7 +129,7 @@ public slots: void showWelcomeDialogChanged(); void needCheckForNewAppVersionChanged(bool value); - void autoDownloadNewAppVersionChanged(bool value); + void autoUpdateNewAppVersionChanged(bool value); private: muse::Progress m_languageUpdateProgress; diff --git a/src/preferences/qml/MuseScore/Preferences/internal/AutomaticUpdateSection.qml b/src/preferences/qml/MuseScore/Preferences/internal/AutomaticUpdateSection.qml index bc84d6ab84f41..d9affbbcbe2d1 100644 --- a/src/preferences/qml/MuseScore/Preferences/internal/AutomaticUpdateSection.qml +++ b/src/preferences/qml/MuseScore/Preferences/internal/AutomaticUpdateSection.qml @@ -31,17 +31,17 @@ BaseSection { property bool isAppUpdatable: true property alias needCheckForNewAppVersion: needCheckEnable.checked - property alias autoDownloadNewAppVersion: autoDownloadCheckBox.checked + property alias autoUpdateNewAppVersion: autoUpdateToggle.checked property string museScorePrivacyPolicyUrl signal needCheckForNewAppVersionChangeRequested(bool check) - signal autoDownloadNewAppVersionChangeRequested(bool download) + signal autoUpdateNewAppVersionChangeRequested(bool enabled) ToggleButton { id: needCheckEnable width: parent.width - text: qsTrc("preferences", "Check automatically for updates to MuseScore Studio is available") + text: qsTrc("preferences", "Check automatically for updates to MuseScore Studio") visible: root.isAppUpdatable @@ -54,30 +54,29 @@ BaseSection { } } - CheckBox { - id: autoDownloadCheckBox + ToggleButton { + id: autoUpdateToggle width: parent.width - text: qsTrc("preferences", "Download updates in the background") + text: qsTrc("preferences", "Download and install updates automatically") visible: root.isAppUpdatable + //! NOTE: Turned off together with "Check automatically..." and turned on with it again in model enabled: needCheckEnable.checked - navigation.name: "AutoDownloadCheckBox" + navigation.name: "AutoUpdateToggle" navigation.panel: root.navigation navigation.row: 1 - onClicked: { - root.autoDownloadNewAppVersionChangeRequested(!checked) + onToggled: { + root.autoUpdateNewAppVersionChangeRequested(!checked) } } StyledTextLabel { width: parent.width - text: qsTrc("preferences", "Checking for updates requires network access. In order to protect your privacy, MuseScore Studio does not store any personal information. See our privacy policy for more info.") - .arg(root.museScorePrivacyPolicyUrl) - .replace("\n", "
") + text: qsTrc("preferences", "Checking for updates requires network access. In order to protect your privacy, MuseScore Studio does not store any personal information. See our privacy policy for more info.").arg(root.museScorePrivacyPolicyUrl).replace("\n", "
") horizontalAlignment: Qt.AlignLeft wrapMode: Text.WordWrap