From ac67dcc045e71b4d35264bb25d00ea667358574d Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 22 Jun 2022 11:52:13 +0200 Subject: [PATCH 1/2] Don't cache PluginRegistry instance Several reasons: * It's bad style, making it harder to test with mocked PluginRegistry since all sorts of objects have copies of the un-mocked object in their fields. * It's causing errors in this case when checkIfRestartNeeded is called before show(). Fixes Sentry issue CURA-3P6. --- plugins/Marketplace/Marketplace.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/plugins/Marketplace/Marketplace.py b/plugins/Marketplace/Marketplace.py index b2c729c2cd..86910f8f4a 100644 --- a/plugins/Marketplace/Marketplace.py +++ b/plugins/Marketplace/Marketplace.py @@ -22,7 +22,6 @@ class Marketplace(Extension, QObject): QObject.__init__(self, parent) Extension.__init__(self) self._window: Optional["QObject"] = None # If the window has been loaded yet, it'll be cached in here. - self._plugin_registry: Optional[PluginRegistry] = None self._package_manager = CuraApplication.getInstance().getPackageManager() self._material_package_list: Optional[RemotePackageList] = None @@ -81,9 +80,9 @@ class Marketplace(Extension, QObject): If the window hadn't been loaded yet into Qt, it will be created lazily. """ if self._window is None: - self._plugin_registry = PluginRegistry.getInstance() - self._plugin_registry.pluginsEnabledOrDisabledChanged.connect(self.checkIfRestartNeeded) - plugin_path = PluginRegistry.getInstance().getPluginPath(self.getPluginId()) + plugin_registry = PluginRegistry.getInstance() + plugin_registry.pluginsEnabledOrDisabledChanged.connect(self.checkIfRestartNeeded) + plugin_path = plugin_registry.getPluginPath(self.getPluginId()) if plugin_path is None: plugin_path = os.path.dirname(__file__) path = os.path.join(plugin_path, "resources", "qml", "Marketplace.qml") @@ -108,7 +107,7 @@ class Marketplace(Extension, QObject): return if self._package_manager.hasPackagesToRemoveOrInstall or \ - cast(PluginRegistry, self._plugin_registry).getCurrentSessionActivationChangedPlugins(): + PluginRegistry.getInstance().getCurrentSessionActivationChangedPlugins(): self._restart_needed = True else: self._restart_needed = False @@ -116,7 +115,7 @@ class Marketplace(Extension, QObject): showRestartNotificationChanged = pyqtSignal() - @pyqtProperty(bool, notify=showRestartNotificationChanged) + @pyqtProperty(bool, notify = showRestartNotificationChanged) def showRestartNotification(self) -> bool: return self._restart_needed From 1df76d8cc5f8662d70550d98878b4e432fc28db1 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Wed, 22 Jun 2022 17:00:22 +0200 Subject: [PATCH 2/2] Correct Dutch translations of Marketplace Marketplace is considered a product by Ultimaker, and so it should not be translated. In Dutch this was inconsistently translated (or not translated). Found by one of the translators in CURA-9420. --- resources/i18n/nl_NL/cura.po | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po index 072866aa2a..f9947cef85 100644 --- a/resources/i18n/nl_NL/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -3457,7 +3457,7 @@ msgid "" "- Back-up and sync your material profiles and plug-ins\n" "- Share ideas and get help from 48,000+ users in the Ultimaker community" msgstr "" -"- Voeg materiaalprofielen en plug-ins toe uit de Marktplaats\n" +"- Voeg materiaalprofielen en plug-ins toe uit de Marketplace\n" "- Maak back-ups van uw materiaalprofielen en plug-ins en synchroniseer deze\n" "- Deel ideeën met 48.000+ gebruikers in de Ultimaker-community of vraag hen om ondersteuning" @@ -4288,7 +4288,7 @@ msgstr "Weet u zeker dat u een nieuw project wilt starten? Hiermee wordt het pla #: /home/trin/Gedeeld/Projects/Cura/resources/qml/MainWindow/MainWindowHeader.qml:135 msgctxt "@action:button" msgid "Marketplace" -msgstr "Marktplaats" +msgstr "Marketplace" #: /home/trin/Gedeeld/Projects/Cura/resources/qml/Menus/ConfigurationMenu/AutoConfiguration.qml:18 msgctxt "@header" @@ -4303,7 +4303,7 @@ msgstr "Deze configuratie is niet beschikbaar omdat %1 niet wordt herkend. Ga na #: /home/trin/Gedeeld/Projects/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml:138 msgctxt "@label" msgid "Marketplace" -msgstr "Marktplaats" +msgstr "Marketplace" #: /home/trin/Gedeeld/Projects/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationListView.qml:52 msgctxt "@label" @@ -5995,7 +5995,7 @@ msgstr "Release notes" #: /home/trin/Gedeeld/Projects/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" msgid "Add material settings and plugins from the Marketplace" -msgstr "Voeg materiaalinstellingen en plugins uit de Marktplaats toe" +msgstr "Voeg materiaalinstellingen en plugins uit de Marketplace toe" #: /home/trin/Gedeeld/Projects/Cura/resources/qml/WelcomePages/CloudContent.qml:149 msgctxt "@text" @@ -6297,7 +6297,7 @@ msgstr "Beheert extensies voor de toepassing en staat browsingextensies toe van #: Marketplace/plugin.json msgctxt "name" msgid "Marketplace" -msgstr "Marktplaats" +msgstr "Marketplace" #: MonitorStage/plugin.json msgctxt "description" @@ -6777,7 +6777,7 @@ msgstr "Röntgenweergave" #~ msgctxt "@title" #~ msgid "Marketplace" -#~ msgstr "Marktplaats" +#~ msgstr "Marketplace" #~ msgctxt "@info" #~ msgid "You will need to restart Cura before changes in packages have effect." @@ -7055,7 +7055,7 @@ msgstr "Röntgenweergave" #~ msgctxt "@action:menu" #~ msgid "&Marketplace" -#~ msgstr "&Marktplaats" +#~ msgstr "&Marketplace" #~ msgctxt "description" #~ msgid "Find, manage and install new Cura packages."