增加解除占用功能
This commit is contained in:
+57
-2
@@ -3,7 +3,7 @@ import os
|
||||
from PyQt6.QtWidgets import (
|
||||
QDialog, QHBoxLayout, QVBoxLayout, QListWidget, QListWidgetItem,
|
||||
QStackedWidget, QWidget, QLabel, QSlider, QPushButton,
|
||||
QCheckBox, QGroupBox, QFormLayout, QSpinBox, QFrame
|
||||
QCheckBox, QGroupBox, QFormLayout, QSpinBox, QFrame, QLineEdit, QFileDialog
|
||||
)
|
||||
from PyQt6.QtCore import Qt, QSize
|
||||
from PyQt6.QtWidgets import QMessageBox
|
||||
@@ -12,6 +12,7 @@ import qtawesome as qta
|
||||
from db import database
|
||||
import ui.theme as theme
|
||||
import ui.dialog_style as dialog_style
|
||||
from app_info import APP_NAME, __VERSION__
|
||||
|
||||
|
||||
class SettingsWindow(QDialog):
|
||||
@@ -51,6 +52,7 @@ class SettingsWindow(QDialog):
|
||||
("fa5s.paint-brush", "外观"),
|
||||
("fa5s.window-maximize", "窗口"),
|
||||
("fa5s.rocket", "启动"),
|
||||
("fa5s.folder-open", "缓存"),
|
||||
("fa5s.heart", "捐赠"),
|
||||
("fa5s.eraser", "初始化"),
|
||||
]
|
||||
@@ -75,6 +77,7 @@ class SettingsWindow(QDialog):
|
||||
self.stack.addWidget(self._page_appearance())
|
||||
self.stack.addWidget(self._page_window())
|
||||
self.stack.addWidget(self._page_startup())
|
||||
self.stack.addWidget(self._page_cache())
|
||||
self.stack.addWidget(self._page_donate())
|
||||
self.stack.addWidget(self._page_initialization())
|
||||
# 此时 stack 已就绪,允许导航回调正常工作
|
||||
@@ -241,13 +244,65 @@ class SettingsWindow(QDialog):
|
||||
layout.addWidget(self._divider())
|
||||
layout.addWidget(self._section_title("关于"))
|
||||
|
||||
about = QLabel("桌面文件整理 v1.0\n整理你的桌面快捷方式,保持桌面干净。")
|
||||
about = QLabel(f"{APP_NAME} v{__VERSION__}\n整理你的桌面快捷方式,保持桌面干净。")
|
||||
about.setStyleSheet("color:#888; font-size:12px; line-height:1.6;")
|
||||
layout.addWidget(about)
|
||||
|
||||
layout.addStretch()
|
||||
return page
|
||||
|
||||
# ── 缓存页 ───────────────────────────────────────────
|
||||
def _page_cache(self) -> QWidget:
|
||||
page = QWidget()
|
||||
layout = QVBoxLayout(page)
|
||||
layout.setContentsMargins(24, 20, 24, 20)
|
||||
layout.setSpacing(16)
|
||||
|
||||
layout.addWidget(self._section_title("缓存目录"))
|
||||
|
||||
desc = QLabel("下载的免安装软件/安装包默认保存到该目录。")
|
||||
desc.setWordWrap(True)
|
||||
desc.setStyleSheet("color:#888; font-size:12px; line-height:1.6;")
|
||||
layout.addWidget(desc)
|
||||
|
||||
row = QHBoxLayout()
|
||||
row.setSpacing(10)
|
||||
|
||||
self._cache_path_edit = QLineEdit()
|
||||
self._cache_path_edit.setPlaceholderText("请选择缓存目录…")
|
||||
self._cache_path_edit.setText(database.get_setting("cache_dir", ""))
|
||||
|
||||
browse = QPushButton("浏览…")
|
||||
browse.clicked.connect(self._choose_cache_dir)
|
||||
|
||||
save = QPushButton("保存")
|
||||
save.clicked.connect(self._save_cache_dir)
|
||||
|
||||
row.addWidget(self._cache_path_edit)
|
||||
row.addWidget(browse)
|
||||
row.addWidget(save)
|
||||
layout.addLayout(row)
|
||||
|
||||
layout.addStretch()
|
||||
return page
|
||||
|
||||
def _choose_cache_dir(self):
|
||||
cur = ""
|
||||
if hasattr(self, "_cache_path_edit"):
|
||||
cur = self._cache_path_edit.text().strip()
|
||||
start = cur if cur else os.path.expanduser("~")
|
||||
p = QFileDialog.getExistingDirectory(self, "选择缓存目录", start)
|
||||
if p:
|
||||
self._cache_path_edit.setText(p)
|
||||
|
||||
def _save_cache_dir(self):
|
||||
p = self._cache_path_edit.text().strip() if hasattr(self, "_cache_path_edit") else ""
|
||||
if p and not os.path.isdir(p):
|
||||
dialog_style.warning(self, "无效目录", "选择的缓存目录不存在,请重新选择。")
|
||||
return
|
||||
database.set_setting("cache_dir", p)
|
||||
dialog_style.information(self, "已保存", "缓存目录已保存。")
|
||||
|
||||
# ── 捐赠页 ───────────────────────────────────────────
|
||||
def _page_donate(self) -> QWidget:
|
||||
page = QWidget()
|
||||
|
||||
Reference in New Issue
Block a user