diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 9e016561d5..133bcef536 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -220,7 +220,8 @@ class CuraApplication(QtApplication): "LocalFileOutputDevice", "TranslateTool", "FileLogger", - "XmlMaterialProfile" + "XmlMaterialProfile", + ]) self._physics = None self._volume = None diff --git a/plugins/PluginBrowser/PluginBrowser.py b/plugins/PluginBrowser/PluginBrowser.py index 7a3b52b99f..0037d4bc59 100644 --- a/plugins/PluginBrowser/PluginBrowser.py +++ b/plugins/PluginBrowser/PluginBrowser.py @@ -23,9 +23,9 @@ i18n_catalog = i18nCatalog("cura") class PluginBrowser(QObject, Extension): - def __init__(self, parent = None): + def __init__(self, parent=None): super().__init__(parent) - self.addMenuItem(i18n_catalog.i18nc("@menuitem", "Browse plugins"), self.browsePlugins) + self._api_version = 1 self._api_url = "http://software.ultimaker.com/cura/v%s/" % self._api_version @@ -92,6 +92,7 @@ class PluginBrowser(QObject, Extension): def isDownloading(self): return self._is_downloading + @pyqtSlot() def browsePlugins(self): self._createNetworkManager() self.requestPluginList() diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 68a3baa768..cc27520a02 100755 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -61,6 +61,9 @@ Item property alias configureSettingVisibility: configureSettingVisibilityAction + property alias browsePlugins: browsePluginsAction + property alias configurePlugins: configurePluginsAction + UM.I18nCatalog{id: catalog; name:"cura"} Action @@ -362,4 +365,18 @@ Item text: catalog.i18nc("@action:menu", "Configure setting visibility..."); iconName: "configure" } + + Action + { + id: browsePluginsAction + text: catalog.i18nc("@action:menu", "Browse plugins...") + iconName: "plugins_browse" + } + + Action + { + id: configurePluginsAction + text: catalog.i18nc("@action:menu", "Installed plugins..."); + iconName: "plugins_configure" + } } diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 9fecf23ca9..ca32a6eaab 100755 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -207,7 +207,7 @@ UM.MainWindow id: sub_menu title: model.name; visible: actions != null - enabled:actions != null + enabled: actions != null Instantiator { model: actions @@ -226,6 +226,15 @@ UM.MainWindow } } + Menu + { + id: plugin_menu + title: catalog.i18nc("@title:menu menubar:toplevel", "P&lugins") + + MenuItem { action: Cura.Actions.browsePlugins } + MenuItem { action: Cura.Actions.configurePlugins } + } + Menu { title: catalog.i18nc("@title:menu menubar:toplevel","P&references"); @@ -543,6 +552,30 @@ UM.MainWindow } } + // show the installed plugins page in the preferences dialog + Connections + { + target: Cura.Actions.configurePlugins + onTriggered: + { + preferences.visible = true + preferences.setPage(5) + } + } + + UM.ExtensionModel { + id: curaExtensions + } + + // show the plugin browser dialog + Connections + { + target: Cura.Actions.browsePlugins + onTriggered: { + curaExtensions.callExtensionMethod("Plugin Browser", "browsePlugins") + } + } + Timer { id: createProfileTimer