diff --git a/src/plugins/git/gerrit/gerritoptionspage.cpp b/src/plugins/git/gerrit/gerritoptionspage.cpp index 312d80ef61d..1a27583cd95 100644 --- a/src/plugins/git/gerrit/gerritoptionspage.cpp +++ b/src/plugins/git/gerrit/gerritoptionspage.cpp @@ -18,6 +18,8 @@ #include #include +using namespace Utils; + namespace Gerrit::Internal { class GerritOptionsWidget : public Core::IOptionsPageWidget @@ -70,24 +72,26 @@ public: httpsCheckBox, onChanged] { GerritParameters &s = gerritSettings(); - GerritParameters newParameters; - newParameters.server = GerritServer(hostLineEdit->text().trimmed(), - static_cast(portSpinBox->value()), - userLineEdit->text().trimmed(), - GerritServer::Ssh); - newParameters.ssh = sshChooser->filePath(); - newParameters.curl = curlChooser->filePath(); - newParameters.https = httpsCheckBox->isChecked(); - if (newParameters != s) { - if (s.ssh == newParameters.ssh) - newParameters.portFlag = s.portFlag; - else - newParameters.setPortFlagBySshType(); - s = newParameters; - s.toSettings(); - emit onChanged(); - } + GerritServer server(hostLineEdit->text().trimmed(), + static_cast(portSpinBox->value()), + userLineEdit->text().trimmed(), + GerritServer::Ssh); + FilePath ssh = sshChooser->filePath(); + FilePath curl = curlChooser->filePath(); + bool https = httpsCheckBox->isChecked(); + + if (server == s.server && ssh == s.ssh && curl == s.curl && https == s.https) + return; + + s.server = server; + s.ssh = ssh; + s.curl = curl; + s.https = https; + if (s.ssh != ssh) + s.setPortFlagBySshType(); + s.toSettings(); + emit onChanged(); }); } }; diff --git a/src/plugins/git/gerrit/gerritparameters.cpp b/src/plugins/git/gerrit/gerritparameters.cpp index 9d9eb24e482..d8f69878fac 100644 --- a/src/plugins/git/gerrit/gerritparameters.cpp +++ b/src/plugins/git/gerrit/gerritparameters.cpp @@ -89,11 +89,6 @@ GerritParameters::GerritParameters() { } -bool GerritParameters::equals(const GerritParameters &rhs) const -{ - return server == rhs.server && ssh == rhs.ssh && curl == rhs.curl && https == rhs.https; -} - void GerritParameters::toSettings() const { QtcSettings *s = ICore::settings(); diff --git a/src/plugins/git/gerrit/gerritparameters.h b/src/plugins/git/gerrit/gerritparameters.h index 595e8014de3..3fdcbc45e71 100644 --- a/src/plugins/git/gerrit/gerritparameters.h +++ b/src/plugins/git/gerrit/gerritparameters.h @@ -12,26 +12,22 @@ namespace Gerrit::Internal { class GerritParameters { public: - GerritParameters(); - bool isValid() const; - bool equals(const GerritParameters &rhs) const; void toSettings() const; void saveQueries() const; void fromSettings(); void setPortFlagBySshType(); - friend bool operator==(const GerritParameters &p1, const GerritParameters &p2) - { return p1.equals(p2); } - friend bool operator!=(const GerritParameters &p1, const GerritParameters &p2) - { return !p1.equals(p2); } - GerritServer server; Utils::FilePath ssh; Utils::FilePath curl; QStringList savedQueries; bool https = true; QString portFlag; + +private: + friend GerritParameters &gerritSettings(); + GerritParameters(); }; GerritParameters &gerritSettings();