ManaPlus
updatelistmodel.h
Go to the documentation of this file.
1 /*
2  * The ManaPlus Client
3  * Copyright (C) 2004-2009 The Mana World Development Team
4  * Copyright (C) 2009-2010 The Mana Developers
5  * Copyright (C) 2011-2019 The ManaPlus Developers
6  * Copyright (C) 2019-2021 Andrei Karas
7  *
8  * This file is part of The ManaPlus Client.
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program. If not, see <http://www.gnu.org/licenses/>.
22  */
23 
24 #ifndef GUI_MODELS_UPDATELISTMODEL_H
25 #define GUI_MODELS_UPDATELISTMODEL_H
26 
27 #include "gui/models/listmodel.h"
28 
29 #include "net/serverinfo.h"
30 
31 #include "utils/cast.h"
32 #include "utils/foreach.h"
33 
34 #include "localconsts.h"
35 
37 {
38  public:
39  explicit UpdateListModel(ServerInfo *const server) :
40  ListModel(),
41  mNames(),
42  mServer(server)
43  {
44  FOR_EACH(STD_VECTOR<HostsGroup>::const_iterator,
45  it,
46  server->updateHosts)
47  {
48  const HostsGroup &group = *it;
49  mNames.push_back(group.name);
50  }
51  }
52 
54 
56  {
57  return CAST_S32(mNames.size());
58  }
59 
60  std::string getElementAt(int i) override final
61  {
62  if (i >= getNumberOfElements() || i < 0)
63  return "???";
64  return mNames[i];
65  }
66 
67  bool empty() const
68  {
69  return mNames.empty();
70  }
71 
72  protected:
75 };
76 
77 #endif // GUI_MODELS_UPDATELISTMODEL_H
#define CAST_S32
Definition: cast.h:30
std::vector< HostsGroup > updateHosts
Definition: serverinfo.h:54
std::string getElementAt(int i)
StringVect mNames
bool empty() const
UpdateListModel(ServerInfo *const server)
ServerInfo * mServer
#define FOR_EACH(type, iter, array)
Definition: foreach.h:25
#define override
Definition: localconsts.h:47
#define final
Definition: localconsts.h:46
#define A_DELETE_COPY(func)
Definition: localconsts.h:53
std::vector< std::string > StringVect
Definition: stringvector.h:29
std::string name
Definition: hostsgroup.h:39