[gnome-builder/wip/chergert/layout] buildui: use fancy tree view for build warnings
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/chergert/layout] buildui: use fancy tree view for build warnings
- Date: Sun, 2 Jul 2017 10:25:46 +0000 (UTC)
commit 5f68ad68f8ebd88a035668558c634ac75386f0de
Author: Christian Hergert <chergert redhat com>
Date: Sun Jul 2 03:25:35 2017 -0700
buildui: use fancy tree view for build warnings
libide/buildui/ide-build-panel.c | 35 +++++++++++++----------------------
libide/buildui/ide-build-panel.ui | 17 +----------------
2 files changed, 14 insertions(+), 38 deletions(-)
---
diff --git a/libide/buildui/ide-build-panel.c b/libide/buildui/ide-build-panel.c
index e643160..22ae7d8 100644
--- a/libide/buildui/ide-build-panel.c
+++ b/libide/buildui/ide-build-panel.c
@@ -21,7 +21,9 @@
#include <glib/gi18n.h>
#include <ide.h>
-#include "ide-build-panel.h"
+#include "buildui/ide-build-panel.h"
+#include "util/ide-fancy-tree-view.h"
+#include "util/ide-cell-renderer-fancy.h"
struct _IdeBuildPanel
{
@@ -31,8 +33,6 @@ struct _IdeBuildPanel
IdeBuildPipeline *pipeline;
GtkListStore *diagnostics_store;
- GtkCellRendererText *diagnostics_text;
- GtkTreeViewColumn *diagnostics_column;
GtkTreeView *diagnostics_tree_view;
GtkLabel *errors_label;
GtkLabel *running_time_label;
@@ -319,6 +319,7 @@ ide_build_panel_text_func (GtkCellLayout *layout,
GtkTreeIter *iter,
gpointer user_data)
{
+ IdeCellRendererFancy *fancy = (IdeCellRendererFancy *)renderer;
g_autoptr(IdeDiagnostic) diagnostic = NULL;
g_auto(GValue) value = { 0 };
@@ -330,10 +331,10 @@ ide_build_panel_text_func (GtkCellLayout *layout,
if G_LIKELY (diagnostic != NULL)
{
- GString *str;
- const gchar *text;
+ g_autofree gchar *title = NULL;
g_autofree gchar *name = NULL;
IdeSourceLocation *location;
+ const gchar *text;
GFile *gfile = NULL;
guint line = 0;
guint column = 0;
@@ -356,19 +357,11 @@ ide_build_panel_text_func (GtkCellLayout *layout,
}
- str = g_string_new (NULL);
-
- if (name != NULL)
- g_string_append_printf (str, "<b>%s:%u:%u</b>\n",
- name, line + 1, column + 1);
+ title = g_strdup_printf ("%s:%u:%u", name ?: "", line + 1, column + 1);
+ ide_cell_renderer_fancy_take_title (fancy, g_steal_pointer (&title));
text = ide_diagnostic_get_text (diagnostic);
-
- if (text != NULL)
- g_string_append (str, text);
-
- g_value_take_string (&value, g_string_free (str, FALSE));
- g_object_set_property (G_OBJECT (renderer), "markup", &value);
+ ide_cell_renderer_fancy_set_body (fancy, text);
return;
}
@@ -497,9 +490,7 @@ ide_build_panel_class_init (IdeBuildPanelClass *klass)
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/builder/plugins/buildui/ide-build-panel.ui");
gtk_widget_class_set_css_name (widget_class, "buildpanel");
- gtk_widget_class_bind_template_child (widget_class, IdeBuildPanel, diagnostics_column);
gtk_widget_class_bind_template_child (widget_class, IdeBuildPanel, diagnostics_store);
- gtk_widget_class_bind_template_child (widget_class, IdeBuildPanel, diagnostics_text);
gtk_widget_class_bind_template_child (widget_class, IdeBuildPanel, diagnostics_tree_view);
gtk_widget_class_bind_template_child (widget_class, IdeBuildPanel, errors_label);
gtk_widget_class_bind_template_child (widget_class, IdeBuildPanel, running_time_label);
@@ -508,7 +499,9 @@ ide_build_panel_class_init (IdeBuildPanelClass *klass)
gtk_widget_class_bind_template_child (widget_class, IdeBuildPanel, status_revealer);
gtk_widget_class_bind_template_child (widget_class, IdeBuildPanel, warnings_label);
+ g_type_ensure (IDE_TYPE_CELL_RENDERER_FANCY);
g_type_ensure (IDE_TYPE_DIAGNOSTIC);
+ g_type_ensure (IDE_TYPE_FANCY_TREE_VIEW);
}
static void
@@ -528,8 +521,6 @@ ide_build_panel_init (IdeBuildPanel *self)
self,
G_CONNECT_SWAPPED);
- gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (self->diagnostics_column),
- GTK_CELL_RENDERER (self->diagnostics_text),
- ide_build_panel_text_func,
- self, NULL);
+ ide_fancy_tree_view_set_data_func (IDE_FANCY_TREE_VIEW (self->diagnostics_tree_view),
+ ide_build_panel_text_func, self, NULL);
}
diff --git a/libide/buildui/ide-build-panel.ui b/libide/buildui/ide-build-panel.ui
index 3ea87fe..156cc40 100644
--- a/libide/buildui/ide-build-panel.ui
+++ b/libide/buildui/ide-build-panel.ui
@@ -161,27 +161,12 @@
<property name="vexpand">true</property>
<property name="visible">true</property>
<child>
- <object class="GtkTreeView" id="diagnostics_tree_view">
+ <object class="IdeFancyTreeView" id="diagnostics_tree_view">
<property name="activate-on-single-click">true</property>
<property name="tooltip-column">1</property>
<property name="model">diagnostics_store</property>
<property name="headers-visible">false</property>
<property name="visible">true</property>
- <child>
- <object class="GtkTreeViewColumn" id="diagnostics_column">
- <property name="expand">true</property>
- <child>
- <object class="GtkCellRendererText" id="diagnostics_text">
- <property name="yalign">0.0</property>
- <property name="xalign">0.0</property>
- <property name="ypad">6</property>
- <property name="width-chars">0</property>
- <property name="ellipsize">end</property>
- <property name="wrap-mode">word-char</property>
- </object>
- </child>
- </object>
- </child>
</object>
</child>
</object>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]