diff --git a/main/NekoRay.cpp b/main/NekoRay.cpp index 9c94442..c39a3b1 100644 --- a/main/NekoRay.cpp +++ b/main/NekoRay.cpp @@ -50,6 +50,7 @@ namespace NekoRay { _add(new configItem("hk_mw", &hotkey_mainwindow, itemType::string)); _add(new configItem("hk_group", &hotkey_group, itemType::string)); _add(new configItem("hk_route", &hotkey_route, itemType::string)); + _add(new configItem("hk_spmenu", &hotkey_system_proxy_menu, itemType::string)); _add(new configItem("fakedns", &fake_dns, itemType::boolean)); _add(new configItem("active_routing", &active_routing, itemType::string)); _add(new configItem("mw_size", &mw_size, itemType::string)); diff --git a/main/NekoRay_DataStore.hpp b/main/NekoRay_DataStore.hpp index de9a56e..5548813 100644 --- a/main/NekoRay_DataStore.hpp +++ b/main/NekoRay_DataStore.hpp @@ -126,6 +126,7 @@ namespace NekoRay { QString hotkey_mainwindow = ""; QString hotkey_group = ""; QString hotkey_route = ""; + QString hotkey_system_proxy_menu = ""; // Other Core ExtraCore *extraCore = new ExtraCore; diff --git a/translations/zh_CN.ts b/translations/zh_CN.ts index 86f91b5..a96e612 100644 --- a/translations/zh_CN.ts +++ b/translations/zh_CN.ts @@ -376,6 +376,10 @@ Trigger main window 显示/隐藏主窗口 + + System Proxy + 系统代理 + DialogManageGroups diff --git a/ui/dialog_hotkey.cpp b/ui/dialog_hotkey.cpp index 3dc7443..a47cb7a 100644 --- a/ui/dialog_hotkey.cpp +++ b/ui/dialog_hotkey.cpp @@ -8,6 +8,7 @@ DialogHotkey::DialogHotkey(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog ui->show_mainwindow->setKeySequence(NekoRay::dataStore->hotkey_mainwindow); ui->show_groups->setKeySequence(NekoRay::dataStore->hotkey_group); ui->show_routes->setKeySequence(NekoRay::dataStore->hotkey_route); + ui->system_proxy->setKeySequence(NekoRay::dataStore->hotkey_system_proxy_menu); GetMainWindow()->RegisterHotkey(true); } @@ -16,6 +17,7 @@ DialogHotkey::~DialogHotkey() { NekoRay::dataStore->hotkey_mainwindow = ui->show_mainwindow->keySequence().toString(); NekoRay::dataStore->hotkey_group = ui->show_groups->keySequence().toString(); NekoRay::dataStore->hotkey_route = ui->show_routes->keySequence().toString(); + NekoRay::dataStore->hotkey_system_proxy_menu = ui->system_proxy->keySequence().toString(); NekoRay::dataStore->Save(); } GetMainWindow()->RegisterHotkey(false); diff --git a/ui/dialog_hotkey.ui b/ui/dialog_hotkey.ui index d63ed4e..6cdda0f 100644 --- a/ui/dialog_hotkey.ui +++ b/ui/dialog_hotkey.ui @@ -14,17 +14,20 @@ Hotkey - - - - Trigger main window - - - - + + + + Show routes + + + + + + + Qt::StrongFocus @@ -34,19 +37,9 @@ - - - - Show routes - - - - - - @@ -54,6 +47,23 @@ + + + + Trigger main window + + + + + + + System Proxy + + + + + + @@ -64,10 +74,11 @@ - buttonBox show_mainwindow show_groups show_routes + system_proxy + buttonBox diff --git a/ui/mainwindow.cpp b/ui/mainwindow.cpp index 3967059..9f83aa5 100644 --- a/ui/mainwindow.cpp +++ b/ui/mainwindow.cpp @@ -1401,10 +1401,12 @@ void MainWindow::RegisterHotkey(bool unregister) { } if (unregister) return; - QStringList regstr; - regstr += NekoRay::dataStore->hotkey_mainwindow; - regstr += NekoRay::dataStore->hotkey_group; - regstr += NekoRay::dataStore->hotkey_route; + QStringList regstr{ + NekoRay::dataStore->hotkey_mainwindow, + NekoRay::dataStore->hotkey_group, + NekoRay::dataStore->hotkey_route, + NekoRay::dataStore->hotkey_system_proxy_menu, + }; for (const auto &key: regstr) { if (key.isEmpty()) continue; @@ -1432,6 +1434,8 @@ void MainWindow::HotkeyEvent(const QString &key) { on_menu_manage_groups_triggered(); } else if (key == NekoRay::dataStore->hotkey_route) { on_menu_routing_settings_triggered(); + } else if (key == NekoRay::dataStore->hotkey_system_proxy_menu) { + ui->menu_spmode->popup(QCursor::pos()); } }); }