Hob: change the implementation way about get config info for building log

Make the building log config information to get from the bitbake parameters directly, and then cancel the old way of filting the building log on running

[YOCTO #2144]

(From Poky rev: b52025a0fe2ca65e4d8549b1b90f5813b0c2e39f)

(Bitbake rev: 983f8848da0be02dadb1bb6530ff736325d014ba)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Liming An 2012-03-26 14:04:20 +08:00 committed by Richard Purdie
parent 044376692d
commit 26cce34e4d
4 changed files with 95 additions and 37 deletions

View File

@ -21,13 +21,90 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import gtk
import pango
import gobject
from bb.ui.crumbs.progressbar import HobProgressBar
from bb.ui.crumbs.hobwidget import hic, HobNotebook, HobAltButton
from bb.ui.crumbs.hobwidget import hic, HobNotebook, HobAltButton, HobWarpCellRendererText
from bb.ui.crumbs.runningbuild import RunningBuildTreeView
from bb.ui.crumbs.runningbuild import BuildConfigurationTreeView
from bb.ui.crumbs.runningbuild import BuildFailureTreeView
from bb.ui.crumbs.hobpages import HobPage
class BuildConfigurationTreeView(gtk.TreeView):
def __init__ (self):
gtk.TreeView.__init__(self)
self.set_rules_hint(False)
self.set_headers_visible(False)
self.set_property("hover-expand", True)
self.get_selection().set_mode(gtk.SELECTION_SINGLE)
# The icon that indicates whether we're building or failed.
renderer0 = gtk.CellRendererText()
renderer0.set_property('font-desc', pango.FontDescription('courier bold 12'))
col0 = gtk.TreeViewColumn ("Name", renderer0, text=0)
self.append_column (col0)
# The message of configuration.
renderer1 = HobWarpCellRendererText(col_number=1)
col1 = gtk.TreeViewColumn ("Values", renderer1, text=1)
self.append_column (col1)
def set_vars(self, key="", var=[""]):
d = {}
if type(var) == str:
d = {key: [var]}
elif type(var) == list and len(var) > 1:
#create the sub item line
l = []
text = ""
for item in var:
text = " - " + item
l.append(text)
d = {key: var}
return d
def set_config_model(self, show_vars):
listmodel = gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
parent = None
for var in show_vars:
for subitem in var.items():
name = subitem[0]
is_parent = True
for value in subitem[1]:
if is_parent:
parent = listmodel.append(parent, (name, value))
is_parent = False
else:
listmodel.append(parent, (None, value))
name = " - "
parent = None
# renew the tree model after get the configuration messages
self.set_model(listmodel)
def show(self, src_config_info, src_params):
vars = []
vars.append(self.set_vars("BB VERSION:", src_params.bb_version))
vars.append(self.set_vars("TARGET_ARCH:", src_params.target_arch))
vars.append(self.set_vars("TARGET_OS:", src_params.target_os))
vars.append(self.set_vars("MACHINE:", src_config_info.curr_mach))
vars.append(self.set_vars("DISTRO:", src_config_info.curr_distro))
vars.append(self.set_vars("DISTRO_VERSION:", src_params.distro_version))
vars.append(self.set_vars("SDK_MACHINE:", src_config_info.curr_sdk_machine))
vars.append(self.set_vars("TUNE_FEATURE:", src_params.tune_pkgarch))
vars.append(self.set_vars("LAYERS:", src_config_info.layers))
for path in src_config_info.layers:
import os, os.path
if os.path.exists(path):
f = os.popen('cd %s; git branch 2>&1 | grep "^* " | tr -d "* "' % path)
if f:
branch = f.readline().lstrip('\n').rstrip('\n')
vars.append(self.set_vars("BRANCH:", branch))
f.close()
break
self.set_config_model(vars)
#
# BuildDetailsPage
#
@ -60,8 +137,6 @@ class BuildDetailsPage (HobPage):
self.notebook = HobNotebook()
self.config_tv = BuildConfigurationTreeView()
self.config_model = self.builder.handler.build.model.config_model()
self.config_tv.set_model(self.config_model)
self.scrolled_view_config = gtk.ScrolledWindow ()
self.scrolled_view_config.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS)
self.scrolled_view_config.add(self.config_tv)
@ -161,3 +236,6 @@ class BuildDetailsPage (HobPage):
self.endpath = path
if v_adj.value == (v_adj.upper - v_adj.page_size): # check the gtk.adjustment position is at end boundary or not
treeview.scroll_to_cell(path)
def show_configurations(self, configurations, params):
self.config_tv.show(configurations, params)

View File

@ -140,6 +140,12 @@ class Parameters:
self.runnable_machine_patterns = params["runnable_machine_patterns"].split()
self.deployable_image_types = params["deployable_image_types"].split()
self.tmpdir = params["tmpdir"]
self.distro_version = params["distro_version"]
self.target_os = params["target_os"]
self.target_arch = params["target_arch"]
self.tune_pkgarch = params["tune_pkgarch"]
self.bb_version = params["bb_version"]
self.tune_arch = params["tune_arch"]
class Builder(gtk.Window):
@ -546,6 +552,7 @@ class Builder(gtk.Window):
self.build_details_page.update_progress_bar("Build Started: ", fraction)
self.build_details_page.reset_build_status()
self.build_details_page.reset_issues()
self.build_details_page.show_configurations(self.configuration, self.parameters)
def build_succeeded(self):
if self.current_step == self.FAST_IMAGE_GENERATING:

View File

@ -440,4 +440,10 @@ class HobHandler(gobject.GObject):
params["runnable_machine_patterns"] = self.server.runCommand(["getVariable", "RUNNABLE_MACHINE_PATTERNS"]) or ""
params["deployable_image_types"] = self.server.runCommand(["getVariable", "DEPLOYABLE_IMAGE_TYPES"]) or ""
params["tmpdir"] = self.server.runCommand(["getVariable", "TMPDIR"]) or ""
params["distro_version"] = self.server.runCommand(["getVariable", "DISTRO_VERSION"]) or ""
params["target_os"] = self.server.runCommand(["getVariable", "TARGET_OS"]) or ""
params["target_arch"] = self.server.runCommand(["getVariable", "TARGET_ARCH"]) or ""
params["tune_pkgarch"] = self.server.runCommand(["getVariable", "TUNE_PKGARCH"]) or ""
params["bb_version"] = self.server.runCommand(["getVariable", "BB_MIN_VERSION"]) or ""
params["tune_arch"] = self.server.runCommand(["getVariable", "TUNE_ARCH"]) or ""
return params

View File

@ -42,14 +42,6 @@ class RunningBuildModel (gtk.TreeStore):
gobject.TYPE_STRING,
gobject.TYPE_INT)
def config_model_filter(self, model, it):
msg = model.get(it, self.COL_MESSAGE)[0]
if not msg or type(msg) != str:
return False
if msg.startswith("\nOE Build Configuration:\n"):
return True
return False
def failure_model_filter(self, model, it):
color = model.get(it, self.COL_COLOR)[0]
if not color:
@ -58,11 +50,6 @@ class RunningBuildModel (gtk.TreeStore):
return True
return False
def config_model(self):
model = self.filter_new()
model.set_visible_func(self.config_model_filter)
return model
def failure_model(self):
model = self.filter_new()
model.set_visible_func(self.failure_model_filter)
@ -75,7 +62,6 @@ class RunningBuildModel (gtk.TreeStore):
def close_task_refresh(self):
self.foreach(self.foreach_cell_func, None)
class RunningBuild (gobject.GObject):
__gsignals__ = {
'build-started' : (gobject.SIGNAL_RUN_LAST,
@ -422,25 +408,6 @@ class RunningBuildTreeView (gtk.TreeView):
self._add_to_clipboard(message)
class BuildConfigurationTreeView(gtk.TreeView):
def __init__ (self):
gtk.TreeView.__init__(self)
self.set_rules_hint(False)
self.set_headers_visible(False)
self.set_property("hover-expand", True)
self.get_selection().set_mode(gtk.SELECTION_SINGLE)
# The message of the build.
self.message_renderer = HobWarpCellRendererText (col_number=0)
self.message_column = gtk.TreeViewColumn ("Message", self.message_renderer, text=RunningBuildModel.COL_MESSAGE, background=RunningBuildModel.COL_COLOR)
font = self.get_style().font_desc
font.set_size(pango.SCALE * 13)
self.message_renderer.set_property('font-desc', font)
self.append_column (self.message_column)
class BuildFailureTreeView(gtk.TreeView):
def __init__ (self):