1
#include "contactlist.h"
2
#include "contactlistgroupitem.h"
3
#include "contactlistrootitem.h"
4
#include "contactlistalphacomparator.h"
7
ContactList::ContactList(QObject* parent)
8
: QObject(parent), showOffline_(false), showGroups_(true)
10
rootItem_ = new ContactListRootItem(this);
11
invisibleGroup_ = new ContactListRootItem(this);
12
altInvisibleGroup_ = new ContactListRootItem(this);
13
itemComparator_ = new ContactListAlphaComparator();
16
const ContactListItemComparator* ContactList::itemComparator() const
18
return itemComparator_;
21
const QString& ContactList::search() const
26
void ContactList::setShowOffline(bool showOffline)
28
if (showOffline_ != showOffline) {
29
showOffline_ = showOffline;
34
void ContactList::setShowGroups(bool showGroups)
36
if (showGroups_ != showGroups) {
37
showGroups_ = showGroups;
42
void ContactList::setSearch(const QString& search)
44
QString oldSearch = search_;
47
if ((oldSearch.isEmpty() && !search.isEmpty()) || search.isEmpty()) {
50
if (search.isEmpty()) {
53
else if (search.startsWith(oldSearch)) {
54
updateVisibleParents();
56
else if (oldSearch.startsWith(search)) {
57
updateInvisibleParents();
64
void ContactList::emitDataChanged()
69
/*void ContactList::setShowGroups(bool showGroups)
71
showGroups_ = showGroups;
74
void ContactList::setShowAccounts(bool showAccounts)
76
showAccounts_ = showAccounts;
79
ContactListRootItem* ContactList::rootItem()
84
ContactListRootItem* ContactList::invisibleGroup()
86
return invisibleGroup_;
89
/*ContactListGroupItem* ContactList::hiddenGroup()
94
ContactListGroupItem* ContactList::agentsGroup()
99
ContactListGroupItem* ContactList::conferenceGroup()
101
return conferenceGroup_;
104
void ContactList::updateVisibleParents()
106
rootItem()->updateParents();
110
void ContactList::updateInvisibleParents()
112
invisibleGroup()->updateParents();
116
void ContactList::updateParents()
118
// Switch invisible groups
119
ContactListRootItem* tmpInvisibleGroup = invisibleGroup_;
120
invisibleGroup_ = altInvisibleGroup_;
121
altInvisibleGroup_ = tmpInvisibleGroup;
124
rootItem()->updateParents();
125
altInvisibleGroup_->updateParents();