From f427bfa0e438ea618d0baf4ebfe4f8404eb4840e Mon Sep 17 00:00:00 2001 From: Liming An Date: Thu, 22 Mar 2012 19:03:35 +0800 Subject: Hob: reset the policy to forbid the horizontal scrolling for building log This patch is not to show the horizontal scroll bar for building log, and add CellRendererText class to wrap the text. [Yocto #2091] (Bitbake rev: 7c5e1297c1af2edd46315e3dec4516f850d5e222) Signed-off-by: Liming An Signed-off-by: Shane Wang Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/crumbs/builddetailspage.py | 6 +++--- bitbake/lib/bb/ui/crumbs/hobwidget.py | 24 ++++++++++++++++++++++++ bitbake/lib/bb/ui/crumbs/runningbuild.py | 7 ++++--- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/bitbake/lib/bb/ui/crumbs/builddetailspage.py b/bitbake/lib/bb/ui/crumbs/builddetailspage.py index 3605ee1a6b..92ca176190 100755 --- a/bitbake/lib/bb/ui/crumbs/builddetailspage.py +++ b/bitbake/lib/bb/ui/crumbs/builddetailspage.py @@ -58,7 +58,7 @@ class BuildDetailsPage (HobPage): 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_AUTOMATIC, gtk.POLICY_AUTOMATIC) + self.scrolled_view_config.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.scrolled_view_config.add(self.config_tv) self.notebook.append_page(self.scrolled_view_config, gtk.Label("Build Configuration")) @@ -66,14 +66,14 @@ class BuildDetailsPage (HobPage): self.failure_model = self.builder.handler.build.model.failure_model() self.failure_tv.set_model(self.failure_model) self.scrolled_view_failure = gtk.ScrolledWindow () - self.scrolled_view_failure.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + self.scrolled_view_failure.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.scrolled_view_failure.add(self.failure_tv) self.notebook.append_page(self.scrolled_view_failure, gtk.Label("Issues")) self.build_tv = RunningBuildTreeView(readonly=True) self.build_tv.set_model(self.builder.handler.build.model) self.scrolled_view_build = gtk.ScrolledWindow () - self.scrolled_view_build.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + self.scrolled_view_build.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) self.scrolled_view_build.add(self.build_tv) self.notebook.append_page(self.scrolled_view_build, gtk.Label("Log")) diff --git a/bitbake/lib/bb/ui/crumbs/hobwidget.py b/bitbake/lib/bb/ui/crumbs/hobwidget.py index 9d144c906b..020c5e232d 100644 --- a/bitbake/lib/bb/ui/crumbs/hobwidget.py +++ b/bitbake/lib/bb/ui/crumbs/hobwidget.py @@ -732,3 +732,27 @@ class HobNotebook(gtk.VBox): def set_search_entry_clear_cb(self, search, icon_pos, event): self.reset_entry(search) +class HobWarpCellRendererText(gtk.CellRendererText): + def __init__(self, col_number): + gtk.CellRendererText.__init__(self) + self.set_property("wrap-mode", pango.WRAP_WORD_CHAR) + self.set_property("wrap-width", 300) # default value wrap width is 300 + self.col_n = col_number + + def do_render(self, window, widget, background_area, cell_area, expose_area, flags): + if widget: + self.props.wrap_width = self.get_resized_wrap_width(widget, widget.get_column(self.col_n)) + return gtk.CellRendererText.do_render(self, window, widget, background_area, cell_area, expose_area, flags) + + def get_resized_wrap_width(self, treeview, column): + otherCols = [] + for col in treeview.get_columns(): + if col != column: + otherCols.append(col) + adjwidth = treeview.allocation.width - sum(c.get_width() for c in otherCols) + adjwidth -= treeview.style_get_property("horizontal-separator") * 4 + if self.props.wrap_width == adjwidth or adjwidth <= 0: + adjwidth = self.props.wrap_width + return adjwidth + +gobject.type_register(HobWarpCellRendererText) diff --git a/bitbake/lib/bb/ui/crumbs/runningbuild.py b/bitbake/lib/bb/ui/crumbs/runningbuild.py index 4c3fe2cedc..f202a9098e 100644 --- a/bitbake/lib/bb/ui/crumbs/runningbuild.py +++ b/bitbake/lib/bb/ui/crumbs/runningbuild.py @@ -27,6 +27,7 @@ import urllib import urllib2 import pango from bb.ui.crumbs.hobcolor import HobColors +from bb.ui.crumbs.hobwidget import HobWarpCellRendererText class RunningBuildModel (gtk.TreeStore): (COL_LOG, COL_PACKAGE, COL_TASK, COL_MESSAGE, COL_ICON, COL_COLOR, COL_NUM_ACTIVE) = range(7) @@ -350,7 +351,7 @@ class RunningBuildTreeView (gtk.TreeView): self.append_column (col) # The message of the build. - self.message_renderer = gtk.CellRendererText () + self.message_renderer = HobWarpCellRendererText (col_number=1) self.message_column = gtk.TreeViewColumn ("Message", self.message_renderer, text=3) self.message_column.add_attribute(self.message_renderer, 'background', 5) self.message_renderer.set_property('editable', (not self.readonly)) @@ -419,7 +420,7 @@ class BuildConfigurationTreeView(gtk.TreeView): self.get_selection().set_mode(gtk.SELECTION_SINGLE) # The message of the build. - self.message_renderer = gtk.CellRendererText () + 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) @@ -442,6 +443,6 @@ class BuildFailureTreeView(gtk.TreeView): self.append_column (col) # The message of the build. - self.message_renderer = gtk.CellRendererText () + self.message_renderer = HobWarpCellRendererText (col_number=1) self.message_column = gtk.TreeViewColumn ("Message", self.message_renderer, text=RunningBuildModel.COL_MESSAGE, background=RunningBuildModel.COL_COLOR) self.append_column (self.message_column) -- cgit v1.2.3-54-g00ecf