예제 #1
0
 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
예제 #2
0
    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")
예제 #3
0
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