blob: 685598976033c9690d065ba41382a40082d3ae93 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
/*
* Copyright (c) 2010 Kevin Smith
* Licensed under the GNU General Public License v3.
* See Documentation/Licenses/GPLv3.txt for more information.
*/
#pragma once
#include <QColor>
#include <QVariant>
#include <string>
#include "Swiften/Roster/TreeWidgetFactory.h"
#include "Swiften/Roster/TreeWidget.h"
#include "Swiften/Roster/TreeWidgetItem.h"
#include "Swift/QtUI/QtSwiftUtil.h"
namespace Swift {
enum RosterRoles {
StatusTextRole = Qt::UserRole,
AvatarRole = Qt::UserRole + 1,
PresenceIconRole = Qt::UserRole + 2,
StatusShowTypeRole = Qt::UserRole + 3
};
class QtTreeWidget;
class QtTreeWidgetItem : public QObject, public TreeWidgetItem {
Q_OBJECT
public:
~QtTreeWidgetItem();
void addChild(QtTreeWidgetItem* child);
void removeChild(QtTreeWidgetItem* child);
QtTreeWidgetItem* getParentItem();
int rowCount();
int rowOf(QtTreeWidgetItem* item);
int row();
QtTreeWidgetItem* getItem(int row);
QVariant data(int role);
QIcon getPresenceIcon();
QtTreeWidgetItem(QtTreeWidgetItem* parentItem);
void setText(const std::string& text);
void setAvatarPath(const std::string& path);
void setStatusText(const std::string& text);
void setStatusShow(StatusShow::Type show);
void setTextColor(unsigned long color);
void setBackgroundColor(unsigned long color);
void setExpanded(bool b);
void parentItemHasBeenDeleted();
void hide();
void show();
bool isShown();
bool isContact() const;
bool isExpanded();
const QString& getName() const {return displayName_;};
const QString& getLowerName() const {return displayNameLower_;};
StatusShow::Type getStatusShow() const {return statusShowType_;};
StatusShow::Type getStatusShowMerged() const {return mergedShowType_;};
QWidget* getCollapsedRosterWidget();
QWidget* getExpandedRosterWidget();
bool operator<(const QtTreeWidgetItem& item) const;
signals:
void changed(QtTreeWidgetItem*);
private slots:
void handleChanged(QtTreeWidgetItem* item);
private:
QString toolTipString();
QList<QtTreeWidgetItem*> children_;
QList<QtTreeWidgetItem*> shownChildren_;
QtTreeWidgetItem* parent_;
QString displayName_;
QString displayNameLower_;
QString statusText_;
QColor textColor_;
QColor backgroundColor_;
QVariant avatar_;
bool shown_;
bool expanded_;
StatusShow::Type statusShowType_;
StatusShow::Type mergedShowType_;
};
bool itemLessThan(QtTreeWidgetItem* left, QtTreeWidgetItem* right);
}
|