mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-03-23 15:25:35 +08:00
Ref T82, removed add button for servers, only save
* save will add a new server when not already existing * when saved with same name, it will override values * default values for FSD setup * adjusted validation
This commit is contained in:
@@ -47,7 +47,6 @@ namespace BlackGui
|
||||
// Settings server
|
||||
this->connect(ui->pb_RemoveServer, &QPushButton::pressed, this, &CSettingsNetworkServersComponent::ps_alterTrafficServer);
|
||||
this->connect(ui->pb_SaveServer, &QPushButton::pressed, this, &CSettingsNetworkServersComponent::ps_alterTrafficServer);
|
||||
this->connect(ui->pb_AddServer, &QPushButton::pressed, this, &CSettingsNetworkServersComponent::ps_alterTrafficServer);
|
||||
this->connect(ui->tvp_Servers, &QTableView::clicked, this, &CSettingsNetworkServersComponent::ps_serverSelected);
|
||||
this->ps_reloadSettings();
|
||||
}
|
||||
@@ -76,47 +75,38 @@ namespace BlackGui
|
||||
|
||||
void CSettingsNetworkServersComponent::ps_alterTrafficServer()
|
||||
{
|
||||
CServer server(ui->form_Server->getServer());
|
||||
CStatusMessageList msgs = server.validate();
|
||||
if (!msgs.isEmpty()) { msgs.addCategories(this); }
|
||||
const QObject *sender = QObject::sender();
|
||||
const CServer server(ui->form_Server->getServer());
|
||||
|
||||
CServerList serverList(m_trafficNetworkServers.getThreadLocal());
|
||||
QObject *sender = QObject::sender();
|
||||
CStatusMessage msg;
|
||||
bool changed = false;
|
||||
bool save = false;
|
||||
if (sender == ui->pb_RemoveServer)
|
||||
{
|
||||
// lenient name removal
|
||||
serverList.removeByName(server.getName());
|
||||
changed = true;
|
||||
}
|
||||
else if (sender == ui->pb_AddServer)
|
||||
else if (sender == ui->pb_SaveServer)
|
||||
{
|
||||
if (!msgs.isEmpty())
|
||||
CStatusMessageList msgs = server.validate();
|
||||
if (!msgs.isEmpty()) { msgs.addCategories(this); }
|
||||
|
||||
// error?
|
||||
if (msgs.isFailure())
|
||||
{
|
||||
CLogMessage::preformatted(msgs);
|
||||
return;
|
||||
}
|
||||
|
||||
serverList.replaceOrAdd(&CServer::getName, server.getName(), server);
|
||||
changed = true;
|
||||
}
|
||||
else if (sender == ui->pb_SaveServer)
|
||||
else
|
||||
{
|
||||
save = true;
|
||||
if (msgs.isEmpty() && server.hasAddressAndPort())
|
||||
{
|
||||
// update in any case to list before saving if we have a valid form
|
||||
serverList.replaceOrAdd(&CServer::getName, server.getName(), server);
|
||||
changed = true;
|
||||
}
|
||||
qFatal("Wrong sender");
|
||||
return;
|
||||
}
|
||||
|
||||
if (changed)
|
||||
{
|
||||
msg = save ? m_trafficNetworkServers.setAndSave(serverList) : m_trafficNetworkServers.set(serverList);
|
||||
this->ps_reloadSettings(); // call manually as local object
|
||||
}
|
||||
msg = m_trafficNetworkServers.setAndSave(serverList);
|
||||
this->ps_reloadSettings(); // call manually as local object
|
||||
|
||||
if (!msg.isEmpty())
|
||||
{
|
||||
|
||||
@@ -24,7 +24,6 @@ class QModelIndex;
|
||||
class QWidget;
|
||||
|
||||
namespace Ui { class CSettingsNetworkServersComponent; }
|
||||
|
||||
namespace BlackGui
|
||||
{
|
||||
namespace Components
|
||||
@@ -40,7 +39,7 @@ namespace BlackGui
|
||||
explicit CSettingsNetworkServersComponent(QWidget *parent = nullptr);
|
||||
|
||||
//! Destructor
|
||||
~CSettingsNetworkServersComponent();
|
||||
virtual ~CSettingsNetworkServersComponent();
|
||||
|
||||
private slots:
|
||||
//! Reload settings
|
||||
|
||||
@@ -120,13 +120,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_AddServer">
|
||||
<property name="text">
|
||||
<string>add</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_RemoveServer">
|
||||
<property name="sizePolicy">
|
||||
|
||||
@@ -26,9 +26,11 @@ namespace BlackGui
|
||||
{
|
||||
ui->setupUi(this);
|
||||
this->showEnableInfo(false);
|
||||
this->resetToDefaultValues();
|
||||
ui->cb_Enabled->setChecked(true);
|
||||
ui->le_TextCodec->setCompleter(new QCompleter(textCodecNames(true, true), this));
|
||||
connect(ui->cb_Enabled, &QCheckBox::toggled, this, &CFsdSetupForm::ps_enabledToggled);
|
||||
connect(ui->cb_Enabled, &QCheckBox::toggled, this, &CFsdSetupForm::enabledToggled);
|
||||
connect(ui->pb_SetDefaults, &QPushButton::clicked, this, &CFsdSetupForm::resetToDefaultValues);
|
||||
}
|
||||
|
||||
CFsdSetupForm::~CFsdSetupForm()
|
||||
@@ -100,7 +102,7 @@ namespace BlackGui
|
||||
return msgs;
|
||||
}
|
||||
|
||||
void CFsdSetupForm::ps_enabledToggled(bool enabled)
|
||||
void CFsdSetupForm::enabledToggled(bool enabled)
|
||||
{
|
||||
Q_UNUSED(enabled);
|
||||
this->setReadOnly(!enabled);
|
||||
@@ -109,5 +111,14 @@ namespace BlackGui
|
||||
this->setValue(CFsdSetup());
|
||||
}
|
||||
}
|
||||
|
||||
void CFsdSetupForm::resetToDefaultValues()
|
||||
{
|
||||
ui->cb_AircraftPartsReceive->setChecked(true);
|
||||
ui->cb_AircraftPartsSend->setChecked(true);
|
||||
ui->cb_FastPositionReceive->setChecked(true);
|
||||
ui->cb_FastPositionSend->setChecked(true);
|
||||
ui->le_TextCodec->setText("latin1");
|
||||
}
|
||||
} // ns
|
||||
} // ns
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
#include <QScopedPointer>
|
||||
|
||||
namespace Ui { class CFsdSetupForm; }
|
||||
|
||||
namespace BlackGui
|
||||
{
|
||||
namespace Editors
|
||||
@@ -35,7 +34,7 @@ namespace BlackGui
|
||||
explicit CFsdSetupForm(QWidget *parent = nullptr);
|
||||
|
||||
//! Constructor
|
||||
~CFsdSetupForm();
|
||||
virtual ~CFsdSetupForm();
|
||||
|
||||
//! FSD setup from GUI
|
||||
BlackMisc::Network::CFsdSetup getValue() const;
|
||||
@@ -55,17 +54,19 @@ namespace BlackGui
|
||||
//! Show the enable info
|
||||
void showEnableInfo(bool visible);
|
||||
|
||||
//! Set default values
|
||||
void resetToDefaultValues();
|
||||
|
||||
//! \name Form class implementations
|
||||
//! @{
|
||||
virtual void setReadOnly(bool readonly) override;
|
||||
virtual BlackMisc::CStatusMessageList validate(bool nested = false) const override;
|
||||
//! @}
|
||||
|
||||
private slots:
|
||||
//! Enable / disable
|
||||
void ps_enabledToggled(bool enabled);
|
||||
|
||||
private:
|
||||
//! Enable / disable
|
||||
void enabledToggled(bool enabled);
|
||||
|
||||
QScopedPointer<Ui::CFsdSetupForm> ui;
|
||||
};
|
||||
} // ns
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>189</width>
|
||||
<height>102</height>
|
||||
<width>209</width>
|
||||
<height>130</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -81,8 +81,8 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" alignment="Qt::AlignHCenter">
|
||||
<widget class="QCheckBox" name="cb_AircraftPartsSend">
|
||||
<item row="1" column="1" alignment="Qt::AlignHCenter">
|
||||
<widget class="QCheckBox" name="cb_FastPositionSend">
|
||||
<property name="text">
|
||||
<string>send</string>
|
||||
</property>
|
||||
@@ -95,8 +95,8 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" alignment="Qt::AlignHCenter">
|
||||
<widget class="QCheckBox" name="cb_FastPositionSend">
|
||||
<item row="0" column="1" alignment="Qt::AlignHCenter">
|
||||
<widget class="QCheckBox" name="cb_AircraftPartsSend">
|
||||
<property name="text">
|
||||
<string>send</string>
|
||||
</property>
|
||||
@@ -109,6 +109,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QPushButton" name="pb_SetDefaults">
|
||||
<property name="text">
|
||||
<string>set defaults</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
@@ -25,7 +25,6 @@
|
||||
class QWidget;
|
||||
|
||||
namespace Ui { class CNetworkServerForm; }
|
||||
|
||||
namespace BlackGui
|
||||
{
|
||||
namespace Editors
|
||||
@@ -40,7 +39,7 @@ namespace BlackGui
|
||||
explicit CServerForm(QWidget *parent = nullptr);
|
||||
|
||||
//! Destructor
|
||||
~CServerForm();
|
||||
virtual ~CServerForm();
|
||||
|
||||
//! Set server
|
||||
void setServer(const BlackMisc::Network::CServer &server);
|
||||
|
||||
@@ -91,13 +91,14 @@ namespace BlackMisc
|
||||
{
|
||||
static const CLogCategoryList cats(CLogCategoryList(this).join({ CLogCategory::validation()}));
|
||||
CStatusMessageList msgs;
|
||||
if (this->getName().isEmpty()) { msgs.push_back(CStatusMessage(CStatusMessage::SeverityWarning, "Missing name")); }
|
||||
if (this->getAddress().isEmpty()) { msgs.push_back(CStatusMessage(CStatusMessage::SeverityWarning, "Missing address")); }
|
||||
if (this->getName().isEmpty()) { msgs.push_back(CStatusMessage(CStatusMessage::SeverityError, "Missing name")); }
|
||||
if (this->getAddress().isEmpty()) { msgs.push_back(CStatusMessage(CStatusMessage::SeverityError, "Missing address")); }
|
||||
if (this->getDescription().isEmpty()) { msgs.push_back(CStatusMessage(CStatusMessage::SeverityWarning, "Missing description")); }
|
||||
if (this->getPort() < 1 || this->getPort() > 65535) { msgs.push_back(CStatusMessage(CStatusMessage::SeverityWarning, "Wrong port")); }
|
||||
if (this->getPort() < 1 || this->getPort() > 65535) { msgs.push_back(CStatusMessage(CStatusMessage::SeverityError, "Wrong port")); }
|
||||
msgs.push_back(this->getUser().validate());
|
||||
msgs.push_back(this->getFsdSetup().validate());
|
||||
msgs.addCategories(cats);
|
||||
msgs.sortBySeverity();
|
||||
return msgs;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user