From f73808aece99685aabcbe02e53f6b7f8ec0c80c6 Mon Sep 17 00:00:00 2001 From: Qv2ray-dev <59914293+Qv2ray-dev@users.noreply.github.com> Date: Thu, 19 Mar 2020 16:51:46 +0800 Subject: [PATCH] fix: GUARD! --- src/ui/editors/w_RoutesEditor.cpp | 3 +-- src/ui/editors/w_RoutesEditor.hpp | 1 + src/ui/editors/w_RoutesEditor_extra.cpp | 7 +++++-- src/ui/w_MainWindow.cpp | 3 +-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/ui/editors/w_RoutesEditor.cpp b/src/ui/editors/w_RoutesEditor.cpp index 082be10f..70899677 100644 --- a/src/ui/editors/w_RoutesEditor.cpp +++ b/src/ui/editors/w_RoutesEditor.cpp @@ -18,7 +18,6 @@ using QtNodes::FlowView; using namespace Qv2ray::ui::nodemodels; -static bool isLoading = false; #define CurrentRule this->rules[this->currentRuleTag] #define LOADINGCHECK \ if (isLoading) \ @@ -914,8 +913,8 @@ void RouteEditor::on_editBtn_clicked() if (isTagChanged) { - DEBUG(MODULE_UI, "Outbound tag is changed: " + QString(isTagChanged)) auto newTag = getTag(_result); + DEBUG(MODULE_UI, "Outbound tag is changed: " + newTag) RenameItemTag(RENAME_OUTBOUND, getTag(_out), &newTag); } diff --git a/src/ui/editors/w_RoutesEditor.hpp b/src/ui/editors/w_RoutesEditor.hpp index 0f212631..8b5d25ae 100644 --- a/src/ui/editors/w_RoutesEditor.hpp +++ b/src/ui/editors/w_RoutesEditor.hpp @@ -103,6 +103,7 @@ class RouteEditor void onConnectionDeleted(QtNodes::Connection const &c); private: + bool isLoading = false; void RenameItemTag(ROUTE_EDIT_MODE mode, const QString originalTag, QString *newTag); void ShowCurrentRuleDetail(); // diff --git a/src/ui/editors/w_RoutesEditor_extra.cpp b/src/ui/editors/w_RoutesEditor_extra.cpp index adba0e6d..85b77639 100644 --- a/src/ui/editors/w_RoutesEditor_extra.cpp +++ b/src/ui/editors/w_RoutesEditor_extra.cpp @@ -267,9 +267,12 @@ void RouteEditor::ResolveDefaultOutboundTag(QString original, QString newTag) { LOG(MODULE_UI, "Resolving default outbound settings: default=" + defaultOutbound + " original=" + original + " new=" + newTag) auto isDefaultChanged = original == defaultOutbound; + // + isLoading = true; defaultOutboundCombo->clear(); defaultOutboundCombo->addItems(outbounds.keys()); - + isLoading = false; + // if (!isDefaultChanged) { LOG(MODULE_UI, "Default outbound is not changed: retaining: " + defaultOutbound) @@ -293,7 +296,7 @@ void RouteEditor::ResolveDefaultOutboundTag(QString original, QString newTag) } else { - LOG(MODULE_UI, "Default outbound is renamed, ") + LOG(MODULE_UI, "Default outbound is renamed, new tag is " + newTag) defaultOutboundCombo->setCurrentText(newTag); defaultOutbound = newTag; } diff --git a/src/ui/w_MainWindow.cpp b/src/ui/w_MainWindow.cpp index 54dc426d..ad971c14 100644 --- a/src/ui/w_MainWindow.cpp +++ b/src/ui/w_MainWindow.cpp @@ -850,9 +850,8 @@ void MainWindow::OnConnectionCreated(const ConnectionId &id, const QString &disp } void MainWindow::OnConnectionDeleted(const ConnectionId &id, const GroupId &groupId) { - auto &child = connectionNodes.value(id); + auto child = connectionNodes.take(id); groupNodes.value(groupId)->removeChild(child.get()); - connectionNodes.remove(id); } void MainWindow::OnConnectionGroupChanged(const ConnectionId &id, const GroupId &originalGroup, const GroupId &newGroup) {