summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/ui/crumbs/packageselectionpage.py
diff options
context:
space:
mode:
authorShane Wang <shane.wang@intel.com>2012-02-29 22:14:58 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-03-01 15:51:30 +0000
commit030ba4bc71a1e7ea9a74e819949e5fb794af09f2 (patch)
treee3105c650c90a21546e8ccde22bc939f5df536b7 /bitbake/lib/bb/ui/crumbs/packageselectionpage.py
parent8f07bdc0a42dd7a7c3acf5d1b13220dbc98c8017 (diff)
downloadpoky-030ba4bc71a1e7ea9a74e819949e5fb794af09f2.tar.gz
Hob: make HobViewTable more general in hob and make the image selection dialog and the image details page reuse it.
This patch is to make the class HobViewTable more general as a tree view in Hob. Now the recipe selection page and the package selection page are using it. And we have tree views in the image selection dialog and the image details page, which used the class methods in HobWidget to create the tree views. That is not good in OO. So, make them reuse HobViewTable to create its instances. (Bitbake rev: 3c900211e8bc0311542873480d79b347d7449f59) Signed-off-by: Shane Wang <shane.wang@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/ui/crumbs/packageselectionpage.py')
-rwxr-xr-xbitbake/lib/bb/ui/crumbs/packageselectionpage.py28
1 files changed, 17 insertions, 11 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/packageselectionpage.py b/bitbake/lib/bb/ui/crumbs/packageselectionpage.py
index 8a8ab7585e..280d480c43 100755
--- a/bitbake/lib/bb/ui/crumbs/packageselectionpage.py
+++ b/bitbake/lib/bb/ui/crumbs/packageselectionpage.py
@@ -51,7 +51,7 @@ class PackageSelectionPage (HobPage):
51 }, { 51 }, {
52 'col_name' : 'Included', 52 'col_name' : 'Included',
53 'col_id' : PackageListModel.COL_INC, 53 'col_id' : PackageListModel.COL_INC,
54 'col_style': 'toggle', 54 'col_style': 'check toggle',
55 'col_min' : 50, 55 'col_min' : 50,
56 'col_max' : 50 56 'col_max' : 50
57 }] 57 }]
@@ -79,7 +79,7 @@ class PackageSelectionPage (HobPage):
79 }, { 79 }, {
80 'col_name' : 'Included', 80 'col_name' : 'Included',
81 'col_id' : PackageListModel.COL_INC, 81 'col_id' : PackageListModel.COL_INC,
82 'col_style': 'toggle', 82 'col_style': 'check toggle',
83 'col_min' : 50, 83 'col_min' : 50,
84 'col_max' : 50 84 'col_max' : 50
85 }] 85 }]
@@ -111,9 +111,19 @@ class PackageSelectionPage (HobPage):
111 # append the tab 111 # append the tab
112 for i in range(len(self.pages)): 112 for i in range(len(self.pages)):
113 columns = self.pages[i]['columns'] 113 columns = self.pages[i]['columns']
114 tab = HobViewTable(columns, self.reset_clicked_cb, self.table_toggled_cb) 114 tab = HobViewTable(columns)
115 filter = self.pages[i]['filter'] 115 filter = self.pages[i]['filter']
116 tab.table_tree.set_model(self.package_model.tree_model(filter)) 116 tab.set_model(self.package_model.tree_model(filter))
117 tab.connect("toggled", self.table_toggled_cb)
118 if self.pages[i]['name'] == "Included":
119 tab.connect("changed", self.tree_selection_cb)
120
121 reset_button = gtk.Button("Reset")
122 reset_button.connect("clicked", self.reset_clicked_cb)
123 hbox = gtk.HBox(False, 5)
124 hbox.pack_end(reset_button, expand=False, fill=False)
125 tab.pack_start(hbox, expand=False, fill=False)
126
117 label = gtk.Label(self.pages[i]['name']) 127 label = gtk.Label(self.pages[i]['name'])
118 self.ins.append_page(tab, label) 128 self.ins.append_page(tab, label)
119 self.tables.append(tab) 129 self.tables.append(tab)
@@ -124,11 +134,7 @@ class PackageSelectionPage (HobPage):
124 self.grid.attach(self.topbar, 0, 1, 0, 1, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1) 134 self.grid.attach(self.topbar, 0, 1, 0, 1, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 1, 1)
125 # set the search entry for each table 135 # set the search entry for each table
126 for tab in self.tables: 136 for tab in self.tables:
127 tab.table_tree.set_search_entry(self.topbar.search) 137 tab.set_search_entry(0, self.topbar.search)
128
129 inctab_tree_view = self.tables[len(self.pages)-1].table_tree
130 inctab_tree_selection = inctab_tree_view.get_selection()
131 inctab_tree_selection.connect("changed", self.tree_selection_cb, inctab_tree_view)
132 138
133 # add all into the dialog 139 # add all into the dialog
134 self.box_group_area.add(self.grid) 140 self.box_group_area.add(self.grid)
@@ -155,7 +161,7 @@ class PackageSelectionPage (HobPage):
155 self.back_button.connect("clicked", self.back_button_clicked_cb) 161 self.back_button.connect("clicked", self.back_button_clicked_cb)
156 button_box.pack_start(self.back_button, expand=False, fill=False) 162 button_box.pack_start(self.back_button, expand=False, fill=False)
157 163
158 def tree_selection_cb(self, tree_selection, tree_view): 164 def tree_selection_cb(self, table, tree_selection, tree_view):
159 tree_model = tree_view.get_model() 165 tree_model = tree_view.get_model()
160 path, column = tree_view.get_cursor() 166 path, column = tree_view.get_cursor()
161 if not path or column == tree_view.get_column(2): 167 if not path or column == tree_view.get_column(2):
@@ -218,7 +224,7 @@ class PackageSelectionPage (HobPage):
218 224
219 self.builder.window_sensitive(True) 225 self.builder.window_sensitive(True)
220 226
221 def table_toggled_cb(self, cell, view_path, view_tree): 227 def table_toggled_cb(self, table, cell, view_path, toggled_columnid, view_tree):
222 # Click to include a package 228 # Click to include a package
223 self.builder.window_sensitive(False) 229 self.builder.window_sensitive(False)
224 view_model = view_tree.get_model() 230 view_model = view_tree.get_model()