changeset 1aece07e41a9 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=1aece07e41a9
description: don't open twice the same subscription request dialog. see #6762
diffstat:
data/gui/subscription_request_window.ui | 1 +
src/config.py | 8 +++++---
src/dialogs.py | 8 ++++++++
src/gui_interface.py | 7 +++++--
test/lib/gajim_mocks.py | 2 +-
5 files changed, 20 insertions(+), 6 deletions(-)
diffs (97 lines):
diff -r d84fab330dc2 -r 1aece07e41a9 data/gui/subscription_request_window.ui
--- a/data/gui/subscription_request_window.ui Sun May 22 13:05:39 2011 +0200
+++ b/data/gui/subscription_request_window.ui Mon May 23 22:35:19 2011 +0200
@@ -6,6 +6,7 @@
<property name="border_width">12</property>
<property name="title" translatable="yes">Subscription Request</property>
<property name="type_hint">dialog</property>
+ <signal name="destroy" handler="on_subscription_request_window_destroy"/>
<child>
<object class="GtkVBox" id="vbox10">
<property name="visible">True</property>
diff -r d84fab330dc2 -r 1aece07e41a9 src/config.py
--- a/src/config.py Sun May 22 13:05:39 2011 +0200
+++ b/src/config.py Mon May 23 22:35:19 2011 +0200
@@ -2040,7 +2040,7 @@
gajim.interface.msg_win_mgr.change_account_name(old_name,
new_name)
# upgrade account variable in opened windows
for kind in ('infos', 'disco', 'gc_config', 'search',
- 'online_dialog'):
+ 'online_dialog', 'sub_request'):
for j in gajim.interface.instances[new_name][kind]:
gajim.interface.instances[new_name][kind][j].account =
\
new_name
@@ -2477,7 +2477,8 @@
self.init_account_gpg()
# update variables
gajim.interface.instances[account] = {'infos': {},
- 'disco': {}, 'gc_config': {}, 'search': {}, 'online_dialog':
{}}
+ 'disco': {}, 'gc_config': {}, 'search': {}, 'online_dialog': {},
+ 'sub_request': {}}
gajim.interface.minimized_controls[account] = {}
gajim.connections[account].connected = 0
gajim.groups[account] = {}
@@ -3926,7 +3927,8 @@
# update variables
gajim.interface.instances[self.account] = {'infos': {}, 'disco': {},
- 'gc_config': {}, 'search': {}, 'online_dialog': {}}
+ 'gc_config': {}, 'search': {}, 'online_dialog': {},
+ 'sub_request': {}}
gajim.interface.minimized_controls[self.account] = {}
gajim.connections[self.account].connected = 0
gajim.connections[self.account].keepalives = gajim.config.get_per(
diff -r d84fab330dc2 -r 1aece07e41a9 src/dialogs.py
--- a/src/dialogs.py Sun May 22 13:05:39 2011 +0200
+++ b/src/dialogs.py Mon May 23 22:35:19 2011 +0200
@@ -2165,6 +2165,14 @@
xml.connect_signals(self)
self.window.show_all()
+ def on_subscription_request_window_destroy(self, widget):
+ """
+ Close window
+ """
+ if self.jid in gajim.interface.instances[self.account]['sub_request']:
+ # remove us from open windows
+ del
gajim.interface.instances[self.account]['sub_request'][self.jid]
+
def prepare_popup_menu(self):
xml =
gtkgui_helpers.get_gtk_builder('subscription_request_popup_menu.ui')
menu = xml.get_object('subscription_request_popup_menu')
diff -r d84fab330dc2 -r 1aece07e41a9 src/gui_interface.py
--- a/src/gui_interface.py Sun May 22 13:05:39 2011 +0200
+++ b/src/gui_interface.py Mon May 23 22:35:19 2011 +0200
@@ -478,7 +478,10 @@
#('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:
- dialogs.SubscriptionRequestWindow(obj.jid, obj.status, account,
+ if obj.jid in self.instances[account]['sub_request']:
+
self.instances[account]['sub_request'][obj.jid].window.destroy()
+ self.instances[account]['sub_request'][obj.jid] = \
+ dialogs.SubscriptionRequestWindow(obj.jid, obj.status, account,
obj.user_nick)
return
@@ -2700,7 +2703,7 @@
for a in gajim.connections:
self.instances[a] = {'infos': {}, 'disco': {}, 'gc_config': {},
- 'search': {}, 'online_dialog': {}}
+ 'search': {}, 'online_dialog': {}, 'sub_request': {}}
# online_dialog contains all dialogs that have a meaning only when
# we are not disconnected
self.minimized_controls[a] = {}
diff -r d84fab330dc2 -r 1aece07e41a9 test/lib/gajim_mocks.py
--- a/test/lib/gajim_mocks.py Sun May 22 13:05:39 2011 +0200
+++ b/test/lib/gajim_mocks.py Mon May 23 22:35:19 2011 +0200
@@ -21,7 +21,7 @@
self.sessions = {}
gajim.interface.instances[account] = {'infos': {}, 'disco': {},
- 'gc_config': {}, 'search': {}}
+ 'gc_config': {}, 'search': {}, 'sub_request': {}}
gajim.interface.minimized_controls[account] = {}
gajim.contacts.add_account(account)
gajim.groups[account] = {}
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits