diff -r 6156d9675f62 -r ea35c92a3c7c src/eric7/Tasks/TasksFile.py --- a/src/eric7/Tasks/TasksFile.py Mon Feb 19 19:37:00 2024 +0100 +++ b/src/eric7/Tasks/TasksFile.py Thu Feb 22 16:26:46 2024 +0100 @@ -16,6 +16,7 @@ from eric7.EricGui.EricOverrideCursor import EricOverridenCursor from eric7.EricWidgets import EricMessageBox from eric7.EricWidgets.EricApplication import ericApp +from eric7.SystemUtilities import FileSystemUtilities from .Task import TaskPriority, TaskType @@ -46,6 +47,10 @@ @return flag indicating a successful write @rtype bool """ + fsInterface = ( + ericApp().getObject("EricServer").getServiceInterface("FileSystem") + ) + # prepare the tasks data dictionary # step 0: header tasksDict = {} @@ -85,13 +90,18 @@ try: jsonString = json.dumps(tasksDict, indent=2) + "\n" - with open(filename, "w") as f: - f.write(jsonString) + if FileSystemUtilities.isRemoteFileName(filename): + title = self.tr("Save Remote Tasks") + fsInterface.writeFile(filename, jsonString.encode("utf-8")) + else: + title = self.tr("Save Tasks") + with open(filename, "w") as f: + f.write(jsonString) except (OSError, TypeError) as err: with EricOverridenCursor(): EricMessageBox.critical( None, - self.tr("Save Tasks"), + title, self.tr( "<p>The tasks file <b>{0}</b> could not be" " written.</p><p>Reason: {1}</p>" @@ -110,14 +120,23 @@ @return flag indicating a successful read @rtype bool """ + fsInterface = ( + ericApp().getObject("EricServer").getServiceInterface("FileSystem") + ) + try: - with open(filename, "r") as f: - jsonString = f.read() + if FileSystemUtilities.isRemoteFileName(filename): + title = self.tr("Read Remote Tasks") + jsonString = fsInterface.readFile(filename).decode("utf-8") + else: + title = self.tr("Read Tasks") + with open(filename, "r") as f: + jsonString = f.read() tasksDict = json.loads(jsonString) except (OSError, json.JSONDecodeError) as err: EricMessageBox.critical( None, - self.tr("Read Tasks"), + title, self.tr( "<p>The tasks file <b>{0}</b> could not be read.</p>" "<p>Reason: {1}</p>"