def save_as(self): """save file menu action""" if cfg.confront_file_timestamp(): return cfg.update_yaml_file(self.mainwindow.editor.text()) if cfg.curr_file is None: if cfg.imported_file_name is not None: new_file = cfg.imported_file_name else: new_file = cfg.config.data_dir + os.path.sep + "NewFile.yaml" else: new_file = cfg.curr_file dialog = QtWidgets.QFileDialog(self.mainwindow, 'Save as YAML File', new_file, "YAML Files (*.yaml)") dialog.setDefaultSuffix('.yaml') dialog.setFileMode(QtWidgets.QFileDialog.AnyFile) dialog.setAcceptMode(QtWidgets.QFileDialog.AcceptSave) dialog.setOption(QtWidgets.QFileDialog.DontConfirmOverwrite, False) dialog.setViewMode(QtWidgets.QFileDialog.Detail) if dialog.exec_(): self.autosave.delete_backup() file_name = dialog.selectedFiles()[0] cfg.save_as(file_name) self.mainwindow.update_recent_files() self._update_document_name() self.mainwindow.show_status_message("File is saved") return True return False
def new_file(self): """new file menu action""" if not self.save_old_file(): return dialog = NewFileDialog(self.mainwindow, cfg.config.data_dir) if dialog.exec_() == dialog.Rejected: return cfg.new_file() for template in dialog.templates(): with open(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'resources', 'yaml_templates',template),'r') as file: cfg.document += file.read() cfg.save_as(dialog.get_file_name()) self.mainwindow.reload() self.mainwindow.update_recent_files(0) self._update_document_name() self.mainwindow.info_page.update_from_data({'record_id': cfg.root_input_type['id']}, False) self.mainwindow.show_status_message("New file is opened")
def test_meconfig_static(request): Config.SERIAL_FILE = "ModelEditorData_test" cfg.init(None) # cfg.config is assigned assert cfg.config.__class__ == Config def fin_test_config(): import gm_base.config gm_base.config.delete_config_file("ModelEditorData_test") request.addfinalizer(fin_test_config) cfg.format_files = [] cfg._read_format_files() # read format files assert '1.8.3' in cfg.format_files cfg.curr_format_file = None cfg.set_current_format_file('1.8.3') # good name assert cfg.curr_format_file == '1.8.3' cfg.set_current_format_file('bad_name') # bad name assert cfg.curr_format_file == '1.8.3' cfg.document = "#test" cfg.changed = True cfg.curr_file = "test" cfg.new_file() # new file test assert cfg.document == "" assert cfg.changed is False assert cfg.curr_file is None cfg.document = "#test" cfg.changed = True cfg.curr_file = "test.yaml" cfg.config.add_recent_file("test.yaml", "1.8.3") cfg.save_file() def fin_test_static(): import os if os.path.isfile("test.yaml"): os.remove("test.yaml") if os.path.isfile("test2.yaml"): os.remove("test2.yaml") request.addfinalizer(fin_test_static) # save file test assert cfg.changed is False assert cfg.curr_file == "test.yaml" assert cfg.config.recent_files[0] == "test.yaml" assert cfg.config.format_files[0] == "1.8.3" cfg.document = "#test2" cfg.changed = True cfg.save_as("test2.yaml") # save us test assert cfg.changed is False assert cfg.curr_file == "test2.yaml" assert cfg.config.recent_files[0] == "test2.yaml" assert cfg.config.format_files[0] == "1.8.3" assert cfg.config.recent_files[1] == "test.yaml" assert cfg.config.format_files[1] == "1.8.3" cfg.document = "#test2" cfg.changed = True cfg.set_current_format_file('1.8.3') cfg.open_file("test.yaml") # open file test assert cfg.changed is False assert cfg.curr_file == "test.yaml" assert cfg.document == "#test" assert cfg.config.recent_files[1] == "test2.yaml" assert cfg.config.format_files[1] == "1.8.3" assert cfg.config.recent_files[0] == "test.yaml" assert cfg.config.format_files[0] == "1.8.3" assert cfg.curr_format_file == '1.8.3' cfg.document = "" cfg.changed = True cfg.set_current_format_file('1.8.3') cfg.open_recent_file("test2.yaml") # open recent file test assert cfg.changed is False assert cfg.curr_file == "test2.yaml" assert cfg.document == "#test2" assert cfg.config.recent_files[0] == "test2.yaml" assert cfg.config.format_files[0] == "1.8.3" assert cfg.config.recent_files[1] == "test.yaml" assert cfg.config.format_files[1] == "1.8.3" assert cfg.curr_format_file == '1.8.3' cfg.update_yaml_file("#new test") # test update_yaml_file 1 assert cfg.changed == True assert cfg.document == "#new test" cfg.changed = False cfg.update_yaml_file("#new test") # test update_yaml_file 2 assert cfg.changed is False assert cfg.document == "#new test" # test document parsing cfg.document = "n: 1" cfg.update() assert cfg.root.children[0].value == 1