Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Bethge <stefan@lanpartei.de>2006-09-29 21:40:11 +0400
committerStefan Bethge <stefan@lanpartei.de>2006-09-29 21:40:11 +0400
commitd07dc39830199974d55bb158e097854cbd92cd1b (patch)
treecb754d65d2a255174d4ce009f1343513f25b6ee2
parent6a38879014dac17796f6e9116825c1bd823c183e (diff)
check if avahi is available and we're not on windows,
otherwise checkbutton is not sensitive
-rw-r--r--data/glade/accounts_window.glade3
-rw-r--r--src/common/zeroconf/connection_zeroconf.py37
-rw-r--r--src/config.py10
3 files changed, 31 insertions, 19 deletions
diff --git a/data/glade/accounts_window.glade b/data/glade/accounts_window.glade
index 7c92c0508..39b637bae 100644
--- a/data/glade/accounts_window.glade
+++ b/data/glade/accounts_window.glade
@@ -95,7 +95,8 @@
<child>
<widget class="GtkCheckButton" id="enable_zeroconf_checkbutton">
<property name="visible">True</property>
- <property name="tooltip" translatable="yes">If checked, all local contacts that use a Bonjour compatible chat client (like iChat, Trillian or Gaim) will be shown in roster. You don't need a jabber server for it.</property>
+ <property name="tooltip" translatable="yes">If checked, all local contacts that use a Bonjour compatible chat client (like iChat, Trillian or Gaim) will be shown in roster. You don't need to be connected to a jabber server for it to work.
+This is only available if python-avahi is installed and avahi-daemon is running.</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">_Enable link-local messaging</property>
<property name="use_underline">True</property>
diff --git a/src/common/zeroconf/connection_zeroconf.py b/src/common/zeroconf/connection_zeroconf.py
index 96b6b1653..01bc2d41c 100644
--- a/src/common/zeroconf/connection_zeroconf.py
+++ b/src/common/zeroconf/connection_zeroconf.py
@@ -256,24 +256,25 @@ class ConnectionZeroconf(ConnectionHandlersZeroconf):
self.zeroconf.disconnect()
def reconnect(self, new_port):
- txt = {}
- txt['1st'] = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME, 'zeroconf_first_name')
- txt['last'] = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME, 'zeroconf_last_name')
- txt['jid'] = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME, 'zeroconf_jabber_id')
- txt['email'] = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME, 'zeroconf_email')
-
- port = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME, 'custom_port')
-
- if new_port or use_tls:
- self.connection.kill_all_connections()
- self.connection.listener.disconnect()
- self.connection.start_listener(port)
-
- self.zeroconf.remove_announce()
- self.zeroconf.txt = txt
- self.zeroconf.port = port
- self.zeroconf.username = self.username
- self.zeroconf.announce()
+ if self.connected:
+ txt = {}
+ txt['1st'] = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME, 'zeroconf_first_name')
+ txt['last'] = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME, 'zeroconf_last_name')
+ txt['jid'] = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME, 'zeroconf_jabber_id')
+ txt['email'] = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME, 'zeroconf_email')
+
+ port = gajim.config.get_per('accounts', gajim.ZEROCONF_ACC_NAME, 'custom_port')
+
+ if new_port or use_tls:
+ self.connection.kill_all_connections()
+ self.connection.listener.disconnect()
+ self.connection.start_listener(port)
+
+ self.zeroconf.remove_announce()
+ self.zeroconf.txt = txt
+ self.zeroconf.port = port
+ self.zeroconf.username = self.username
+ self.zeroconf.announce()
def change_status(self, show, msg, sync = False, auto = False):
if not show in STATUS_LIST:
diff --git a/src/config.py b/src/config.py
index 4003c378e..ef953d74b 100644
--- a/src/config.py
+++ b/src/config.py
@@ -1790,10 +1790,20 @@ class AccountsWindow:
st = gajim.config.get('mergeaccounts')
self.xml.get_widget('merge_checkbutton').set_active(st)
+ import os
+
+ avahi_error = False
+ try:
+ import avahi
+ except ImportError:
+ avahi_error = True
+
# enable zeroconf
st = gajim.config.get('enable_zeroconf')
w = self.xml.get_widget('enable_zeroconf_checkbutton')
w.set_active(st)
+ if os.name == 'nt' or avahi_error:
+ w.set_sensitive(False)
w.connect('toggled', self.on_enable_zeroconf_checkbutton_toggled)
def on_accounts_window_key_press_event(self, widget, event):