summaryrefslogtreecommitdiff
path: root/src/gui/windows
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-02-23 13:16:28 +0300
committerAndrei Karas <akaras@inbox.ru>2014-02-23 13:16:28 +0300
commit61292d969be1ba94ed2847edc2168c438b1a76ab (patch)
tree5df96bc3ff525b7f2e7598bd3b07d152acd295ab /src/gui/windows
parent03e7dcdcf8624a6c2a5d25e25484cd5d8c7df74b (diff)
downloadplus-61292d969be1ba94ed2847edc2168c438b1a76ab.tar.gz
plus-61292d969be1ba94ed2847edc2168c438b1a76ab.tar.bz2
plus-61292d969be1ba94ed2847edc2168c438b1a76ab.tar.xz
plus-61292d969be1ba94ed2847edc2168c438b1a76ab.zip
Move serverslistmodel into gui/models directory.
Diffstat (limited to 'src/gui/windows')
-rw-r--r--src/gui/windows/serverdialog.cpp42
-rw-r--r--src/gui/windows/serverdialog.h42
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.