From 7924407325b5f76f93294043dc7fdcf285370e82 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger <asterix@lagaule.org> Date: Sun, 6 Nov 2011 20:40:54 +0100 Subject: [PATCH] [ioerror and !] add GUI widget for send_time_info option. don't send client version if send_os_info is False. Fixes #7028 --- data/gui/preferences_window.ui | 28 +++++++++++++++++++++++----- src/common/connection_handlers.py | 13 +++++++++---- src/config.py | 12 ++++++++++++ 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/data/gui/preferences_window.ui b/data/gui/preferences_window.ui index 4fc92decc..9cdc74338 100644 --- a/data/gui/preferences_window.ui +++ b/data/gui/preferences_window.ui @@ -2567,7 +2567,7 @@ to discover one from server.</property> </child> <child> <object class="GtkCheckButton" id="send_os_info_checkbutton"> - <property name="label" translatable="yes">Allow _OS information to be sent</property> + <property name="label" translatable="yes">Allow client / _OS information to be sent</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> @@ -2581,6 +2581,24 @@ to discover one from server.</property> <property name="bottom_attach">2</property> </packing> </child> + <child> + <object class="GtkCheckButton" id="send_time_info_checkbutton"> + <property name="label" translatable="yes">Allow local system time information to be sent</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip_text" translatable="yes">If checked, Gajim will allow others to detect the time on your system</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_send_time_info_checkbutton_toggled"/> + </object> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + </packing> + </child> + + <child> <object class="GtkCheckButton" id="log_encrypted_chats_checkbutton"> <property name="label" translatable="yes">Log _encrypted chat session</property> @@ -2593,8 +2611,8 @@ to discover one from server.</property> <signal name="toggled" handler="on_log_encrypted_chats_checkbutton_toggled"/> </object> <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> </packing> </child> <child> @@ -2608,8 +2626,8 @@ to discover one from server.</property> <signal name="toggled" handler="on_send_idle_time_checkbutton_toggled"/> </object> <packing> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> </packing> </child> </object> diff --git a/src/common/connection_handlers.py b/src/common/connection_handlers.py index 07165bd4d..b320515e6 100644 --- a/src/common/connection_handlers.py +++ b/src/common/connection_handlers.py @@ -1469,13 +1469,18 @@ ConnectionJingle, ConnectionIBBytestream): def _nec_version_request_received(self, obj): if obj.conn.name != self.name: return - iq_obj = obj.stanza.buildReply('result') - qp = iq_obj.setQuery() - qp.setTagData('name', 'Gajim') - qp.setTagData('version', gajim.version) send_os = gajim.config.get_per('accounts', self.name, 'send_os_info') if send_os: + iq_obj = obj.stanza.buildReply('result') + qp = iq_obj.getQuery() + qp.setTagData('name', 'Gajim') + qp.setTagData('version', gajim.version) qp.setTagData('os', helpers.get_os_info()) + else: + iq_obj = obj.stanza.buildReply('error') + err = common.xmpp.ErrorNode(name=common.xmpp.NS_STANZAS + \ + ' service-unavailable') + iq_obj.addChild(node=err) self.connection.send(iq_obj) def _LastCB(self, con, iq_obj): diff --git a/src/config.py b/src/config.py index 2e5867ce5..2057655ca 100644 --- a/src/config.py +++ b/src/config.py @@ -535,6 +535,14 @@ class PreferencesWindow: else: w.set_active(st) + # send absolute time info + w = self.xml.get_object('send_time_info_checkbutton') + st = self.get_per_account_option('send_time_info') + if st == 'mixed': + w.set_inconsistent(True) + else: + w.set_active(st) + # send idle time w = self.xml.get_object('send_idle_time_checkbutton') st = self.get_per_account_option('send_idle_time') @@ -1166,6 +1174,10 @@ class PreferencesWindow: widget.set_inconsistent(False) self.on_per_account_checkbutton_toggled(widget, 'send_os_info') + def on_send_time_info_checkbutton_toggled(self, widget): + widget.set_inconsistent(False) + self.on_per_account_checkbutton_toggled(widget, 'send_time_info') + def on_send_idle_time_checkbutton_toggled(self, widget): widget.set_inconsistent(False) self.on_per_account_checkbutton_toggled(widget, 'send_idle_time') -- GitLab