ircuserlist.h
1 //------------------------------------------------------------------------------
2 // ircuserlist.h
3 //------------------------------------------------------------------------------
4 //
5 // This library is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation; either
8 // version 2.1 of the License, or (at your option) any later version.
9 //
10 // This library is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 // Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with this library; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 // 02110-1301 USA
19 //
20 //------------------------------------------------------------------------------
21 // Copyright (C) 2010 "Zalewa" <zalewapl@gmail.com>
22 //------------------------------------------------------------------------------
23 #ifndef __IRCUSERLIST_H__
24 #define __IRCUSERLIST_H__
25 
26 #include <QString>
27 #include <QStringList>
28 #include <QVector>
29 
30 class IRCUserInfo;
31 
43 {
44  public:
45  ~IRCUserList();
46 
56  bool appendNameToCachedList(const IRCUserInfo& userInfo);
57 
63  bool changeNick(const QString& oldNickname, const QString& newNickname);
64 
65  void clear();
66 
67  bool hasUser(const QString& nickname) const;
68 
69  const IRCUserInfo* operator[](int index) const { return usersArray[index]; }
70 
76  bool removeNameFromCachedList(const QString& nickname);
77 
78  void setUserModes(const QString& nickname, const QList<char> &modes);
79 
80  unsigned size() const { return this->usersArray.size(); }
81 
87  QStringList toStringList() const;
88 
89  const IRCUserInfo* user(const QString& nickname) const;
90 
98  IRCUserInfo userCopy(const QString& nickname) const;
99 
100  private:
101  QVector<IRCUserInfo*> usersArray;
102 
103  int indexOfName(const QString& nickname) const;
104 };
105 
106 #endif
Allows to perform operation on a list of users.
Definition: ircuserlist.h:42
bool appendNameToCachedList(const IRCUserInfo &userInfo)
Appends a single name to the users array.
Definition: ircuserlist.cpp:34
bool changeNick(const QString &oldNickname, const QString &newNickname)
Changes a nickname while preserving user flags.
Definition: ircuserlist.cpp:50
IRCUserInfo userCopy(const QString &nickname) const
Gets a copy of the IRCUserInfo for user with given name.
bool removeNameFromCachedList(const QString &nickname)
Removes a name from the sortecd cachedNames list.
Definition: ircuserlist.cpp:84
Holds information flags about given nickname.
Definition: ircuserinfo.h:35
QStringList toStringList() const
Returns all prefixed nicknames in a string list.