refs #471, allow to search server by name and occupy less height for form

This commit is contained in:
Klaus Basan
2015-11-02 19:29:42 +01:00
committed by Mathew Sutcliffe
parent ace3b60062
commit 012543ef02
10 changed files with 157 additions and 108 deletions

View File

@@ -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);
}

View File

@@ -147,7 +147,7 @@ namespace BlackGui
QScopedPointer<Ui::CLoginComponent> ui;
const int LogoffIntervalSeconds = 10;
QTimer *m_logoffCountdownTimer { nullptr };
BlackCore::CSetting<BlackCore::Settings::Network::TrafficServers> m_trafficNetworkServers { this, &CLoginComponent::ps_reloadSettings };
BlackCore::CSetting<BlackCore::Settings::Network::TrafficServers> m_otherTrafficNetworkServers { this, &CLoginComponent::ps_reloadSettings };
BlackCore::CData<BlackCore::Data::GlobalSetup> m_setup {this}; //!< setup cache
};

View File

@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>260</width>
<height>273</height>
<height>334</height>
</rect>
</property>
<property name="windowTitle">
@@ -53,16 +53,10 @@
</item>
<item>
<widget class="BlackGui::CServerForm" name="frp_ServerForm">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>140</height>
<height>80</height>
</size>
</property>
<property name="frameShape">
@@ -155,17 +149,17 @@
</layout>
</widget>
<customwidgets>
<customwidget>
<class>BlackGui::Views::CServerView</class>
<extends>QTableView</extends>
<header>blackgui/views/serverview.h</header>
</customwidget>
<customwidget>
<class>BlackGui::CServerForm</class>
<extends>QFrame</extends>
<header>blackgui/serverform.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>BlackGui::Views::CServerView</class>
<extends>QTableView</extends>
<header>blackgui/views/serverview.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>

View File

@@ -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);
}

View File

@@ -52,6 +52,7 @@ namespace BlackGui
private:
QScopedPointer<Ui::CNetworkServerForm> ui;
QString m_passwordNameLabel;
};
}

View File

@@ -6,16 +6,10 @@
<rect>
<x>0</x>
<y>0</y>
<width>313</width>
<height>164</height>
<width>347</width>
<height>126</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="windowTitle">
<string>Frame</string>
</property>
@@ -44,34 +38,133 @@
<item>
<layout class="QGridLayout" name="gl_ServerForm">
<property name="leftMargin">
<number>6</number>
<number>4</number>
</property>
<property name="topMargin">
<number>6</number>
<number>4</number>
</property>
<property name="rightMargin">
<number>6</number>
<number>4</number>
</property>
<property name="bottomMargin">
<number>6</number>
<number>4</number>
</property>
<property name="spacing">
<number>6</number>
<number>4</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="lbl_Name">
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="lbl_Address">
<property name="text">
<string>Addr./ port</string>
<string>Addr./ port:</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lbl_Name">
<property name="text">
<string>Name:</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="lbl_RealName">
<property name="text">
<string>Real name:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lbl_Description">
<property name="text">
<string>Description:</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="2">
<widget class="QLineEdit" name="le_Name">
<property name="placeholderText">
<string>server name</string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="2">
<widget class="QLineEdit" name="le_Description">
<property name="placeholderText">
<string>server description</string>
</property>
</widget>
</item>
<item row="3" column="1" colspan="2">
<widget class="QLineEdit" name="le_RealName">
<property name="text">
<string/>
</property>
<property name="placeholderText">
<string>your name if required</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="lbl_IdPassword">
<property name="text">
<string>Id/Password:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="le_Address">
<property name="placeholderText">
<string>e.g. &quot;server.foo.com&quot;</string>
</property>
</widget>
</item>
<item row="4" column="1" colspan="2">
<widget class="QWidget" name="wi_NanePassword" native="true">
<layout class="QHBoxLayout" name="hl_NamePassword">
<property name="spacing">
<number>3</number>
</property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLineEdit" name="le_NetworkId">
<property name="text">
<string/>
</property>
<property name="placeholderText">
<string>id</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="le_Password">
<property name="text">
<string/>
</property>
<property name="maxLength">
<number>32</number>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
<property name="placeholderText">
<string>password</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="le_Port">
<property name="sizePolicy">
@@ -100,74 +193,6 @@
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lbl_Description">
<property name="text">
<string>Description</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="lbl_RealName">
<property name="text">
<string>Real name</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="lbl_Password">
<property name="text">
<string>Password</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="lbl_NetworkId">
<property name="text">
<string>Id:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="le_Address"/>
</item>
<item row="4" column="1" colspan="2">
<widget class="QLineEdit" name="le_NetworkId">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="5" column="1" colspan="2">
<widget class="QLineEdit" name="le_Password">
<property name="text">
<string/>
</property>
<property name="maxLength">
<number>32</number>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
<item row="3" column="1" colspan="2">
<widget class="QLineEdit" name="le_RealName">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="1" colspan="2">
<widget class="QLineEdit" name="le_Description"/>
</item>
<item row="0" column="1" colspan="2">
<widget class="QLineEdit" name="le_Name">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
</layout>
@@ -178,8 +203,6 @@
<tabstop>le_Address</tabstop>
<tabstop>le_Port</tabstop>
<tabstop>le_RealName</tabstop>
<tabstop>le_NetworkId</tabstop>
<tabstop>le_Password</tabstop>
</tabstops>
<resources/>
<connections/>

View File

@@ -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();

View File

@@ -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; }

View File

@@ -20,5 +20,14 @@ namespace BlackMisc
CSequence<CServer>(other)
{ }
bool CServerList::containsName(const QString &name) const
{
for (const CServer &s : *this)
{
if (s.matchesName(name)) { return true; }
}
return false;
}
} // namespace
} // namespace

View File

@@ -34,6 +34,9 @@ namespace BlackMisc
//! Construct from a base class object.
CServerList(const CSequence<CServer> &other);
//! Contains name
bool containsName(const QString &name) const;
};
} //namespace