[d-feet/pygi] Sort bus objects
- From: Thomas Bechtold <toabctl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [d-feet/pygi] Sort bus objects
- Date: Mon, 15 Oct 2012 15:47:07 +0000 (UTC)
commit 08c3e42fc9aba099334e2fa67f69fc1171fd4f6a
Author: Thomas Bechtold <thomasbechtold jpberlin de>
Date: Fri Oct 12 12:24:14 2012 +0200
Sort bus objects
dfeet/introspection.py | 18 ++++++++++++++++++
ui/introspection.ui | 8 ++++++--
2 files changed, 24 insertions(+), 2 deletions(-)
---
diff --git a/dfeet/introspection.py b/dfeet/introspection.py
index 693c07a..b2c5096 100644
--- a/dfeet/introspection.py
+++ b/dfeet/introspection.py
@@ -38,6 +38,9 @@ class AddressInfo():
self.__spinner = ui.get_widget('spinner') #the spinner is used to show progress during the introspection
self.__scrolledwindow = ui.get_widget('scrolledwindow') #the scrolledwindow contains the treeview
self.__treemodel = ui.get_widget('treestore')
+ self.__treemodelsort = ui.get_widget("treemodelsort")
+ self.__treemodelsort.set_sort_func(0, self.__sort_model)
+ self.__treemodelsort.set_sort_column_id(0, Gtk.SortType.ASCENDING)
self.__treeview = ui.get_widget('treeview')
self.__label_name = ui.get_widget('label_name')
self.__label_unique_name = ui.get_widget('label_unique_name')
@@ -117,6 +120,21 @@ class AddressInfo():
else:
treeview.expand_row(path, False)
+ def __sort_model(self, model, iter1, iter2, user_data):
+ """objects with small path depth first"""
+ un1 = model.get_value(iter1, 0)
+ un2 = model.get_value(iter2, 0)
+
+ un1_depth = len(un1.split("/"))
+ un2_depth = len(un2.split("/"))
+
+ if un1_depth > un2_depth:
+ return 1
+ elif un1_depth < un2_depth:
+ return -1
+ else:
+ return un1 > un2
+
def introspect_start(self):
"""introspect the given bus name and update the tree model"""
diff --git a/ui/introspection.ui b/ui/introspection.ui
index 450e04c..dbb15ed 100644
--- a/ui/introspection.ui
+++ b/ui/introspection.ui
@@ -152,7 +152,7 @@
<object class="GtkTreeView" id="treeview">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="model">treestore</property>
+ <property name="model">treemodelsort</property>
<property name="search_column">0</property>
<property name="enable_tree_lines">True</property>
<property name="tooltip_column">0</property>
@@ -163,7 +163,8 @@
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn_name">
- <property name="title" translatable="yes">Name</property>
+ <property name="title" translatable="yes">Object path</property>
+ <property name="sort_indicator">True</property>
<property name="sort_column_id">0</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext_name"/>
@@ -218,4 +219,7 @@
<column type="GObject"/>
</columns>
</object>
+ <object class="GtkTreeModelSort" id="treemodelsort">
+ <property name="model">treestore</property>
+ </object>
</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]