Files

64 lines
1.9 KiB
Python
Raw Permalink Normal View History

# 通用工具连接器
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)