4
4
from blueman.plugins.AppletPlugin import AppletPlugin
5
5
from blueman.main.SignalTracker import SignalTracker
7
from gi.repository import GObject
8
from gi.repository import Gtk
11
11
class DiscvManager(AppletPlugin):
70
69
def on_set_discoverable(self, item):
72
self.adapter.SetProperty("Discoverable", True)
73
self.adapter.SetProperty("DiscoverableTimeout", self.get_option("time"))
71
self.adapter.set("Discoverable", True)
72
self.adapter.set("DiscoverableTimeout", self.get_option("time"))
75
74
def init_adapter(self):
77
self.adapter = self.Applet.Manager.GetAdapter()
76
self.adapter = self.Applet.Manager.get_adapter()
79
78
self.adapter = None
81
def on_default_adapter_changed(self, path):
80
def on_adapter_removed(self, path):
82
if path == self.adapter.get_object_path():
84
83
self.init_adapter()
85
84
self.update_menuitems()
87
86
def on_adapter_property_changed(self, path, key, value):
88
if self.adapter and path == self.adapter.GetObjectPath():
87
if self.adapter and path == self.adapter.get_object_path():
89
88
dprint("prop", key, value)
90
89
if key == "DiscoverableTimeout":
91
90
if value == 0: #always visible
92
91
if self.timeout != None:
93
gobject.source_remove(self.timeout)
92
GObject.source_remove(self.timeout)
94
93
self.time_left = -1
95
94
self.timeout = None
97
96
if self.time_left > -1:
98
97
if self.timeout != None:
99
gobject.source_remove(self.timeout)
98
GObject.source_remove(self.timeout)
100
99
self.time_left = value
102
self.timeout = gobject.timeout_add(1000, self.on_update)
101
self.timeout = GObject.timeout_add(1000, self.on_update)
105
104
elif (key == "Discoverable" and not value) or (key == "Powered" and not value):
107
106
if self.timeout != None:
108
gobject.source_remove(self.timeout)
107
GObject.source_remove(self.timeout)
109
108
self.time_left = -1
110
109
self.timeout = None
114
113
def update_menuitems(self):
116
props = self.adapter.GetProperties()
115
props = self.adapter.get_properties()
117
116
except Exception as e:
118
117
dprint("warning: Adapter is None")
119
118
self.item.props.visible = False