swift
serverform.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2014 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #include <QIntValidator>
7 #include <QLabel>
8 #include <QLineEdit>
9 #include <QToolButton>
10 
11 #include "ui_serverform.h"
12 
13 #include "misc/network/user.h"
14 
15 using namespace swift::misc;
16 using namespace swift::misc::network;
17 
18 namespace swift::gui::editors
19 {
20  CServerForm::CServerForm(QWidget *parent) : CForm(parent), ui(new Ui::CNetworkServerForm)
21  {
22  ui->setupUi(this);
23  ui->le_Port->setValidator(new QIntValidator(1, 65535, this));
24 
25  connect(ui->tb_Unhide, &QToolButton::clicked, this, &CServerForm::tempUnhidePassword);
26  }
27 
28  CServerForm::~CServerForm() = default;
29 
30  void CServerForm::setServer(const CServer &server)
31  {
32  const CUser user = server.getUser();
33  ui->le_NetworkId->setText(user.getId());
34  ui->le_RealName->setText(user.getRealName());
35  ui->le_Name->setText(server.getName());
36  ui->cbp_Ecosystem->setCurrentEcosystem(server.getEcosystem());
37  ui->le_Password->setText(user.getPassword());
38  ui->le_Description->setText(server.getDescription());
39  ui->le_Address->setText(server.getAddress());
40  ui->le_Port->setText(QString::number(server.getPort()));
41  ui->form_ServerFsd->setValue(server.getFsdSetup());
42  }
43 
45  {
46  const CUser user(ui->le_NetworkId->text().trimmed(), ui->le_RealName->text().trimmed().simplified(), QString(),
47  ui->le_Password->text().trimmed());
48  const CFsdSetup fsdSetup(ui->form_ServerFsd->getValue());
49  const CServer server(ui->le_Name->text().trimmed().simplified(),
50  ui->le_Description->text().trimmed().simplified(), ui->le_Address->text().trimmed(),
51  ui->le_Port->text().trimmed().toInt(), user, fsdSetup,
52  ui->cbp_Ecosystem->getSelectedEcosystem(), true);
53  return server;
54  }
55 
56  void CServerForm::resetToFirstTab() { ui->tw_ServerForm->setCurrentIndex(0); }
57 
58  void CServerForm::setReadOnly(bool readOnly)
59  {
60  ui->form_ServerFsd->setReadOnly(readOnly);
61 
62  ui->le_NetworkId->setReadOnly(readOnly);
63  ui->le_RealName->setReadOnly(readOnly);
64  ui->le_Name->setReadOnly(readOnly);
65  ui->le_Description->setReadOnly(readOnly);
66  ui->le_Address->setReadOnly(readOnly);
67  ui->le_Port->setReadOnly(readOnly);
68  ui->le_Password->setReadOnly(readOnly);
69  ui->cbp_Ecosystem->setEnabled(!readOnly);
70  ui->tb_Unhide->setVisible(!readOnly);
71  this->forceStyleSheetUpdate();
72  }
73 
75  {
76  if (ui->wi_Password->isVisible() == show) { return; }
77  if (m_passwordNameLabel.isEmpty()) { m_passwordNameLabel = ui->lbl_IdPassword->text(); }
78  ui->lbl_IdPassword->setText(show ? m_passwordNameLabel : "Id");
79  ui->wi_Password->setVisible(show);
80  }
81 
82  void CServerForm::tempUnhidePassword() { CGuiUtility::tempUnhidePassword(ui->le_Password); }
83 
85  {
86  Q_UNUSED(nested);
87  const CServer server = this->getServer();
88  return server.validate();
89  }
90 } // namespace swift::gui::editors
static void tempUnhidePassword(QLineEdit *lineEdit, int unhideMs=5000)
Temp. unhide password.
Definition: guiutility.cpp:483
Form base class.
Definition: form.h:27
void forceStyleSheetUpdate()
Forces a stylesheet update.
Definition: form.cpp:47
void showPasswordField(bool show)
Show the password field.
Definition: serverform.cpp:74
swift::misc::CStatusMessageList validate(bool nested=false) const
Validate, empty list means OK.
Definition: serverform.cpp:84
void setReadOnly(bool readonly)
Set editable.
Definition: serverform.cpp:58
void setServer(const swift::misc::network::CServer &server)
Set server.
Definition: serverform.cpp:30
void resetToFirstTab()
Reset to 1st tab.
Definition: serverform.cpp:56
swift::misc::network::CServer getServer() const
Get server.
Definition: serverform.cpp:44
Status messages, e.g. from Core -> GUI.
Value object for a FSD setup.
Definition: fsdsetup.h:24
Value object encapsulating information of a FSD server.
Definition: server.h:28
const QString & getDescription() const
Get description.
Definition: server.h:87
int getPort() const
Get port.
Definition: server.h:93
CStatusMessageList validate() const
Validate, provide details about issues.
Definition: server.cpp:90
const QString & getName() const
Get name.
Definition: server.h:69
const CFsdSetup & getFsdSetup() const
Get FSD setup.
Definition: server.h:117
const QString & getAddress() const
Get address.
Definition: server.h:57
const CEcosystem & getEcosystem() const
Get the ecosystem.
Definition: server.h:99
const CUser & getUser() const
Get user.
Definition: server.h:63
Value object encapsulating information of a user.
Definition: user.h:28
const QString & getPassword() const
Get password.
Definition: user.h:65
const QString & getRealName() const
Get full name.
Definition: user.h:59
const QString & getId() const
Get id.
Definition: user.h:119
Free functions in swift::misc.
void clicked(bool checked)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
bool isEmpty() const const
QString number(double n, char format, int precision)
void show()