def fill_layout_treeview(self): lang = self.settings.get("language_code") keyboard_names._default_filename = self.filename if not keyboard_names.has_language(lang): lang = "C" kbd_names = keyboard_names.KeyboardNames(self.filename) kbd_names.load(lang) sorted_layouts = [] for layout in kbd_names.layout_by_human: sorted_layouts.append(layout) sorted_layouts = misc.sort_list(sorted_layouts, self.settings.get("locale")) # Block signal self.layout_treeview.handler_block_by_func(self.on_keyboardlayout_cursor_changed) # Clear our model liststore = self.layout_treeview.get_model() liststore.clear() # Add layouts (sorted) for layout in sorted_layouts: liststore.append([layout]) # Unblock signal self.layout_treeview.handler_unblock_by_func(self.on_keyboardlayout_cursor_changed)
def fill_layout_treeview(self): lang = self.settings.get("language_code") if not self.kbd_names.has_language(lang): lang = "C" self.kbd_names.load(lang) sorted_layouts = [] layouts = self.kbd_names.get_layouts(lang) for layout_code in layouts: sorted_layouts.append(layouts[layout_code]) sorted_layouts = misc.sort_list(sorted_layouts, self.settings.get("locale")) # Block signal self.layout_treeview.handler_block_by_func(self.on_keyboardlayout_cursor_changed) # Clear our model liststore = self.layout_treeview.get_model() liststore.clear() # Add layouts (sorted) for layout in sorted_layouts: liststore.append([layout]) # Unblock signal self.layout_treeview.handler_unblock_by_func(self.on_keyboardlayout_cursor_changed)
def fill_variant_treeview(self): selected = self.layout_treeview.get_selection() if selected: (ls, iterator) = selected.get_selected() if iterator: keyboard_layout = ls.get_value(iterator, 0) # Store layout selected self.keyboard_layout_human = keyboard_layout lang = self.settings.get("language_code") if not keyboard_names.has_language(lang): lang = "C" kbd_names = keyboard_names.KeyboardNames(self.filename) kbd_names.load(lang) country_code = kbd_names.layout_by_human[self.keyboard_layout_human] self.keyboard_layout = country_code variants = kbd_names.variant_by_human sorted_variants = [] for variant in variants[country_code]: sorted_variants.append(variant) sorted_variants = misc.sort_list(sorted_variants, self.settings.get("locale")) # Block signal self.variant_treeview.handler_block_by_func(self.on_keyboardvariant_cursor_changed) # Clear our model liststore = self.variant_treeview.get_model() liststore.clear() # Add keyboard variants (sorted) for variant in sorted_variants: liststore.append([variant]) # Unblock signal self.variant_treeview.handler_unblock_by_func(self.on_keyboardvariant_cursor_changed) self.variant_treeview.set_cursor(0) else: liststore = self.variant_treeview.get_model() liststore.clear()
def fill_variant_treeview(self): selected = self.layout_treeview.get_selection() if selected: (ls, iterator) = selected.get_selected() if iterator: # Store layout selected self.keyboard_layout['name'] = ls.get_value(iterator, 0) lang = self.settings.get("language_code") if not self.kbd_names.has_language(lang): lang = "C" self.kbd_names.load(lang) self.keyboard_layout['code'] = self.kbd_names.get_layout_code(lang, self.keyboard_layout['name']) sorted_variants = [] if self.kbd_names.has_variants(lang, self.keyboard_layout['code']): variants = self.kbd_names.get_variants(lang, self.keyboard_layout['code']) for variant in variants: sorted_variants.append(variants[variant]) else: logging.warning("Keyboard Layout %s has no variants", self.keyboard_layout['name']) sorted_variants = misc.sort_list(sorted_variants, self.settings.get("locale")) # Block signal self.variant_treeview.handler_block_by_func(self.on_keyboardvariant_cursor_changed) # Clear our model liststore = self.variant_treeview.get_model() liststore.clear() # Add keyboard variants (sorted) for variant in sorted_variants: liststore.append([variant]) # Unblock signal self.variant_treeview.handler_unblock_by_func(self.on_keyboardvariant_cursor_changed) self.variant_treeview.set_cursor(0) else: liststore = self.variant_treeview.get_model() liststore.clear()
def listbox_sort_by_name(row1, row2, user_data): """ Sort function for listbox Returns : < 0 if row1 should be before row2, 0 if they are equal and > 0 otherwise WARNING: IF LAYOUT IS CHANGED IN fill_listbox THEN THIS SHOULD BE CHANGED ACCORDINGLY. """ box1 = row1.get_child() label1 = box1.get_children()[1] box2 = row2.get_child() label2 = box2.get_children()[1] text = [label1.get_text(), label2.get_text()] # sorted_text = misc.sort_list(text, self.settings.get("locale")) sorted_text = misc.sort_list(text) # If strings are already well sorted return < 0 if text[0] == sorted_text[0]: return -1 # Strings must be swaped, return > 0 return 1