Files

64 lines
1.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 通用工具连接器
from typing import List
from PySide2.QtCore import QObject, Slot
from . import utils
from . import file_finder # 文件搜索器
from ..platform import Platform # 跨平台
from .thread_pool import threadRun # 异步执行函数
class UtilsConnector(QObject):
def __init__(self):
super().__init__()
# 将文本写入剪贴板
@Slot(str)
def copyText(self, text):
utils.copyText(text)
# 用系统应用打开文件或目录
@Slot(str)
def startfile(self, path):
Platform.startfile(path)
# 硬件控制
@Slot(str)
def hardwareCtrl(self, key):
if key == "shutdown": # 关机
Platform.HardwareCtrl.shutdown()
elif key == "hibernate": # 休眠
Platform.HardwareCtrl.hibernate()
# 同步搜索文件,返回合法的文件路径列表
@Slot("QVariant", bool, str, result="QVariant")
def findFiles(self, paths, sufType, isRecurrence):
return file_finder.findFiles(paths, sufType, isRecurrence)
# 异步搜索文件
@Slot("QVariant", str, bool, str, str, float)
def asynFindFiles(
self,
paths: List, # 初始路径列表
sufType: str, # 后缀类型FileSuf的key
isRecurrence: bool, # 若为True则递归搜索
completeKey: str, # 全部完成后的事件key。向事件传入合法路径列表。
updateKey: str, # 加载中刷新进度的key不填则无。向事件传入 (已完成的路径数量, 最近一条路径)
updateTime: float, # 刷新进度的间距
):
threadRun(
file_finder.asynFindFiles,
paths,
sufType,
isRecurrence,
completeKey,
updateKey,
updateTime,
)
# QUrl列表 转 String列表
@Slot("QVariant", result="QVariant")
def QUrl2String(self, fileUrls):
return utils.QUrl2String(fileUrls)