src/eric7/ViewManager/ViewManager.py

branch
server
changeset 10546
300487f5f517
parent 10539
4274f189ff78
child 10549
517cc9f5a908
--- a/src/eric7/ViewManager/ViewManager.py	Fri Feb 02 14:55:14 2024 +0100
+++ b/src/eric7/ViewManager/ViewManager.py	Mon Feb 05 11:15:47 2024 +0100
@@ -770,13 +770,40 @@
             QCoreApplication.translate(
                 "ViewManager",
                 """<b>Save File as</b>"""
-                """<p>Save the contents of current editor window to a new file."""
+                """<p>Save the contents of the current editor window to a new file."""
                 """ The file can be entered in a file selection dialog.</p>""",
             )
         )
         self.saveAsAct.triggered.connect(self.saveAsCurrentEditor)
         self.fileActions.append(self.saveAsAct)
 
+        self.saveAsRemoteAct = EricAction(
+            QCoreApplication.translate("ViewManager", "Save as (Remote)"),
+            EricPixmapCache.getIcon("fileSaveAsRemote"),
+            QCoreApplication.translate("ViewManager", "Save as (Remote)..."),
+            0,
+            0,
+            self.saveActGrp,
+            "vm_file_save_as_remote",
+        )
+        self.saveAsRemoteAct.setStatusTip(
+            QCoreApplication.translate(
+                "ViewManager",
+                "Save the current file to a new one on an eric-ide server"
+            )
+        )
+        self.saveAsRemoteAct.setWhatsThis(
+            QCoreApplication.translate(
+                "ViewManager",
+                """<b>Save File as (Remote)</b>"""
+                """<p>Save the contents of the current editor window to a new file"""
+                """ on the connected eric-ide server. The file can be entered in a"""
+                """ file selection dialog.</p>""",
+            )
+        )
+        self.saveAsRemoteAct.triggered.connect(self.saveAsRemoteCurrentEditor)
+        self.fileActions.append(self.saveAsRemoteAct)
+
         self.saveCopyAct = EricAction(
             QCoreApplication.translate("ViewManager", "Save Copy"),
             EricPixmapCache.getIcon("fileSaveCopy"),
@@ -932,6 +959,7 @@
         menu.addSeparator()
         menu.addAction(self.saveAct)
         menu.addAction(self.saveAsAct)
+        menu.addAction(self.saveAsRemoteAct)
         menu.addAction(self.saveCopyAct)
         menu.addAction(self.saveAllAct)
         self.exportersMenuAct = menu.addMenu(self.exportersMenu)
@@ -969,6 +997,7 @@
         tb.addSeparator()
         tb.addAction(self.saveAct)
         tb.addAction(self.saveAsAct)
+        tb.addAction(self.saveAsRemoteAct)
         tb.addAction(self.saveCopyAct)
         tb.addAction(self.saveAllAct)
 
@@ -5689,6 +5718,7 @@
         @type bool
         """
         self.openRemoteAct.setEnabled(connected)
+        self.saveAsRemoteAct.setEnabled(self.saveActGrp.isEnabled() and connected)
 
     def exit(self):
         """
@@ -6299,6 +6329,29 @@
         aw = self.activeWindow()
         self.saveAsEditorEd(aw)
 
+    @pyqtSlot(Editor)
+    def saveAsRemoteEditorEd(self, ed):
+        """
+        Public slot to save the contents of an editor to a new file on a
+        connected eric-ide server.
+
+        @param ed editor to be saved
+        @type Editor
+        """
+        if ed:
+            ok = ed.saveFileAs(remote=True)
+            if ok:
+                self.setEditorName(ed, ed.getFileName())
+
+    @pyqtSlot()
+    def saveAsRemoteCurrentEditor(self):
+        """
+        Public slot to save the contents of the current editor to a new file on a
+        connected eric-ide server.
+        """
+        aw = self.activeWindow()
+        self.saveAsRemoteEditorEd(aw)
+
     def saveCopyEditorEd(self, ed):
         """
         Public slot to save the contents of an editor to a new copy of
@@ -7682,6 +7735,7 @@
         """
         self.closeActGrp.setEnabled(True)
         self.saveActGrp.setEnabled(True)
+        self.saveAsRemoteAct.setEnabled(self.ui.isEricServerConnected())
         self.exportersMenuAct.setEnabled(True)
         self.printAct.setEnabled(True)
         if self.printPreviewAct:
@@ -7714,10 +7768,7 @@
         @type bool
         """
         if editor is not None:
-            self.saveAct.setEnabled(
-                editor.isModified()
-                and not FileSystemUtilities.isRemoteFileName(editor.getFileName())
-            )
+            self.saveAct.setEnabled(editor.isModified())
             self.revertAct.setEnabled(editor.isModified())
 
             self.undoAct.setEnabled(editor.isUndoAvailable())

eric ide

mercurial