-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChatMembers.py
executable file
·86 lines (73 loc) · 2.82 KB
/
ChatMembers.py
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
from PyQt4.QtCore import QSettings, Qt
from ChatMembersItem import ChatMembersItem
from AbstractContactList import AbstractContactList
class ChatMembers(AbstractContactList):
def __init__(self, parent):
AbstractContactList.__init__(self, parent)
self.hide()
self.setMaximumWidth(200)
self.parent = parent
self.members = True
def updateMembers(self):
if unicode(self.parent.con.jabberID) in self.parent.jidTo:
self.parent.jidTo.remove(unicode(self.parent.con.jabberID))
for child in self.buddies.values():
if child.checkIfMember() == 2 and child.jid not in self.parent.jidTo:
self.parent.jidTo.append(child.jid)
if child.checkIfMember() == 0 and child.jid in self.parent.jidTo:
self.parent.jidTo.remove(child.jid)
self.parent.updateDialog()
self.hideGroups()
def constructMessageList(self):
rosterKeys = self.getRosterKeys()
for jid in rosterKeys:
if self.connection:
group = self.connection.getGroups(jid)[0]
self.addGroup(group)
if jid not in self.buddies.keys():
show = self.connection.getShow(jid)
if jid in self.parent.jidTo:
self.buddies[jid] = ChatMembersItem(self.groups[group], jid, show, self.connection, Qt.Checked)
else:
self.buddies[jid] = ChatMembersItem(self.groups[group], jid, show, self.connection, Qt.Unchecked)
self.buddies[jid].setName(self.connection.getName(jid))
self.groups[group].addChild(self.buddies[jid])
self.tree[group][jid] = self.buddies[jid]
def constructMUCList(self):
rosterKeys = self.getRosterKeys()
for jid in rosterKeys:
if self.connection:
group = self.connection.getGroups(jid)[0]
self.addGroup(group)
if jid not in self.buddies.keys():
show = self.connection.getShow(jid)
if jid in self.parent.jidTo:
self.buddies[jid] = ChatMembersItem(self.groups[group], jid, show, self.connection, Qt.Checked)
else:
self.buddies[jid] = ChatMembersItem(self.groups[group], jid, show, self.connection, Qt.Unchecked)
self.buddies[jid].setName(self.connection.getName(jid))
self.groups[group].addChild(self.buddies[jid])
self.tree[group][jid] = self.buddies[jid]
self.parent.buddyList.expandAll()
def getRosterKeys(self):
self.settings = QSettings("Dae-ekleN", "PyTalk")
self.settings.beginGroup(self.connection.jabberID)
rosterKeys = self.settings.value("roster", "")
self.settings.endGroup()
return rosterKeys
def showMembersBuddies(self, hide):
self.members = hide
self.hideGroups()
def hideGroups(self):
for child in self.buddies.values():
if child.jid not in self.parent.jidTo:
child.setHidden(self.members)
else:
child.setHidden(False)
for group in self.tree.keys():
hide = True
for child in self.tree[group].values():
if not child.isHidden():
hide = False
self.groups[group].setHidden(hide)
self.expandAll()