diff --git a/bitbake/lib/bb/ui/crumbs/builddetailspage.py b/bitbake/lib/bb/ui/crumbs/builddetailspage.py index 92ca176190..5f1524f05f 100755 --- a/bitbake/lib/bb/ui/crumbs/builddetailspage.py +++ b/bitbake/lib/bb/ui/crumbs/builddetailspage.py @@ -38,7 +38,7 @@ class BuildDetailsPage (HobPage): super(BuildDetailsPage, self).__init__(builder, "Building ...") self.num_of_issues = 0 - + self.endpath = (0,) # create visual elements self.create_visual_elements() @@ -77,6 +77,8 @@ class BuildDetailsPage (HobPage): self.scrolled_view_build.add(self.build_tv) self.notebook.append_page(self.scrolled_view_build, gtk.Label("Log")) + self.builder.handler.build.model.connect_after("row-changed", self.scroll_to_present_row, self.scrolled_view_build.get_vadjustment(), self.build_tv) + self.button_box = gtk.HBox(False, 6) self.back_button = HobAltButton("Back to image configuration") self.back_button.connect("clicked", self.back_button_clicked_cb) @@ -138,3 +140,10 @@ class BuildDetailsPage (HobPage): def hide_stop_button(self): self.stop_button.hide() + + def scroll_to_present_row(self, model, path, iter, v_adj, treeview): + if treeview and v_adj: + if path[0] > self.endpath[0]: # check the event is a new row append or not + 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)