[gnome-software] Add a refresh indicator



commit 41efd9fd05b72b74d2b4576c29246aecd1c83a9e
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Aug 22 18:24:38 2013 -0400

    Add a refresh indicator
    
    Show an indication when we're loading the installed or updates
    lists.

 src/gnome-software.ui    |   16 ++++++++++++++++
 src/gs-shell-installed.c |   13 +++++++++++++
 src/gs-shell-updates.c   |   22 ++++++++++++++++++++++
 3 files changed, 51 insertions(+), 0 deletions(-)
---
diff --git a/src/gnome-software.ui b/src/gnome-software.ui
index 9746340..4bc201a 100644
--- a/src/gnome-software.ui
+++ b/src/gnome-software.ui
@@ -181,6 +181,22 @@
                 <property name="pack_type">end</property>
               </packing>
             </child>
+            <child>
+              <object class="GtkSpinner" id="spinner_wait">
+              </object>
+              <packing>
+                <property name="pack_type">end</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="button_wait">
+                <property name="label" translatable="yes">Refreshing</property>
+                <property name="sensitive">False</property>
+              </object>
+              <packing>
+                <property name="pack_type">end</property>
+              </packing>
+            </child>
           </object>
           <packing>
             <property name="expand">False</property>
diff --git a/src/gs-shell-installed.c b/src/gs-shell-installed.c
index a42038f..f190566 100644
--- a/src/gs-shell-installed.c
+++ b/src/gs-shell-installed.c
@@ -240,6 +240,12 @@ gs_shell_installed_get_installed_cb (GObject *source_object,
        GsPluginLoader *plugin_loader = GS_PLUGIN_LOADER (source_object);
        GtkWidget *widget;
 
+        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "spinner_wait"));
+        gtk_spinner_stop (GTK_SPINNER (widget));
+        gtk_widget_hide (widget);
+        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_wait"));
+        gtk_widget_hide (widget);
+
        list = gs_plugin_loader_get_installed_finish (plugin_loader,
                                                      res,
                                                      &error);
@@ -281,6 +287,7 @@ gs_shell_installed_refresh (GsShellInstalled *shell_installed,
                            GCancellable *cancellable)
 {
        GsShellInstalledPrivate *priv = shell_installed->priv;
+        GtkWidget *widget;
 
        /* no need to refresh */
        if (priv->cache_valid)
@@ -289,6 +296,12 @@ gs_shell_installed_refresh (GsShellInstalled *shell_installed,
        /* remove old entries */
        _gtk_container_remove_all (GTK_CONTAINER (priv->list_box_installed));
 
+        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "spinner_wait"));
+        gtk_spinner_start (GTK_SPINNER (widget));
+        gtk_widget_show (widget);
+        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_wait"));
+        gtk_widget_show (widget);
+
        /* get popular apps */
        gs_plugin_loader_get_installed_async (priv->plugin_loader,
                                              cancellable,
diff --git a/src/gs-shell-updates.c b/src/gs-shell-updates.c
index 2df975e..e05f8fc 100644
--- a/src/gs-shell-updates.c
+++ b/src/gs-shell-updates.c
@@ -96,6 +96,14 @@ gs_shell_updates_get_updates_cb (GsPluginLoader *plugin_loader,
        GtkWidget *widget;
         GtkWidget *notebook;
 
+        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "spinner_wait"));
+        gtk_spinner_stop (GTK_SPINNER (widget));
+        gtk_widget_hide (widget);
+        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_wait"));
+        gtk_widget_hide (widget);
+        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_update_all"));
+        gtk_widget_show (widget);
+
        /* get the results */
        list = gs_plugin_loader_get_updates_finish (plugin_loader, res, &error);
 
@@ -140,12 +148,26 @@ void
 gs_shell_updates_refresh (GsShellUpdates *shell_updates, GCancellable *cancellable)
 {
        GsShellUpdatesPrivate *priv = shell_updates->priv;
+        GtkWidget *widget;
 
        /* no need to refresh */
        if (priv->cache_valid)
                return;
 
        _gtk_container_remove_all (GTK_CONTAINER (priv->list_box_updates));
+
+        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "spinner_wait"));
+        gtk_spinner_start (GTK_SPINNER (widget));
+        gtk_widget_show (widget);
+        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_wait"));
+        gtk_widget_show (widget);
+        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_update_all"));
+        gtk_widget_hide (widget);
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "box_updates_up_to_date"));
+       gtk_widget_hide (widget);
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "scrolledwindow_updates"));
+       gtk_widget_show (widget);
+
        gs_plugin_loader_get_updates_async (priv->plugin_loader,
                                            cancellable,
                                            (GAsyncReadyCallback) gs_shell_updates_get_updates_cb,


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