diff options
Diffstat (limited to 'activity.py')
-rw-r--r-- | activity.py | 61 |
1 files changed, 54 insertions, 7 deletions
diff --git a/activity.py b/activity.py index 1ca1070..0be3b1d 100644 --- a/activity.py +++ b/activity.py @@ -18,17 +18,26 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from gi.repository import Gtk +from gi.repository import GObject from sugar3.activity import activity from sugar3.activity.widgets import ActivityToolbarButton from sugar3.activity.widgets import StopButton -from sugar3.graphics.toolbutton import ToolButton +from sugar3.graphics.radiotoolbutton import RadioToolButton from sugar3.graphics.toolbarbox import ToolbarBox from widgets import DeviceList +from widgets import EmptyWidgets from bt import Bluetooth -#from gettext import gettext as _ +from gettext import gettext as _ + +import logging + +# Logging +_logger = logging.getLogger('bluetooth-activity') +_logger.setLevel(logging.DEBUG) +logging.basicConfig() class ActivityBluetooth(activity.Activity): @@ -43,7 +52,7 @@ class ActivityBluetooth(activity.Activity): # Canvas self._notebook = Gtk.Notebook() - #self._notebook.set_show_tabs(False) + self._notebook.set_show_tabs(False) self.set_canvas(self._notebook) scroll = Gtk.ScrolledWindow() @@ -57,12 +66,24 @@ class ActivityBluetooth(activity.Activity): scroll = Gtk.ScrolledWindow() scroll.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) - self._notebook.append_page(scroll, Gtk.Label()) self._nbdevices = DeviceList() scroll.add(self._nbdevices) scroll.show_all() + self.progressbar = Gtk.ProgressBar() + + nbbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) + nbbox.pack_start(scroll, True, True, 0) + nbbox.pack_start(self.progressbar, False, True, 0) + + self._notebook.append_page(nbbox, Gtk.Label()) + + self._ew = EmptyWidgets() + self._ew.connect('search-again', self._find_devices) + + self._notebook.append_page(self._ew, Gtk.Label()) + # Toolbars toolbarbox = ToolbarBox() @@ -71,7 +92,16 @@ class ActivityBluetooth(activity.Activity): toolbarbox.toolbar.insert(Gtk.SeparatorToolItem(), -1) - search_btn = ToolButton(icon_name='system-search') + pdevices_btn = RadioToolButton() + pdevices_btn.set_tooltip(_("Paired devices")) + pdevices_btn.props.icon_name = 'paired-devices' + pdevices_btn.connect('clicked', lambda w: self._notebook.set_current_page(0)) + toolbarbox.toolbar.insert(pdevices_btn, -1) + + search_btn = RadioToolButton() + search_btn.set_tooltip(_("Search devices")) + search_btn.props.icon_name = 'system-search' + search_btn.props.group = pdevices_btn search_btn.connect('clicked', self._find_devices) toolbarbox.toolbar.insert(search_btn, -1) @@ -82,14 +112,31 @@ class ActivityBluetooth(activity.Activity): stopbtn = StopButton(self) toolbarbox.toolbar.insert(stopbtn, -1) + + self._notebook.set_current_page(0) self.set_toolbar_box(toolbarbox) self.show_all() def _find_devices(self, widget): self._notebook.set_current_page(1) + self._times = 0 + GObject.timeout_add(100, self._update_bar) self.bluetooth.find_devices() - self.nbdevices.model.clear() + self._nbdevices.model.clear() def _device_found(self, bluetooth, deviceprops): - self.nbdevices.add_device(deviceprops)
\ No newline at end of file + self._nbdevices.add_device(deviceprops) + + def _update_bar(self): + self._times += 0.1 + self.progressbar.set_fraction(self._times / 20.0) + + if self._times >= 20.0: + self.bluetooth.stop_search() + if not self.bluetooth.nearby_devices: + self._notebook.set_current_page(2) + return False + else: + return True + |