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/f6d8a6d76558793d3ab62fdd0a3674ba3ffbb734
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/f6d8a6d76558793d3ab62fdd0a3674ba3ffbb734
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits