Browse Source

Use python's webbrowser instead of Qt.openUrlExternally for opening urls

Qt.openUrlExternally crashes on Windows, but python webbrowser works. So
use that instead.

Fixes Asana issue 33694049548892
Arjen Hiemstra 9 years ago
parent
commit
3c5096cebc
3 changed files with 20 additions and 2 deletions
  1. 15 0
      cura/CuraActions.py
  2. 3 0
      cura/CuraApplication.py
  3. 2 2
      resources/qml/Cura.qml

+ 15 - 0
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")

+ 3 - 0
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():

+ 2 - 2
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;
     }