Example #1
0
    def auto_select(self):
        """读取配置文件设置 ui 状态
        """
        jf = setting_fftool.read_setting()
        keys = ("pt_file", "pw_file", "frame_file", "watermark_file",
                "number_file", "number_file_2", "number_file_3")
        keys2 = ("pt_select", "pw_select", "frame_select", "watermark_select",
                 "number_select", "number_select_2", "number_select_3")

        fc_number = self.fc_number
        objs = (self.fc_pt, self.fc_pw, self.fc_frame, self.fc_watermark,
                fc_number, fc_number, fc_number)
        for i in range(len(objs)):
            key = keys[i]
            text = jf[key] if key in jf else ''
            if text:
                text = utils.pathlib_path(text)
            key = keys2[i]
            select_str = jf[key] if key in jf else '0'

            key = keys[i]
            if key == 'number_file':
                fc_number.set_select_and_text(1, select_str, text)
            elif key == 'number_file_2':
                fc_number.set_select_and_text(2, select_str, text)
            elif key == 'number_file_3':
                fc_number.set_select_and_text(3, select_str, text)
            else:
                objs[i].set_select_and_text(select_str, text)

        key = "number_15_select"
        select_str = jf[key] if key in jf else '0'
        self.fc_number.set_select_15(select_str)
        self.fc_out.set_text(setting_fftool.output_dir)
Example #2
0
    def auto_select(self):
        # 读取上次的备案号地址
        jf = setting_fftool.read_setting()
        key = "number_file"
        text = jf[key] if key in jf else ''
        if text:
            text = utils.pathlib_path(text)
            self.fc_number.set_select_and_text(0, text)

        self.fc_out.set_text(setting_fftool.output_dir)
Example #3
0
    def open_folder_call(self):
        """打开文件夹对话框
        """
        init_dir = self.txt['text']
        folder = filedialog.askdirectory(title='选择目录', initialdir=init_dir)
        if folder:
            folder = utils.pathlib_path(folder)
            self.txt['text'] = folder
            setting_fftool.output_dir = folder

        if self.action_btn_call is not None:
            self.action_btn_call()
Example #4
0
    def import_call(self, e):
        if setting_fftool.has_query:
            utils.showinfo("有任务正在执行,请稍后")
            return

        tup = tuple([])
        ft = self.file_types
        ft_tup = self.file_types_tup
        if e.widget == self.import_btn:
            tup = filedialog.askopenfilenames(
                filetypes=ft,
                title='导入文件',
                initialdir=setting_fftool.last_folder)

        elif e.widget == self.import_list_btn:
            if os.path.exists(setting_fftool.list_file):
                arr = utils.read_txt(setting_fftool.list_file)
                new_arr = []
                for f in arr:
                    if os.path.exists(f):
                        new_arr.append(f)
                if not len(new_arr):
                    utils.showinfo('txt中的地址都不正确' + setting_fftool.list_file)
                    return
                tup = tuple(new_arr)

        elif e.widget == self.import_dir_btn:
            folder = filedialog.askdirectory(
                title='选择目录', initialdir=setting_fftool.last_folder)
            if folder:
                folder = utils.pathlib_path(folder)
                setting_fftool.last_folder = folder
                arr = []
                new_arr = []
                # 获得目录下所有文件
                utils.list_dir(folder, arr)
                # 过滤出指定格式的文件
                for f in arr:
                    suffix = str(Path(f).suffix)
                    for f_type in ft_tup:
                        if suffix == f_type:
                            new_arr.append(f)
                            break
                tup = tuple(new_arr)

        if len(tup):
            tup = utils.pathlib_path_tup(tup, True)
            self.tree.set_list(list(tup))
            # self.start.set_state(True)
            # self.clear_query()

            setting_fftool.last_folder = utils.pathlib_parent(tup[0])
Example #5
0
    def open_file_call(self):
        """打开文件对话框
        """
        f_type = self.filetypes
        init_dir = self.txt['text']
        init_dir = str(Path(init_dir).parent)
        if len(f_type):
            f = filedialog.askopenfilename(filetypes=f_type,
                                           title='选择文件',
                                           initialdir=init_dir)
            if f:
                self.txt['text'] = utils.pathlib_path(f)

        if self.action_btn_call is not None:
            self.action_btn_call()
Example #6
0
    def leave_right(self, event):
        """移出右侧粘贴框
        """
        if self.hasQuery:
            return
        ss = self.paste_r.get(1.0, tk.END)
        arr = utils.split_str(ss, False)
        if len(arr) and arr[0] == self.msg_right:
            # print("默认")
            return

        # 如果是文件路径,则取出文件名和扩展名 / 文件夹名
        narr = []
        for i in range(len(arr)):
            arr[i] = utils.pathlib_path(arr[i])
            item = arr[i]
            item = item.strip("\t").strip(" ")
            item = item.strip("\t").strip(" ")
            item = item.strip('"').strip("'")
            p = Path(item)
            if p.name:
                narr.append(p.name)

        if not len(narr):
            self.paste_r.delete(1.0, tk.END)
            self.paste_r.insert(tk.INSERT, self.msg_right)
            return

        # self.varR.set(tuple(narr))
        # self.varC.set(tuple([]))
        self.svR.set(narr)
        self.svC.set([])
        self.sortRS['text'] = self.sortDesc[0]
        self.RightIsReverse = False

        # vlstr = self.varL.get()
        # vrstr = self.varR.get()
        # varIsN = util.stringVarisN
        # if varIsN(vlstr) or varIsN(vrstr):
        validL = self.svL.is_null()
        validR = self.svR.is_null()
        if not validL or not validR:
            utils.set_state(self.start_btn, True)

        self.paste_r.delete(1.0, tk.END)
        self.paste_r.insert(tk.INSERT, self.msg_right)
Example #7
0
    def paste_leave_left(self, event):
        """移出左侧粘贴框
        """
        if self.hasQuery:
            return
        ss = self.paste_l.get(1.0, tk.END)
        arr = utils.split_str(ss, False)
        if len(arr) and arr[0] == self.msgLeft:
            # print("默认")
            return

        # 检查文件/文件夹是否存在
        narr = []
        no_exists_arr = []
        for i in range(len(arr)):
            arr[i] = utils.pathlib_path(arr[i])
            item = arr[i]
            if len(item) < 3:
                continue
            if os.path.exists(item):
                narr.append(item)
            else:
                no_exists_arr.append(item)

        if not len(narr):
            self.paste_l.delete(1.0, tk.END)
            self.paste_l.insert(tk.INSERT, self.msgLeft, "right")
            return

        # 去重
        tarr = []
        for item in narr:
            if not tarr.count(item):
                tarr.append(item)
        narr = tarr

        # self.varL.set(tuple(narr))
        # self.varC.set(tuple([]))
        self.svL.set(narr)
        self.svC.set([])
        self.sortLS['text'] = self.sortDesc[0]
        self.LeftIsReverse = False
        self.list_l.xview_moveto(1.0)

        # vlstr = self.varL.get()
        # vrstr = self.varR.get()
        # validL = False if util.stringVarisN(vlstr) else True
        # validR = False if util.stringVarisN(vrstr) else True
        validL = False if self.svL.is_null() else True
        validR = False if self.svR.is_null() else True
        if validL and validR:
            utils.set_state(self.start_btn, True)

        self.paste_l.delete(1.0, tk.END)
        self.paste_l.insert(tk.INSERT, self.msgLeft, "right")

        num1 = len(no_exists_arr)
        if num1:
            file_name_str = "\n".join(str(item) for item in no_exists_arr)
            utils.showinfo('{0}个文件不存在,将不参与重命名:{1}\n'.format(
                num1, file_name_str))