Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Marketplace/CloudSync/RestartApplicationPresenter.py')
-rw-r--r--plugins/Marketplace/CloudSync/RestartApplicationPresenter.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/plugins/Marketplace/CloudSync/RestartApplicationPresenter.py b/plugins/Marketplace/CloudSync/RestartApplicationPresenter.py
new file mode 100644
index 0000000000..1e1ebc33dc
--- /dev/null
+++ b/plugins/Marketplace/CloudSync/RestartApplicationPresenter.py
@@ -0,0 +1,35 @@
+# Copyright (c) 2022 Ultimaker B.V.
+# Cura is released under the terms of the LGPLv3 or higher.
+
+from UM import i18nCatalog
+from UM.Message import Message
+from cura.CuraApplication import CuraApplication
+
+
+class RestartApplicationPresenter:
+ """Presents a dialog telling the user that a restart is required to apply changes
+
+ Since we cannot restart Cura, the app is closed instead when the button is clicked
+ """
+ def __init__(self, app: CuraApplication) -> None:
+ self._app = app
+ self._i18n_catalog = i18nCatalog("cura")
+
+ def present(self) -> None:
+ app_name = self._app.getApplicationDisplayName()
+
+ message = Message(self._i18n_catalog.i18nc("@info:generic",
+ "You need to quit and restart {} before changes have effect.",
+ app_name))
+
+ message.addAction("quit",
+ name="Quit " + app_name,
+ icon = "",
+ description="Close the application",
+ button_align=Message.ActionButtonAlignment.ALIGN_RIGHT)
+
+ message.actionTriggered.connect(self._quitClicked)
+ message.show()
+
+ def _quitClicked(self, *_):
+ self._app.windowClosed()