--- a/src/eric7/Graphics/SvgDiagram.py Fri Mar 08 15:30:23 2024 +0100 +++ b/src/eric7/Graphics/SvgDiagram.py Fri Mar 08 15:30:53 2024 +0100 @@ -15,8 +15,11 @@ from eric7 import Preferences from eric7.EricGui import EricPixmapCache +from eric7.EricWidgets import EricMessageBox +from eric7.EricWidgets.EricApplication import ericApp from eric7.EricWidgets.EricMainWindow import EricMainWindow from eric7.EricWidgets.EricZoomWidget import EricZoomWidget +from eric7.SystemUtilities import FileSystemUtilities class SvgDiagram(EricMainWindow): @@ -102,8 +105,7 @@ self.resize(QSize(800, 600).expandedTo(self.minimumSizeHint())) self.zoom = 1.0 - self.svgFile = svgFile - self.svgWidget.load(self.svgFile) + self.__loadSvgFile(svgFile) self.svgWidget.resize(self.svgWidget.renderer().defaultSize()) self.__initActions() @@ -112,6 +114,36 @@ self.grabGesture(Qt.GestureType.PinchGesture) + def __loadSvgFile(self, svgFile): + """ + Private method to load a given SVG file. + + @param svgFile file path of the SVG file + @type str + """ + self.svgFile = svgFile + if FileSystemUtilities.isRemoteFileName(svgFile): + try: + data = ( + ericApp() + .getObject("EricServer") + .getServiceInterface("FileSystem") + .readFile(svgFile) + ) + self.svgWidget.load(data) + except OSError as err: + EricMessageBox.warning( + self, + self.tr("SVG-Viewer"), + self.tr( + "<p>The SVG file <b>{0}</b> could not be loaded.</p>" + "<p>Reason: {1}</p>" + ).format(svgFile, str(err)), + ) + + else: + self.svgWidget.load(self.svgFile) + def __initActions(self): """ Private method to initialize the view actions.