feat: 新版本时提醒参数设置导航 (#103)
This commit is contained in:
@@ -513,6 +513,16 @@ class SettingsPage(QWidget):
|
||||
|
||||
self.updateStatusLabel.setText(message)
|
||||
|
||||
def set_update_versions(self, current_version: str, latest_version: str) -> None:
|
||||
"""同时显示本地版本和线上版本,便于判断是否需要更新。"""
|
||||
|
||||
self.currentVersionLabel.setText(
|
||||
f"本地 {current_version};线上 {latest_version}"
|
||||
)
|
||||
self.currentVersionLabel.setAccessibleName(
|
||||
f"本地版本 {current_version},线上版本 {latest_version}"
|
||||
)
|
||||
|
||||
def set_saved_android_device(self, serial: str) -> None:
|
||||
"""显示已经保存并实际用于自动化的 Android 设备。"""
|
||||
|
||||
|
||||
+36
-1
@@ -80,12 +80,22 @@ class MainWindow(FluentWindow):
|
||||
self.pddTaskPageEvent.update_admin_base_url
|
||||
)
|
||||
self.addSubInterface(self.pddTaskPage, FIF.HOME, "pdd")
|
||||
self.addSubInterface(
|
||||
self.settingsNavigationItem = self.addSubInterface(
|
||||
self.settingsPage,
|
||||
FIF.SETTING,
|
||||
"设置",
|
||||
NavigationItemPosition.BOTTOM,
|
||||
)
|
||||
self._settings_navigation_text = self.settingsNavigationItem.text()
|
||||
self._settings_navigation_light_color = (
|
||||
self.settingsNavigationItem.lightTextColor
|
||||
)
|
||||
self._settings_navigation_dark_color = (
|
||||
self.settingsNavigationItem.darkTextColor
|
||||
)
|
||||
self.settingsPage.eventBinder.updateEventBinder.updateAvailabilityChanged.connect(
|
||||
self._set_update_navigation_reminder
|
||||
)
|
||||
|
||||
self.setWindowTitle("采集采购工具")
|
||||
self.setMinimumSize(820, 560)
|
||||
@@ -93,6 +103,31 @@ class MainWindow(FluentWindow):
|
||||
self._moveToScreenCenter()
|
||||
self.pddTaskPageEvent.load_initial_tasks()
|
||||
|
||||
def _set_update_navigation_reminder(
|
||||
self,
|
||||
available: bool,
|
||||
current_version: str,
|
||||
latest_version: str,
|
||||
) -> None:
|
||||
"""用颜色和文字共同提醒更新,不让提示只依赖颜色。"""
|
||||
|
||||
if available:
|
||||
self.settingsNavigationItem.setText(
|
||||
f"{self._settings_navigation_text}(有更新)"
|
||||
)
|
||||
self.settingsNavigationItem.setTextColor("#B45309", "#FBBF24")
|
||||
self.settingsNavigationItem.setToolTip(
|
||||
f"发现新版本 {latest_version},当前版本 {current_version}"
|
||||
)
|
||||
return
|
||||
|
||||
self.settingsNavigationItem.setText(self._settings_navigation_text)
|
||||
self.settingsNavigationItem.setTextColor(
|
||||
self._settings_navigation_light_color,
|
||||
self._settings_navigation_dark_color,
|
||||
)
|
||||
self.settingsNavigationItem.setToolTip(self._settings_navigation_text)
|
||||
|
||||
def _moveToScreenCenter(self):
|
||||
screen = QApplication.primaryScreen()
|
||||
if screen is None:
|
||||
|
||||
@@ -117,6 +117,8 @@ class UpdateDownloadWorker(QObject):
|
||||
class UpdateUiEventBinder(QObject):
|
||||
"""管理更新配置、保存反馈和两个后台线程。"""
|
||||
|
||||
updateAvailabilityChanged = pyqtSignal(bool, str, str)
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
page,
|
||||
@@ -300,13 +302,27 @@ class UpdateUiEventBinder(QObject):
|
||||
def _on_check_succeeded(self, result: UpdateCheckResult) -> None:
|
||||
if self._closing:
|
||||
return
|
||||
self._page.set_update_versions(
|
||||
result.current_version,
|
||||
result.latest_version,
|
||||
)
|
||||
if not result.available or result.update is None:
|
||||
self.updateAvailabilityChanged.emit(
|
||||
False,
|
||||
result.current_version,
|
||||
result.latest_version,
|
||||
)
|
||||
self._page.set_update_status(
|
||||
f"当前已是最新版本({result.current_version})"
|
||||
)
|
||||
return
|
||||
|
||||
update = result.update
|
||||
self.updateAvailabilityChanged.emit(
|
||||
True,
|
||||
result.current_version,
|
||||
update.version,
|
||||
)
|
||||
size_mb = update.size / (1024 * 1024)
|
||||
dialog = MessageBox(
|
||||
f"发现新版本 {update.version}",
|
||||
|
||||
Reference in New Issue
Block a user