From 39d3409d31b7d81a4fe5435935e28f994edfa402 Mon Sep 17 00:00:00 2001 From: Cristiana Voicu Date: Tue, 7 May 2013 11:07:53 +0300 Subject: bitbake: hob: sort alphabetically results in groups of recipes/packages When you search a string, there are 2 groups: recipes/packages starting with that string, and the rest. These 2 groups are now sorted. [YOCTO #4111] (Bitbake rev: 8d2b2a1c97570d3c6b40727f1afa1db8c00882f9) Signed-off-by: Cristiana Voicu Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/crumbs/hoblistmodel.py | 38 ++++++++++---------------------- 1 file changed, 12 insertions(+), 26 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 547c1cade9..42fd6ce27d 100644 --- a/bitbake/lib/bb/ui/crumbs/hoblistmodel.py +++ b/bitbake/lib/bb/ui/crumbs/hoblistmodel.py @@ -152,12 +152,7 @@ class PackageListModel(gtk.ListStore): if user_data: val1 = model.get_value(iter1, PackageListModel.COL_NAME) val2 = model.get_value(iter2, PackageListModel.COL_NAME) - if val1.startswith(user_data) and not val2.startswith(user_data): - return -1 - elif not val1.startswith(user_data) and val2.startswith(user_data): - return 1 - else: - return 0 + return self.cmp_vals(val1, val2, user_data) else: val1 = model.get_value(iter1, PackageListModel.COL_FADE_INC) val2 = model.get_value(iter2, PackageListModel.COL_INC) @@ -167,12 +162,7 @@ class PackageListModel(gtk.ListStore): if user_data: val1 = model.get_value(iter1, PackageListModel.COL_NAME) val2 = model.get_value(iter2, PackageListModel.COL_NAME) - if val1.startswith(user_data) and not val2.startswith(user_data): - return -1 - elif not val1.startswith(user_data) and val2.startswith(user_data): - return 1 - else: - return 0 + return self.cmp_vals(val1, val2, user_data) else: val1 = model.get_value(iter1, PackageListModel.COL_INC) val2 = model.get_value(iter2, PackageListModel.COL_INC) @@ -181,12 +171,15 @@ class PackageListModel(gtk.ListStore): def sort_func(self, model, iter1, iter2, user_data): val1 = model.get_value(iter1, PackageListModel.COL_NAME) val2 = model.get_value(iter2, PackageListModel.COL_NAME) + return self.cmp_vals(val1, val2, user_data) + + def cmp_vals(self, val1, val2, user_data): if val1.startswith(user_data) and not val2.startswith(user_data): return -1 elif not val1.startswith(user_data) and val2.startswith(user_data): return 1 else: - return 0 + return cmp(val1, val2) def convert_vpath_to_path(self, view_model, view_path): # view_model is the model sorted @@ -533,12 +526,7 @@ class RecipeListModel(gtk.ListStore): if user_data: val1 = model.get_value(iter1, RecipeListModel.COL_NAME) val2 = model.get_value(iter2, RecipeListModel.COL_NAME) - if val1.startswith(user_data) and not val2.startswith(user_data): - return -1 - elif not val1.startswith(user_data) and val2.startswith(user_data): - return 1 - else: - return 0 + return self.cmp_vals(val1, val2, user_data) else: val1 = model.get_value(iter1, RecipeListModel.COL_FADE_INC) val2 = model.get_value(iter2, RecipeListModel.COL_INC) @@ -548,12 +536,7 @@ class RecipeListModel(gtk.ListStore): if user_data: val1 = model.get_value(iter1, RecipeListModel.COL_NAME) val2 = model.get_value(iter2, RecipeListModel.COL_NAME) - if val1.startswith(user_data) and not val2.startswith(user_data): - return -1 - elif not val1.startswith(user_data) and val2.startswith(user_data): - return 1 - else: - return 0 + return self.cmp_vals(val1, val2, user_data) else: val1 = model.get_value(iter1, RecipeListModel.COL_INC) val2 = model.get_value(iter2, RecipeListModel.COL_INC) @@ -562,12 +545,15 @@ class RecipeListModel(gtk.ListStore): def sort_func(self, model, iter1, iter2, user_data): val1 = model.get_value(iter1, RecipeListModel.COL_NAME) val2 = model.get_value(iter2, RecipeListModel.COL_NAME) + return self.cmp_vals(val1, val2, user_data) + + def cmp_vals(self, val1, val2, user_data): if val1.startswith(user_data) and not val2.startswith(user_data): return -1 elif not val1.startswith(user_data) and val2.startswith(user_data): return 1 else: - return 0 + return cmp(val1, val2) """ Create, if required, and return a filtered gtk.TreeModelSort -- cgit v1.2.3-54-g00ecf