diff options
Diffstat (limited to 'src/gui/serverdialog.cpp')
-rw-r--r-- | src/gui/serverdialog.cpp | 72 |
1 files changed, 17 insertions, 55 deletions
diff --git a/src/gui/serverdialog.cpp b/src/gui/serverdialog.cpp index abe898b0..ca8da9b4 100644 --- a/src/gui/serverdialog.cpp +++ b/src/gui/serverdialog.cpp @@ -21,6 +21,7 @@ #include "gui/serverdialog.h" +#include "chatlog.h" #include "client.h" #include "configuration.h" #include "gui.h" @@ -29,7 +30,6 @@ #include "gui/okdialog.h" #include "gui/sdlinput.h" -#include "gui/theme.h" #include "gui/widgets/button.h" #include "gui/widgets/dropdown.h" @@ -41,10 +41,11 @@ #include "net/net.h" +#include "resources/theme.h" + #include "utils/gettext.h" #include "utils/stringutils.h" #include "utils/xml.h" -#include "widgets/dropdown.h" #include <guichan/font.hpp> @@ -198,18 +199,13 @@ ServerDialog::ServerDialog(ServerInfo *serverInfo, const std::string &dir): mDownloadStatus(DOWNLOADING_PREPARING), mDownloadProgress(-1.0f), mServers(ServerInfos()), -#ifndef MANASERV_SUPPORT - mManaservServers(ServerInfos()), -#endif mServerInfo(serverInfo) { setWindowName("ServerDialog"); Label *serverLabel = new Label(_("Server:")); Label *portLabel = new Label(_("Port:")); -#ifdef MANASERV_SUPPORT Label *typeLabel = new Label(_("Server type:")); -#endif mServerNameField = new TextField(mServerInfo->hostname); mPortField = new TextField(toString(mServerInfo->port)); @@ -247,7 +243,6 @@ ServerDialog::ServerDialog(ServerInfo *serverInfo, const std::string &dir): place(1, 0, mServerNameField, 4).setPadding(3); place(0, 1, portLabel); place(1, 1, mPortField, 4).setPadding(3); -#ifdef MANASERV_SUPPORT place(0, 2, typeLabel); place(1, 2, mTypeField, 4).setPadding(3); place(0, 3, usedScroll, 5, 5).setPadding(3); @@ -256,14 +251,6 @@ ServerDialog::ServerDialog(ServerInfo *serverInfo, const std::string &dir): place(1, 9, mDeleteButton); place(3, 9, mQuitButton); place(4, 9, mConnectButton); -#else - place(0, 2, usedScroll, 5, 5).setPadding(3); - place(0, 7, mDescription, 5); - place(0, 8, mManualEntryButton); - place(1, 8, mDeleteButton); - place(3, 8, mQuitButton); - place(4, 8, mConnectButton); -#endif // Make sure the list has enough height getLayout().setRowHeight(3, 80); @@ -360,6 +347,8 @@ void ServerDialog::action(const gcn::ActionEvent &event) // Save the selected server mServerInfo->save = true; + chatLogger->setServerName(mServerInfo->hostname); + saveCustomServers(*mServerInfo); Client::setState(STATE_CONNECT_SERVER); @@ -427,6 +416,16 @@ void ServerDialog::valueChanged(const gcn::SelectionEvent &) mDeleteButton->setEnabled(myServer.save); } +void ServerDialog::mouseClicked(gcn::MouseEvent &mouseEvent) +{ + if (mouseEvent.getSource() == mServersList && + isDoubleClick(mServersList->getSelected())) + { + action(gcn::ActionEvent(mConnectButton, + mConnectButton->getActionEventId())); + } +} + void ServerDialog::logic() { { @@ -468,12 +467,7 @@ void ServerDialog::setFieldsReadOnly(bool readOnly) mServersList->setSelected(-1); mServerNameField->setText(std::string()); -#ifdef MANASERV_SUPPORT mPortField->setText(std::string()); -#else - mPortField->setText(std::string("6901")); -#endif - mServerNameField->requestFocus(); } @@ -489,10 +483,10 @@ void ServerDialog::setFieldsReadOnly(bool readOnly) void ServerDialog::downloadServerList() { // Try to load the configuration value for the onlineServerList - std::string listFile = branding.getValue("onlineServerList", std::string()); + std::string listFile = branding.getStringValue("onlineServerList"); if (listFile.empty()) - listFile = config.getValue("onlineServerList", std::string()); + listFile = config.getStringValue("onlineServerList"); // Fall back to manasource.org when neither branding nor config set it if (listFile.empty()) @@ -594,11 +588,7 @@ void ServerDialog::loadServers() } } -#ifdef MANASERV_SUPPORT if (!found) -#else - if (!found && server.type != ServerInfo::MANASERV) -#endif mServers.push_back(server); } } @@ -625,14 +615,7 @@ void ServerDialog::loadCustomServers() server.save = true; -#ifdef MANASERV_SUPPORT mServers.push_back(server); -#else - if (server.type == ServerInfo::MANASERV) - mManaservServers.push_back(server); - else - mServers.push_back(server); -#endif } } @@ -675,27 +658,6 @@ void ServerDialog::saveCustomServers(const ServerInfo ¤tServer) ++savedServerCount; } -#ifndef MANASERV_SUPPORT - for (unsigned i = 0; - i < mManaservServers.size() && savedServerCount < MAX_SERVERLIST; ++i) - { - const ServerInfo &server = mManaservServers.at(i); - - // Only save servers that were loaded from settings - if (!(server.save && server.isValid())) - continue; - - const std::string index = toString(savedServerCount); - const std::string nameKey = "MostUsedServerName" + index; - const std::string typeKey = "MostUsedServerType" + index; - const std::string portKey = "MostUsedServerPort" + index; - - config.setValue(nameKey, toString(server.hostname)); - config.setValue(typeKey, serverTypeToString(server.type)); - config.setValue(portKey, toString(server.port)); - ++savedServerCount; - } -#endif // Insert an invalid entry at the end to make the loading stop there if (savedServerCount < MAX_SERVERLIST) config.setValue("MostUsedServerName" + toString(savedServerCount), ""); |