Skip to content

Commit 04a31ca

Browse files
committed
feat: 添加密码检测和对话框功能,优化UI主题处理
- 新增密码检测模块支持ZIP、RAR、7z格式 - 实现密码输入对话框及错误处理 - 改进UI主题自动切换功能 - 添加测试文件和资源文件 - 更新版本号至2.0.0B7 - 清理废弃的调试代码和测试文件
1 parent e6f9ecf commit 04a31ca

35 files changed

+3813
-881
lines changed

.github/workflows/build.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ jobs:
2929
if: github.event_name == 'push'
3030
uses: softprops/action-gh-release@v2
3131
with:
32-
tag_name: 2.0.0B6
33-
name: 2.0.0 Beta 4
32+
tag_name: 2.0.0B7
33+
name: 2.0.0 Beta 7
3434
body: ${{ github.event.head_commit.message }}
3535
prerelease: true
3636
files: |
@@ -53,8 +53,8 @@ jobs:
5353
if: github.event_name == 'push'
5454
uses: softprops/action-gh-release@v2
5555
with:
56-
tag_name: 2.0.0B6
57-
name: 2.0.0 Beta 6
56+
tag_name: 2.0.0B7
57+
name: 2.0.0 Beta 7
5858
body: ${{ github.event.head_commit.message }}
5959
prerelease: true
6060
files: |

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ nuitka-crash-report.xml
1111
build/
1212
develop-eggs/
1313
dist/
14+
test/
1415
downloads/
1516
eggs/
1617
.eggs/

.vscode/launch.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
// 使用 IntelliSense 了解相关属性。
3+
// 悬停以查看现有属性的描述。
4+
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"name": "Python Debugger: Current File",
9+
"type": "debugpy",
10+
"request": "launch",
11+
"program": "${file}",
12+
"console": "integratedTerminal"
13+
}
14+
]
15+
}

Converter.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
from PySide6.QtGui import QIcon, QPainter, QPixmap, QPalette
2626
from PySide6.QtCore import QSize, Qt, QSettings, QPropertyAnimation, QEasingCurve, QTimer
2727
import multiprocessing
28-
from qfluentwidgets import Theme, setTheme
28+
from qfluentwidgets import Theme, setTheme,qconfig,SystemThemeListener
2929
# Keep for freeze_support, but remove direct Process usage
3030
from settings.update_settings_gui import UpdateDialog
3131
from settings.settings_gui import SettingsDialog
@@ -92,7 +92,8 @@ def __init__(self, q_app: QApplication):
9292
# Load theme setting immediately
9393
self.settings = QSettings("MyCompany", "ConverterApp")
9494
self.theme_setting = self.settings.value("theme", 0, type=int)
95-
95+
self.themeListener = SystemThemeListener(self)
96+
9697
self.path= os.path.dirname(os.path.abspath(__file__))
9798
# Define paths for icon files
9899
self.app_icon_path = os.path.join(self.path,"AppIcon.png")
@@ -117,9 +118,23 @@ def __init__(self, q_app: QApplication):
117118
create_placeholder_icon(self.zipd_icon_path, "dimgray", "ZipD")
118119

119120
self.init_ui()
121+
setTheme(Theme.AUTO)
122+
self.themeListener.start()
123+
qconfig.themeChanged.connect(self._onThemeChanged)
120124
# Apply theme based on settings or initial system detection
121125
self._apply_system_theme_from_settings()
122-
126+
def closeEvent(self, event):
127+
"""窗口关闭事件"""
128+
# 停止监听器线程
129+
if hasattr(self, 'themeListener'):
130+
self.themeListener.terminate()
131+
self.themeListener.deleteLater()
132+
super().closeEvent(event)
133+
def _onThemeChanged(self, theme: Theme):
134+
"""主题变化处理"""
135+
# 更新界面以响应主题变化
136+
self.update()
137+
setTheme(Theme.AUTO)
123138
def _apply_system_theme(self, is_dark_mode): # This method will now be primarily for paletteChanged signal
124139
# Only apply system theme if setting is System Default
125140
if self.settings.value("theme", 0, type=int) == 0:
8 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)