diff --git a/gajim/gtk/const.py b/gajim/gtk/const.py index 12f3bd6bc9dac00bc1b09b8c3e089ee681f80581..498259b29463ca39f214ed1c3e074021638b7767 100644 --- a/gajim/gtk/const.py +++ b/gajim/gtk/const.py @@ -128,4 +128,5 @@ def __str__(self): 'Themes': 'gajim.gtk.themes', 'AdvancedConfig': 'gajim.gtk.advanced_config', 'CertificateDialog': 'gajim.gtk.dialogs', + 'SubscriptionRequest': 'gajim.gtk.subscription_request', } diff --git a/gajim/gtk/subscription_request.py b/gajim/gtk/subscription_request.py index 79b4939e1c642583247b540e927e8587a62b62d5..367f5bf78c1e1c50d695cca87dc458acddd32aa5 100644 --- a/gajim/gtk/subscription_request.py +++ b/gajim/gtk/subscription_request.py @@ -24,7 +24,7 @@ class SubscriptionRequest(Gtk.ApplicationWindow): - def __init__(self, jid, text, account, user_nick=None): + def __init__(self, account, jid, text, user_nick=None): Gtk.ApplicationWindow.__init__(self) self.set_name('SubscriptionRequest') self.set_application(app.app) @@ -52,14 +52,6 @@ def __init__(self, jid, text, account, user_nick=None): self._ui.connect_signals(self) self.show_all() - def on_subscription_request_window_destroy(self, widget): - """ - Close window - """ - if self.jid in app.interface.instances[self.account]['sub_request']: - # Remove us from open windows - del app.interface.instances[self.account]['sub_request'][self.jid] - def on_authorize_button_clicked(self, widget): """ Accept the request diff --git a/gajim/gui_interface.py b/gajim/gui_interface.py index 85b5c5b896c94aca65caa04459be8ef5cfef87ba..5596e3423a85572444df29ffb048d708a33d5863 100644 --- a/gajim/gui_interface.py +++ b/gajim/gui_interface.py @@ -106,7 +106,6 @@ from gajim.gtk.filetransfer import FileTransfersWindow from gajim.gtk.http_upload_progress import HTTPUploadProgressWindow from gajim.gtk.roster_item_exchange import RosterItemExchangeWindow -from gajim.gtk.subscription_request import SubscriptionRequest from gajim.gtk.util import get_show_in_roster from gajim.gtk.util import get_show_in_systray from gajim.gtk.util import open_window @@ -305,11 +304,11 @@ def handle_event_subscribe_presence(self, obj): #('SUBSCRIBE', account, (jid, text, user_nick)) user_nick is JEP-0172 account = obj.conn.name if helpers.allow_popup_window(account) or not self.systray_enabled: - if obj.jid in self.instances[account]['sub_request']: - self.instances[account]['sub_request'][obj.jid].destroy() - self.instances[account]['sub_request'][obj.jid] = \ - SubscriptionRequest(obj.jid, obj.status, account, - obj.user_nick) + open_window('SubscriptionRequest', + account=account, + jid=obj.jid, + text=obj.status, + user_nick=obj.user_nick) return event = events.SubscriptionRequestEvent(obj.status, obj.user_nick) @@ -1270,7 +1269,11 @@ def handle_event(self, account, fjid, type_): event = app.events.get_first_event(account, jid, type_) if event is None: return - SubscriptionRequest(jid, event.text, account, event.nick) + open_window('SubscriptionRequest', + account=account, + jid=jid, + text=event.text, + user_nick=event.nick) app.events.remove_events(account, jid, event) self.roster.draw_contact(jid, account) elif type_ == 'unsubscribed': diff --git a/gajim/roster_window.py b/gajim/roster_window.py index 4ffd646cf262f2186fb27b270a9a32d6e1de5a9d..9b686c5f271ba3ce05f5153d281990a06e6d36a5 100644 --- a/gajim/roster_window.py +++ b/gajim/roster_window.py @@ -80,7 +80,6 @@ from gajim.gtk.discovery import ServiceDiscoveryWindow from gajim.gtk.tooltips import RosterTooltip from gajim.gtk.adhoc import AdHocCommand -from gajim.gtk.subscription_request import SubscriptionRequest from gajim.gtk.util import get_icon_name from gajim.gtk.util import resize_window from gajim.gtk.util import restore_roster_position @@ -88,6 +87,7 @@ from gajim.gtk.util import get_builder from gajim.gtk.util import set_urgency_hint from gajim.gtk.util import get_activity_icon_name +from gajim.gtk.util import open_window log = logging.getLogger('gajim.roster') @@ -1971,7 +1971,11 @@ def open_event(self, account, jid, event): return True if event.type_ == 'subscription_request': - SubscriptionRequest(jid, event.text, account, event.nick) + open_window('SubscriptionRequest', + account=account, + jid=jid, + text=event.text, + user_nick=event.nick) app.events.remove_events(account, jid, event) return True