Daniel Brötzmann pushed to branch mainwindow at gajim / gajim
Commits: f6d8a6d7 by wurstsalat at 2021-07-19T23:01:48+02:00 Group Chat: Fixes for direct messages
- - - - -
5 changed files:
- gajim/gtk/controls/groupchat.py - gajim/gtk/controls/private.py - gajim/gtk/groupchat_roster.py - gajim/gtk/tooltips.py - gajim/gui_menu_builder.py
Changes:
===================================== gajim/gtk/controls/groupchat.py ===================================== @@ -609,13 +609,14 @@ def show_roster(self): def _on_roster_row_activated(self, _roster, nick): muc_prefer_direct_msg = app.settings.get('muc_prefer_direct_msg') if not self.is_anonymous and muc_prefer_direct_msg: + participant = self.contact.get_resource(nick) app.window.add_chat(self.account, - self.contact.jid, + participant.real_jid.bare, 'contact', select=True) else: contact = self.contact.get_resource(nick) - app.window.add_private_chat(self.account, contact.jid) + app.window.add_private_chat(self.account, contact.jid, select=True)
def _on_avatar_update(self, _contact, _signal_name): self._update_avatar()
===================================== gajim/gtk/controls/private.py ===================================== @@ -24,6 +24,7 @@ # You should have received a copy of the GNU General Public License # along with Gajim. If not, see http://www.gnu.org/licenses/.
+from gajim.common import app from gajim.common import helpers from gajim.common.i18n import _
@@ -43,6 +44,7 @@ class PrivateChatControl(ChatControl): COMMAND_HOST = PrivateChatCommands
def __init__(self, account, jid): + self._client = app.get_client(account) self._room_contact = self._client.get_module('Contacts').get_contact( jid.bare)
===================================== gajim/gtk/groupchat_roster.py ===================================== @@ -279,7 +279,7 @@ def _on_roster_row_activated(self, _treeview, path, _column): # This is a group row return nick = self._store[iter_][Column.NICK_OR_GROUP] - if self._control.nick == nick: + if self._control.contact.nickname == nick: return self.emit('row-activated', nick)
@@ -301,10 +301,10 @@ def _on_roster_button_press_event(self, treeview, event): if self._group_chat_contact.nickname == nick: return
- if event.button == 3: # right click + if event.button == 3: # right click self._show_contact_menu(nick)
- if event.button == 2: # middle click + if event.button == 2: # middle click self.emit('row-activated', nick)
def _show_contact_menu(self, nick):
===================================== gajim/gtk/tooltips.py ===================================== @@ -100,7 +100,7 @@ def _populate_grid(self, contact):
# JID if contact.real_jid is not None: - self._ui.jid.set_text(str(contact.jid)) + self._ui.jid.set_text(str(contact.real_jid.bare)) self._ui.jid.show()
# Affiliation
===================================== gajim/gui_menu_builder.py ===================================== @@ -918,8 +918,8 @@ def get_groupchat_roster_menu(account, control_id, self_contact, contact):
item = Gtk.MenuItem(label=_('Add to Contact List…')) action = 'app.{account}-add-contact(["{account}", "{jid}"])'.format( - account=account, jid=contact.jid or '') - if contact.jid is None: + account=account, jid=contact.real_jid or '') + if contact.real_jid is None: item.set_sensitive(False) else: item.set_detailed_action_name(action) @@ -941,7 +941,7 @@ def get_groupchat_roster_menu(account, control_id, self_contact, contact): menu.append(item)
item = Gtk.MenuItem(label=_('Ban')) - action = 'win.ban-%s::%s' % (control_id, contact.jid or '') + action = 'win.ban-%s::%s' % (control_id, contact.real_jid or '') if is_affiliation_change_allowed(self_contact, contact, 'outcast'): item.set_detailed_action_name(action) else: @@ -952,7 +952,7 @@ def get_groupchat_roster_menu(account, control_id, self_contact, contact):
item = Gtk.MenuItem(label=_('Make Owner')) action = 'win.change-affiliation-%s(["%s", "owner"])' % (control_id, - contact.jid) + contact.real_jid) if is_affiliation_change_allowed(self_contact, contact, 'owner'): item.set_detailed_action_name(action) else: @@ -961,7 +961,7 @@ def get_groupchat_roster_menu(account, control_id, self_contact, contact):
item = Gtk.MenuItem(label=_('Make Admin')) action = 'win.change-affiliation-%s(["%s", "admin"])' % (control_id, - contact.jid) + contact.real_jid) if is_affiliation_change_allowed(self_contact, contact, 'admin'): item.set_detailed_action_name(action) else: @@ -970,7 +970,7 @@ def get_groupchat_roster_menu(account, control_id, self_contact, contact):
item = Gtk.MenuItem(label=_('Make Member')) action = 'win.change-affiliation-%s(["%s", "member"])' % (control_id, - contact.jid) + contact.real_jid) if is_affiliation_change_allowed(self_contact, contact, 'member'): item.set_detailed_action_name(action) else: @@ -979,7 +979,7 @@ def get_groupchat_roster_menu(account, control_id, self_contact, contact):
item = Gtk.MenuItem(label=_('Revoke Member')) action = 'win.change-affiliation-%s(["%s", "none"])' % (control_id, - contact.jid) + contact.real_jid) if is_affiliation_change_allowed(self_contact, contact, 'none'): item.set_detailed_action_name(action) else:
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/f6d8a6d76558793d3ab62fdd0a3674ba3...