diff options
| author | Cristiana Voicu <cristiana.voicu@intel.com> | 2013-04-11 15:07:59 +0300 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-04-15 15:57:31 +0100 |
| commit | 3cc69d34131351fc9eb8672a838002241af4d329 (patch) | |
| tree | 73259cafbc673a91f986ae11d3083e89c72ec0fb /bitbake/lib/bb/ui | |
| parent | 612c25c59718d3b7a259ae72430544c2f6e369fc (diff) | |
| download | poky-3cc69d34131351fc9eb8672a838002241af4d329.tar.gz | |
bitbake: hob: Refine sorting mechanisms in Hob
-refine sorting functions for each column from recipe list page
and package list page
-sort correctly size column from packages list page
-set default sroting order and secondary sorting criteria
-make included on included recipes/packages no sortable
[YOCTO #2346 & #4194]
(Bitbake rev: 56822176e3d5e613654a46c983d2f979d7a9eebc)
Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/ui')
| -rw-r--r-- | bitbake/lib/bb/ui/crumbs/hig/imageselectiondialog.py | 2 | ||||
| -rw-r--r-- | bitbake/lib/bb/ui/crumbs/hoblistmodel.py | 107 | ||||
| -rw-r--r-- | bitbake/lib/bb/ui/crumbs/hobwidget.py | 16 | ||||
| -rwxr-xr-x | bitbake/lib/bb/ui/crumbs/packageselectionpage.py | 11 | ||||
| -rwxr-xr-x | bitbake/lib/bb/ui/crumbs/recipeselectionpage.py | 14 |
5 files changed, 116 insertions, 34 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/hig/imageselectiondialog.py b/bitbake/lib/bb/ui/crumbs/hig/imageselectiondialog.py index 17f6bffe00..21216adc97 100644 --- a/bitbake/lib/bb/ui/crumbs/hig/imageselectiondialog.py +++ b/bitbake/lib/bb/ui/crumbs/hig/imageselectiondialog.py | |||
| @@ -84,7 +84,7 @@ class ImageSelectionDialog (CrumbsDialog): | |||
| 84 | open_button.connect("clicked", self.select_path_cb, self, entry) | 84 | open_button.connect("clicked", self.select_path_cb, self, entry) |
| 85 | table.attach(open_button, 9, 10, 0, 1) | 85 | table.attach(open_button, 9, 10, 0, 1) |
| 86 | 86 | ||
| 87 | self.image_table = HobViewTable(self.__columns__) | 87 | self.image_table = HobViewTable(self.__columns__, "Images") |
| 88 | self.image_table.set_size_request(-1, 300) | 88 | self.image_table.set_size_request(-1, 300) |
| 89 | self.image_table.connect("toggled", self.toggled_cb) | 89 | self.image_table.connect("toggled", self.toggled_cb) |
| 90 | self.image_table.connect_group_selection(self.table_selected_cb) | 90 | self.image_table.connect_group_selection(self.table_selected_cb) |
diff --git a/bitbake/lib/bb/ui/crumbs/hoblistmodel.py b/bitbake/lib/bb/ui/crumbs/hoblistmodel.py index 0bd9734f48..547c1cade9 100644 --- a/bitbake/lib/bb/ui/crumbs/hoblistmodel.py +++ b/bitbake/lib/bb/ui/crumbs/hoblistmodel.py | |||
| @@ -103,25 +103,55 @@ class PackageListModel(gtk.ListStore): | |||
| 103 | Create, if required, and return a filtered gtk.TreeModelSort | 103 | Create, if required, and return a filtered gtk.TreeModelSort |
| 104 | containing only the items specified by filter | 104 | containing only the items specified by filter |
| 105 | """ | 105 | """ |
| 106 | def tree_model(self, filter, excluded_items_ahead=False, included_items_ahead=True, search_data=None): | 106 | def tree_model(self, filter, excluded_items_ahead=False, included_items_ahead=False, search_data=None, initial=False): |
| 107 | model = self.filter_new() | 107 | model = self.filter_new() |
| 108 | self.filtered_nb = 0 | 108 | self.filtered_nb = 0 |
| 109 | model.set_visible_func(self.tree_model_filter, filter) | 109 | model.set_visible_func(self.tree_model_filter, filter) |
| 110 | 110 | ||
| 111 | sort = gtk.TreeModelSort(model) | 111 | sort = gtk.TreeModelSort(model) |
| 112 | if initial: | ||
| 113 | sort.set_sort_column_id(PackageListModel.COL_NAME, gtk.SORT_ASCENDING) | ||
| 114 | sort.set_default_sort_func(None) | ||
| 115 | |||
| 112 | if excluded_items_ahead: | 116 | if excluded_items_ahead: |
| 113 | sort.set_default_sort_func(self.exclude_item_sort_func, search_data) | 117 | sort.set_default_sort_func(self.exclude_item_sort_func, search_data) |
| 114 | elif included_items_ahead: | 118 | elif included_items_ahead: |
| 115 | sort.set_default_sort_func(self.include_item_sort_func, search_data) | 119 | sort.set_default_sort_func(self.include_item_sort_func, search_data) |
| 116 | else: | 120 | else: |
| 117 | sort.set_sort_column_id(RecipeListModel.COL_NAME, gtk.SORT_ASCENDING) | 121 | if search_data and search_data!='Search recipes by name' and search_data!='Search package groups by name': |
| 118 | sort.set_default_sort_func(None) | 122 | sort.set_default_sort_func(self.sort_func, search_data) |
| 123 | else: | ||
| 124 | sort.set_sort_column_id(PackageListModel.COL_NAME, gtk.SORT_ASCENDING) | ||
| 125 | sort.set_default_sort_func(None) | ||
| 126 | |||
| 127 | sort.set_sort_func(PackageListModel.COL_INC, self.sort_column, PackageListModel.COL_INC) | ||
| 128 | sort.set_sort_func(PackageListModel.COL_SIZE, self.sort_column, PackageListModel.COL_SIZE) | ||
| 129 | sort.set_sort_func(PackageListModel.COL_BINB, self.sort_column, PackageListModel.COL_BINB) | ||
| 130 | sort.set_sort_func(PackageListModel.COL_RCP, self.sort_column, PackageListModel.COL_RCP) | ||
| 119 | return sort | 131 | return sort |
| 120 | 132 | ||
| 133 | def sort_column(self, model, row1, row2, col): | ||
| 134 | value1 = model.get_value(row1, col) | ||
| 135 | value2 = model.get_value(row2, col) | ||
| 136 | if col==PackageListModel.COL_SIZE: | ||
| 137 | value1 = HobPage._string_to_size(value1) | ||
| 138 | value2 = HobPage._string_to_size(value2) | ||
| 139 | |||
| 140 | cmp_res = cmp(value1, value2) | ||
| 141 | if cmp_res!=0: | ||
| 142 | if col==PackageListModel.COL_INC: | ||
| 143 | return -cmp_res | ||
| 144 | else: | ||
| 145 | return cmp_res | ||
| 146 | else: | ||
| 147 | name1 = model.get_value(row1, PackageListModel.COL_NAME) | ||
| 148 | name2 = model.get_value(row2, PackageListModel.COL_NAME) | ||
| 149 | return cmp(name1,name2) | ||
| 150 | |||
| 121 | def exclude_item_sort_func(self, model, iter1, iter2, user_data=None): | 151 | def exclude_item_sort_func(self, model, iter1, iter2, user_data=None): |
| 122 | if user_data: | 152 | if user_data: |
| 123 | val1 = model.get_value(iter1, RecipeListModel.COL_NAME) | 153 | val1 = model.get_value(iter1, PackageListModel.COL_NAME) |
| 124 | val2 = model.get_value(iter2, RecipeListModel.COL_NAME) | 154 | val2 = model.get_value(iter2, PackageListModel.COL_NAME) |
| 125 | if val1.startswith(user_data) and not val2.startswith(user_data): | 155 | if val1.startswith(user_data) and not val2.startswith(user_data): |
| 126 | return -1 | 156 | return -1 |
| 127 | elif not val1.startswith(user_data) and val2.startswith(user_data): | 157 | elif not val1.startswith(user_data) and val2.startswith(user_data): |
| @@ -129,14 +159,14 @@ class PackageListModel(gtk.ListStore): | |||
| 129 | else: | 159 | else: |
| 130 | return 0 | 160 | return 0 |
| 131 | else: | 161 | else: |
| 132 | val1 = model.get_value(iter1, RecipeListModel.COL_FADE_INC) | 162 | val1 = model.get_value(iter1, PackageListModel.COL_FADE_INC) |
| 133 | val2 = model.get_value(iter2, RecipeListModel.COL_INC) | 163 | val2 = model.get_value(iter2, PackageListModel.COL_INC) |
| 134 | return ((val1 == True) and (val2 == False)) | 164 | return ((val1 == True) and (val2 == False)) |
| 135 | 165 | ||
| 136 | def include_item_sort_func(self, model, iter1, iter2, user_data=None): | 166 | def include_item_sort_func(self, model, iter1, iter2, user_data=None): |
| 137 | if user_data: | 167 | if user_data: |
| 138 | val1 = model.get_value(iter1, RecipeListModel.COL_NAME) | 168 | val1 = model.get_value(iter1, PackageListModel.COL_NAME) |
| 139 | val2 = model.get_value(iter2, RecipeListModel.COL_NAME) | 169 | val2 = model.get_value(iter2, PackageListModel.COL_NAME) |
| 140 | if val1.startswith(user_data) and not val2.startswith(user_data): | 170 | if val1.startswith(user_data) and not val2.startswith(user_data): |
| 141 | return -1 | 171 | return -1 |
| 142 | elif not val1.startswith(user_data) and val2.startswith(user_data): | 172 | elif not val1.startswith(user_data) and val2.startswith(user_data): |
| @@ -144,10 +174,20 @@ class PackageListModel(gtk.ListStore): | |||
| 144 | else: | 174 | else: |
| 145 | return 0 | 175 | return 0 |
| 146 | else: | 176 | else: |
| 147 | val1 = model.get_value(iter1, RecipeListModel.COL_INC) | 177 | val1 = model.get_value(iter1, PackageListModel.COL_INC) |
| 148 | val2 = model.get_value(iter2, RecipeListModel.COL_INC) | 178 | val2 = model.get_value(iter2, PackageListModel.COL_INC) |
| 149 | return ((val1 == False) and (val2 == True)) | 179 | return ((val1 == False) and (val2 == True)) |
| 150 | 180 | ||
| 181 | def sort_func(self, model, iter1, iter2, user_data): | ||
| 182 | val1 = model.get_value(iter1, PackageListModel.COL_NAME) | ||
| 183 | val2 = model.get_value(iter2, PackageListModel.COL_NAME) | ||
| 184 | if val1.startswith(user_data) and not val2.startswith(user_data): | ||
| 185 | return -1 | ||
| 186 | elif not val1.startswith(user_data) and val2.startswith(user_data): | ||
| 187 | return 1 | ||
| 188 | else: | ||
| 189 | return 0 | ||
| 190 | |||
| 151 | def convert_vpath_to_path(self, view_model, view_path): | 191 | def convert_vpath_to_path(self, view_model, view_path): |
| 152 | # view_model is the model sorted | 192 | # view_model is the model sorted |
| 153 | # get the path of the model filtered | 193 | # get the path of the model filtered |
| @@ -162,7 +202,7 @@ class PackageListModel(gtk.ListStore): | |||
| 162 | it = view_model.get_iter_first() | 202 | it = view_model.get_iter_first() |
| 163 | while it: | 203 | while it: |
| 164 | name = self.find_item_for_path(path) | 204 | name = self.find_item_for_path(path) |
| 165 | view_name = view_model.get_value(it, RecipeListModel.COL_NAME) | 205 | view_name = view_model.get_value(it, PackageListModel.COL_NAME) |
| 166 | if view_name == name: | 206 | if view_name == name: |
| 167 | view_path = view_model.get_path(it) | 207 | view_path = view_model.get_path(it) |
| 168 | return view_path | 208 | return view_path |
| @@ -213,7 +253,6 @@ class PackageListModel(gtk.ListStore): | |||
| 213 | 253 | ||
| 214 | # pkgsize is in KB | 254 | # pkgsize is in KB |
| 215 | size = HobPage._size_to_string(HobPage._string_to_size(pkgsize + ' KB')) | 255 | size = HobPage._size_to_string(HobPage._string_to_size(pkgsize + ' KB')) |
| 216 | |||
| 217 | self.set(self.append(), self.COL_NAME, pkg, self.COL_VER, pkgv, | 256 | self.set(self.append(), self.COL_NAME, pkg, self.COL_VER, pkgv, |
| 218 | self.COL_REV, pkgr, self.COL_RNM, pkg_rename, | 257 | self.COL_REV, pkgr, self.COL_RNM, pkg_rename, |
| 219 | self.COL_SEC, section, self.COL_SUM, summary, | 258 | self.COL_SEC, section, self.COL_SUM, summary, |
| @@ -520,25 +559,61 @@ class RecipeListModel(gtk.ListStore): | |||
| 520 | val2 = model.get_value(iter2, RecipeListModel.COL_INC) | 559 | val2 = model.get_value(iter2, RecipeListModel.COL_INC) |
| 521 | return ((val1 == False) and (val2 == True)) | 560 | return ((val1 == False) and (val2 == True)) |
| 522 | 561 | ||
| 562 | def sort_func(self, model, iter1, iter2, user_data): | ||
| 563 | val1 = model.get_value(iter1, RecipeListModel.COL_NAME) | ||
| 564 | val2 = model.get_value(iter2, RecipeListModel.COL_NAME) | ||
| 565 | if val1.startswith(user_data) and not val2.startswith(user_data): | ||
| 566 | return -1 | ||
| 567 | elif not val1.startswith(user_data) and val2.startswith(user_data): | ||
| 568 | return 1 | ||
| 569 | else: | ||
| 570 | return 0 | ||
| 571 | |||
| 523 | """ | 572 | """ |
| 524 | Create, if required, and return a filtered gtk.TreeModelSort | 573 | Create, if required, and return a filtered gtk.TreeModelSort |
| 525 | containing only the items specified by filter | 574 | containing only the items specified by filter |
| 526 | """ | 575 | """ |
| 527 | def tree_model(self, filter, excluded_items_ahead=False, included_items_ahead=True, search_data=None): | 576 | def tree_model(self, filter, excluded_items_ahead=False, included_items_ahead=False, search_data=None, initial=False): |
| 528 | model = self.filter_new() | 577 | model = self.filter_new() |
| 529 | self.filtered_nb = 0 | 578 | self.filtered_nb = 0 |
| 530 | model.set_visible_func(self.tree_model_filter, filter) | 579 | model.set_visible_func(self.tree_model_filter, filter) |
| 531 | 580 | ||
| 532 | sort = gtk.TreeModelSort(model) | 581 | sort = gtk.TreeModelSort(model) |
| 582 | if initial: | ||
| 583 | sort.set_sort_column_id(RecipeListModel.COL_NAME, gtk.SORT_ASCENDING) | ||
| 584 | sort.set_default_sort_func(None) | ||
| 585 | |||
| 533 | if excluded_items_ahead: | 586 | if excluded_items_ahead: |
| 534 | sort.set_default_sort_func(self.exclude_item_sort_func, search_data) | 587 | sort.set_default_sort_func(self.exclude_item_sort_func, search_data) |
| 535 | elif included_items_ahead: | 588 | elif included_items_ahead: |
| 536 | sort.set_default_sort_func(self.include_item_sort_func, search_data) | 589 | sort.set_default_sort_func(self.include_item_sort_func, search_data) |
| 537 | else: | 590 | else: |
| 538 | sort.set_sort_column_id(RecipeListModel.COL_NAME, gtk.SORT_ASCENDING) | 591 | if search_data and search_data!='Search recipes by name' and search_data!='Search package groups by name': |
| 539 | sort.set_default_sort_func(None) | 592 | sort.set_default_sort_func(self.sort_func, search_data) |
| 593 | else: | ||
| 594 | sort.set_sort_column_id(RecipeListModel.COL_NAME, gtk.SORT_ASCENDING) | ||
| 595 | sort.set_default_sort_func(None) | ||
| 596 | |||
| 597 | sort.set_sort_func(RecipeListModel.COL_INC, self.sort_column, RecipeListModel.COL_INC) | ||
| 598 | sort.set_sort_func(RecipeListModel.COL_GROUP, self.sort_column, RecipeListModel.COL_GROUP) | ||
| 599 | sort.set_sort_func(RecipeListModel.COL_BINB, self.sort_column, RecipeListModel.COL_BINB) | ||
| 600 | sort.set_sort_func(RecipeListModel.COL_LIC, self.sort_column, RecipeListModel.COL_LIC) | ||
| 540 | return sort | 601 | return sort |
| 541 | 602 | ||
| 603 | def sort_column(self, model, row1, row2, col): | ||
| 604 | value1 = model.get_value(row1, col) | ||
| 605 | value2 = model.get_value(row2, col) | ||
| 606 | cmp_res = cmp(value1, value2) | ||
| 607 | if cmp_res!=0: | ||
| 608 | if col==RecipeListModel.COL_INC: | ||
| 609 | return -cmp_res | ||
| 610 | else: | ||
| 611 | return cmp_res | ||
| 612 | else: | ||
| 613 | name1 = model.get_value(row1, RecipeListModel.COL_NAME) | ||
| 614 | name2 = model.get_value(row2, RecipeListModel.COL_NAME) | ||
| 615 | return cmp(name1,name2) | ||
| 616 | |||
| 542 | def convert_vpath_to_path(self, view_model, view_path): | 617 | def convert_vpath_to_path(self, view_model, view_path): |
| 543 | filtered_model_path = view_model.convert_path_to_child_path(view_path) | 618 | filtered_model_path = view_model.convert_path_to_child_path(view_path) |
| 544 | filtered_model = view_model.get_model() | 619 | filtered_model = view_model.get_model() |
diff --git a/bitbake/lib/bb/ui/crumbs/hobwidget.py b/bitbake/lib/bb/ui/crumbs/hobwidget.py index f482a26f6a..3707d6160d 100644 --- a/bitbake/lib/bb/ui/crumbs/hobwidget.py +++ b/bitbake/lib/bb/ui/crumbs/hobwidget.py | |||
| @@ -83,7 +83,7 @@ class HobViewTable (gtk.VBox): | |||
| 83 | gobject.TYPE_PYOBJECT,)), | 83 | gobject.TYPE_PYOBJECT,)), |
| 84 | } | 84 | } |
| 85 | 85 | ||
| 86 | def __init__(self, columns): | 86 | def __init__(self, columns, name): |
| 87 | gtk.VBox.__init__(self, False, 6) | 87 | gtk.VBox.__init__(self, False, 6) |
| 88 | self.table_tree = gtk.TreeView() | 88 | self.table_tree = gtk.TreeView() |
| 89 | self.table_tree.set_headers_visible(True) | 89 | self.table_tree.set_headers_visible(True) |
| @@ -94,12 +94,18 @@ class HobViewTable (gtk.VBox): | |||
| 94 | self.toggle_columns = [] | 94 | self.toggle_columns = [] |
| 95 | self.table_tree.connect("row-activated", self.row_activated_cb) | 95 | self.table_tree.connect("row-activated", self.row_activated_cb) |
| 96 | self.top_bar = None | 96 | self.top_bar = None |
| 97 | self.tab_name = name | ||
| 97 | 98 | ||
| 98 | for i, column in enumerate(columns): | 99 | for i, column in enumerate(columns): |
| 99 | col = gtk.TreeViewColumn(column['col_name']) | 100 | col_name = column['col_name'] |
| 101 | col = gtk.TreeViewColumn(col_name) | ||
| 100 | col.set_clickable(True) | 102 | col.set_clickable(True) |
| 101 | col.set_resizable(True) | 103 | col.set_resizable(True) |
| 102 | col.set_sort_column_id(column['col_id']) | 104 | if self.tab_name.startswith('Included'): |
| 105 | if col_name!='Included': | ||
| 106 | col.set_sort_column_id(column['col_id']) | ||
| 107 | else: | ||
| 108 | col.set_sort_column_id(column['col_id']) | ||
| 103 | if 'col_min' in column.keys(): | 109 | if 'col_min' in column.keys(): |
| 104 | col.set_min_width(column['col_min']) | 110 | col.set_min_width(column['col_min']) |
| 105 | if 'col_max' in column.keys(): | 111 | if 'col_max' in column.keys(): |
| @@ -122,7 +128,7 @@ class HobViewTable (gtk.VBox): | |||
| 122 | self.toggle_id = i | 128 | self.toggle_id = i |
| 123 | col.pack_end(cell, True) | 129 | col.pack_end(cell, True) |
| 124 | col.set_attributes(cell, active=column['col_id']) | 130 | col.set_attributes(cell, active=column['col_id']) |
| 125 | self.toggle_columns.append(column['col_name']) | 131 | self.toggle_columns.append(col_name) |
| 126 | if 'col_group' in column.keys(): | 132 | if 'col_group' in column.keys(): |
| 127 | col.set_cell_data_func(cell, self.set_group_number_cb) | 133 | col.set_cell_data_func(cell, self.set_group_number_cb) |
| 128 | elif column['col_style'] == 'radio toggle': | 134 | elif column['col_style'] == 'radio toggle': |
| @@ -133,7 +139,7 @@ class HobViewTable (gtk.VBox): | |||
| 133 | self.toggle_id = i | 139 | self.toggle_id = i |
| 134 | col.pack_end(cell, True) | 140 | col.pack_end(cell, True) |
| 135 | col.set_attributes(cell, active=column['col_id']) | 141 | col.set_attributes(cell, active=column['col_id']) |
| 136 | self.toggle_columns.append(column['col_name']) | 142 | self.toggle_columns.append(col_name) |
| 137 | elif column['col_style'] == 'binb': | 143 | elif column['col_style'] == 'binb': |
| 138 | cell = gtk.CellRendererText() | 144 | cell = gtk.CellRendererText() |
| 139 | col.pack_start(cell, True) | 145 | col.pack_start(cell, True) |
diff --git a/bitbake/lib/bb/ui/crumbs/packageselectionpage.py b/bitbake/lib/bb/ui/crumbs/packageselectionpage.py index fb9afcb3cf..66cb7ff633 100755 --- a/bitbake/lib/bb/ui/crumbs/packageselectionpage.py +++ b/bitbake/lib/bb/ui/crumbs/packageselectionpage.py | |||
| @@ -142,17 +142,18 @@ class PackageSelectionPage (HobPage): | |||
| 142 | # append the tab | 142 | # append the tab |
| 143 | for page in self.pages: | 143 | for page in self.pages: |
| 144 | columns = page['columns'] | 144 | columns = page['columns'] |
| 145 | tab = HobViewTable(columns) | 145 | name = page['name'] |
| 146 | tab = HobViewTable(columns, name) | ||
| 146 | search_names.append(page['search']) | 147 | search_names.append(page['search']) |
| 147 | search_tips.append(page['searchtip']) | 148 | search_tips.append(page['searchtip']) |
| 148 | filter = page['filter'] | 149 | filter = page['filter'] |
| 149 | sort_model = self.package_model.tree_model(filter) | 150 | sort_model = self.package_model.tree_model(filter, initial=True) |
| 150 | tab.set_model(sort_model) | 151 | tab.set_model(sort_model) |
| 151 | tab.connect("toggled", self.table_toggled_cb, page['name']) | 152 | tab.connect("toggled", self.table_toggled_cb, name) |
| 152 | if page['name'] == "Included packages": | 153 | if name == "Included packages": |
| 153 | tab.connect("button-release-event", self.button_click_cb) | 154 | tab.connect("button-release-event", self.button_click_cb) |
| 154 | tab.connect("cell-fadeinout-stopped", self.after_fadeout_checkin_include) | 155 | tab.connect("cell-fadeinout-stopped", self.after_fadeout_checkin_include) |
| 155 | if page['name'] == "All packages": | 156 | if name == "All packages": |
| 156 | tab.connect("button-release-event", self.button_click_cb) | 157 | tab.connect("button-release-event", self.button_click_cb) |
| 157 | tab.connect("cell-fadeinout-stopped", self.after_fadeout_checkin_include) | 158 | tab.connect("cell-fadeinout-stopped", self.after_fadeout_checkin_include) |
| 158 | self.ins.append_page(tab, page['name'], page['tooltip']) | 159 | self.ins.append_page(tab, page['name'], page['tooltip']) |
diff --git a/bitbake/lib/bb/ui/crumbs/recipeselectionpage.py b/bitbake/lib/bb/ui/crumbs/recipeselectionpage.py index d1e5b69401..8573b81ea8 100755 --- a/bitbake/lib/bb/ui/crumbs/recipeselectionpage.py +++ b/bitbake/lib/bb/ui/crumbs/recipeselectionpage.py | |||
| @@ -154,20 +154,21 @@ class RecipeSelectionPage (HobPage): | |||
| 154 | # append the tabs in order | 154 | # append the tabs in order |
| 155 | for page in self.pages: | 155 | for page in self.pages: |
| 156 | columns = page['columns'] | 156 | columns = page['columns'] |
| 157 | tab = HobViewTable(columns) | 157 | name = page['name'] |
| 158 | tab = HobViewTable(columns, name) | ||
| 158 | search_names.append(page['search']) | 159 | search_names.append(page['search']) |
| 159 | search_tips.append(page['searchtip']) | 160 | search_tips.append(page['searchtip']) |
| 160 | filter = page['filter'] | 161 | filter = page['filter'] |
| 161 | sort_model = self.recipe_model.tree_model(filter) | 162 | sort_model = self.recipe_model.tree_model(filter, initial=True) |
| 162 | tab.set_model(sort_model) | 163 | tab.set_model(sort_model) |
| 163 | tab.connect("toggled", self.table_toggled_cb, page['name']) | 164 | tab.connect("toggled", self.table_toggled_cb, name) |
| 164 | if page['name'] == "Included recipes": | 165 | if name == "Included recipes": |
| 165 | tab.connect("button-release-event", self.button_click_cb) | 166 | tab.connect("button-release-event", self.button_click_cb) |
| 166 | tab.connect("cell-fadeinout-stopped", self.after_fadeout_checkin_include) | 167 | tab.connect("cell-fadeinout-stopped", self.after_fadeout_checkin_include) |
| 167 | if page['name'] == "Package Groups": | 168 | if name == "Package Groups": |
| 168 | tab.connect("button-release-event", self.button_click_cb) | 169 | tab.connect("button-release-event", self.button_click_cb) |
| 169 | tab.connect("cell-fadeinout-stopped", self.after_fadeout_checkin_include) | 170 | tab.connect("cell-fadeinout-stopped", self.after_fadeout_checkin_include) |
| 170 | if page['name'] == "All recipes": | 171 | if name == "All recipes": |
| 171 | tab.connect("button-release-event", self.button_click_cb) | 172 | tab.connect("button-release-event", self.button_click_cb) |
| 172 | tab.connect("cell-fadeinout-stopped", self.button_click_cb) | 173 | tab.connect("cell-fadeinout-stopped", self.button_click_cb) |
| 173 | self.ins.append_page(tab, page['name'], page['tooltip']) | 174 | self.ins.append_page(tab, page['name'], page['tooltip']) |
| @@ -241,7 +242,6 @@ class RecipeSelectionPage (HobPage): | |||
| 241 | properties['description'] = tree_model.get_value(tree_model.get_iter(path), RecipeListModel.COL_DESC) | 242 | properties['description'] = tree_model.get_value(tree_model.get_iter(path), RecipeListModel.COL_DESC) |
| 242 | self.builder.show_recipe_property_dialog(properties) | 243 | self.builder.show_recipe_property_dialog(properties) |
| 243 | 244 | ||
| 244 | |||
| 245 | def build_packages_clicked_cb(self, button): | 245 | def build_packages_clicked_cb(self, button): |
| 246 | self.builder.build_packages() | 246 | self.builder.build_packages() |
| 247 | 247 | ||
