From 24f060805f106292a393294091c1a65b0fa6b3ad Mon Sep 17 00:00:00 2001 From: Cristiana Voicu Date: Tue, 7 May 2013 11:07:54 +0300 Subject: bitbake: hob: "Brought in by" sorting should take into account the (+#) information [YOCTO #4332] (Bitbake rev: 226a5f2d0947460cb6df9e97f0146b65f96a7f8c) Signed-off-by: Cristiana Voicu Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/crumbs/hoblistmodel.py | 46 ++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) (limited to 'bitbake/lib/bb/ui/crumbs') diff --git a/bitbake/lib/bb/ui/crumbs/hoblistmodel.py b/bitbake/lib/bb/ui/crumbs/hoblistmodel.py index 42fd6ce27d..887be791dc 100644 --- a/bitbake/lib/bb/ui/crumbs/hoblistmodel.py +++ b/bitbake/lib/bb/ui/crumbs/hoblistmodel.py @@ -126,7 +126,7 @@ class PackageListModel(gtk.ListStore): sort.set_sort_func(PackageListModel.COL_INC, self.sort_column, PackageListModel.COL_INC) sort.set_sort_func(PackageListModel.COL_SIZE, self.sort_column, PackageListModel.COL_SIZE) - sort.set_sort_func(PackageListModel.COL_BINB, self.sort_column, PackageListModel.COL_BINB) + sort.set_sort_func(PackageListModel.COL_BINB, self.sort_binb_column) sort.set_sort_func(PackageListModel.COL_RCP, self.sort_column, PackageListModel.COL_RCP) return sort @@ -148,6 +148,27 @@ class PackageListModel(gtk.ListStore): name2 = model.get_value(row2, PackageListModel.COL_NAME) return cmp(name1,name2) + def sort_binb_column(self, model, row1, row2): + value1 = model.get_value(row1, PackageListModel.COL_BINB) + value2 = model.get_value(row2, PackageListModel.COL_BINB) + value1_list = value1.split(', ') + value2_list = value2.split(', ') + + value1 = value1_list[0] + value2 = value2_list[0] + + cmp_res = cmp(value1, value2) + if cmp_res==0: + cmp_size = cmp(len(value1_list), len(value2_list)) + if cmp_size==0: + name1 = model.get_value(row1, PackageListModel.COL_NAME) + name2 = model.get_value(row2, PackageListModel.COL_NAME) + return cmp(name1,name2) + else: + return cmp_size + else: + return cmp_res + def exclude_item_sort_func(self, model, iter1, iter2, user_data=None): if user_data: val1 = model.get_value(iter1, PackageListModel.COL_NAME) @@ -582,7 +603,7 @@ class RecipeListModel(gtk.ListStore): sort.set_sort_func(RecipeListModel.COL_INC, self.sort_column, RecipeListModel.COL_INC) sort.set_sort_func(RecipeListModel.COL_GROUP, self.sort_column, RecipeListModel.COL_GROUP) - sort.set_sort_func(RecipeListModel.COL_BINB, self.sort_column, RecipeListModel.COL_BINB) + sort.set_sort_func(RecipeListModel.COL_BINB, self.sort_binb_column) sort.set_sort_func(RecipeListModel.COL_LIC, self.sort_column, RecipeListModel.COL_LIC) return sort @@ -600,6 +621,27 @@ class RecipeListModel(gtk.ListStore): name2 = model.get_value(row2, RecipeListModel.COL_NAME) return cmp(name1,name2) + def sort_binb_column(self, model, row1, row2): + value1 = model.get_value(row1, RecipeListModel.COL_BINB) + value2 = model.get_value(row2, RecipeListModel.COL_BINB) + value1_list = value1.split(', ') + value2_list = value2.split(', ') + + value1 = value1_list[0] + value2 = value2_list[0] + + cmp_res = cmp(value1, value2) + if cmp_res==0: + cmp_size = cmp(len(value1_list), len(value2_list)) + if cmp_size==0: + name1 = model.get_value(row1, RecipeListModel.COL_NAME) + name2 = model.get_value(row2, RecipeListModel.COL_NAME) + return cmp(name1,name2) + else: + return cmp_size + else: + return cmp_res + def convert_vpath_to_path(self, view_model, view_path): filtered_model_path = view_model.convert_path_to_child_path(view_path) filtered_model = view_model.get_model() -- cgit v1.2.3-54-g00ecf