Class k.u.o.ObjectList(PropertyObject, gtk.ScrolledWindow):

Part of kiwi.ui.objectlist View In Hierarchy

Known subclasses: kiwi.ui.objectlist.ObjectTree, kiwi.ui.search.SearchResults, kiwi.ui.widgets.list.List

An enhanced version of GtkTreeView, which provides pythonic wrappers for accessing rows, and optional facilities for column sorting (with types) and column selection.

Items in an ObjectList is stored in objects. Each row represents an object and each column represents an attribute in the object. The column description object must be a subclass of Column. Simple example
>>> class Fruit:
>>>    pass
>>> apple = Fruit()
>>> apple.name = 'Apple'
>>> apple.description = 'Worm house'
>>> banana = Fruit()
>>> banana.name = 'Banana'
>>> banana.description = 'Monkey food'
>>> fruits = ObjectList([Column('name'),
>>>                      Column('description')])
>>> fruits.append(apple)
>>> fruits.append(banana)

Signals

Properties

Method __init__
Method __len__ len(list)
Method __nonzero__ if list
Method __contains__ item in list
Method __iter__ for item in list
Method __getitem__ list[n]
Method __setitem__ list[n] = m
Method extend Extend list by appending elements from the iterable
Method index Return first index of value
Method count L.count(item) -> integer -- return number of occurrences of value
Method insert Inserts an instance to the list
Method pop Remove and return item at index (default last)
Method reverse L.reverse() -- reverse *IN PLACE*
Method sort L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
Method sort_by_attribute Sort by an attribute in the object model.
Method prop_set_selection_mode Undocumented
Method prop_get_selection_mode Undocumented
Method _load Undocumented
Method _setup_columns Undocumented
Method _setup_column Undocumented
Method _create_column Undocumented
Method _guess_renderer_for_type Gusses which CellRenderer we should use for a given type.
Method _select_and_focus_row Undocumented
Method _on_model__row_inserted Undocumented
Method _on_model__row_deleted Undocumented
Method _model_sort_func This method is used to sort the GtkTreeModel
Method _on_selection__changed This method is used to proxy selection::changed to selection-changed
Method _on_scrolled_window__realize Undocumented
Method _on_scrolled_window__size_allocate Resize the Vertical Scrollbar to make it smaller and let space
Method _treeview_search_equal_func for searching inside the treeview, case-insensitive by default
Method _on_treeview_header__button_release_event Undocumented
Method _after_treeview__row_activated After activated (double clicked or pressed enter) on a row
Method _get_selection_or_selected_rows Undocumented
Method _emit_button_press_signal Undocumented
Method _on_treeview__button_press_event Generic button-press-event handler to be able to catch double clicks
Method _cell_data_text_func To render the data of a cell renderer text
Method _cell_data_pixbuf_func To render the data of a cell renderer pixbuf
Method _cell_data_combo_func Undocumented
Method _on_renderer__toggled Undocumented
Method _on_renderer_toggle_check__toggled Undocumented
Method _on_renderer_toggle_radio__toggled Undocumented
Method _on_renderer_text__edited Undocumented
Method _on_renderer_combo__edited Undocumented
Method _on_renderer__edited Undocumented
Method _get_column_button Return the button widget of a particular TreeViewColumn.
Method _setup_popup_button Put a button on top of the vertical scrollbar to show the popup
Method _find_vertical_scrollbar This method is called from a .forall() method in the ScrolledWindow.
Method _get_header_height Undocumented
Method get_model Return treemodel of the current list
Method get_treeview Return treeview of the current list
Method get_columns Undocumented
Method get_column_by_name Returns the name of a column
Method get_treeview_column
Method grab_focus Grabs the focus of the ObjectList
Method _clear_columns Undocumented
Method set_columns
Method append Adds an instance to the list.
Method _remove Undocumented
Method _clear_cache_for_iter Undocumented
Method remove Remove an instance from the list.
Method update Undocumented
Method refresh Reloads the values from all objects.
Method set_column_visibility Undocumented
Method get_selection_mode Undocumented
Method set_selection_mode Undocumented
Method unselect_all Undocumented
Method select_paths Selects a number of rows corresponding to paths
Method select Undocumented
Method get_selected Returns the currently selected object
Method get_selected_rows Returns a list of currently selected objects
Method add_list Allows a list to be loaded, by default clearing it first.
Method clear Removes all the instances of the list
Method get_next Returns the item after instance in the list.
Method get_previous Returns the item before instance in the list.
Method get_selected_row_number
Method double_click Same as double clicking on the row rowno
Method set_headers_visible
Method set_visible_rows Sets the number of visible rows of the treeview. This is useful to use

Inherited from PropertyObject:

Method __class_init__ Undocumented
Method __post_init__ A hook which is called after the constructor is called.
Method _set Undocumented
Method _get Undocumented
Method get_attribute_names Undocumented
Method is_default_value Undocumented
Method do_set_property Undocumented
Method do_get_property Undocumented
def __init__(self, columns=None, objects=None, mode=gtk.SELECTION_BROWSE, sortable=False, model=None):
Parameterscolumnsa list of Columns
objectsa list of objects to be inserted or None
modeselection mode
sortablewhether the user can sort the list
modelgtk.TreeModel to use or None to create one
def __len__(self):
len(list)
def __nonzero__(self):
if list
def __contains__(self, instance):
item in list
def __iter__(self):
for item in list
def __getitem__(self, arg):
list[n]
def __setitem__(self, arg, item):
list[n] = m
def extend(self, iterable):
Extend list by appending elements from the iterable
Parametersiterable
def index(self, item, start=None, stop=None):
Return first index of value
Parametersitem
start@param stop
def count(self, item):
L.count(item) -> integer -- return number of occurrences of value
def insert(self, index, instance, select=False):
Inserts an instance to the list
Parametersindexposition to insert the instance at
instancethe instance to be added (according to the columns spec)
selectwhether or not the new item should appear selected.
def pop(self, index):
Remove and return item at index (default last)
Parametersindex
def reverse(self, pos, item):
L.reverse() -- reverse *IN PLACE*
def sort(self, pos, item):
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*; cmp(x, y) -> -1, 0, 1
def sort_by_attribute(self, attribute, order=gtk.SORT_ASCENDING):
Sort by an attribute in the object model.
Parametersattributeattribute to sort on (type: string )
orderone of gtk.SORT_ASCENDING, gtk.SORT_DESCENDING (type: gtk.SortType )
def prop_set_selection_mode(self, mode):
Undocumented
def prop_get_selection_mode(self):
Undocumented
def _load(self, instances, clear):
Undocumented
def _setup_columns(self, columns):
Undocumented
def _setup_column(self, column):
Undocumented
def _create_column(self, column):
Undocumented
def _guess_renderer_for_type(self, column):
Gusses which CellRenderer we should use for a given type. It also set the property of the renderer that depends on the model, in the renderer.
def _select_and_focus_row(self, row_iter):
Undocumented
def _on_model__row_inserted(self, model, path, iter):
Undocumented
def _on_model__row_deleted(self, model, path):
Undocumented
def _model_sort_func(self, model, iter1, iter2, (column, attr)):
This method is used to sort the GtkTreeModel
def _on_selection__changed(self, selection):
This method is used to proxy selection::changed to selection-changed
def _on_scrolled_window__realize(self, widget):
Undocumented
def _on_scrolled_window__size_allocate(self, widget, allocation):
Resize the Vertical Scrollbar to make it smaller and let space for the popup button. Also put that button there.
def _treeview_search_equal_func(self, model, tree_column, key, treeiter, column):
for searching inside the treeview, case-insensitive by default
def _on_treeview_header__button_release_event(self, button, event):
Undocumented
def _after_treeview__row_activated(self, treeview, path, view_column):
After activated (double clicked or pressed enter) on a row
def _get_selection_or_selected_rows(self):
Undocumented
def _emit_button_press_signal(self, signal_name, event):
Undocumented
def _on_treeview__button_press_event(self, treeview, event):
Generic button-press-event handler to be able to catch double clicks
def _cell_data_text_func(self, tree_column, renderer, model, treeiter, (column, renderer_prop)):
To render the data of a cell renderer text
def _cell_data_pixbuf_func(self, tree_column, renderer, model, treeiter, (column, renderer_prop)):
To render the data of a cell renderer pixbuf
def _cell_data_combo_func(self, tree_column, renderer, model, treeiter, (column, renderer_prop)):
Undocumented
def _on_renderer__toggled(self, renderer, path, column):
Undocumented
def _on_renderer_toggle_check__toggled(self, renderer, path, model, attr):
Undocumented
def _on_renderer_toggle_radio__toggled(self, renderer, path, model, attr):
Undocumented
def _on_renderer_text__edited(self, renderer, path, text, model, attr, column, from_string):
Undocumented
def _on_renderer_combo__edited(self, renderer, path, text, model, attr, column):
Undocumented
def _on_renderer__edited(self, renderer, path, value, column):
Undocumented
def _get_column_button(self, column):

Return the button widget of a particular TreeViewColumn.

This hack is needed since that widget is private of the TreeView but we need access to them for Tooltips, right click menus, ...

Use this function at your own risk
def _setup_popup_button(self):
Put a button on top of the vertical scrollbar to show the popup menu. Internally it uses a POPUP window so you can tell how *Evil* is this.
def _find_vertical_scrollbar(self, widget):
This method is called from a .forall() method in the ScrolledWindow. It just save a reference to the vertical scrollbar for doing evil things later.
def _get_header_height(self):
Undocumented
def get_model(self):
Return treemodel of the current list
def get_treeview(self):
Return treeview of the current list
def get_columns(self):
Undocumented
def get_column_by_name(self, name):
Returns the name of a column
def get_treeview_column(self, column):
Parameterscolumna @Column
def grab_focus(self):
Grabs the focus of the ObjectList
def _clear_columns(self):
Undocumented
def set_columns(self, columns):
Parameterscolumnsa sequence of Column objects.
def append(self, instance, select=False):
Adds an instance to the list.
Parametersinstancethe instance to be added (according to the columns spec)
selectwhether or not the new item should appear selected.
def _remove(self, objid):
Undocumented
def _clear_cache_for_iter(self, treeiter):
Undocumented
def remove(self, instance, select=False):
Remove an instance from the list. If the instance is not in the list it returns False. Otherwise it returns True.
Parametersinstance
selectif true, the previous item will be selected if there is one.
def update(self, instance):
Undocumented
def refresh(self, view_only=False):
Reloads the values from all objects.
Parametersview_onlyif True, only force a refresh of the visible part of this objectlist's Treeview.
def set_column_visibility(self, column_index, visibility):
Undocumented
def get_selection_mode(self):
Undocumented
def set_selection_mode(self, mode):
Undocumented
def unselect_all(self):
Undocumented
def select_paths(self, paths):
Selects a number of rows corresponding to paths
Parameterspathsrows to be selected
def select(self, instance, scroll=True):
Undocumented
def get_selected(self):
Returns the currently selected object If an object is not selected, None is returned
def get_selected_rows(self):
Returns a list of currently selected objects If no objects are selected an empty list is returned
def add_list(self, instances, clear=True):
Allows a list to be loaded, by default clearing it first. freeze() and thaw() are called internally to avoid flashing.
Parametersinstancesa list to be added
cleara boolean that specifies whether or not to clear the list
def clear(self):
Removes all the instances of the list
def get_next(self, instance):
Returns the item after instance in the list. Note that the instance must be inserted before this can be called If there are no instances after, the first item will be returned.
Parametersinstancethe instance
def get_previous(self, instance):
Returns the item before instance in the list. Note that the instance must be inserted before this can be called If there are no instances before, the last item will be returned.
Parametersinstancethe instance
def get_selected_row_number(self):
Returnsthe selected row number or None if no rows were selected
def double_click(self, rowno):
Same as double clicking on the row rowno
Parametersrownointeger
def set_headers_visible(self, value):
Parametersvalueif true, shows the headers, if false hide then
def set_visible_rows(self, rows):
Sets the number of visible rows of the treeview. This is useful to use instead of set_size_request() directly, since you can avoid using raw pixel sizes.
Parametersrowsnumber of rows to show
API Documentation for Kiwi, generated by pydoctor.