dev 02011812

This commit is contained in:
Julian Freeman
2024-02-01 18:12:45 -04:00
parent 3e17def627
commit 38d98dee94
14 changed files with 536 additions and 406 deletions

101
mw_dailycheck.py Normal file
View File

@@ -0,0 +1,101 @@
# coding: utf8
import json
from pathlib import Path
from PySide6 import QtWidgets, QtGui, QtCore
from wg_basic import WgBasic
from wg_software import WgSoftware
from wg_extensions import WgExtensions
from global_vars import (
request_content,
accept_warning,
)
class UiMwDailyCheck(object):
def __init__(self, window: QtWidgets.QMainWindow):
self.cw = QtWidgets.QWidget(window)
window.setCentralWidget(self.cw)
self.vly_m = QtWidgets.QVBoxLayout()
self.cw.setLayout(self.vly_m)
self.tw_m = QtWidgets.QTabWidget(self.cw)
self.vly_m.addWidget(self.tw_m)
self.wg_basic = WgBasic(self.cw)
self.wg_software = WgSoftware(self.cw)
self.wg_extensions = WgExtensions(self.cw)
self.tw_m.addTab(self.wg_basic, "基本信息")
self.tw_m.addTab(self.wg_software, "已安装软件")
self.tw_m.addTab(self.wg_extensions, "已安装插件")
self.menu_bar = window.menuBar()
self.menu_help = self.menu_bar.addMenu("帮助")
self.menu_about = self.menu_bar.addMenu("关于")
self.act_update_safe = QtGui.QAction("更新安全标注", window)
self.act_export_unknown = QtGui.QAction("导出未知", window)
self.act_about = QtGui.QAction("关于", window)
self.act_about_qt = QtGui.QAction("关于 Qt", window)
self.menu_help.addActions([self.act_update_safe, self.act_export_unknown])
self.menu_about.addActions([self.act_about, self.act_about_qt])
class MwDailyCheck(QtWidgets.QMainWindow):
def __init__(self, version: tuple, parent=None):
super().__init__(parent)
self.version = version
self.setWindowTitle("日常检查工具")
self.setWindowIcon(QtGui.QIcon(":/images/dailycheck_128.png"))
self.ui = UiMwDailyCheck(self)
self.ui.act_update_safe.triggered.connect(self.on_act_update_safe_triggered)
self.ui.act_export_unknown.triggered.connect(self.on_act_export_unknown_triggered)
self.ui.act_about.triggered.connect(self.on_act_about_triggered)
self.ui.act_about_qt.triggered.connect(self.on_act_about_qt_triggered)
def sizeHint(self):
return QtCore.QSize(800, 600)
def on_act_about_triggered(self):
msg = f"日常检查工具\n\n适用于 Windows 平台。版本:{self.version[0]}.{self.version[1]}.{self.version[-1]}"
QtWidgets.QMessageBox.about(self, "关于", msg)
def on_act_about_qt_triggered(self):
QtWidgets.QMessageBox.aboutQt(self, "关于 Qt")
def on_act_update_safe_triggered(self):
root_url = "https://julianfreeman.github.io/dailycheckutils"
marks_all = request_content(f"{root_url}/marks_all.json").decode("utf8")
if len(marks_all) == 0:
return
marks_all_d = json.loads(marks_all)
self.ui.wg_software.update_safe(marks_all_d["software_win"])
self.ui.wg_extensions.update_safe(marks_all_d["extensions"])
self.ui.wg_basic.update_safe(marks_all_d["isp"], marks_all_d["manufacturer"])
def on_act_export_unknown_triggered(self):
dirname = QtWidgets.QFileDialog.getExistingDirectory(self, "导出未知")
if len(dirname) == 0:
return
ex_file = Path(dirname, f"未知信息.json")
if accept_warning(self, ex_file.exists(), "警告", "文件已存在,确认覆盖吗?"):
return
unknown_software = self.ui.wg_software.export_unknown()
unknown_ext = self.ui.wg_extensions.export_unknown()
unknown_isp_manu = self.ui.wg_basic.export_unknown()
unknown_all = {
"software_win": unknown_software,
"extensions": unknown_ext,
}
unknown_all.update(unknown_isp_manu)
with open(ex_file, "w", encoding="utf8") as f:
json.dump(unknown_all, f, indent=4, ensure_ascii=False)
QtWidgets.QMessageBox.information(self, "提示", f"已导出到 {ex_file}")