[gnome-software] Add a refresh indicator
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Add a refresh indicator
- Date: Thu, 22 Aug 2013 22:28:41 +0000 (UTC)
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]