'Updates the GUI with the KB.
:return: True to keep being called by gobject.'

def _update_tree(self):

    while True:
        if self.need_complete_tree_update:
            self.need_complete_tree_update = False
            self.treestore.clear()
            for item in self.treeholder:
                self.pending_insert.put(item)
            self.treeholder = []
            (yield True)
        try:
            data = self.pending_insert.get_nowait()
        except Queue.Empty:
            pass
        else:
            if self.filter.get(data.obj_type, False):
                self._handle_first_level(data)
                self._handle_second_level(data)
                self._add_info(data)
            self.treeholder.append(data)
        finally:
            (yield True)
