Hob tweaks
cover Hob tweaks
A series of minor tweaks based on feedback from design in bug #2182
https://bugzilla.yoctoproject.org/show_bug.cgi?id=2182
Cheers,
Joshua
The following changes since commit d49db15badb77855cef855ee73430fcbc16b6916:
Hob: a minor fix on pmake (2012-04-05 18:47:37 +0100)
are available in the git repository at:
git://github.com/incandescant/bitbake josh/hob
https://github.com/incandescant/bitbake/tree/josh/hob
Joshua Lock (4):
lib/bb/ui/crumbs: only display one 'Brought in by' item in Hob trees lib/bb/ui/crumbs/recipeselectionpage: include 'Group' in 'Included'
view
lib/bb/ui/crumbs/[recipe|package]selectionpage: fixed width Included
col
selectionpage: show persistent tooltips on click
lib/bb/ui/crumbs/hobwidget.py | 15 ++++++++ lib/bb/ui/crumbs/packageselectionpage.py | 38 +++++++++++++-------- lib/bb/ui/crumbs/recipeselectionpage.py | 53 +++++++++++++++++++---------- 3 files changed, 73 insertions(+), 33 deletions(-)
Signature · 1 line
1.7.7.6
PATCH 1/4 lib/bb/ui/crumbs: only display one 'Brought in by' item in Hob trees
The design calls for a single 'Brought in by' item to be shown in the tree views with any extra items to be shown in the tooltip.
--- lib/bb/ui/crumbs/hobwidget.py | 13 +++++++++++++ lib/bb/ui/crumbs/packageselectionpage.py | 2 +- lib/bb/ui/crumbs/recipeselectionpage.py | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-)
lib/bb/ui/crumbs/hobwidget.py +13 -0
@@ -150,6 +150,10 @@ class HobViewTable (gtk.VBox): col.pack_end(cell, True) col.set_attributes(cell, active=column['col_id']) self.toggle_columns.append(column['col_name']) + elif column['col_style'] == 'binb': + cell = gtk.CellRendererText() + col.pack_start(cell, True) + col.set_cell_data_func(cell, self.display_binb_cb, column['col_id']) scroll = gtk.ScrolledWindow() scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS)
@@ -157,6 +161,15 @@ class HobViewTable (gtk.VBox): scroll.add(self.table_tree) self.pack_start(scroll, True, True, 0) + def display_binb_cb(self, col, cell, model, it, col_id): + binb = model.get_value(it, col_id) + # Just display the first item + if binb: + bin = binb.split(', ') + cell.set_property('text', bin[0]) + + return True + def set_model(self, tree_model): self.table_tree.set_model(tree_model)
lib/bb/ui/crumbs/packageselectionpage.py +1 -1
@@ -45,7 +45,7 @@ class PackageSelectionPage (HobPage): }, { 'col_name' : 'Brought in by', 'col_id' : PackageListModel.COL_BINB, - 'col_style': 'text', + 'col_style': 'binb', 'col_min' : 100, 'col_max' : 350 }, {
lib/bb/ui/crumbs/recipeselectionpage.py +1 -1
@@ -45,7 +45,7 @@ class RecipeSelectionPage (HobPage): }, { 'col_name' : 'Brought in by', 'col_id' : RecipeListModel.COL_BINB, - 'col_style': 'text', + 'col_style': 'binb', 'col_min' : 100, 'col_max' : 500 }, {
Signature · 1 line
1.7.7.6
PATCH 2/4 lib/bb/ui/crumbs/recipeselectionpage: include 'Group' in 'Included' view
In reply to Joshua LockThe 'Included' tab of the notebook should show the 'Group' a recipe belongs to, per the design.
--- lib/bb/ui/crumbs/recipeselectionpage.py | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
lib/bb/ui/crumbs/recipeselectionpage.py +6 -0
@@ -49,6 +49,12 @@ class RecipeSelectionPage (HobPage): 'col_min' : 100, 'col_max' : 500 }, { + 'col_name' : 'Group', + 'col_id' : RecipeListModel.COL_GROUP, + 'col_style': 'text', + 'col_min' : 100, + 'col_max' : 300 + }, { 'col_name' : 'Included', 'col_id' : RecipeListModel.COL_INC, 'col_style': 'check toggle',
Signature · 1 line
1.7.7.6
PATCH 3/4 lib/bb/ui/crumbs/[recipe|package]selectionpage: fixed width Included col
In reply to Joshua LockSet the expand property on all columns other than the 'Included' column so that the included column remains at the max size set.
--- lib/bb/ui/crumbs/hobwidget.py | 2 + lib/bb/ui/crumbs/packageselectionpage.py | 23 +++++++++++------- lib/bb/ui/crumbs/recipeselectionpage.py | 36 ++++++++++++++++++----------- 3 files changed, 38 insertions(+), 23 deletions(-)
lib/bb/ui/crumbs/hobwidget.py +2 -0
@@ -127,6 +127,8 @@ class HobViewTable (gtk.VBox): col.set_min_width(column['col_min']) if 'col_max' in column.keys(): col.set_max_width(column['col_max']) + if 'expand' in column.keys(): + col.set_expand(True) self.table_tree.append_column(col) if (not 'col_style' in column.keys()) or column['col_style'] == 'text':
lib/bb/ui/crumbs/packageselectionpage.py +14 -9
@@ -41,25 +41,28 @@ class PackageSelectionPage (HobPage): 'col_id' : PackageListModel.COL_NAME, 'col_style': 'text', 'col_min' : 100, - 'col_max' : 300 + 'col_max' : 300, + 'expand' : 'True' }, { 'col_name' : 'Brought in by', 'col_id' : PackageListModel.COL_BINB, 'col_style': 'binb', 'col_min' : 100, - 'col_max' : 350 + 'col_max' : 350, + 'expand' : 'True' }, { 'col_name' : 'Size', 'col_id' : PackageListModel.COL_SIZE, 'col_style': 'text', 'col_min' : 100, - 'col_max' : 300 + 'col_max' : 300, + 'expand' : 'True' }, { 'col_name' : 'Included', 'col_id' : PackageListModel.COL_INC, 'col_style': 'check toggle', - 'col_min' : 50, - 'col_max' : 50 + 'col_min' : 100, + 'col_max' : 100 }] }, { 'name' : 'All packages',
@@ -69,19 +72,21 @@ class PackageSelectionPage (HobPage): 'col_id' : PackageListModel.COL_NAME, 'col_style': 'text', 'col_min' : 100, - 'col_max' : 400 + 'col_max' : 400, + 'expand' : 'True' }, { 'col_name' : 'Size', 'col_id' : PackageListModel.COL_SIZE, 'col_style': 'text', 'col_min' : 100, - 'col_max' : 500 + 'col_max' : 500, + 'expand' : 'True' }, { 'col_name' : 'Included', 'col_id' : PackageListModel.COL_INC, 'col_style': 'check toggle', - 'col_min' : 50, - 'col_max' : 50 + 'col_min' : 100, + 'col_max' : 100 }] } ]
lib/bb/ui/crumbs/recipeselectionpage.py +22 -14
@@ -41,25 +41,28 @@ class RecipeSelectionPage (HobPage): 'col_id' : RecipeListModel.COL_NAME, 'col_style': 'text', 'col_min' : 100, - 'col_max' : 400 + 'col_max' : 400, + 'expand' : 'True' }, { 'col_name' : 'Brought in by', 'col_id' : RecipeListModel.COL_BINB, 'col_style': 'binb', 'col_min' : 100, - 'col_max' : 500 + 'col_max' : 500, + 'expand' : 'True' }, { 'col_name' : 'Group', 'col_id' : RecipeListModel.COL_GROUP, 'col_style': 'text', 'col_min' : 100, - 'col_max' : 300 + 'col_max' : 300, + 'expand' : 'True' }, { 'col_name' : 'Included', 'col_id' : RecipeListModel.COL_INC, 'col_style': 'check toggle', - 'col_min' : 50, - 'col_max' : 50 + 'col_min' : 100, + 'col_max' : 100 }] }, { 'name' : 'All recipes',
@@ -69,25 +72,28 @@ class RecipeSelectionPage (HobPage): 'col_id' : RecipeListModel.COL_NAME, 'col_style': 'text', 'col_min' : 100, - 'col_max' : 400 + 'col_max' : 400, + 'expand' : 'True' }, { 'col_name' : 'License', 'col_id' : RecipeListModel.COL_LIC, 'col_style': 'text', 'col_min' : 100, - 'col_max' : 400 + 'col_max' : 400, + 'expand' : 'True' }, { 'col_name' : 'Group', 'col_id' : RecipeListModel.COL_GROUP, 'col_style': 'text', 'col_min' : 100, - 'col_max' : 400 + 'col_max' : 400, + 'expand' : 'True' }, { 'col_name' : 'Included', 'col_id' : RecipeListModel.COL_INC, 'col_style': 'check toggle', - 'col_min' : 50, - 'col_max' : 50 + 'col_min' : 100, + 'col_max' : 100 }] }, { 'name' : 'Tasks',
@@ -97,19 +103,21 @@ class RecipeSelectionPage (HobPage): 'col_id' : RecipeListModel.COL_NAME, 'col_style': 'text', 'col_min' : 100, - 'col_max' : 400 + 'col_max' : 400, + 'expand' : 'True' }, { 'col_name' : 'Description', 'col_id' : RecipeListModel.COL_DESC, 'col_style': 'text', 'col_min' : 100, - 'col_max' : 400 + 'col_max' : 400, + 'expand' : 'True' }, { 'col_name' : 'Included', 'col_id' : RecipeListModel.COL_INC, 'col_style': 'check toggle', - 'col_min' : 50, - 'col_max' : 50 + 'col_min' : 100, + 'col_max' : 100 }] } ]
Signature · 1 line
1.7.7.6
PATCH 4/4 selectionpage: show persistent tooltips on click
In reply to Joshua LockRequiring a double click to show the tooltips isn't very intuitive, add a callback to show the persistent tooltips on button release.
--- lib/bb/ui/crumbs/packageselectionpage.py | 13 ++++++++----- lib/bb/ui/crumbs/recipeselectionpage.py | 13 ++++++++----- 2 files changed, 16 insertions(+), 10 deletions(-)
lib/bb/ui/crumbs/packageselectionpage.py +8 -5
@@ -117,7 +117,7 @@ class PackageSelectionPage (HobPage): tab.set_model(self.package_model.tree_model(filter)) tab.connect("toggled", self.table_toggled_cb) if page['name'] == "Included": - tab.connect("row-activated", self.tree_row_activated_cb) + tab.connect("button-release-event", self.button_click_cb) label = gtk.Label(page['name']) self.ins.append_page(tab, label)
@@ -146,10 +146,13 @@ class PackageSelectionPage (HobPage): self.back_button.connect("clicked", self.back_button_clicked_cb) button_box.pack_start(self.back_button, expand=False, fill=False) - def tree_row_activated_cb(self, table, tree_model, path): - binb = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_BINB) - if binb: - self.builder.show_binb_dialog(binb) + def button_click_cb(self, widget, event): + path, col = widget.table_tree.get_cursor() + tree_model = widget.table_tree.get_model() + if path: # else activation is likely a removal + binb = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_BINB) + if binb: + self.builder.show_binb_dialog(binb) def build_image_clicked_cb(self, button): self.builder.build_image()
lib/bb/ui/crumbs/recipeselectionpage.py +8 -5
@@ -148,7 +148,7 @@ class RecipeSelectionPage (HobPage): tab.set_model(self.recipe_model.tree_model(filter)) tab.connect("toggled", self.table_toggled_cb) if page['name'] == "Included": - tab.connect("row-activated", self.tree_row_activated_cb) + tab.connect("button-release-event", self.button_click_cb) label = gtk.Label(page['name']) self.ins.append_page(tab, label)
@@ -177,10 +177,13 @@ class RecipeSelectionPage (HobPage): self.back_button.connect("clicked", self.back_button_clicked_cb) button_box.pack_start(self.back_button, expand=False, fill=False) - def tree_row_activated_cb(self, table, tree_model, path): - binb = tree_model.get_value(tree_model.get_iter(path), RecipeListModel.COL_BINB) - if binb: - self.builder.show_binb_dialog(binb) + def button_click_cb(self, widget, event): + path, col = widget.table_tree.get_cursor() + tree_model = widget.table_tree.get_model() + if path: # else activation is likely a removal + binb = tree_model.get_value(tree_model.get_iter(path), RecipeListModel.COL_BINB) + if binb: + self.builder.show_binb_dialog(binb) def build_packages_clicked_cb(self, button): self.builder.build_packages()
Signature · 1 line
1.7.7.6
Richard Purdie
AppliedQuoted 14 lines · Joshua Lock
A series of minor tweaks based on feedback from design in bug #2182
https://bugzilla.yoctoproject.org/show_bug.cgi?id=2182Cheers,
JoshuaThe following changes since commit
d49db15badb77855cef855ee73430fcbc16b6916:Hob: a minor fix on pmake (2012-04-05 18:47:37 +0100)
are available in the git repository at:
git://github.com/incandescant/bitbakejosh/hob
https://github.com/incandescant/bitbake/tree/josh/hob
Quoted 7 lines
Joshua Lock (4):
lib/bb/ui/crumbs: only display one 'Brought in by' item in Hob treeslib/bb/ui/crumbs/recipeselectionpage: include 'Group' in 'Included'
view
lib/bb/ui/crumbs/[recipe|package]selectionpage: fixed width Included
col
selectionpage: show persistent tooltips on click
Merged to master, thanks.
Richard