def load_list(self, network_object): ''' will add hasattr part for network_object ''' log.info("sidebar start load list") self.network_object = network_object self.connections = self.network_object.get_connections() #print self.connections, "load_list" connections = [] for connection in self.connections: if isinstance(connection, NMRemoteConnection): connection.init_settings_prop_dict() connections.append(connection) self.connections = connections self.connection_tree = EntryTreeView() self.connection_tree.set_expand_column(1) self.__init_tree(self.connections) if hasattr(self.network_object, "add_new_connection"): self.new_connection = self.network_object.add_new_connection #self.add_button.change_add_setting(self.network_object.add_new_connection) if hasattr(self.network_object, "delete_request_redraw"): self.request_redraw = self.network_object.delete_request_redraw self.init_select(network_object.spec_connection) # FIXME: COME ON, why check the connections count?! #if self.connections !=[]: crumb_name = network_object.crumb_name if crumb_name == "": crumb_name = _("Hidden network") Dispatcher.send_submodule_crumb(2, crumb_name) Dispatcher.slide_to_page("setting", "none")
class SideBar(gtk.VBox): def __init__(self, connections): gtk.VBox.__init__(self, False) self.connections = connections self.new_connection_list = {'cdma': [], "gsm": []} self.__init_widget() def __init_widget(self): self.buttonbox = gtk.VBox() self.pack_start(self.buttonbox, False, False) style.add_separator(self) #self.connection_tree = EntryTreeView() self.add_button = AddSettingItem(_("New Connection"), self.add_new_connection) add_setting_tree = TreeView([self.add_button]) add_setting_tree.set_expand_column(1) self.pack_start(add_setting_tree, False, False) self.set_size_request(160, -1) self.show_all() self.__init_signals() def __init_signals(self): Dispatcher.connect("connection-delete", self.delete_item_cb) Dispatcher.connect("connection-replace", self.replace_connection) # This one just for mobile setting Dispatcher.connect("region-back", self.append_new_connection) #event_manager.add_callback("nmconnection-delete-finish", self.nmconnection_delete_finish) def load_list(self, network_object): ''' will add hasattr part for network_object ''' log.info("sidebar start load list") self.network_object = network_object self.connections = self.network_object.get_connections() #print self.connections, "load_list" connections = [] for connection in self.connections: if isinstance(connection, NMRemoteConnection): connection.init_settings_prop_dict() connections.append(connection) self.connections = connections self.connection_tree = EntryTreeView() self.connection_tree.set_expand_column(1) self.__init_tree(self.connections) if hasattr(self.network_object, "add_new_connection"): self.new_connection = self.network_object.add_new_connection #self.add_button.change_add_setting(self.network_object.add_new_connection) if hasattr(self.network_object, "delete_request_redraw"): self.request_redraw = self.network_object.delete_request_redraw self.init_select(network_object.spec_connection) # FIXME: COME ON, why check the connections count?! #if self.connections !=[]: crumb_name = network_object.crumb_name if crumb_name == "": crumb_name = _("Hidden network") Dispatcher.send_submodule_crumb(2, crumb_name) Dispatcher.slide_to_page("setting", "none") def __init_tree(self, items_list, insert_pos=None): if items_list and items_list != [None, -1]: container_remove_all(self.buttonbox) self.connection_tree.add_items(map(lambda c: SettingItem(c, None), items_list), insert_pos=insert_pos) self.buttonbox.pack_start(self.connection_tree, False, False) self.resize_tree() def delete_item_cb(self, widget, connection): '''docstring for delete_item_cb''' self.connection_tree.delete_select_items() if isinstance(connection, NMRemoteConnection): connection.delete() #log.debug(connection) else: index = self.connections.index(connection) self.connections.pop(index) # focus on last item if self.connection_tree.visible_items != []: self.connection_tree.select_last_item() else: Dispatcher.to_main_page() return self.resize_tree() def resize_tree(self): if self.connection_tree.visible_items != []: self.connection_tree.set_size_request( -1, len(self.connection_tree.visible_items) * self.connection_tree.visible_items[0].get_height() + 1) else: container_remove_all(self.buttonbox) def get_active(self): return self.connection_tree.select_rows[0] def set_active(self, connection): index = self.connections.index(connection) con = self.connection_tree.visible_items[index] self.connection_tree.select_items([con]) def add_new_connection(self): "new connection format (connection, index)" new_connection, index = self.new_connection() if new_connection == None: return if index is -1: self.connections.append(new_connection) self.__init_tree([new_connection]) else: self.connections.insert(index, new_connection) self.__init_tree([new_connection], index) connect = self.connection_tree.visible_items[index] self.connection_tree.select_items([connect]) def append_new_connection(self, widget, connection, prop_dict, type): if isinstance(connection, NMRemoteConnection): index = self.connections.index(connection) conn = self.connection_tree.visible_items[index] self.connection_tree.select_items([conn]) else: self.__init_tree([connection]) self.connections.append(connection) conn = self.connection_tree.visible_items[-1] self.connection_tree.select_items([conn]) broadband = self.network_object.get_broadband(connection) broadband.set_new_values(prop_dict, type) def init_select(self, spec_connection=None): if spec_connection: self.set_active(spec_connection) else: try: self.connection_tree.select_first_item() except: print "no connections found" def replace_connection(self, widget, connection): ''' This is a method used to solve fake connection save thing, ''' print "replace connections" index = self.get_active() self.connections[index] = connection self.connection_tree.delete_item_by_index(index) self.__init_tree([connection], index) self.set_active(connection)
class SideBar(gtk.VBox): def __init__(self, connections): gtk.VBox.__init__(self, False) self.connections = connections self.new_connection_list = {'cdma':[], "gsm":[]} self.__init_widget() def __init_widget(self): self.buttonbox = gtk.VBox() self.pack_start(self.buttonbox, False, False) style.add_separator(self) #self.connection_tree = EntryTreeView() self.add_button = AddSettingItem(_("New Connection") ,self.add_new_connection) add_setting_tree = TreeView([self.add_button]) add_setting_tree.set_expand_column(1) self.pack_start(add_setting_tree, False, False) self.set_size_request(160, -1) self.show_all() self.__init_signals() def __init_signals(self): Dispatcher.connect("connection-delete", self.delete_item_cb) Dispatcher.connect("connection-replace", self.replace_connection) # This one just for mobile setting Dispatcher.connect("region-back", self.append_new_connection) #event_manager.add_callback("nmconnection-delete-finish", self.nmconnection_delete_finish) def load_list(self, network_object): ''' will add hasattr part for network_object ''' log.info("sidebar start load list") self.network_object = network_object self.connections = self.network_object.get_connections() #print self.connections, "load_list" connections = [] for connection in self.connections: if isinstance(connection, NMRemoteConnection): connection.init_settings_prop_dict() connections.append(connection) self.connections = connections self.connection_tree = EntryTreeView() self.connection_tree.set_expand_column(1) self.__init_tree(self.connections) if hasattr(self.network_object, "add_new_connection"): self.new_connection = self.network_object.add_new_connection #self.add_button.change_add_setting(self.network_object.add_new_connection) if hasattr(self.network_object, "delete_request_redraw"): self.request_redraw = self.network_object.delete_request_redraw self.init_select(network_object.spec_connection) # FIXME: COME ON, why check the connections count?! #if self.connections !=[]: crumb_name = network_object.crumb_name if crumb_name == "": crumb_name = _("Hidden network") Dispatcher.send_submodule_crumb(2, crumb_name) Dispatcher.slide_to_page("setting", "none") def __init_tree(self, items_list, insert_pos=None): if items_list and items_list != [None, -1]: container_remove_all(self.buttonbox) self.connection_tree.add_items(map(lambda c: SettingItem(c, None), items_list), insert_pos=insert_pos) self.buttonbox.pack_start(self.connection_tree, False, False) self.resize_tree() def delete_item_cb(self, widget, connection): '''docstring for delete_item_cb''' self.connection_tree.delete_select_items() if isinstance(connection, NMRemoteConnection): connection.delete() #log.debug(connection) else: index = self.connections.index(connection) self.connections.pop(index) # focus on last item if self.connection_tree.visible_items != []: self.connection_tree.select_last_item() else: Dispatcher.to_main_page() return self.resize_tree() def resize_tree(self): if self.connection_tree.visible_items != []: self.connection_tree.set_size_request(-1,len(self.connection_tree.visible_items) * self.connection_tree.visible_items[0].get_height() + 1) else: container_remove_all(self.buttonbox) def get_active(self): return self.connection_tree.select_rows[0] def set_active(self, connection): index = self.connections.index(connection) con = self.connection_tree.visible_items[index] self.connection_tree.select_items([con]) def add_new_connection(self): "new connection format (connection, index)" new_connection, index = self.new_connection() if new_connection == None: return if index is -1: self.connections.append(new_connection) self.__init_tree([new_connection]) else: self.connections.insert(index, new_connection) self.__init_tree([new_connection], index) connect = self.connection_tree.visible_items[index] self.connection_tree.select_items([connect]) def append_new_connection(self, widget, connection, prop_dict, type): if isinstance(connection, NMRemoteConnection): index = self.connections.index(connection) conn = self.connection_tree.visible_items[index] self.connection_tree.select_items([conn]) else: self.__init_tree([connection]) self.connections.append(connection) conn = self.connection_tree.visible_items[-1] self.connection_tree.select_items([conn]) broadband = self.network_object.get_broadband(connection) broadband.set_new_values(prop_dict, type) def init_select(self, spec_connection=None): if spec_connection: self.set_active(spec_connection) else: try: self.connection_tree.select_first_item() except: print "no connections found" def replace_connection(self, widget, connection): ''' This is a method used to solve fake connection save thing, ''' print "replace connections" index = self.get_active() self.connections[index] = connection self.connection_tree.delete_item_by_index(index) self.__init_tree([connection], index) self.set_active(connection)