mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-07 19:35:32 +08:00
Ref T172, server form supports ecosystem
This commit is contained in:
@@ -62,7 +62,7 @@
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>150</height>
|
||||
<height>160</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
|
||||
@@ -27,15 +27,10 @@ namespace BlackGui
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->le_Port->setValidator(new QIntValidator(1, 65535, this));
|
||||
this->initServerTypes();
|
||||
|
||||
// init all server type values
|
||||
ui->cb_ServerType->clear();
|
||||
int c = 0;
|
||||
for (int type : CServer::allServerTypes())
|
||||
{
|
||||
const CServer::ServerType st = static_cast<CServer::ServerType>(type);
|
||||
ui->cb_ServerType->insertItem(c++, CServer::serverTypeToString(st), QVariant::fromValue(type));
|
||||
}
|
||||
connect(ui->cbp_Ecosystem, &CEcosystemComboBox::currentTextChanged, this, &CServerForm::onChangedEcoSystem);
|
||||
connect(ui->cb_ServerType, &QComboBox::currentTextChanged, this, &CServerForm::onChangedServerType);
|
||||
}
|
||||
|
||||
CServerForm::~CServerForm()
|
||||
@@ -48,6 +43,7 @@ namespace BlackGui
|
||||
ui->le_RealName->setText(user.getRealName());
|
||||
ui->le_Name->setText(server.getName());
|
||||
ui->cb_ServerType->setCurrentText(server.getServerTypeAsString());
|
||||
ui->cbp_Ecosystem->setCurrentEcosystem(server.getEcosystem());
|
||||
ui->le_Password->setText(user.getPassword());
|
||||
ui->le_Description->setText(server.getDescription());
|
||||
ui->le_Address->setText(server.getAddress());
|
||||
@@ -57,26 +53,31 @@ namespace BlackGui
|
||||
|
||||
BlackMisc::Network::CServer CServerForm::getServer() const
|
||||
{
|
||||
CUser user(
|
||||
const CUser user(
|
||||
ui->le_NetworkId->text().trimmed(),
|
||||
ui->le_RealName->text().trimmed().simplified(),
|
||||
"",
|
||||
ui->le_Password->text().trimmed()
|
||||
);
|
||||
CServer server(
|
||||
const CFsdSetup setup(ui->form_ServerFsd->getValue());
|
||||
const CServer server(
|
||||
ui->le_Name->text().trimmed().simplified(),
|
||||
ui->le_Description->text().trimmed().simplified(),
|
||||
ui->le_Address->text().trimmed(),
|
||||
ui->le_Port->text().trimmed().toInt(),
|
||||
user,
|
||||
ui->cb_ServerType->currentData().value<CServer::ServerType>(),
|
||||
user, setup,
|
||||
ui->cbp_Ecosystem->getSelectedEcosystem(),
|
||||
this->getServerType(),
|
||||
true
|
||||
);
|
||||
CFsdSetup setup(ui->form_ServerFsd->getValue());
|
||||
server.setFsdSetup(setup);
|
||||
return server;
|
||||
}
|
||||
|
||||
CServer::ServerType CServerForm::getServerType() const
|
||||
{
|
||||
return ui->cb_ServerType->currentData().value<CServer::ServerType>();
|
||||
}
|
||||
|
||||
void CServerForm::setReadOnly(bool readOnly)
|
||||
{
|
||||
ui->le_NetworkId->setReadOnly(readOnly);
|
||||
@@ -88,23 +89,49 @@ namespace BlackGui
|
||||
ui->le_Password->setReadOnly(readOnly);
|
||||
ui->form_ServerFsd->setReadOnly(readOnly);
|
||||
ui->cb_ServerType->setEnabled(!readOnly);
|
||||
ui->cbp_Ecosystem->setEnabled(!readOnly);
|
||||
}
|
||||
|
||||
void CServerForm::showPasswordField(bool show)
|
||||
{
|
||||
if (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");
|
||||
}
|
||||
ui->lbl_IdPassword->setText(show ? m_passwordNameLabel : "Id");
|
||||
ui->le_Password->setVisible(show);
|
||||
}
|
||||
|
||||
void CServerForm::initServerTypes()
|
||||
{
|
||||
// init all server type values
|
||||
int c = 0;
|
||||
ui->cb_ServerType->clear();
|
||||
for (const int type : CServer::allServerTypes())
|
||||
{
|
||||
const CServer::ServerType st = static_cast<CServer::ServerType>(type);
|
||||
ui->cb_ServerType->insertItem(c++, CServer::serverTypeToString(st), QVariant::fromValue(type));
|
||||
}
|
||||
}
|
||||
|
||||
void CServerForm::onChangedServerType(const QString &text)
|
||||
{
|
||||
Q_UNUSED(text);
|
||||
const CServer::ServerType t = this->getServerType();
|
||||
const CServer dummy(t);
|
||||
const CEcosystem es = dummy.getEcosystem();
|
||||
if (es.isUnspecified()) { return; }
|
||||
if (es.isSystem(CEcosystem::NoSystem)) { return; }
|
||||
ui->cbp_Ecosystem->setCurrentEcosystem(es);
|
||||
}
|
||||
|
||||
void CServerForm::onChangedEcoSystem(const QString &text)
|
||||
{
|
||||
Q_UNUSED(text);
|
||||
const CEcosystem es = ui->cbp_Ecosystem->getSelectedEcosystem();
|
||||
const CServer dummy(es);
|
||||
if (dummy.hasUnspecifiedServerType()) { return; }
|
||||
ui->cb_ServerType->setCurrentText(dummy.getServerTypeAsString());
|
||||
}
|
||||
|
||||
BlackMisc::CStatusMessageList CServerForm::validate(bool nested) const
|
||||
{
|
||||
Q_UNUSED(nested);
|
||||
|
||||
@@ -47,6 +47,9 @@ namespace BlackGui
|
||||
//! Get server
|
||||
BlackMisc::Network::CServer getServer() const;
|
||||
|
||||
//! Get currently selected server type
|
||||
BlackMisc::Network::CServer::ServerType getServerType() const;
|
||||
|
||||
//! \name Form class implementations
|
||||
//! @{
|
||||
virtual void setReadOnly(bool readonly) override;
|
||||
@@ -57,6 +60,10 @@ namespace BlackGui
|
||||
void showPasswordField(bool show);
|
||||
|
||||
private:
|
||||
void initServerTypes();
|
||||
void onChangedServerType(const QString &text);
|
||||
void onChangedEcoSystem(const QString &text);
|
||||
|
||||
QScopedPointer<Ui::CNetworkServerForm> ui;
|
||||
QString m_passwordNameLabel;
|
||||
};
|
||||
|
||||
@@ -2,23 +2,9 @@
|
||||
<ui version="4.0">
|
||||
<class>CNetworkServerForm</class>
|
||||
<widget class="QFrame" name="CNetworkServerForm">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>275</width>
|
||||
<height>172</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Frame</string>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::StyledPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="vl_NetworkServerForm">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
@@ -59,64 +45,23 @@
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QFrame" name="fr_ServerGeneral">
|
||||
<layout class="QGridLayout" name="gl_ServerForm">
|
||||
<layout class="QGridLayout" name="gl_ServerGeneral" columnstretch="1,2,2">
|
||||
<property name="leftMargin">
|
||||
<number>4</number>
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>4</number>
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>4</number>
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>4</number>
|
||||
<number>3</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="lbl_IdPassword">
|
||||
<property name="text">
|
||||
<string>Id/Password:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLineEdit" name="le_NetworkId">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>id</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="lbl_Name">
|
||||
<property name="text">
|
||||
<string>Name/Type:</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="2" column="0">
|
||||
<widget class="QLabel" name="lbl_Address">
|
||||
<property name="text">
|
||||
<string>Addr./ port:</string>
|
||||
<string>Name:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -127,17 +72,45 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3">
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="lbl_Ecosystem">
|
||||
<property name="text">
|
||||
<string>Eco./type:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QComboBox" name="cb_ServerType"/>
|
||||
</item>
|
||||
<item row="1" column="1" colspan="3">
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="lbl_Description">
|
||||
<property name="text">
|
||||
<string>Description:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="2">
|
||||
<widget class="QLineEdit" name="le_Description">
|
||||
<property name="placeholderText">
|
||||
<string>server description</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="lbl_Address">
|
||||
<property name="text">
|
||||
<string>Addr./ port:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="le_Address">
|
||||
<property name="placeholderText">
|
||||
<string>e.g. "server.foo.com"</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<widget class="QLineEdit" name="le_Port">
|
||||
<property name="text">
|
||||
<string>6809</string>
|
||||
@@ -147,14 +120,14 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1" colspan="2">
|
||||
<widget class="QLineEdit" name="le_Address">
|
||||
<property name="placeholderText">
|
||||
<string>e.g. "server.foo.com"</string>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="lbl_RealName">
|
||||
<property name="text">
|
||||
<string>Real name:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1" colspan="3">
|
||||
<item row="4" column="1" colspan="2">
|
||||
<widget class="QLineEdit" name="le_RealName">
|
||||
<property name="text">
|
||||
<string/>
|
||||
@@ -164,7 +137,24 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2" colspan="2">
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="lbl_IdPassword">
|
||||
<property name="text">
|
||||
<string>Id/Password:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QLineEdit" name="le_NetworkId">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>id</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2">
|
||||
<widget class="QLineEdit" name="le_Password">
|
||||
<property name="maxLength">
|
||||
<number>32</number>
|
||||
@@ -177,6 +167,9 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="BlackGui::CEcosystemComboBox" name="cbp_Ecosystem"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -222,9 +215,15 @@
|
||||
<header>blackgui/editors/fsdsetupform.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>BlackGui::CEcosystemComboBox</class>
|
||||
<extends>QComboBox</extends>
|
||||
<header>blackgui/ecosystemcombobox.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>le_Name</tabstop>
|
||||
<tabstop>cbp_Ecosystem</tabstop>
|
||||
<tabstop>cb_ServerType</tabstop>
|
||||
<tabstop>le_Description</tabstop>
|
||||
<tabstop>le_Address</tabstop>
|
||||
|
||||
Reference in New Issue
Block a user