diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-02-23 13:16:28 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-02-23 13:16:28 +0300 |
commit | 61292d969be1ba94ed2847edc2168c438b1a76ab (patch) | |
tree | 5df96bc3ff525b7f2e7598bd3b07d152acd295ab /src/gui/windows | |
parent | 03e7dcdcf8624a6c2a5d25e25484cd5d8c7df74b (diff) | |
download | manaverse-61292d969be1ba94ed2847edc2168c438b1a76ab.tar.gz manaverse-61292d969be1ba94ed2847edc2168c438b1a76ab.tar.bz2 manaverse-61292d969be1ba94ed2847edc2168c438b1a76ab.tar.xz manaverse-61292d969be1ba94ed2847edc2168c438b1a76ab.zip |
Move serverslistmodel into gui/models directory.
Diffstat (limited to 'src/gui/windows')
-rw-r--r-- | src/gui/windows/serverdialog.cpp | 42 | ||||
-rw-r--r-- | src/gui/windows/serverdialog.h | 42 |
2 files changed, 3 insertions, 81 deletions
diff --git a/src/gui/windows/serverdialog.cpp b/src/gui/windows/serverdialog.cpp index a6e3637fb..18da8682e 100644 --- a/src/gui/windows/serverdialog.cpp +++ b/src/gui/windows/serverdialog.cpp @@ -34,6 +34,8 @@ #include "gui/font.h" #include "gui/gui.h" +#include "gui/models/serverslistmodel.h" + #include "gui/widgets/checkbox.h" #include "gui/windows/editserverdialog.h" #include "gui/windows/logindialog.h" @@ -105,46 +107,6 @@ static uint16_t defaultPortForServerType(const ServerInfo::Type type) } } -ServersListModel::ServersListModel(ServerInfos *const servers, - ServerDialog *const parent) : - mServers(servers), - mVersionStrings(servers->size(), VersionString(0, "")), - mParent(parent) -{ -} - -int ServersListModel::getNumberOfElements() -{ - MutexLocker lock = mParent->lock(); - return static_cast<int>(mServers->size()); -} - -std::string ServersListModel::getElementAt(int elementIndex) -{ - MutexLocker lock = mParent->lock(); - const ServerInfo &server = mServers->at(elementIndex); - std::string myServer; - myServer.append(server.hostname); - return myServer; -} - -void ServersListModel::setVersionString(const int index, - const std::string &version) -{ - if (index < 0 || index >= static_cast<int>(mVersionStrings.size())) - return; - - if (version.empty() || !gui) - { - mVersionStrings[index] = VersionString(0, ""); - } - else - { - mVersionStrings[index] = VersionString( - gui->getFont()->getWidth(version), version); - } -} - class ServersListBox final : public ListBox { public: diff --git a/src/gui/windows/serverdialog.h b/src/gui/windows/serverdialog.h index 2d0ada344..07e2b5dcc 100644 --- a/src/gui/windows/serverdialog.h +++ b/src/gui/windows/serverdialog.h @@ -44,47 +44,7 @@ class CheckBox; class Label; class ListBox; class ServerDialog; - -/** - * Server and Port List Model - */ -class ServersListModel final : public ListModel -{ - public: - typedef std::pair<int, std::string> VersionString; - - ServersListModel(ServerInfos *const servers, - ServerDialog *const parent); - - A_DELETE_COPY(ServersListModel) - - /** - * Used to get number of line in the list - */ - int getNumberOfElements() override final A_WARN_UNUSED; - - /** - * Used to get an element from the list - */ - std::string getElementAt(int elementIndex) - override final A_WARN_UNUSED; - - /** - * Used to get the corresponding Server struct - */ - const ServerInfo &getServer(const int elementIndex) const A_WARN_UNUSED - { return mServers->at(elementIndex); } - - void setVersionString(const int index, const std::string &version); - - private: - typedef std::vector<VersionString> VersionStrings; - - ServerInfos *mServers; - VersionStrings mVersionStrings; - ServerDialog *mParent; -}; - +class ServersListModel; /** * The server choice dialog. |