From 656f9a07588cc00704825a78de9649ca4a1552b8 Mon Sep 17 00:00:00 2001 From: Dongxiao Xu Date: Mon, 28 Nov 2011 14:32:40 +0800 Subject: Hob: A new implemetation (v2) This commit implements a new design for hob Some of the new features: - Friendly new designed GUI. Quick response to user actions. - Two step builds support package generation and image generation. - Support running GUI seprarately from bitbake server. - Recipe/package selection and deselection. - Accurate customization for image contents and size. - Progress bars showing the parsing and build status. - Load/save user configurations from/into templates. (Bitbake rev: 4dacd29f9c957d20f4583330b51e5420f9c3338d) Signed-off-by: Dongxiao Xu Signed-off-by: Shane Wang Signed-off-by: Liming An Signed-off-by: Fengxia Hua Designed-by: Belen Barros Pena Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/crumbs/layereditor.py | 153 -------------------------------- 1 file changed, 153 deletions(-) delete mode 100644 bitbake/lib/bb/ui/crumbs/layereditor.py (limited to 'bitbake/lib/bb/ui/crumbs/layereditor.py') diff --git a/bitbake/lib/bb/ui/crumbs/layereditor.py b/bitbake/lib/bb/ui/crumbs/layereditor.py deleted file mode 100644 index f5394a5f52..0000000000 --- a/bitbake/lib/bb/ui/crumbs/layereditor.py +++ /dev/null @@ -1,153 +0,0 @@ -# -# BitBake Graphical GTK User Interface -# -# Copyright (C) 2011 Intel Corporation -# -# Authored by Joshua Lock -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License version 2 as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -import gobject -import gtk -from bb.ui.crumbs.configurator import Configurator -from bb.ui.crumbs.hig import CrumbsDialog - -class LayerEditor(gtk.Dialog): - """ - Gtk+ Widget for enabling and disabling layers. - Layers are added through using an open dialog to find the layer.conf - Disabled layers are deleted from conf/bblayers.conf - """ - def __init__(self, configurator, parent=None): - gtk.Dialog.__init__(self, "Layers", None, - gtk.DIALOG_DESTROY_WITH_PARENT, - (gtk.STOCK_CLOSE, gtk.RESPONSE_OK)) - - # We want to show a little more of the treeview in the default, - # emptier, case - self.set_size_request(-1, 300) - self.set_border_width(6) - self.vbox.set_property("spacing", 0) - self.action_area.set_property("border-width", 6) - - self.configurator = configurator - self.newly_added = {} - - # Label to inform users that meta is enabled but that you can't - # disable it as it'd be a *bad* idea - msg = "As the core of the build system the meta layer must always be included and therefore can't be viewed or edited here." - lbl = gtk.Label() - lbl.show() - lbl.set_use_markup(True) - lbl.set_markup(msg) - lbl.set_line_wrap(True) - lbl.set_justify(gtk.JUSTIFY_FILL) - self.vbox.pack_start(lbl, expand=False, fill=False, padding=6) - - # Create a treeview in which to list layers - # ListStore of Name, Path, Enabled - self.layer_store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_BOOLEAN) - self.tv = gtk.TreeView(self.layer_store) - self.tv.set_headers_visible(True) - - col0 = gtk.TreeViewColumn('Name') - self.tv.append_column(col0) - col1 = gtk.TreeViewColumn('Path') - self.tv.append_column(col1) - col2 = gtk.TreeViewColumn('Enabled') - self.tv.append_column(col2) - - cell0 = gtk.CellRendererText() - col0.pack_start(cell0, True) - col0.set_attributes(cell0, text=0) - cell1 = gtk.CellRendererText() - col1.pack_start(cell1, True) - col1.set_attributes(cell1, text=1) - cell2 = gtk.CellRendererToggle() - cell2.connect("toggled", self._toggle_layer_cb) - col2.pack_start(cell2, True) - col2.set_attributes(cell2, active=2) - - self.tv.show() - self.vbox.pack_start(self.tv, expand=True, fill=True, padding=0) - - tb = gtk.Toolbar() - tb.set_icon_size(gtk.ICON_SIZE_SMALL_TOOLBAR) - tb.set_style(gtk.TOOLBAR_BOTH) - tb.set_tooltips(True) - tb.show() - icon = gtk.Image() - icon.set_from_stock(gtk.STOCK_ADD, gtk.ICON_SIZE_SMALL_TOOLBAR) - icon.show() - tb.insert_item("Add Layer", "Add new layer", None, icon, - self._find_layer_cb, None, -1) - self.vbox.pack_start(tb, expand=False, fill=False, padding=0) - - def set_parent_window(self, parent): - self.set_transient_for(parent) - - def load_current_layers(self, data): - for layer, path in self.configurator.enabled_layers.items(): - if layer != 'meta': - self.layer_store.append([layer, path, True]) - - def save_current_layers(self): - self.configurator.writeLayerConf() - - def _toggle_layer_cb(self, cell, path): - name = self.layer_store[path][0] - toggle = not self.layer_store[path][2] - if toggle: - self.configurator.addLayer(name, path) - else: - self.configurator.disableLayer(name) - self.layer_store[path][2] = toggle - - def _find_layer_cb(self, button): - self.find_layer(self) - - def find_layer(self, parent): - def conf_error(parent, lbl): - dialog = CrumbsDialog(parent, lbl) - dialog.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK) - response = dialog.run() - dialog.destroy() - - dialog = gtk.FileChooserDialog("Add new layer", parent, - gtk.FILE_CHOOSER_ACTION_OPEN, - (gtk.STOCK_CANCEL, gtk.RESPONSE_NO, - gtk.STOCK_OPEN, gtk.RESPONSE_YES)) - label = gtk.Label("Select the layer.conf of the layer you wish to add") - label.show() - dialog.set_extra_widget(label) - response = dialog.run() - path = dialog.get_filename() - dialog.destroy() - - lbl = "Error\nUnable to load layer %s because " % path - if response == gtk.RESPONSE_YES: - # FIXME: verify we've actually got a layer conf? - if path.endswith("layer.conf"): - name, layerpath = self.configurator.addLayerConf(path) - if name and layerpath: - self.newly_added[name] = layerpath - self.layer_store.append([name, layerpath, True]) - return - elif name: - return - else: - lbl += "there was a problem parsing the layer.conf." - else: - lbl += "it is not a layer.conf file." - conf_error(parent, lbl) -- cgit v1.2.3-54-g00ecf