程序主窗口
| 80 | |
| 81 | @Singleton |
| 82 | class Window(FluentWindow): # type: ignore |
| 83 | """程序主窗口""" |
| 84 | |
| 85 | deleteBtnEnabled = pyqtSignal(bool) |
| 86 | |
| 87 | def __init__(self): |
| 88 | super().__init__() |
| 89 | self.mySetTheme() |
| 90 | self.macOSLeftColumn = None # 保存macOS左侧列控件 |
| 91 | self.macOSTopRow = None # 保存macOS顶部行控件 |
| 92 | self.initWindow() |
| 93 | if system().lower() == "windows": |
| 94 | desired = bool(cfg.get(cfg.startOnStartup)) |
| 95 | actual = is_start_on_startup_enabled() |
| 96 | if desired != actual: |
| 97 | try: |
| 98 | set_start_on_startup(desired) |
| 99 | except Exception: |
| 100 | cfg.set(cfg.startOnStartup, False) |
| 101 | qconfig.save() |
| 102 | self.setWindowTitle( |
| 103 | f"MCServerLauncher {MCSL2VERSION} Final Version" # noqa: E501 |
| 104 | ) |
| 105 | |
| 106 | self.oldHook = sys.excepthook |
| 107 | sys.excepthook = self.catchExceptions |
| 108 | self.pluginManager: PluginManager = PluginManager() |
| 109 | |
| 110 | # if experiment := cfg.get( |
| 111 | # "enableExperimentalFeatures", False |
| 112 | # ): |
| 113 | # MCSL2Logger.warning(f"实验性功能已设置为{experiment}") |
| 114 | |
| 115 | # self.homeInterface = None # type: HomePage |
| 116 | # self.configureInterface = None # type: ConfigurePage |
| 117 | # self.downloadInterface = None # type: DownloadPage |
| 118 | # self.consoleInterface = None # type: ConsoleCenterPage |
| 119 | # self.pluginsInterface = None # type: PluginPage |
| 120 | # self.settingsInterface = None # type: SettingsPage |
| 121 | # self.serverManagerInterface = None # type: ServerManagerPage |
| 122 | # self.selectJavaPage = None # type: SelectJavaPage |
| 123 | # self.selectNewJavaPage = None # type: SelectNewJavaPage |
| 124 | self.homeInterface = HomePage(self) |
| 125 | self.configureInterface = ConfigurePage(self) |
| 126 | self.downloadInterface = DownloadPage(self) |
| 127 | self.consoleCenterInterface = ConsoleCenterPage(self) |
| 128 | self.pluginsInterface = PluginPage(self) |
| 129 | self.settingsInterface = SettingsPage(self) |
| 130 | self.serverManagerInterface = ServerManagerPage(self) |
| 131 | self.selectJavaPage = SelectJavaPage(self) |
| 132 | self.selectNewJavaPage = SelectNewJavaPage(self) |
| 133 | |
| 134 | # # 页面加载器 |
| 135 | # loaders = [] |
| 136 | # for config in pageLoadConfig: |
| 137 | # loader = PageLoader( |
| 138 | # config["type"], |
| 139 | # config["targetObj"], |