wrapper update and minor fixes

This commit is contained in:
ingvar1995 2018-08-03 18:04:28 +03:00
parent c7a83055b1
commit 25de4fa2ef
3 changed files with 24 additions and 14 deletions

View File

@ -179,7 +179,11 @@ class ContactsManager(ToxSave):
part2 = sorted(part2, key=key_lambda)
self._contacts = part1 + part2
elif sorting == 0:
self._contacts = sorted(self._contacts, key=lambda x: x.number)
contacts = sorted(self._contacts, key=lambda c: c.number)
friends = filter(lambda c: type(c) is Friend, contacts)
groups = filter(lambda c: type(c) is GroupChat, contacts)
group_peers = filter(lambda c: type(c) is GroupPeerContact, contacts)
self._contacts = list(friends) + list(groups) + list(group_peers)
else:
self._contacts = sorted(self._contacts, key=lambda x: x.name.lower())
@ -194,6 +198,7 @@ class ContactsManager(ToxSave):
friend.visibility = (friend.status is not None or sorting not in (1, 4)) and filtered_by_name
# show friend even if it's hidden when there any unread messages/actions
friend.visibility = friend.visibility or friend.messages or friend.actions
# TODO: calculate height
if friend.visibility:
self._screen.friends_list.item(index).setSizeHint(QtCore.QSize(250, self._friend_item_height))
else:
@ -542,10 +547,7 @@ class ContactsManager(ToxSave):
remove(avatar_path)
def _delete_contact(self, num):
if len(self._contacts) == 1:
self.set_active(-1)
else:
self.set_active(0)
self.set_active(-1 if len(self._contacts) == 1 else 0)
self._contact_provider.remove_contact_from_cache(self._contacts[num].tox_id)
del self._contacts[num]

View File

@ -104,7 +104,7 @@ class GroupsService(tox_save.ToxSave):
def set_group_topic(self, group):
if not group.is_moderator_or_founder():
return
text = util_ui.tr('New topic for group {}:'.format(group.name))
text = util_ui.tr('New topic for group "{}":'.format(group.name))
title = util_ui.tr('Set group topic')
topic, ok = util_ui.text_dialog(text, title, group.status_message)
if not ok or not topic:
@ -151,6 +151,7 @@ class GroupsService(tox_save.ToxSave):
self_peer = group.get_self_peer()
self_peer.name = name
self_peer.status = status
self.generate_peers_list()
# -----------------------------------------------------------------------------------------------------------------
# Private methods

View File

@ -1940,6 +1940,13 @@ class Tox:
result = Tox.libtoxcore.tox_group_get_number_groups(self._tox_pointer)
return result
def groups_get_list(self):
groups_list_size = self.group_get_number_groups()
groups_list = create_string_buffer(sizeof(c_uint32) * groups_list_size)
groups_list = POINTER(c_uint32)(groups_list)
Tox.libtoxcore.tox_groups_get_list(self._tox_pointer, groups_list)
return groups_list[0:groups_list_size]
def group_get_privacy_state(self, group_number):
"""
Return the privacy state of the group designated by the given group number. If group number
@ -2461,7 +2468,7 @@ class Tox:
create_string_buffer(sizeof(c_uint32) * self.group_ban_get_list_size(group_number)), byref(error)))
return result
def group_ban_get_name_size(self, group_number, ban_id):
def group_ban_get_target_size(self, group_number, ban_id):
"""
Return the length of the name for the ban list entry designated by ban_id, in the
group designated by the given group number. If either group_number or ban_id is invalid,
@ -2469,10 +2476,10 @@ class Tox:
"""
error = c_int()
result = Tox.libtoxcore.tox_group_ban_get_name_size(self._tox_pointer, group_number, ban_id, byref(error))
result = Tox.libtoxcore.tox_group_ban_get_target_size(self._tox_pointer, group_number, ban_id, byref(error))
return result
def group_ban_get_name(self, group_number, ban_id):
def group_ban_get_target(self, group_number, ban_id):
"""
Write the name of the ban entry designated by ban_id in the group designated by the
given group number to a byte array.
@ -2483,12 +2490,12 @@ class Tox:
"""
error = c_int()
size = self.group_ban_get_name_size(group_number, ban_id)
name = create_string_buffer()
size = self.group_ban_get_target_size(group_number, ban_id)
target = create_string_buffer(size)
result = Tox.libtoxcore.tox_group_ban_get_name(self._tox_pointer, group_number, ban_id,
name, byref(error))
return str(name[:size], 'utf-8')
result = Tox.libtoxcore.tox_group_ban_get_target(self._tox_pointer, group_number, ban_id,
target, byref(error))
return str(target[:size], 'utf-8')
def group_ban_get_time_set(self, group_number, ban_id):
"""