From 16e7c358858826f70db1f70ac82312f71fb14aa6 Mon Sep 17 00:00:00 2001 From: parhelia512 <0011d3@gmail.com> Date: Wed, 29 Oct 2025 06:51:42 +0800 Subject: [PATCH] refactor: declare ruleSetMap as static const --- include/configs/ConfigBuilder.hpp | 6 +++--- include/global/Configs.hpp | 1 + include/ui/mainwindow.h | 2 -- include/ui/setting/RouteItem.h | 2 +- include/ui/setting/dialog_manage_routes.h | 4 +--- src/configs/ConfigBuilder.cpp | 10 +++++----- src/ui/mainwindow.cpp | 13 ++++--------- src/ui/mainwindow_rpc.cpp | 6 +++--- src/ui/setting/RouteItem.cpp | 2 +- src/ui/setting/dialog_manage_routes.cpp | 7 +++---- 10 files changed, 22 insertions(+), 31 deletions(-) diff --git a/include/configs/ConfigBuilder.hpp b/include/configs/ConfigBuilder.hpp index 0416ede..2f9b190 100644 --- a/include/configs/ConfigBuilder.hpp +++ b/include/configs/ConfigBuilder.hpp @@ -76,11 +76,11 @@ namespace Configs { bool IsValid(const std::shared_ptr &ent); - std::shared_ptr BuildTestConfig(const QList>& profiles, const std::map& ruleSetMap); + std::shared_ptr BuildTestConfig(const QList>& profiles); - std::shared_ptr BuildConfig(const std::shared_ptr &ent, const std::map& ruleSetMap, bool forTest, bool forExport, int chainID = 0); + std::shared_ptr BuildConfig(const std::shared_ptr &ent, bool forTest, bool forExport, int chainID = 0); - void BuildConfigSingBox(const std::shared_ptr &status, const std::map& ruleSetMap); + void BuildConfigSingBox(const std::shared_ptr &status); QJsonObject BuildDnsObject(QString address, bool tunEnabled); diff --git a/include/global/Configs.hpp b/include/global/Configs.hpp index c96cd73..db0c925 100644 --- a/include/global/Configs.hpp +++ b/include/global/Configs.hpp @@ -4,6 +4,7 @@ #include "Utils.hpp" #include "ConfigItem.hpp" #include "DataStore.hpp" +#include // Switch core support diff --git a/include/ui/mainwindow.h b/include/ui/mainwindow.h index 21ee75c..07cde75 100644 --- a/include/ui/mainwindow.h +++ b/include/ui/mainwindow.h @@ -207,8 +207,6 @@ private: // shortcuts QList hiddenMenuShortcuts; - std::map ruleSetMap; - QStringList remoteRouteProfiles; QMutex mu_remoteRouteProfiles; diff --git a/include/ui/setting/RouteItem.h b/include/ui/setting/RouteItem.h index 541d5e6..47f4c77 100644 --- a/include/ui/setting/RouteItem.h +++ b/include/ui/setting/RouteItem.h @@ -20,7 +20,7 @@ class RouteItem : public QDialog { Q_OBJECT public: - explicit RouteItem(QWidget *parent = nullptr, const std::shared_ptr& routeChain = nullptr, const std::map& ruleSetMap = {}); + explicit RouteItem(QWidget *parent = nullptr, const std::shared_ptr& routeChain = nullptr); ~RouteItem() override; std::shared_ptr chain; diff --git a/include/ui/setting/dialog_manage_routes.h b/include/ui/setting/dialog_manage_routes.h index 5c8bae8..989c730 100644 --- a/include/ui/setting/dialog_manage_routes.h +++ b/include/ui/setting/dialog_manage_routes.h @@ -18,7 +18,7 @@ class DialogManageRoutes : public QDialog { Q_OBJECT public: - explicit DialogManageRoutes(QWidget *parent = nullptr, const std::map& dataMap = {}); + explicit DialogManageRoutes(QWidget *parent = nullptr); ~DialogManageRoutes() override; @@ -35,8 +35,6 @@ private: int tooltipID = 0; - std::map ruleSetMap; - void set_dns_hijack_enability(bool enable) const; static bool validate_dns_rules(const QString &rawString); diff --git a/src/configs/ConfigBuilder.cpp b/src/configs/ConfigBuilder.cpp index 9a820f2..ba41037 100644 --- a/src/configs/ConfigBuilder.cpp +++ b/src/configs/ConfigBuilder.cpp @@ -41,7 +41,7 @@ namespace Configs { // Common - std::shared_ptr BuildConfig(const std::shared_ptr &ent, const std::map& ruleSetMap, bool forTest, bool forExport, int chainID) { + std::shared_ptr BuildConfig(const std::shared_ptr &ent, bool forTest, bool forExport, int chainID) { auto result = std::make_shared(); result->extraCoreData = std::make_shared(); auto status = std::make_shared(); @@ -60,7 +60,7 @@ namespace Configs { } result->coreConfig = QString2QJsonObject(customBean->config_simple); } else { - BuildConfigSingBox(status, ruleSetMap); + BuildConfigSingBox(status); } // apply custom config @@ -116,7 +116,7 @@ namespace Configs { } - std::shared_ptr BuildTestConfig(const QList>& profiles, const std::map& ruleSetMap) { + std::shared_ptr BuildTestConfig(const QList>& profiles) { auto results = std::make_shared(); QJsonArray outboundArray = { @@ -140,7 +140,7 @@ namespace Configs { item->latency = -1; continue; } - auto res = BuildConfig(item, ruleSetMap, true, false, ++index); + auto res = BuildConfig(item, true, false, ++index); if (!res->error.isEmpty()) { results->error = res->error; return results; @@ -509,7 +509,7 @@ namespace Configs { } - void BuildConfigSingBox(const std::shared_ptr &status, const std::map& ruleSetMap) { + void BuildConfigSingBox(const std::shared_ptr &status) { // Prefetch auto routeChain = profileManager->GetRouteChain(dataStore->routing->current_route_id); if (routeChain == nullptr) { diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 760e6c1..1fc35b4 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -59,8 +59,6 @@ #include "include/sys/macos/MacOS.h" -#include - void UI_InitMainWindow() { mainwindow = new MainWindow; } @@ -448,9 +446,6 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi } }); - std::vector srsvec(std::begin(srslist), std::end(srslist)); - ruleSetMap = spb::pb::deserialize(srsvec).items; - auto getRemoteRouteProfiles = [=,this] { auto resp = NetworkRequestHelper::HttpGet("https://api.github.com/repos/throneproj/routeprofiles/git/trees/profile"); @@ -906,7 +901,7 @@ void MainWindow::on_menu_manage_groups_triggered() { void MainWindow::on_menu_routing_settings_triggered() { if (dialog_is_using) return; dialog_is_using = true; - auto dialog = new DialogManageRoutes(this, ruleSetMap); + auto dialog = new DialogManageRoutes(this); connect(dialog, &QDialog::finished, this, [=,this] { dialog->deleteLater(); dialog_is_using = false; @@ -1782,7 +1777,7 @@ void MainWindow::on_menu_export_config_triggered() { auto ent = ents.first(); if (ent->bean->DisplayCoreType() != software_core_name) return; - auto result = BuildConfig(ent, ruleSetMap, false, true); + auto result = BuildConfig(ent, false, true); QString config_core = QJsonObject2QString(result->coreConfig, true); QApplication::clipboard()->setText(config_core); @@ -1794,11 +1789,11 @@ void MainWindow::on_menu_export_config_triggered() { msg.setDefaultButton(QMessageBox::Ok); msg.exec(); if (msg.clickedButton() == button_1) { - result = BuildConfig(ent, ruleSetMap, false, false); + result = BuildConfig(ent, false, false); config_core = QJsonObject2QString(result->coreConfig, true); QApplication::clipboard()->setText(config_core); } else if (msg.clickedButton() == button_2) { - result = BuildConfig(ent, ruleSetMap, true, false); + result = BuildConfig(ent, true, false); config_core = QJsonObject2QString(result->coreConfig, true); QApplication::clipboard()->setText(config_core); } diff --git a/src/ui/mainwindow_rpc.cpp b/src/ui/mainwindow_rpc.cpp index dd2df87..3ab84bb 100644 --- a/src/ui/mainwindow_rpc.cpp +++ b/src/ui/mainwindow_rpc.cpp @@ -142,7 +142,7 @@ void MainWindow::urltest_current_group(const QListerror.isEmpty()) { MW_show_log(tr("Failed to build test config: ") + buildObject->error); speedtestRunning.unlock(); @@ -237,7 +237,7 @@ void MainWindow::speedtest_current_group(const QListerror.isEmpty()) { MW_show_log(tr("Failed to build test config: ") + buildObject->error); speedtestRunning.unlock(); @@ -466,7 +466,7 @@ void MainWindow::profile_start(int _id) { auto group = Configs::profileManager->GetGroup(ent->gid); if (group == nullptr || group->archive) return; - auto result = BuildConfig(ent, ruleSetMap, false, false); + auto result = BuildConfig(ent, false, false); if (!result->error.isEmpty()) { MessageBoxWarning(tr("BuildConfig return error"), result->error); return; diff --git a/src/ui/setting/RouteItem.cpp b/src/ui/setting/RouteItem.cpp index 00e7281..3c614c9 100644 --- a/src/ui/setting/RouteItem.cpp +++ b/src/ui/setting/RouteItem.cpp @@ -47,7 +47,7 @@ QStringList get_all_outbounds() { return res; } -RouteItem::RouteItem(QWidget *parent, const std::shared_ptr& routeChain, const std::map& ruleSetMap) +RouteItem::RouteItem(QWidget *parent, const std::shared_ptr& routeChain) : QDialog(parent), ui(new Ui::RouteItem) { ui->setupUi(this); diff --git a/src/ui/setting/dialog_manage_routes.cpp b/src/ui/setting/dialog_manage_routes.cpp index 1000fe4..ad6d7e2 100644 --- a/src/ui/setting/dialog_manage_routes.cpp +++ b/src/ui/setting/dialog_manage_routes.cpp @@ -59,7 +59,7 @@ bool DialogManageRoutes::validate_dns_rules(const QString &rawString) { return true; } -DialogManageRoutes::DialogManageRoutes(QWidget *parent, const std::map& dataMap) : QDialog(parent), ui(new Ui::DialogManageRoutes) { +DialogManageRoutes::DialogManageRoutes(QWidget *parent) : QDialog(parent), ui(new Ui::DialogManageRoutes) { ui->setupUi(this); auto profiles = Configs::profileManager->routes; for (const auto &item: profiles) { @@ -141,7 +141,6 @@ DialogManageRoutes::DialogManageRoutes(QWidget *parent, const std::mapsetWindowModality(Qt::ApplicationModal); routeChainWidget->show(); connect(routeChainWidget, &RouteItem::settingsChanged, this, [=,this](const std::shared_ptr& chain) { @@ -280,7 +279,7 @@ void DialogManageRoutes::on_edit_route_clicked() { auto idx = ui->route_profiles->currentRow(); if (idx < 0) return; - routeChainWidget = new RouteItem(this, chainList[idx], ruleSetMap); + routeChainWidget = new RouteItem(this, chainList[idx]); routeChainWidget->setWindowModality(Qt::ApplicationModal); routeChainWidget->show(); connect(routeChainWidget, &RouteItem::settingsChanged, this, [=,this](const std::shared_ptr& chain) {