qTox
Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
src
grouplist.cpp
Go to the documentation of this file.
1
/*
2
Copyright © 2014-2019 by The qTox Project Contributors
3
4
This file is part of qTox, a Qt-based graphical interface for Tox.
5
6
qTox is libre software: you can redistribute it and/or modify
7
it under the terms of the GNU General Public License as published by
8
the Free Software Foundation, either version 3 of the License, or
9
(at your option) any later version.
10
11
qTox is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
GNU General Public License for more details.
15
16
You should have received a copy of the GNU General Public License
17
along with qTox. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#include "
grouplist.h
"
21
#include "
src/core/core.h
"
22
#include "
src/model/group.h
"
23
#include <QDebug>
24
#include <QHash>
25
26
QHash<const GroupId, Group*>
GroupList::groupList
;
27
QHash<uint32_t, GroupId>
GroupList::id2key
;
28
Group
*
GroupList::addGroup
(
Core
& core,
int
groupNum,
const
GroupId
& groupId,
const
QString& name,
bool
isAvGroupchat,
29
const
QString& selfName)
30
{
31
auto
checker =
groupList
.find(groupId);
32
if
(checker !=
groupList
.end()) {
33
qWarning() <<
"addGroup: groupId already taken"
;
34
}
35
36
Group
* newGroup =
new
Group
(groupNum, groupId, name, isAvGroupchat, selfName, core, core);
37
groupList
[groupId] = newGroup;
38
id2key
[groupNum] = groupId;
39
return
newGroup;
40
}
41
42
Group
*
GroupList::findGroup
(
const
GroupId
& groupId)
43
{
44
auto
g_it =
groupList
.find(groupId);
45
if
(g_it !=
groupList
.end())
46
return
*g_it;
47
48
return
nullptr
;
49
}
50
51
const
GroupId
&
GroupList::id2Key
(uint32_t groupNum)
52
{
53
return
id2key
[groupNum];
54
}
55
56
void
GroupList::removeGroup
(
const
GroupId
& groupId,
bool
/*fake*/
)
57
{
58
auto
g_it =
groupList
.find(groupId);
59
if
(g_it !=
groupList
.end()) {
60
groupList
.erase(g_it);
61
}
62
}
63
64
QList<Group*>
GroupList::getAllGroups
()
65
{
66
QList<Group*>
res;
67
68
for
(
auto
it :
groupList
)
69
res.append(it);
70
71
return
res;
72
}
73
74
void
GroupList::clear
()
75
{
76
for
(
auto
groupptr :
groupList
)
77
delete
groupptr;
78
groupList
.clear();
79
}
GroupList::groupList
static QHash< const GroupId, Group * > groupList
Definition:
grouplist.h:43
group.h
GroupList::id2key
static QHash< uint32_t, GroupId > id2key
Definition:
grouplist.h:44
QList
Definition:
friendlist.h:25
GroupList::id2Key
static const GroupId & id2Key(uint32_t groupNum)
Definition:
grouplist.cpp:51
grouplist.h
QHash< const GroupId, Group * >
GroupList::removeGroup
static void removeGroup(const GroupId &groupId, bool fake=false)
Definition:
grouplist.cpp:56
GroupId
This class represents a long term persistent group identifier.
Definition:
groupid.h:26
Group
Definition:
group.h:34
GroupList::clear
static void clear()
Definition:
grouplist.cpp:74
core.h
GroupList::findGroup
static Group * findGroup(const GroupId &groupId)
Definition:
grouplist.cpp:42
GroupList::getAllGroups
static QList< Group * > getAllGroups()
Definition:
grouplist.cpp:64
GroupList::addGroup
static Group * addGroup(Core &core, int groupId, const GroupId &persistentGroupId, const QString &name, bool isAvGroupchat, const QString &selfName)
Definition:
grouplist.cpp:28
Core
Definition:
core.h:59
Generated by
1.8.17