14 using namespace swift::misc::network;
21 CServerListSelector::CServerListSelector(QWidget *parent) : QComboBox(parent)
25 connect(
this, &QComboBox::currentTextChanged,
this, &CServerListSelector::onServerTextChanged);
30 if (m_servers == servers) {
return; }
31 this->setServerItems(servers);
32 if (!servers.
isEmpty() && !m_pendingPreselect.isEmpty())
35 m_pendingPreselect.clear();
41 const int i = currentIndex();
42 if (i < 0 || i >= m_servers.
size()) {
return CServer(); }
48 if (name.isEmpty()) {
return false; }
51 m_pendingPreselect = name;
54 for (
int i = 0; i < m_servers.
size(); i++)
56 if (m_servers[i].matchesName(name))
58 this->setCurrentIndex(i);
65 void CServerListSelector::setServerItems(
const CServerList &servers)
67 QString currentlySelected(this->currentText());
73 for (
const CServer &server : servers)
75 const QString d(server.getName() +
": " + server.getDescription());
77 if (!currentlySelected.isEmpty() && index < 0 && d == currentlySelected) { index = m_items.size() - 1; }
83 if (m_items.isEmpty()) {
return; }
84 if (m_items.size() == 1) { this->setCurrentIndex(0); }
85 else if (index >= 0) { this->setCurrentIndex(index); }
88 void CServerListSelector::onServerTextChanged(
const QString &text)
void serverChanged(const swift::misc::network::CServer &server)
Server has been changed.
void setServers(const swift::misc::network::CServerList &servers)
Set the servers.
bool preSelect(const QString &name)
Preselect.
swift::misc::network::CServer currentServer() const
Get the current server.
T get() const
Get a copy of the current value.
size_type size() const
Returns number of elements in the sequence.
bool isEmpty() const
Synonym for empty.
Value object encapsulating information of a server.
bool hasName() const
Has name?
const QString & getName() const
Get name.
Value object encapsulating a list of servers.
Classes interacting with the swift database (aka "datastore").
Backend services of the swift project, like dealing with the network or the simulators.
High level reusable GUI components.
Free functions in swift::misc.