From 61292d969be1ba94ed2847edc2168c438b1a76ab Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Sun, 23 Feb 2014 13:16:28 +0300
Subject: Move serverslistmodel into gui/models directory.

---
 src/gui/windows/serverdialog.cpp | 42 ++--------------------------------------
 src/gui/windows/serverdialog.h   | 42 +---------------------------------------
 2 files changed, 3 insertions(+), 81 deletions(-)

(limited to 'src/gui/windows')

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.
-- 
cgit v1.2.3-70-g09d2