243 if not fileName: |
243 if not fileName: |
244 return False |
244 return False |
245 |
245 |
246 return self.__saveFile(fileName) |
246 return self.__saveFile(fileName) |
247 |
247 |
|
248 def __saveCopy(self): |
|
249 """ |
|
250 Private slot to save a copy of the file with a new name. |
|
251 """ |
|
252 fileName = E5FileDialog.getSaveFileName(self) |
|
253 if not fileName: |
|
254 return |
|
255 |
|
256 QApplication.setOverrideCursor(Qt.WaitCursor) |
|
257 txt = self.__textEdit.text() |
|
258 try: |
|
259 self.encoding = Utilities.writeEncodedFile( |
|
260 fileName, txt, self.encoding) |
|
261 except (IOError, Utilities.CodingError, UnicodeError) as why: |
|
262 E5MessageBox.critical( |
|
263 self, self.tr('Save File'), |
|
264 self.tr('<p>The file <b>{0}</b> could not be saved.<br/>' |
|
265 'Reason: {1}</p>') |
|
266 .format(fileName, str(why))) |
|
267 QApplication.restoreOverrideCursor() |
|
268 return |
|
269 |
|
270 QApplication.restoreOverrideCursor() |
|
271 self.__statusBar.showMessage(self.tr("File saved"), 2000) |
|
272 |
|
273 return |
|
274 |
248 def __about(self): |
275 def __about(self): |
249 """ |
276 """ |
250 Private slot to show a little About message. |
277 Private slot to show a little About message. |
251 """ |
278 """ |
252 E5MessageBox.about( |
279 E5MessageBox.about( |
420 """<p>Save the contents of current editor window to a new file.""" |
447 """<p>Save the contents of current editor window to a new file.""" |
421 """ The file can be entered in a file selection dialog.</p>""" |
448 """ The file can be entered in a file selection dialog.</p>""" |
422 )) |
449 )) |
423 self.saveAsAct.triggered.connect(self.__saveAs) |
450 self.saveAsAct.triggered.connect(self.__saveAs) |
424 self.fileActions.append(self.saveAsAct) |
451 self.fileActions.append(self.saveAsAct) |
|
452 |
|
453 self.saveCopyAct = E5Action( |
|
454 self.tr('Save Copy'), |
|
455 UI.PixmapCache.getIcon("fileSaveCopy.png"), |
|
456 self.tr('Save &Copy...'), |
|
457 0, 0, self, 'vm_file_save_copy') |
|
458 self.saveCopyAct.setStatusTip(self.tr( |
|
459 'Save a copy of the current file')) |
|
460 self.saveCopyAct.setWhatsThis(self.tr( |
|
461 """<b>Save Copy</b>""" |
|
462 """<p>Save a copy of the contents of current editor window.""" |
|
463 """ The file can be entered in a file selection dialog.</p>""" |
|
464 )) |
|
465 self.saveCopyAct.triggered.connect(self.__saveCopy) |
|
466 self.fileActions.append(self.saveCopyAct) |
425 |
467 |
426 self.closeAct = E5Action( |
468 self.closeAct = E5Action( |
427 self.tr('Close'), |
469 self.tr('Close'), |
428 UI.PixmapCache.getIcon("close.png"), |
470 UI.PixmapCache.getIcon("close.png"), |
429 self.tr('&Close'), |
471 self.tr('&Close'), |
2049 self.fileMenu = self.menuBar().addMenu(self.tr("&File")) |
2091 self.fileMenu = self.menuBar().addMenu(self.tr("&File")) |
2050 self.fileMenu.addAction(self.newAct) |
2092 self.fileMenu.addAction(self.newAct) |
2051 self.fileMenu.addAction(self.openAct) |
2093 self.fileMenu.addAction(self.openAct) |
2052 self.fileMenu.addAction(self.saveAct) |
2094 self.fileMenu.addAction(self.saveAct) |
2053 self.fileMenu.addAction(self.saveAsAct) |
2095 self.fileMenu.addAction(self.saveAsAct) |
|
2096 self.fileMenu.addAction(self.saveCopyAct) |
2054 self.fileMenu.addSeparator() |
2097 self.fileMenu.addSeparator() |
2055 self.fileMenu.addAction(self.printPreviewAct) |
2098 self.fileMenu.addAction(self.printPreviewAct) |
2056 self.fileMenu.addAction(self.printAct) |
2099 self.fileMenu.addAction(self.printAct) |
2057 self.fileMenu.addSeparator() |
2100 self.fileMenu.addSeparator() |
2058 self.fileMenu.addAction(self.closeAct) |
2101 self.fileMenu.addAction(self.closeAct) |
2090 filetb.setIconSize(UI.Config.ToolBarIconSize) |
2133 filetb.setIconSize(UI.Config.ToolBarIconSize) |
2091 filetb.addAction(self.newAct) |
2134 filetb.addAction(self.newAct) |
2092 filetb.addAction(self.openAct) |
2135 filetb.addAction(self.openAct) |
2093 filetb.addAction(self.saveAct) |
2136 filetb.addAction(self.saveAct) |
2094 filetb.addAction(self.saveAsAct) |
2137 filetb.addAction(self.saveAsAct) |
|
2138 filetb.addAction(self.saveCopyAct) |
2095 filetb.addSeparator() |
2139 filetb.addSeparator() |
2096 filetb.addAction(self.printPreviewAct) |
2140 filetb.addAction(self.printPreviewAct) |
2097 filetb.addAction(self.printAct) |
2141 filetb.addAction(self.printAct) |
2098 filetb.addSeparator() |
2142 filetb.addSeparator() |
2099 filetb.addAction(self.closeAct) |
2143 filetb.addAction(self.closeAct) |