Skip to content

Commit d48b63a

Browse files
feat(cards): 添加打开文件夹功能
- 在 utils 模块中新增 openFolder 函数 - 支持 Windows、Linux 和 macOS 平台的文件夹打开 - 修改 cards 组件中的按钮连接到新的 openFolder 函数 - 更新导入语句以包含新的 openFolder 函数 - 使用 Path 对象处理路径操作 Co-authored-by: LittleNightSong <idesong6@qq.com>
1 parent 35183bf commit d48b63a

2 files changed

Lines changed: 19 additions & 2 deletions

File tree

app/supports/utils.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import sys
33
from datetime import datetime
44
from functools import wraps
5+
from pathlib import Path
56
from time import sleep
67
from typing import Callable
78

@@ -12,6 +13,22 @@
1213

1314
from app.supports.config import cfg
1415

16+
def openFolder(path):
17+
path = Path(path)
18+
if path.exists():
19+
folder, file = path.parent, path.name
20+
match sys.platform:
21+
case 'win32':
22+
os.system(f'explorer.exe /select, "{path}"')
23+
case 'linux':
24+
os.system(f'xdg-open "{folder}"')
25+
case 'darwin':
26+
os.system(f'open -R "{path}"')
27+
28+
else:
29+
raise FileNotFoundError(path)
30+
31+
1532
def isGreaterEqualWin10():
1633
"""determine if the Windows version ≥ Win10"""
1734
cv = QOperatingSystemVersion.current()

app/view/components/cards.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
from app.bases.models import Task, TaskStatus
1313
from app.services.core_service import coreService
1414
from app.supports.recorder import taskRecorder
15-
from app.supports.utils import openFile, getReadableSize, getReadableTime
15+
from app.supports.utils import openFile, getReadableSize, getReadableTime, openFolder
1616
from app.view.components.dialogs import DeleteTaskDialog
1717
from app.view.components.labels import IconBodyLabel
1818

@@ -232,7 +232,7 @@ def _refreshIconLabel(self):
232232
def connectSignalToSlot(self):
233233
self.toggleRunningStatusButton.clicked.connect(self.toggleRunningStatus)
234234
self.openFileButton.clicked.connect(lambda: openFile(self.task.resolvePath))
235-
self.openFolderButton.clicked.connect(lambda: openFile(self.task.path))
235+
self.openFolderButton.clicked.connect(lambda: openFolder(self.task.resolvePath))
236236
self.cancelButton.clicked.connect(self._onDeleteButtonClicked)
237237

238238
def toggleRunningStatus(self):

0 commit comments

Comments
 (0)