diff --git a/cura/CuraActions.py b/cura/CuraActions.py new file mode 100644 index 0000000000..ee75665e0b --- /dev/null +++ b/cura/CuraActions.py @@ -0,0 +1,15 @@ +from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, pyqtProperty + +import webbrowser + +class CuraActions(QObject): + def __init__(self, parent = None): + super().__init__(parent) + + @pyqtSlot() + def openDocumentation(self): + webbrowser.open("http://ultimaker.com/en/support/software") + + @pyqtSlot() + def openBugReportPage(self): + webbrowser.open("http://github.com/Ultimaker/Cura/issues") diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 5135a84471..cde470e075 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -33,6 +33,7 @@ from . import PlatformPhysics from . import BuildVolume from . import CameraAnimation from . import PrintInformation +from . import CuraActions from PyQt5.QtCore import pyqtSlot, QUrl, Qt, pyqtSignal, pyqtProperty from PyQt5.QtGui import QColor @@ -184,6 +185,8 @@ class CuraApplication(QtApplication): engine.rootContext().setContextProperty("Printer", self) self._print_information = PrintInformation.PrintInformation() engine.rootContext().setContextProperty("PrintInformation", self._print_information) + self._cura_actions = CuraActions.CuraActions(self) + engine.rootContext().setContextProperty("CuraActions", self._cura_actions) def onSelectionChanged(self): if Selection.hasSelection(): diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 7067c88c12..5c6a5c9290 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -337,8 +337,8 @@ UM.MainWindow { preferences.onTriggered: preferences.visible = true; configureMachines.onTriggered: { preferences.visible = true; preferences.setPage(2); } - documentation.onTriggered: Qt.openUrlExternally("https://ultimaker.com/en/support"); - reportBug.onTriggered: Qt.openUrlExternally("https://github.com/Ultimaker/Cura/issues"); + documentation.onTriggered: CuraActions.openDocumentation(); + reportBug.onTriggered: CuraActions.openBugReportPage(); showEngineLog.onTriggered: engineLog.visible = true; about.onTriggered: aboutDialog.visible = true; }