[gnome-builder] add spinner when building project



commit 5e6e6bf532ed40f8cdb625b6fad3803353335501
Author: Christian Hergert <christian hergert me>
Date:   Sun Mar 22 13:48:46 2015 -0700

    add spinner when building project

 data/ui/gb-editor-workspace.ui           |   13 +++++++++++++
 src/editor/gb-editor-workspace-private.h |    1 +
 src/editor/gb-editor-workspace.c         |   10 +++++++++-
 3 files changed, 23 insertions(+), 1 deletions(-)
---
diff --git a/data/ui/gb-editor-workspace.ui b/data/ui/gb-editor-workspace.ui
index 8bb62e9..b96d23c 100644
--- a/data/ui/gb-editor-workspace.ui
+++ b/data/ui/gb-editor-workspace.ui
@@ -31,6 +31,19 @@
                     </style>
                   </object>
                 </child>
+                <child>
+                  <object class="GtkSpinner" id="project_spinner">
+                    <property name="active">false</property>
+                    <property name="margin-top">3</property>
+                    <property name="margin-bottom">3</property>
+                    <property name="margin-start">6</property>
+                    <property name="margin-end">6</property>
+                    <property name="visible">false</property>
+                  </object>
+                  <packing>
+                    <property name="pack-type">end</property>
+                  </packing>
+                </child>
               </object>
             </child>
             <child>
diff --git a/src/editor/gb-editor-workspace-private.h b/src/editor/gb-editor-workspace-private.h
index 29e9777..31ed136 100644
--- a/src/editor/gb-editor-workspace-private.h
+++ b/src/editor/gb-editor-workspace-private.h
@@ -32,6 +32,7 @@ struct _GbEditorWorkspace
   GtkPaned      *project_paned;
   GtkBox        *project_sidebar;
   GtkMenuButton *project_button;
+  GtkSpinner    *project_spinner;
   GbTree        *project_tree;
   GbTreeBuilder *project_tree_builder;
   GbViewGrid    *view_grid;
diff --git a/src/editor/gb-editor-workspace.c b/src/editor/gb-editor-workspace.c
index 01a5f8e..55a7bec 100644
--- a/src/editor/gb-editor-workspace.c
+++ b/src/editor/gb-editor-workspace.c
@@ -81,7 +81,6 @@ gb_editor_workspace_context_changed (GtkWidget  *workspace,
                                      IdeContext *context)
 {
   GbEditorWorkspace *self = (GbEditorWorkspace *)workspace;
-  GbTreeNode *root;
 
   g_assert (GB_IS_EDITOR_WORKSPACE (self));
   g_assert (!context || IDE_IS_CONTEXT (context));
@@ -90,9 +89,17 @@ gb_editor_workspace_context_changed (GtkWidget  *workspace,
     {
       IdeBufferManager *bufmgr;
       IdeProject *project;
+      GbWorkbench *workbench;
+      GbTreeNode *root;
       g_autoptr(GPtrArray) buffers = NULL;
       gsize i;
 
+      workbench = gb_widget_get_workbench (GTK_WIDGET (self));
+      g_object_bind_property (workbench, "building", self->project_spinner, "active",
+                              G_BINDING_SYNC_CREATE);
+      g_object_bind_property (workbench, "building", self->project_spinner, "visible",
+                              G_BINDING_SYNC_CREATE);
+
       bufmgr = ide_context_get_buffer_manager (context);
       g_signal_connect_object (bufmgr,
                                "load-buffer",
@@ -173,6 +180,7 @@ gb_editor_workspace_class_init (GbEditorWorkspaceClass *klass)
   GB_WIDGET_CLASS_BIND (klass, GbEditorWorkspace, project_button);
   GB_WIDGET_CLASS_BIND (klass, GbEditorWorkspace, project_paned);
   GB_WIDGET_CLASS_BIND (klass, GbEditorWorkspace, project_sidebar);
+  GB_WIDGET_CLASS_BIND (klass, GbEditorWorkspace, project_spinner);
   GB_WIDGET_CLASS_BIND (klass, GbEditorWorkspace, project_tree);
   GB_WIDGET_CLASS_BIND (klass, GbEditorWorkspace, view_grid);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]