Philipp Hörist pushed to branch master at gajim / gajim
Commits: ba1f88a0 by Daniel Brötzmann at 2019-04-27T12:04:19Z RosterWindow: Remove blocked contacts from contact list if not in roster
When blocking a contact which is not in the roster, the contact is removed and the ChatControl is closed (if any).
- - - - -
2 changed files:
- gajim/data/gui/blocking_list.ui - gajim/roster_window.py
Changes:
===================================== gajim/data/gui/blocking_list.ui ===================================== @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- Generated with glade 3.22.1 --> <interface> - <requires lib="gtk+" version="3.12"/> + <requires lib="gtk+" version="3.20"/> <object class="GtkListStore" id="blocking_store"> <columns> <!-- column-name jid --> @@ -13,10 +13,7 @@ <property name="height_request">300</property> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="margin_left">18</property> - <property name="margin_right">18</property> - <property name="margin_top">18</property> - <property name="margin_bottom">18</property> + <property name="border_width">18</property> <property name="row_spacing">5</property> <property name="column_spacing">10</property> <child> @@ -83,6 +80,9 @@ <property name="halign">end</property> <property name="always_show_image">True</property> <signal name="clicked" handler="_on_save" swapped="no"/> + <style> + <class name="suggested-action"/> + </style> </object> <packing> <property name="left_attach">1</property>
===================================== gajim/roster_window.py ===================================== @@ -64,8 +64,8 @@ from gajim.common.dbus import location from gajim.common import ged from gajim.message_window import MessageWindowMgr
-from gajim.gtk.dialogs import ConfirmationDialogCheck from gajim.gtk.dialogs import ConfirmationDialog +from gajim.gtk.dialogs import ConfirmationDialogCheck from gajim.gtk.dialogs import ErrorDialog from gajim.gtk.dialogs import InputDialog from gajim.gtk.dialogs import WarningDialog @@ -2789,6 +2789,15 @@ class RosterWindow: con = app.connections[acct] con.get_module('PrivacyLists').block_contacts(l_, msg) for contact in l_: + ctrl = app.interface.msg_win_mgr.get_control( + contact.jid, acct) + if ctrl: + ctrl.parent_win.remove_tab( + ctrl, ctrl.parent_win.CLOSE_COMMAND, force=True) + if contact.show == 'not in roster': + self.remove_contact(contact.jid, acct, force=True, + backend=True) + return self.draw_contact(contact.jid, acct) else: for acct in accounts: @@ -2801,7 +2810,7 @@ class RosterWindow:
def _block_it(is_checked=None): if is_checked is not None: # dialog has been shown - if is_checked: # user does not want to be asked again + if is_checked: # user does not want to be asked again app.config.set('confirm_block', 'no') else: app.config.set('confirm_block', 'yes') @@ -2811,12 +2820,17 @@ class RosterWindow: if confirm_block == 'no': _block_it() return - pritext = _('You are about to block a contact. Are you sure you want' - ' to continue?') - sectext = _('This contact will see you offline and you will not ' - 'receive messages it sends you.') - ConfirmationDialogCheck(pritext, sectext, - _('_Do not ask me again'), on_response_ok=_block_it) + NewConfirmationCheckDialog(_('Block Contact'), + _('Really block this contact?'), + _('This contact will see you offline and ' + 'you will not receive messages sent to ' + 'you by this contact.'), + _('_Do not ask me again'), + [DialogButton.make('Cancel'), + DialogButton.make('Remove', + text=_('Block Contact'), + callback=_block_it)], + modal=False).show()
def on_unblock(self, widget, list_, group=None): """
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/ba1f88a006909856d94ea9f827678b25cc0...