def save_file(self, editorWidget=None): if not editorWidget: editorWidget = self.get_actual_editor() if not editorWidget: return False try: editorWidget.just_saved = True if editorWidget.newDocument or \ not file_manager.has_write_permission(editorWidget.ID): return self.save_file_as() fileName = editorWidget.ID self.emit(SIGNAL("beforeFileSaved(QString)"), fileName) if settings.REMOVE_TRAILING_SPACES: helpers.remove_trailing_spaces(editorWidget) content = editorWidget.get_text() file_manager.store_file_content( fileName, content, addExtension=False) self._file_watcher.allow_kill = False if editorWidget.ID != fileName: self.remove_standalone_watcher(editorWidget.ID) self.add_standalone_watcher(fileName) self._file_watcher.allow_kill = True editorWidget.ID = fileName encoding = file_manager.get_file_encoding(content) editorWidget.encoding = encoding self.emit(SIGNAL("fileSaved(QString)"), self.tr("File Saved: %1").arg(fileName)) editorWidget._file_saved() return True except Exception, reason: editorWidget.just_saved = False logger.error('save_file: %s', reason) QMessageBox.information(self, self.tr("Save Error"), self.tr("The file couldn't be saved!"))
def __open_file(self, fileName='', cursorPosition=-1, tabIndex=None, positionIsLineNumber=False, notStart=True): try: if not self.is_open(fileName): self.actualTab.notOpening = False content = file_manager.read_file_content(fileName) editorWidget = self.add_editor(fileName, tabIndex=tabIndex, use_open_highlight=True) editorWidget.highlighter.set_open_visible_area( positionIsLineNumber, cursorPosition) #Add content #we HAVE to add the editor's content before set the ID #because of the minimap logic editorWidget.setPlainText(content) editorWidget.ID = fileName editorWidget.async_highlight() encoding = file_manager.get_file_encoding(content) editorWidget.encoding = encoding if cursorPosition == -1: cursorPosition = 0 if not positionIsLineNumber: editorWidget.set_cursor_position(cursorPosition) else: editorWidget.go_to_line(cursorPosition) self.add_standalone_watcher(editorWidget.ID, notStart) #New file then try to add a coding line if not content: helpers.insert_coding_line(editorWidget) self.save_file(editorWidget=editorWidget) if not editorWidget.has_write_permission(): fileName += self.tr(" (Read-Only)") index = self.actualTab.currentIndex() self.actualTab.setTabText(index, fileName) else: self.move_to_open(fileName) editorWidget = self.get_actual_editor() if editorWidget and notStart and cursorPosition != -1: if positionIsLineNumber: editorWidget.go_to_line(cursorPosition) else: editorWidget.set_cursor_position(cursorPosition) self.emit(SIGNAL("currentTabChanged(QString)"), fileName) except file_manager.NinjaIOException as reason: if notStart: QMessageBox.information(self, self.tr("The file couldn't be open"), str(reason)) except Exception as reason: logger.error('open_file: %s', reason) self.actualTab.notOpening = True
def __open_file(self, fileName='', cursorPosition=-1, tabIndex=None, positionIsLineNumber=False, notStart=True): try: if not self.is_open(fileName): print("can not opened!") self.actualTab.notOpening = False content = file_manager.read_file_content(fileName) editorWidget = self.add_editor(fileName, tabIndex=tabIndex, use_open_highlight=True) #Add content #we HAVE to add the editor's content before set the ID #because of the minimap logic editorWidget.setPlainText(content) editorWidget.ID = fileName editorWidget.async_highlight() encoding = file_manager.get_file_encoding(content) editorWidget.encoding = encoding if cursorPosition == -1: cursorPosition = 0 if not positionIsLineNumber: editorWidget.set_cursor_position(cursorPosition) else: editorWidget.go_to_line(cursorPosition) self.add_standalone_watcher(editorWidget.ID, notStart) #New file then try to add a coding line if not content: helpers.insert_coding_line(editorWidget) self.save_file(editorWidget=editorWidget) if not editorWidget.has_write_permission(): fileName += _translate("_s_MainContainer", " (Read-Only)") index = self.actualTab.currentIndex() self.actualTab.setTabText(index, fileName) else: print("has opened") self.move_to_open(fileName) editorWidget = self.get_actual_editor() if editorWidget and notStart and cursorPosition != -1: if positionIsLineNumber: editorWidget.go_to_line(cursorPosition) else: editorWidget.set_cursor_position(cursorPosition) print("file.FileName::", fileName) self.currentTabChanged.emit(fileName) except file_manager.NinjaIOException as reason: if notStart: QMessageBox.information(self, _translate("_s_MainContainer", "The file couldn't be open"), str(reason)) except Exception as reason: logger.error('open_file: %s', reason) self.actualTab.notOpening = True
def __open_file(self, fileName='', cursorPosition=-1, tabIndex=None, positionIsLineNumber=False, notStart=True): try: if not self.is_open(fileName): self.actualTab.notOpening = False content = file_manager.read_file_content(fileName) editorWidget = self.add_editor(fileName, tabIndex=tabIndex, use_open_highlight=True) editorWidget.highlighter.set_open_visible_area( positionIsLineNumber, cursorPosition) #Add content editorWidget.ID = fileName editorWidget.setPlainText(content) editorWidget.async_highlight() encoding = file_manager.get_file_encoding(content) editorWidget.encoding = encoding if cursorPosition == -1: cursorPosition = 0 if not positionIsLineNumber: editorWidget.set_cursor_position(cursorPosition) else: editorWidget.go_to_line(cursorPosition) self.add_standalone_watcher(editorWidget.ID, notStart) #New file then try to add a coding line if not content: helpers.insert_coding_line(editorWidget) self.save_file(editorWidget=editorWidget) if not editorWidget.has_write_permission(): fileName += self.tr(" (Read-Only)") index = self.actualTab.currentIndex() self.actualTab.setTabText(index, fileName) else: self.move_to_open(fileName) editorWidget = self.get_actual_editor() if editorWidget and notStart and cursorPosition != -1: if positionIsLineNumber: editorWidget.go_to_line(cursorPosition) else: editorWidget.set_cursor_position(cursorPosition) self.emit(SIGNAL("currentTabChanged(QString)"), fileName) except file_manager.NinjaIOException as reason: if not notStart: QMessageBox.information(self, self.tr("The file couldn't be open"), reason) except Exception as reason: logger.error('open_file: %s', reason) self.actualTab.notOpening = True
def __open_file(self, fileName='', cursorPosition=-1,\ tabIndex=None, positionIsLineNumber=False, notStart=True): try: if not self.is_open(fileName): self.actualTab.notOpening = False content = file_manager.read_file_content(fileName) editorWidget = self.add_editor(fileName, tabIndex=tabIndex, use_open_highlight=True) editorWidget.highlighter.set_open_visible_area( positionIsLineNumber, cursorPosition) #Add content editorWidget.setPlainText(content) editorWidget.ID = fileName editorWidget.async_highlight() encoding = file_manager.get_file_encoding(content) editorWidget.encoding = encoding if cursorPosition == -1: cursorPosition = 0 if not positionIsLineNumber: editorWidget.set_cursor_position(cursorPosition) else: editorWidget.go_to_line(cursorPosition) self.add_standalone_watcher(editorWidget.ID, notStart) if not editorWidget.has_write_permission(): fileName += unicode(self.tr(" (Read-Only)")) index = self.actualTab.currentIndex() self.actualTab.setTabText(index, fileName) else: self.move_to_open(fileName) editorWidget = self.get_actual_editor() if editorWidget and notStart and cursorPosition != -1: if positionIsLineNumber: editorWidget.go_to_line(cursorPosition) else: editorWidget.set_cursor_position(cursorPosition) self.emit(SIGNAL("currentTabChanged(QString)"), fileName) except file_manager.NinjaIOException, reason: if not notStart: QMessageBox.information(self, self.tr("The file couldn't be open"), unicode(reason))
def save_file(self, editorWidget=None): if not editorWidget: editorWidget = self.get_actual_editor() if not editorWidget: return False try: editorWidget.just_saved = True if editorWidget.newDocument or \ not file_manager.has_write_permission(editorWidget.ID): return self.save_file_as() fileName = editorWidget.ID self.emit(SIGNAL("beforeFileSaved(QString)"), fileName) if settings.REMOVE_TRAILING_SPACES: helpers.remove_trailing_spaces(editorWidget) content = editorWidget.get_text() file_manager.store_file_content(fileName, content, addExtension=False) self._file_watcher.allow_kill = False if editorWidget.ID != fileName: self.remove_standalone_watcher(editorWidget.ID) self.add_standalone_watcher(fileName) self._file_watcher.allow_kill = True editorWidget.ID = fileName encoding = file_manager.get_file_encoding(content) editorWidget.encoding = encoding self.emit(SIGNAL("fileSaved(QString)"), self.tr("File Saved: %s" % fileName)) editorWidget._file_saved() return True except Exception as reason: print(reason) raise editorWidget.just_saved = False logger.error('save_file: %s', reason) QMessageBox.information(self, self.tr("Save Error"), self.tr("The file couldn't be saved!")) return False