def on_adapter_added(self, _manager, adapter_path): adapter = Adapter(obj_path=adapter_path) menu = self.item_adapter.get_submenu() object_path = adapter.get_object_path() item = Gtk.RadioMenuItem.new_with_label(self._adapters_group, adapter.get_name()) item.show() self._adapters_group = item.get_group() self._itemhandler = item.connect("activate", self.on_adapter_selected, object_path) self._adapterhandler = adapter.connect_signal( "property-changed", self.on_adapter_property_changed) menu.insert(item, self._insert_adapter_item_pos) self._insert_adapter_item_pos += 1 self.adapter_items[object_path] = (item, adapter) if adapter_path == self.blueman.List.Adapter.get_object_path(): item.props.active = True if len(self.adapter_items) > 0: self.item_adapter.props.sensitive = True
def add_to_notebook(self, adapter: Adapter) -> None: hci_dev = os.path.basename(adapter.get_object_path()) hci_dev_num = int(hci_dev[3:]) if hci_dev not in self.tabs: self.tabs[hci_dev] = self.build_adapter_tab(adapter) else: if self.tabs[hci_dev]['visible']: return # might need to update settings at this point ui = self.tabs[hci_dev] ui['visible'] = True name = adapter.get_name() if name == '': name = _('Adapter') + ' %d' % (hci_dev_num + 1) label = Gtk.Label(label=name) ui['label'] = label label.set_max_width_chars(20) label.props.hexpand = True label.set_ellipsize(Pango.EllipsizeMode.END) self.notebook.insert_page(ui['grid'], label, hci_dev_num)
def remove_from_notebook(self, adapter: Adapter) -> None: hci_dev = os.path.basename(adapter.get_object_path()) hci_dev_num = int(hci_dev[3:]) self.tabs[hci_dev]['visible'] = False self.notebook.remove_page(hci_dev_num)