diff --git a/src/blackgui/components/logincomponent.cpp b/src/blackgui/components/logincomponent.cpp index 6c671755b..9ea76296b 100644 --- a/src/blackgui/components/logincomponent.cpp +++ b/src/blackgui/components/logincomponent.cpp @@ -139,12 +139,13 @@ namespace BlackGui ps_validateAircraftValues(); ps_validateVatsimValues(); ps_onWebServiceDataRead(CEntityFlags::VatsimDataFile, CEntityFlags::ReadFinished, -1); - CServerList otherServers(this->m_trafficNetworkServers.get()); + CServerList otherServers(this->m_otherTrafficNetworkServers.get()); // add a testserver when no servers can be loaded if (otherServers.isEmpty() && CProject::isRunningInBetaOrDeveloperEnvironment()) { otherServers.push_back(m_setup.get().fsdTestServers()); + CLogMessage(this).info("Added servers (other) for testing"); } this->ui->cbp_OtherServers->setServers(otherServers); } @@ -453,7 +454,7 @@ namespace BlackGui void CLoginComponent::ps_reloadSettings() { - CServerList otherServers(this->m_trafficNetworkServers.get()); + CServerList otherServers(this->m_otherTrafficNetworkServers.get()); this->ui->cbp_OtherServers->setServers(otherServers); } diff --git a/src/blackgui/components/logincomponent.h b/src/blackgui/components/logincomponent.h index b5019f325..ce90a6ace 100644 --- a/src/blackgui/components/logincomponent.h +++ b/src/blackgui/components/logincomponent.h @@ -147,7 +147,7 @@ namespace BlackGui QScopedPointer ui; const int LogoffIntervalSeconds = 10; QTimer *m_logoffCountdownTimer { nullptr }; - BlackCore::CSetting m_trafficNetworkServers { this, &CLoginComponent::ps_reloadSettings }; + BlackCore::CSetting m_otherTrafficNetworkServers { this, &CLoginComponent::ps_reloadSettings }; BlackCore::CData m_setup {this}; //!< setup cache }; diff --git a/src/blackgui/components/settingsnetworkserverscomponent.ui b/src/blackgui/components/settingsnetworkserverscomponent.ui index 465c42654..5ba833772 100644 --- a/src/blackgui/components/settingsnetworkserverscomponent.ui +++ b/src/blackgui/components/settingsnetworkserverscomponent.ui @@ -7,7 +7,7 @@ 0 0 260 - 273 + 334 @@ -53,16 +53,10 @@ - - - 0 - 0 - - 0 - 140 + 80 @@ -155,17 +149,17 @@ - - BlackGui::Views::CServerView - QTableView -
blackgui/views/serverview.h
-
BlackGui::CServerForm QFrame
blackgui/serverform.h
1
+ + BlackGui::Views::CServerView + QTableView +
blackgui/views/serverview.h
+
diff --git a/src/blackgui/serverform.cpp b/src/blackgui/serverform.cpp index 744d1f8d2..e3f81bf6c 100644 --- a/src/blackgui/serverform.cpp +++ b/src/blackgui/serverform.cpp @@ -69,7 +69,16 @@ namespace BlackGui void CServerForm::showPasswordField(bool show) { - this->ui->lbl_Password->setVisible(show); + if (this->ui->le_Password->isVisible() == show) { return; } + if (m_passwordNameLabel.isEmpty()) { m_passwordNameLabel = ui->lbl_IdPassword->text(); } + if (show) + { + ui->lbl_IdPassword->setText(m_passwordNameLabel); + } + else + { + ui->lbl_IdPassword->setText("Id"); + } this->ui->le_Password->setVisible(show); } diff --git a/src/blackgui/serverform.h b/src/blackgui/serverform.h index 6ea313257..0011e35d4 100644 --- a/src/blackgui/serverform.h +++ b/src/blackgui/serverform.h @@ -52,6 +52,7 @@ namespace BlackGui private: QScopedPointer ui; + QString m_passwordNameLabel; }; } diff --git a/src/blackgui/serverform.ui b/src/blackgui/serverform.ui index 46e2bbc05..b4c70a61a 100644 --- a/src/blackgui/serverform.ui +++ b/src/blackgui/serverform.ui @@ -6,16 +6,10 @@ 0 0 - 313 - 164 + 347 + 126
- - - 0 - 0 - - Frame @@ -44,34 +38,133 @@ - 6 + 4 - 6 + 4 - 6 + 4 - 6 + 4 - 6 + 4 - - - - Name - - - - Addr./ port + Addr./ port: + + + + Name: + + + + + + + Real name: + + + + + + + Description: + + + + + + + server name + + + + + + + server description + + + + + + + + + + your name if required + + + + + + + Id/Password: + + + + + + + e.g. "server.foo.com" + + + + + + + + 3 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + + id + + + + + + + + + + 32 + + + QLineEdit::Password + + + password + + + + + + @@ -100,74 +193,6 @@ - - - - Description - - - - - - - Real name - - - - - - - Password - - - - - - - Id: - - - - - - - - - - - - - - - - - - - - 32 - - - QLineEdit::Password - - - - - - - - - - - - - - - - - - - - @@ -178,8 +203,6 @@ le_Address le_Port le_RealName - le_NetworkId - le_Password diff --git a/src/blackmisc/network/server.cpp b/src/blackmisc/network/server.cpp index 419f7efbf..dc67350e3 100644 --- a/src/blackmisc/network/server.cpp +++ b/src/blackmisc/network/server.cpp @@ -29,6 +29,12 @@ namespace BlackMisc return s; } + bool CServer::matchesName(const QString &name) const + { + return m_name.length() == name.length() && + m_name.startsWith(name, Qt::CaseInsensitive); + } + bool CServer::isValidForLogin() const { return this->m_user.hasValidCredentials() && this->m_port > 0 && !this->m_address.isEmpty() && this->isAcceptingConnections(); diff --git a/src/blackmisc/network/server.h b/src/blackmisc/network/server.h index 03a84cfef..12cd7c553 100644 --- a/src/blackmisc/network/server.h +++ b/src/blackmisc/network/server.h @@ -61,6 +61,9 @@ namespace BlackMisc //! Set name void setName(const QString &name) { m_name = name.trimmed(); } + //! Matches server name? + bool matchesName(const QString &name) const; + //! Get description const QString &getDescription() const { return m_description; } diff --git a/src/blackmisc/network/serverlist.cpp b/src/blackmisc/network/serverlist.cpp index 87e15d4d5..ac41e3aa6 100644 --- a/src/blackmisc/network/serverlist.cpp +++ b/src/blackmisc/network/serverlist.cpp @@ -20,5 +20,14 @@ namespace BlackMisc CSequence(other) { } + bool CServerList::containsName(const QString &name) const + { + for (const CServer &s : *this) + { + if (s.matchesName(name)) { return true; } + } + return false; + } + } // namespace } // namespace diff --git a/src/blackmisc/network/serverlist.h b/src/blackmisc/network/serverlist.h index 3678a827b..09b84d4bd 100644 --- a/src/blackmisc/network/serverlist.h +++ b/src/blackmisc/network/serverlist.h @@ -34,6 +34,9 @@ namespace BlackMisc //! Construct from a base class object. CServerList(const CSequence &other); + + //! Contains name + bool containsName(const QString &name) const; }; } //namespace