From a5a5a642e8e02a041f1e3462cbe612a932627e2b Mon Sep 17 00:00:00 2001 From: Qv2ray-dev <59914293+Qv2ray-dev@users.noreply.github.com> Date: Fri, 20 Mar 2020 22:34:26 +0800 Subject: [PATCH] update: some minor refactors --- makespec/BUILDVERSION | 2 +- src/ui/w_MainWindow.cpp | 15 ++++++--- src/ui/w_MainWindow.ui | 14 -------- src/ui/widgets/QvAutoCompleteTextEdit.cpp | 41 +++-------------------- src/ui/widgets/QvAutoCompleteTextEdit.h | 9 +---- src/ui/widgets/RouteSettingsMatrix.cpp | 25 +++++--------- 6 files changed, 26 insertions(+), 80 deletions(-) diff --git a/makespec/BUILDVERSION b/makespec/BUILDVERSION index 78f705ef..21f019a5 100644 --- a/makespec/BUILDVERSION +++ b/makespec/BUILDVERSION @@ -1 +1 @@ -4739 \ No newline at end of file +4741 \ No newline at end of file diff --git a/src/ui/w_MainWindow.cpp b/src/ui/w_MainWindow.cpp index 93282cd4..ad971c14 100644 --- a/src/ui/w_MainWindow.cpp +++ b/src/ui/w_MainWindow.cpp @@ -99,7 +99,9 @@ void MainWindow::SortConnectionList(MW_ITEM_COL byCol, bool asending) { connectionListWidget->sortByColumn(MW_ITEM_COL_NAME, Qt::AscendingOrder); for (auto i = 0; i < connectionListWidget->topLevelItemCount(); i++) - { connectionListWidget->topLevelItem(i)->sortChildren(byCol, asending ? Qt::AscendingOrder : Qt::DescendingOrder); } + { + connectionListWidget->topLevelItem(i)->sortChildren(byCol, asending ? Qt::AscendingOrder : Qt::DescendingOrder); + } on_locateBtn_clicked(); } @@ -108,7 +110,6 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) setupUi(this); MainWindow::mwInstance = this; QvMessageBusConnect(MainWindow); - adjustSize(); // infoWidget = new ConnectionInfoWidget(this); connectionInfoLayout->addWidget(infoWidget); @@ -258,7 +259,10 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) MWAddGroupItem_p(group); auto connections = ConnectionManager->Connections(group); - for (auto connection : connections) { MWAddConnectionItem_p(connection, group); } + for (auto connection : connections) + { + MWAddConnectionItem_p(connection, group); + } } // // Find and start if there is an auto-connection @@ -863,7 +867,10 @@ void MainWindow::OnGroupCreated(const GroupId &id, const QString &displayName) } void MainWindow::OnGroupDeleted(const GroupId &id, const QList &connections) { - for (auto conn : connections) { groupNodes.value(id)->removeChild(connectionNodes.value(conn).get()); } + for (auto conn : connections) + { + groupNodes.value(id)->removeChild(connectionNodes.value(conn).get()); + } groupNodes.remove(id); } diff --git a/src/ui/w_MainWindow.ui b/src/ui/w_MainWindow.ui index 6203d962..e0495011 100644 --- a/src/ui/w_MainWindow.ui +++ b/src/ui/w_MainWindow.ui @@ -2,14 +2,6 @@ MainWindow - - - 0 - 0 - 880 - 660 - - 780 @@ -51,12 +43,6 @@ QSizePolicy::Maximum - - - 999999999 - 0 - - diff --git a/src/ui/widgets/QvAutoCompleteTextEdit.cpp b/src/ui/widgets/QvAutoCompleteTextEdit.cpp index b94e226d..5859e551 100644 --- a/src/ui/widgets/QvAutoCompleteTextEdit.cpp +++ b/src/ui/widgets/QvAutoCompleteTextEdit.cpp @@ -62,56 +62,23 @@ namespace Qv2ray::ui::widgets { - AutoCompleteTextEdit::AutoCompleteTextEdit(const QString &prefix, QWidget *parent) : QTextEdit(parent) - { - SetPrefix(prefix); - } - - AutoCompleteTextEdit::~AutoCompleteTextEdit() - { - } - - void AutoCompleteTextEdit::SetPrefix(const QString &prefix) + AutoCompleteTextEdit::AutoCompleteTextEdit(const QString &prefix, const QStringList &sourceStrings, QWidget *parent) : QTextEdit(parent) { this->prefix = prefix; - } - - void AutoCompleteTextEdit::SetSourceStrings(QStringList sourceStrings) - { - auto x = new QCompleter(this); - auto model = new QStringListModel(sourceStrings); - x->setModel(model); - SetCompleter(x); - } - - void AutoCompleteTextEdit::SetCompleter(QCompleter *completer) - { - if (c) - c->disconnect(this); - - c = completer; - - if (!c) - { - return; - } - + c = new QCompleter(this); + c->setModel(new QStringListModel(sourceStrings, c)); c->setWidget(this); c->setCompletionMode(QCompleter::PopupCompletion); c->setCaseSensitivity(Qt::CaseInsensitive); QObject::connect(c, QOverload::of(&QCompleter::activated), this, &AutoCompleteTextEdit::insertCompletion); } - QCompleter *AutoCompleteTextEdit::completer() const + AutoCompleteTextEdit::~AutoCompleteTextEdit() { - return c; } void AutoCompleteTextEdit::insertCompletion(const QString &completion) { - if (c->widget() != this) - return; - QTextCursor tc = textCursor(); int extra = completion.length() - c->completionPrefix().length(); tc.movePosition(QTextCursor::Left); diff --git a/src/ui/widgets/QvAutoCompleteTextEdit.h b/src/ui/widgets/QvAutoCompleteTextEdit.h index 2cdf1aa3..f369cb34 100644 --- a/src/ui/widgets/QvAutoCompleteTextEdit.h +++ b/src/ui/widgets/QvAutoCompleteTextEdit.h @@ -62,14 +62,9 @@ namespace Qv2ray::ui::widgets Q_OBJECT public: - AutoCompleteTextEdit(const QString &prefix, QWidget *parent = nullptr); + AutoCompleteTextEdit(const QString &prefix, const QStringList &sourceStrings, QWidget *parent = nullptr); ~AutoCompleteTextEdit(); - void SetPrefix(const QString &prefix); - void SetCompleter(QCompleter *c); - void SetSourceStrings(QStringList sourceStrings); - QCompleter *completer() const; - protected: void keyPressEvent(QKeyEvent *e) override; void focusInEvent(QFocusEvent *e) override; @@ -81,9 +76,7 @@ namespace Qv2ray::ui::widgets QString lineUnderCursor() const; QString wordUnderCursor() const; - private: QString prefix; - QAbstractItemModel *modelFromStringList(const QStringList &list); QCompleter *c = nullptr; }; } // namespace Qv2ray::ui::widgets diff --git a/src/ui/widgets/RouteSettingsMatrix.cpp b/src/ui/widgets/RouteSettingsMatrix.cpp index 0ac30d90..04b3951c 100644 --- a/src/ui/widgets/RouteSettingsMatrix.cpp +++ b/src/ui/widgets/RouteSettingsMatrix.cpp @@ -11,23 +11,15 @@ RouteSettingsMatrixWidget::RouteSettingsMatrixWidget(const QString &assetsDirPat { setupUi(this); // - directDomainTxt = new AutoCompleteTextEdit("geosite", this); - proxyDomainTxt = new AutoCompleteTextEdit("geosite", this); - blockDomainTxt = new AutoCompleteTextEdit("geosite", this); - // - directIPTxt = new AutoCompleteTextEdit("geoip", this); - proxyIPTxt = new AutoCompleteTextEdit("geoip", this); - blockIPTxt = new AutoCompleteTextEdit("geoip", this); - // auto sourceStringsDomain = ReadGeoSiteFromFile(assetsDirPath + "/geosite.dat"); - directDomainTxt->SetSourceStrings(sourceStringsDomain); - proxyDomainTxt->SetSourceStrings(sourceStringsDomain); - blockDomainTxt->SetSourceStrings(sourceStringsDomain); + directDomainTxt = new AutoCompleteTextEdit("geosite", sourceStringsDomain, this); + proxyDomainTxt = new AutoCompleteTextEdit("geosite", sourceStringsDomain, this); + blockDomainTxt = new AutoCompleteTextEdit("geosite", sourceStringsDomain, this); // auto sourceStringsIP = ReadGeoSiteFromFile(assetsDirPath + "/geoip.dat"); - directIPTxt->SetSourceStrings(sourceStringsIP); - proxyIPTxt->SetSourceStrings(sourceStringsIP); - blockIPTxt->SetSourceStrings(sourceStringsIP); + directIPTxt = new AutoCompleteTextEdit("geoip", sourceStringsIP, this); + proxyIPTxt = new AutoCompleteTextEdit("geoip", sourceStringsIP, this); + blockIPTxt = new AutoCompleteTextEdit("geoip", sourceStringsIP, this); // directTxtLayout->addWidget(directDomainTxt, 0, 0); proxyTxtLayout->addWidget(proxyDomainTxt, 0, 0); @@ -124,10 +116,11 @@ void RouteSettingsMatrixWidget::on_importSchemeBtn_clicked() this->SetRouteConfig(static_cast(scheme)); // done - // TODO: Give some success as Notification + LOG(MODULE_SETTINGS, "Imported route config: " + scheme.name + " by: " + scheme.author) } - catch (exception) + catch (exception &e) { + LOG(MODULE_UI, "Exception: " + QString(e.what())) // TODO: Give some error as Notification } }