From c948830e070c73971db2b8dca50ec18f28c9eea1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Philipp=20H=C3=B6rist?= <philipp@hoerist.com>
Date: Sun, 17 Nov 2019 22:34:45 +0100
Subject: [PATCH] SubscriptionRequest: Use open_window()

---
 gajim/gtk/const.py                |  1 +
 gajim/gtk/subscription_request.py | 10 +---------
 gajim/gui_interface.py            | 17 ++++++++++-------
 gajim/roster_window.py            |  8 ++++++--
 4 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/gajim/gtk/const.py b/gajim/gtk/const.py
index 12f3bd6bc9..498259b294 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 79b4939e1c..367f5bf78c 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 85b5c5b896..5596e3423a 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 4ffd646cf2..9b686c5f27 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
 
-- 
GitLab