[latexila] Build Tools: show/hide detailed messages
- From: SÃbastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [latexila] Build Tools: show/hide detailed messages
- Date: Sun, 15 Jul 2012 20:46:52 +0000 (UTC)
commit e7f8c0c8ec690cbf858b0cad175094f6d61ba086
Author: SÃbastien Wilmet <swilmet src gnome org>
Date: Sun Jul 15 21:13:12 2012 +0200
Build Tools: show/hide detailed messages
There is a problem with the (owned) Node<BuildMsg?>. The same problem
when using the GLib.List. It is better to use Gee in Vala, but Gee
doesn't have a Node interface. So I'll use Gee.List, and in the
structure have another Gee.List with the children, to form the tree.
src/build_tool_runner.vala | 32 ++++++++++++++++++++++++++++++--
src/build_view.vala | 9 +++++++++
2 files changed, 39 insertions(+), 2 deletions(-)
---
diff --git a/src/build_tool_runner.vala b/src/build_tool_runner.vala
index 9be563c..22a5975 100644
--- a/src/build_tool_runner.vala
+++ b/src/build_tool_runner.vala
@@ -65,6 +65,29 @@ public class BuildToolRunner : GLib.Object
}
}
});
+
+ /* Show/hide details */
+ _view.notify["show-details"].connect (() =>
+ {
+ for (int job_num = 0 ; job_num < _job_titles.length ; job_num++)
+ {
+ TreeIter job_title = _job_titles[job_num];
+ BuildJobRunner job_runner = _job_runners[job_num];
+
+ if (job_runner.has_details ())
+ {
+ _view.remove_children (job_title);
+
+ Node<BuildMsg?> messages;
+ if (_view.show_details)
+ messages = job_runner.get_detailed_messages ();
+ else
+ messages = job_runner.get_messages ();
+
+ _view.append_messages (job_title, messages);
+ }
+ }
+ });
}
public void abort ()
@@ -118,8 +141,13 @@ public class BuildToolRunner : GLib.Object
_current_job_runner.finished.connect ((success) =>
{
- _view.append_messages (_current_job_title,
- _current_job_runner.get_messages ());
+ Node<BuildMsg?> messages;
+ if (_view.show_details)
+ messages = _current_job_runner.get_detailed_messages ();
+ else
+ messages = _current_job_runner.get_messages ();
+
+ _view.append_messages (_current_job_title, messages);
if (_aborted)
return;
diff --git a/src/build_view.vala b/src/build_view.vala
index ebba41d..3da6bef 100644
--- a/src/build_view.vala
+++ b/src/build_view.vala
@@ -336,6 +336,15 @@ public class BuildView : TreeView
return iter;
}
+ public void remove_children (TreeIter parent)
+ {
+ TreeIter child;
+ if (! _store.iter_children (out child, parent))
+ return;
+
+ while (_store.remove (ref child));
+ }
+
private string? get_icon_from_state (BuildState state)
{
switch (state)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]