From 7682b586eeccd85dc0c0569caaf716ebb03c79bc Mon Sep 17 00:00:00 2001 From: Loren Eteval Date: Sun, 5 Apr 2026 00:53:23 +0800 Subject: [PATCH] Added "Activate Selected Server" in server menu Signed-off-by: Loren Eteval --- Furious/Externals/GenTranslation.py | 8 +++++ Furious/Widget/UserServersQTableWidget.py | 37 +++++++++++++++++++++-- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/Furious/Externals/GenTranslation.py b/Furious/Externals/GenTranslation.py index 4bdf45b..ece0b8b 100644 --- a/Furious/Externals/GenTranslation.py +++ b/Furious/Externals/GenTranslation.py @@ -1842,5 +1842,13 @@ TRANSLATION = { "RU": "Введите URL теста состояния сети:", "ZH": "输入网络状态测试URL:", "isReviewed": "True" + }, + "Activate Selected Server": { + "source": [ + "Furious.Widget.UserServersQTableWidget" + ], + "RU": "Активировать выбранный сервер", + "ZH": "激活选定的服务器", + "isReviewed": "True" } } diff --git a/Furious/Widget/UserServersQTableWidget.py b/Furious/Widget/UserServersQTableWidget.py index ea6f0cd..71f190c 100644 --- a/Furious/Widget/UserServersQTableWidget.py +++ b/Furious/Widget/UserServersQTableWidget.py @@ -906,6 +906,14 @@ class UserServersQTableWidget(Mixins.QTranslatable, AppQTableWidget): checkable=False, ) + self.activateSelectedServerActionRef = AppQAction( + _('Activate Selected Server'), + callback=lambda: self.activateSelectedServer(), + shortcut=QtCore.QKeyCombination( + QtCore.Qt.Key.Key_Enter, + ), + ) + contextMenuActions = [ AppQAction( _('Move Up'), @@ -944,6 +952,7 @@ class UserServersQTableWidget(Mixins.QTranslatable, AppQTableWidget): ), ), AppQSeperator(), + self.activateSelectedServerActionRef, AppQAction( _('Scroll To Activated Server'), callback=lambda: self.scrollToActivatedItem(), @@ -1081,9 +1090,17 @@ class UserServersQTableWidget(Mixins.QTranslatable, AppQTableWidget): @QtCore.Slot() def handleItemSelectionChanged(self): if len(self.selectedIndex) > 1: - self.customizeJSONConfigActionRef.setDisabled(True) + for action in [ + self.customizeJSONConfigActionRef, + self.activateSelectedServerActionRef, + ]: + action.setDisabled(True) else: - self.customizeJSONConfigActionRef.setDisabled(False) + for action in [ + self.customizeJSONConfigActionRef, + self.activateSelectedServerActionRef, + ]: + action.setDisabled(False) @QtCore.Slot(QTableWidgetItem) def handleItemActivated(self, item: QTableWidgetItem): @@ -1619,6 +1636,22 @@ class UserServersQTableWidget(Mixins.QTranslatable, AppQTableWidget): ) self.textEditorWindow.show() + def activateSelectedServer(self): + indexes = self.selectedIndex + + if len(indexes) == 0: + # Nothing selected. Do nothing + return + + if len(indexes) != 1: + # Should not reach here + return + + item = self.item(indexes[0], 0) + + if item is not None: + self.handleItemActivated(item) + def scrollToActivatedItem(self): activatedItem = self.activatedItem()