changeset 78329bf987b5 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=78329bf987b5
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 70efaf361698 -r 78329bf987b5 data/gui/subscription_request_window.ui
--- a/data/gui/subscription_request_window.ui Mon May 23 19:03:50 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 70efaf361698 -r 78329bf987b5 src/config.py
--- a/src/config.py Mon May 23 19:03:50 2011 +0200
+++ b/src/config.py Mon May 23 22:35:19 2011 +0200
@@ -2041,7 +2041,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
@@ -2478,7 +2478,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] = {}
@@ -3914,7 +3915,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 70efaf361698 -r 78329bf987b5 src/dialogs.py
--- a/src/dialogs.py Mon May 23 19:03:50 2011 +0200
+++ b/src/dialogs.py Mon May 23 22:35:19 2011 +0200
@@ -2061,6 +2061,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 70efaf361698 -r 78329bf987b5 src/gui_interface.py
--- a/src/gui_interface.py Mon May 23 19:03:50 2011 +0200
+++ b/src/gui_interface.py Mon May 23 22:35:19 2011 +0200
@@ -652,7 +652,10 @@
text = array[1]
nick = array[2]
if helpers.allow_popup_window(account) or not self.systray_enabled:
- dialogs.SubscriptionRequestWindow(jid, text, account, nick)
+ if jid in self.instances[account]['sub_request']:
+ self.instances[account]['sub_request'][jid].window.destroy()
+ self.instances[account]['sub_request'][jid] = \
+ dialogs.SubscriptionRequestWindow(jid, text, account, nick)
return
self.add_event(account, jid, 'subscription_request', (text, nick))
@@ -3448,7 +3451,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 70efaf361698 -r 78329bf987b5 test/lib/gajim_mocks.py
--- a/test/lib/gajim_mocks.py Mon May 23 19:03:50 2011 +0200
+++ b/test/lib/gajim_mocks.py Mon May 23 22:35:19 2011 +0200
@@ -20,7 +20,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