コード例 #1
0
ファイル: ui_logic.py プロジェクト: ymjia/py_scripts
def slot_new_project(ui):
    dp = get_default_proj_path(ui)
    path = ""
    while True:
        path, _ = QFileDialog.getSaveFileName(None, "Save New Project", dp, "XML(*.xml)")
        if path is None or path == "":
            return
        base_filename = os.path.basename(path)
        stem, ext = os.path.splitext(base_filename)
        if stem == "tf_proj" or stem == "cmd_history":
            QMessageBox.about(ui, "Error", "'tf_proj' and 'cmd_history' is reserved filename, please change project name!")
            continue
        if ext != ".xml":
            path += ".xml"
        break
    if path == "":
        return
    p = project_io.Project()
    p._configFile = path
    ui._p = p
    ui._p.save_xml(path)
    ui.fill_ui_info(ui._p)
    new_item = ptree_add_item(ui._pTree, path)
    ui.fill_proj_list()
    set_project_selected(ui._qlv_all_proj, new_item.attrib["name"])
    utils.indent_xml(ui._pTree.getroot())
    ui._pTree.write(ui._ptName)
コード例 #2
0
ファイル: project_io.py プロジェクト: ymjia/py_scripts
 def save_xml(self, filename=""):
     file_save = self._configFile
     if filename != "":
         file_save = filename
     if file_save == "":
         return
     self._tree = self.collect_xml()
     utils.indent_xml(self._tree.getroot())
     self._tree.write(file_save)
コード例 #3
0
ファイル: ui_logic.py プロジェクト: ymjia/py_scripts
def load_ptree_obj(ui):
    dir_lp = os.path.dirname(os.path.realpath(__file__))
    file_lp = os.path.join(dir_lp, "tf_proj.xml")
    if not os.path.exists(file_lp):
        # create new xml
        if not os.path.exists(dir_lp):
            os.makedirs(dir_lp)
        root_new = ET.Element("projects")
        ui._pTree = ET.ElementTree(root_new)
        utils.indent_xml(ui._pTree.getroot())
        ui._pTree.write(file_lp)
    else:
        # has existing, load info
        ui._pTree = ET.parse(file_lp)
コード例 #4
0
ファイル: ui_logic.py プロジェクト: ymjia/py_scripts
def slot_delete_project(ui):
    sl = ui._qlv_all_proj.selectedIndexes()
    if len(sl) < 1:
        QMessageBox.about(ui, "Error", "No Selection to Delete!")
        return
    # save old
    del_item = find_ptree_item(ui._pTree, sl[0].data())
    ui._pTree.getroot().remove(del_item)
    utils.indent_xml(ui._pTree.getroot())
    ui._pTree.write(ui._ptName)
    ui.fill_proj_list()
    # get new
    new_p = project_io.Project()
    ui._p = new_p
    ui.fill_ui_info(ui._p)
    return
コード例 #5
0
ファイル: ui_logic.py プロジェクト: ymjia/py_scripts
def slot_load_project(ui):
    dp = get_default_proj_path(ui)
    path, _filter = QFileDialog.getOpenFileName(None, 'Open File', dp, 'XML (*.xml)')
    if path is None or path == "":
        return
    if not os.path.exists(path):
        QMessageBox.about(None, "Error", "Wrong file: {}!".format(path))
        return
    p = project_io.Project()
    p.load_xml(path)
    ui.fill_ui_info(p)
    new_item = ptree_add_item(ui._pTree, path)
    ui.fill_proj_list()
    set_project_selected(ui._qlv_all_proj, new_item.attrib["name"])
    utils.indent_xml(ui._pTree.getroot())
    ui._pTree.write(ui._ptName)
    return
コード例 #6
0
ファイル: ui_logic.py プロジェクト: ymjia/py_scripts
def save_ptree_obj(ui):
    dir_lp = os.path.dirname(os.path.realpath(__file__))
    file_lp = os.path.join(dir_lp, "tf_proj.xml")
    utils.indent_xml(ui._pTree.getroot())
    ui._pTree.write(file_lp)
    return