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 <limingx.l.an@intel.com>
Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Liming An 2012-03-22 19:03:35 +08:00 committed by Richard Purdie
parent 63648b9f1d
commit f427bfa0e4
3 changed files with 31 additions and 6 deletions

View File

@ -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"))

View File

@ -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)

View File

@ -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)