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());
}
});
}