[shivan] network manager 0.7 support. Fixes #4536

This commit is contained in:
Yann Leboulanger 2009-02-14 10:07:31 +00:00
parent 531ab92651
commit fd088b09f5

View file

@ -25,17 +25,32 @@ import sys
from common import gajim from common import gajim
def device_now_active(self, *args): def device_now_active(self, *args):
'''For Network Manager 0.6'''
for connection in gajim.connections.itervalues(): for connection in gajim.connections.itervalues():
if gajim.config.get_per('accounts', connection.name, if gajim.config.get_per('accounts', connection.name,
'listen_to_network_manager') and connection.time_to_reconnect: 'listen_to_network_manager') and connection.time_to_reconnect:
connection._reconnect() connection._reconnect()
def device_no_longer_active(self, *args): def device_no_longer_active(self, *args):
'''For Network Manager 0.6'''
for connection in gajim.connections.itervalues(): for connection in gajim.connections.itervalues():
if gajim.config.get_per('accounts', connection.name, if gajim.config.get_per('accounts', connection.name,
'listen_to_network_manager') and connection.connected > 1: 'listen_to_network_manager') and connection.connected > 1:
connection._disconnectedReconnCB() connection._disconnectedReconnCB()
def state_changed(state):
'''For Network Manager 0.7'''
if props.Get("org.freedesktop.NetworkManager", "State") == 3:
for connection in gajim.connections.itervalues():
if gajim.config.get_per('accounts', connection.name,
'listen_to_network_manager') and connection.time_to_reconnect:
connection._reconnect()
else:
for connection in gajim.connections.itervalues():
if gajim.config.get_per('accounts', connection.name,
'listen_to_network_manager') and connection.connected > 1:
connection._disconnectedReconnCB()
supported = False supported = False
if sys.platform == 'darwin': if sys.platform == 'darwin':
@ -44,22 +59,36 @@ else:
try: try:
from common.dbus_support import system_bus from common.dbus_support import system_bus
bus = system_bus.SystemBus() bus = system_bus.bus()
if 'org.freedesktop.NetworkManager' in bus.list_names(): if 'org.freedesktop.NetworkManager' in bus.list_names():
nm_object = bus.get_object('org.freedesktop.NetworkManager',
'/org/freedesktop/NetworkManager')
props = dbus.Interface(nm_object,"org.freedesktop.DBus.Properties")
bus.add_signal_receiver(state_changed,
'StateChanged',
'org.freedesktop.NetworkManager',
'org.freedesktop.NetworkManager',
'/org/freedesktop/NetworkManager')
supported = True supported = True
bus.add_signal_receiver(device_no_longer_active,
'DeviceNoLongerActive',
'org.freedesktop.NetworkManager',
'org.freedesktop.NetworkManager',
'/org/freedesktop/NetworkManager')
bus.add_signal_receiver(device_now_active,
'DeviceNowActive',
'org.freedesktop.NetworkManager',
'org.freedesktop.NetworkManager',
'/org/freedesktop/NetworkManager')
except Exception: except Exception:
pass try:
if 'org.freedesktop.NetworkManager' in bus.list_names():
supported = True
bus.add_signal_receiver(device_no_longer_active,
'DeviceNoLongerActive',
'org.freedesktop.NetworkManager',
'org.freedesktop.NetworkManager',
'/org/freedesktop/NetworkManager')
bus.add_signal_receiver(device_now_active,
'DeviceNowActive',
'org.freedesktop.NetworkManager',
'org.freedesktop.NetworkManager',
'/org/freedesktop/NetworkManager')
except Exception:
pass
# vim: se ts=3: # vim: se ts=3: