diff --git a/.github/workflows/build-qv2ray-cmake.yml b/.github/workflows/build-qv2ray-cmake.yml index db531a8..1c1eca4 100644 --- a/.github/workflows/build-qv2ray-cmake.yml +++ b/.github/workflows/build-qv2ray-cmake.yml @@ -63,7 +63,7 @@ jobs: qt_version: "6.5" - platform: ubuntu-22.04 arch: x64 - qt_version: "5.12" + qt_version: "6.5" - platform: macos-14 arch: x64 qt_version: "6.5" diff --git a/CMakeLists.txt b/CMakeLists.txt index dfbefe5..83e2b68 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -240,9 +240,9 @@ set(PROJECT_SOURCES ui/dialog_hotkey.h ui/dialog_hotkey.ui - ui/dialog_first_setup.cpp - ui/dialog_first_setup.h - ui/dialog_first_setup.ui + + + ui/widget/ProxyItem.cpp ui/widget/ProxyItem.h diff --git a/main/NekoGui.cpp b/main/NekoGui.cpp index d3dc499..55d14f7 100644 --- a/main/NekoGui.cpp +++ b/main/NekoGui.cpp @@ -281,9 +281,6 @@ namespace NekoGui { _add(new configItem("vpn_ipv6", &vpn_ipv6, itemType::boolean)); _add(new configItem("vpn_hide_console", &vpn_hide_console, itemType::boolean)); _add(new configItem("vpn_strict_route", &vpn_strict_route, itemType::boolean)); - _add(new configItem("vpn_bypass_process", &vpn_rule_process, itemType::string)); - _add(new configItem("vpn_bypass_cidr", &vpn_rule_cidr, itemType::string)); - _add(new configItem("vpn_rule_white", &vpn_rule_white, itemType::boolean)); _add(new configItem("check_include_pre", &check_include_pre, itemType::boolean)); _add(new configItem("sp_format", &system_proxy_format, itemType::string)); _add(new configItem("sub_clear", &sub_clear, itemType::boolean)); @@ -351,7 +348,6 @@ namespace NekoGui { _add(new configItem("direct_dns_strategy", &this->direct_dns_strategy, itemType::string)); _add(new configItem("domain_strategy", &this->domain_strategy, itemType::string)); _add(new configItem("outbound_domain_strategy", &this->outbound_domain_strategy, itemType::string)); - _add(new configItem("dns_routing", &this->dns_routing, itemType::boolean)); _add(new configItem("sniffing_mode", &this->sniffing_mode, itemType::integer)); _add(new configItem("use_dns_object", &this->use_dns_object, itemType::boolean)); _add(new configItem("dns_object", &this->dns_object, itemType::string)); diff --git a/main/NekoGui_DataStore.hpp b/main/NekoGui_DataStore.hpp index 7f34fd7..621dcaa 100644 --- a/main/NekoGui_DataStore.hpp +++ b/main/NekoGui_DataStore.hpp @@ -12,7 +12,6 @@ namespace NekoGui { QString remote_dns_strategy = ""; QString direct_dns = "localhost"; QString direct_dns_strategy = ""; - bool dns_routing = true; bool use_dns_object = false; QString dns_object = ""; QString dns_final_out = "proxy"; @@ -143,9 +142,6 @@ namespace NekoGui { bool vpn_ipv6 = false; bool vpn_hide_console = true; bool vpn_strict_route = false; - bool vpn_rule_white = false; - QString vpn_rule_process = ""; - QString vpn_rule_cidr = ""; // NTP bool enable_ntp = false; diff --git a/main/main.cpp b/main/main.cpp index 8da4f2b..9d39351 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -13,7 +13,6 @@ #include "main/NekoGui.hpp" #include "ui/mainwindow_interface.h" -#include "ui/dialog_first_setup.h" #ifdef Q_OS_WIN #include "sys/windows/MiniDump.h" diff --git a/ui/dialog_first_setup.cpp b/ui/dialog_first_setup.cpp deleted file mode 100644 index 3ca16ad..0000000 --- a/ui/dialog_first_setup.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include "dialog_first_setup.h" -#include "ui_dialog_first_setup.h" - -#include "main/NekoGui.hpp" - -DialogFirstSetup::DialogFirstSetup(QWidget *parent) : QDialog(parent), ui(new Ui::DialogFirstSetup) { - ui->setupUi(this); -} - -DialogFirstSetup::~DialogFirstSetup() { - delete ui; -} - -void DialogFirstSetup::onButtonClicked() { - auto s = sender(); - NekoGui::coreType = NekoGui::CoreType::SING_BOX; - done(0); -} diff --git a/ui/dialog_first_setup.h b/ui/dialog_first_setup.h deleted file mode 100644 index ac244b5..0000000 --- a/ui/dialog_first_setup.h +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once - -#include - -QT_BEGIN_NAMESPACE -namespace Ui { - class DialogFirstSetup; -} -QT_END_NAMESPACE - -class DialogFirstSetup : public QDialog { - Q_OBJECT - -public: - explicit DialogFirstSetup(QWidget *parent = nullptr); - ~DialogFirstSetup() override; - -private: - Ui::DialogFirstSetup *ui; - -private slots: - void onButtonClicked(); -}; diff --git a/ui/dialog_first_setup.ui b/ui/dialog_first_setup.ui deleted file mode 100644 index aec0aac..0000000 --- a/ui/dialog_first_setup.ui +++ /dev/null @@ -1,116 +0,0 @@ - - - DialogFirstSetup - - - - 0 - 0 - 400 - 300 - - - - First time setup - - - - - - It looks like you are using this software for the first time, please select a core. - -These settings can be changed later. - - - true - - - - - - - <html><head/><body><p><a href="https://matsuridayo.github.io/n-configuration/#nekobox"><span style=" text-decoration: underline; color:#2980b9;">Help</span></a></p></body></html> - - - true - - - - - - - Xray - - - - - - - sing-box - - - - - - - Quit - - - - - - - - - v2ray - clicked() - DialogFirstSetup - onButtonClicked() - - - 199 - 196 - - - 199 - 149 - - - - - singbox - clicked() - DialogFirstSetup - onButtonClicked() - - - 199 - 236 - - - 199 - 149 - - - - - quit - clicked() - DialogFirstSetup - onButtonClicked() - - - 199 - 276 - - - 199 - 149 - - - - - - onButtonClicked() - - diff --git a/ui/dialog_manage_routes.cpp b/ui/dialog_manage_routes.cpp index cebe6e9..80d83cb 100644 --- a/ui/dialog_manage_routes.cpp +++ b/ui/dialog_manage_routes.cpp @@ -82,7 +82,6 @@ DialogManageRoutes::DialogManageRoutes(QWidget *parent) : QDialog(parent), ui(ne ui->domainStrategyCombo->setCurrentText(NekoGui::dataStore->routing->domain_strategy); ui->use_dns_object->setChecked(NekoGui::dataStore->routing->use_dns_object); ui->dns_object->setPlainText(NekoGui::dataStore->routing->dns_object); - ui->dns_routing->setChecked(NekoGui::dataStore->routing->dns_routing); ui->remote_dns->setCurrentText(NekoGui::dataStore->routing->remote_dns); ui->remote_dns_strategy->setCurrentText(NekoGui::dataStore->routing->remote_dns_strategy); ui->direct_dns->setCurrentText(NekoGui::dataStore->routing->direct_dns); @@ -112,7 +111,6 @@ void DialogManageRoutes::accept() { NekoGui::dataStore->routing->outbound_domain_strategy = ui->outbound_domain_strategy->currentText(); NekoGui::dataStore->routing->use_dns_object = ui->use_dns_object->isChecked(); NekoGui::dataStore->routing->dns_object = ui->dns_object->toPlainText(); - NekoGui::dataStore->routing->dns_routing = ui->dns_routing->isChecked(); NekoGui::dataStore->routing->remote_dns = ui->remote_dns->currentText(); NekoGui::dataStore->routing->remote_dns_strategy = ui->remote_dns_strategy->currentText(); NekoGui::dataStore->routing->direct_dns = ui->direct_dns->currentText(); diff --git a/ui/dialog_manage_routes.ui b/ui/dialog_manage_routes.ui index cfe4a9f..51cd579 100644 --- a/ui/dialog_manage_routes.ui +++ b/ui/dialog_manage_routes.ui @@ -48,6 +48,9 @@ + + Sniffs the connections intial packet(s?) to identify the protocol and the SNI. Sniff result for destination also rewrites the destionation of the connection to the sniffed SNI. For more data on the sniffed protocol refer to the sing-box's documentation. + Sniffing Mode @@ -111,6 +114,9 @@ For sing-box, it sets inbound.domain_strategy + + The outbound tag to use when the request is not handled by any rule + Default Outbound @@ -223,30 +229,10 @@ For more information, see the document "Configuration/DNS". - - - - Enable DNS Routing - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - Final DNS Out + Default DNS server @@ -254,7 +240,7 @@ For more information, see the document "Configuration/DNS". - proxy + remote @@ -468,7 +454,6 @@ For more information, see the document "Configuration/DNS". remote_dns_strategy direct_dns direct_dns_strategy - dns_routing dns_final_out use_dns_object format_dns_object diff --git a/ui/dialog_vpn_settings.cpp b/ui/dialog_vpn_settings.cpp index bce49b7..9ebb288 100644 --- a/ui/dialog_vpn_settings.cpp +++ b/ui/dialog_vpn_settings.cpp @@ -25,20 +25,6 @@ DialogVPNSettings::DialogVPNSettings(QWidget *parent) : QDialog(parent), ui(new ADJUST_SIZE #endif ui->strict_route->setChecked(NekoGui::dataStore->vpn_strict_route); - // - D_LOAD_STRING_PLAIN(vpn_rule_cidr) - D_LOAD_STRING_PLAIN(vpn_rule_process) - // - connect(ui->whitelist_mode, &QCheckBox::stateChanged, this, [=](int state) { - if (state == Qt::Checked) { - ui->gb_cidr->setTitle(tr("Proxy CIDR")); - ui->gb_process_name->setTitle(tr("Proxy Process Name")); - } else { - ui->gb_cidr->setTitle(tr("Bypass CIDR")); - ui->gb_process_name->setTitle(tr("Bypass Process Name")); - } - }); - ui->whitelist_mode->setChecked(NekoGui::dataStore->vpn_rule_white); } DialogVPNSettings::~DialogVPNSettings() { @@ -55,12 +41,8 @@ void DialogVPNSettings::accept() { NekoGui::dataStore->vpn_ipv6 = ui->vpn_ipv6->isChecked(); NekoGui::dataStore->vpn_hide_console = ui->hide_console->isChecked(); NekoGui::dataStore->vpn_strict_route = ui->strict_route->isChecked(); - NekoGui::dataStore->vpn_rule_white = ui->whitelist_mode->isChecked(); NekoGui::dataStore->enable_gso = ui->gso_enable->isChecked(); // - D_SAVE_STRING_PLAIN(vpn_rule_cidr) - D_SAVE_STRING_PLAIN(vpn_rule_process) - // QStringList msg{"UpdateDataStore"}; msg << "VPNChanged"; MW_dialog_message("", msg.join(",")); diff --git a/ui/dialog_vpn_settings.ui b/ui/dialog_vpn_settings.ui index ce4f287..db89e20 100644 --- a/ui/dialog_vpn_settings.ui +++ b/ui/dialog_vpn_settings.ui @@ -139,59 +139,8 @@ - - - - - - Bypass CIDR - - - - - - - - - - - - Bypass Process Name - - - - - - - - - - - - - - Whether blacklisted or whitelisted, your traffic will be handled by nekobox_core (sing-tun). This is NOT equal to "process mode" of some software. - - - Whitelist mode - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - @@ -217,29 +166,10 @@ strict_route fake_dns hide_console - vpn_rule_cidr - vpn_rule_process - whitelist_mode troubleshooting - - buttonBox - accepted() - DialogVPNSettings - accept() - - - 399 - 575 - - - 399 - 299 - - - buttonBox rejected() @@ -256,5 +186,21 @@ + + buttonBox + accepted() + DialogVPNSettings + accept() + + + 399 + 575 + + + 399 + 299 + + + diff --git a/ui/widget/RouteItem.cpp b/ui/widget/RouteItem.cpp index fd3eaba..4d043fa 100644 --- a/ui/widget/RouteItem.cpp +++ b/ui/widget/RouteItem.cpp @@ -160,8 +160,7 @@ RouteItem::RouteItem(QWidget *parent, const std::shared_ptrroute_items, &QListWidget::itemClicked, this, [=](const QListWidgetItem *item) { - auto idx = getIndexOf(item->text()); + connect(ui->route_items, &QListWidget::currentRowChanged, this, [=](const int idx) { if (idx == -1) return; currentIndex = idx; updateRuleSection();