[gnome-builder/wip/chergert/headerbar] omnibar: add running time to omnibar popover
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/chergert/headerbar] omnibar: add running time to omnibar popover
- Date: Fri, 24 Jun 2016 00:48:03 +0000 (UTC)
commit a4be56aaf5b58eaad185fb14b452fc7c21297cc1
Author: Christian Hergert <chergert redhat com>
Date: Thu Jun 23 17:47:51 2016 -0700
omnibar: add running time to omnibar popover
libide/workbench/ide-omni-bar.c | 37 +++++++++++++++++++++++++++++++++++++
libide/workbench/ide-omni-bar.ui | 7 +++++--
2 files changed, 42 insertions(+), 2 deletions(-)
---
diff --git a/libide/workbench/ide-omni-bar.c b/libide/workbench/ide-omni-bar.c
index da97050..fd05df4 100644
--- a/libide/workbench/ide-omni-bar.c
+++ b/libide/workbench/ide-omni-bar.c
@@ -56,8 +56,10 @@ struct _IdeOmniBar
GtkPopover *popover;
GtkLabel *popover_branch_label;
GtkButton *popover_build_cancel_button;
+ GtkLabel *popover_build_running_time_label;
GtkLabel *popover_build_status;
GtkListBox *popover_configuration_list_box;
+ GtkLabel *popover_last_build_time_label;
GtkLabel *popover_project_label;
};
@@ -236,6 +238,30 @@ ide_omni_bar_build_result_notify_mode (IdeOmniBar *self,
}
static void
+ide_omni_bar_build_result_notify_running_time (IdeOmniBar *self,
+ GParamSpec *pspec,
+ IdeBuildResult *result)
+{
+ g_autofree gchar *text = NULL;
+ GTimeSpan span;
+ guint hours;
+ guint minutes;
+ guint seconds;
+
+ g_assert (IDE_IS_OMNI_BAR (self));
+ g_assert (IDE_IS_BUILD_RESULT (result));
+
+ span = ide_build_result_get_running_time (result);
+
+ hours = span / G_TIME_SPAN_HOUR;
+ minutes = (span % G_TIME_SPAN_HOUR) / G_TIME_SPAN_MINUTE;
+ seconds = (span % G_TIME_SPAN_MINUTE) / G_TIME_SPAN_SECOND;
+
+ text = g_strdup_printf ("%02u:%02u:%02u", hours, minutes, seconds);
+ gtk_label_set_label (self->popover_build_running_time_label, text);
+}
+
+static void
ide_omni_bar_build_result_notify_running (IdeOmniBar *self,
GParamSpec *pspec,
IdeBuildResult *result)
@@ -258,6 +284,8 @@ ide_omni_bar_build_result_notify_running (IdeOmniBar *self,
gtk_widget_show (GTK_WIDGET (self->popover_build_cancel_button));
gtk_widget_hide (GTK_WIDGET (self->popover_build_status));
+ gtk_widget_hide (GTK_WIDGET (self->popover_last_build_time_label));
+ gtk_widget_show (GTK_WIDGET (self->popover_build_running_time_label));
}
else
{
@@ -270,6 +298,8 @@ ide_omni_bar_build_result_notify_running (IdeOmniBar *self,
gtk_widget_hide (GTK_WIDGET (self->popover_build_cancel_button));
gtk_widget_show (GTK_WIDGET (self->popover_build_status));
+ gtk_widget_show (GTK_WIDGET (self->popover_last_build_time_label));
+ gtk_widget_hide (GTK_WIDGET (self->popover_build_running_time_label));
}
}
@@ -425,8 +455,10 @@ ide_omni_bar_class_init (IdeOmniBarClass *klass)
gtk_widget_class_bind_template_child (widget_class, IdeOmniBar, popover);
gtk_widget_class_bind_template_child (widget_class, IdeOmniBar, popover_branch_label);
gtk_widget_class_bind_template_child (widget_class, IdeOmniBar, popover_build_cancel_button);
+ gtk_widget_class_bind_template_child (widget_class, IdeOmniBar, popover_build_running_time_label);
gtk_widget_class_bind_template_child (widget_class, IdeOmniBar, popover_build_status);
gtk_widget_class_bind_template_child (widget_class, IdeOmniBar, popover_configuration_list_box);
+ gtk_widget_class_bind_template_child (widget_class, IdeOmniBar, popover_last_build_time_label);
gtk_widget_class_bind_template_child (widget_class, IdeOmniBar, popover_project_label);
gtk_widget_class_bind_template_child (widget_class, IdeOmniBar, project_label);
}
@@ -459,6 +491,11 @@ ide_omni_bar_init (IdeOmniBar *self)
self,
G_CONNECT_SWAPPED);
egg_signal_group_connect_object (self->build_result_signals,
+ "notify::running-time",
+ G_CALLBACK (ide_omni_bar_build_result_notify_running_time),
+ self,
+ G_CONNECT_SWAPPED);
+ egg_signal_group_connect_object (self->build_result_signals,
"diagnostic",
G_CALLBACK (ide_omni_bar_build_result_diagnostic),
self,
diff --git a/libide/workbench/ide-omni-bar.ui b/libide/workbench/ide-omni-bar.ui
index 0fdfc1a..2708a21 100644
--- a/libide/workbench/ide-omni-bar.ui
+++ b/libide/workbench/ide-omni-bar.ui
@@ -225,6 +225,7 @@
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
+ <property name="valign">center</property>
<property name="visible">true</property>
<child>
<object class="GtkLabel" id="popover_build_label">
@@ -250,7 +251,8 @@
</child>
<child>
<object class="GtkLabel" id="popover_build_running_time_label">
- <property name="label">0:32</property>
+ <property name="margin-end">8</property>
+ <property name="margin-start">8</property>
</object>
<packing>
<property name="position">1</property>
@@ -259,7 +261,8 @@
</child>
<child>
<object class="GtkLabel" id="popover_build_status">
- <property name="label">Failed</property>
+ <property name="margin-end">8</property>
+ <property name="margin-start">8</property>
</object>
<packing>
<property name="position">2</property>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]