[gnome-software] Maintain window title of update details dialog
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Maintain window title of update details dialog
- Date: Sun, 1 Sep 2013 05:05:18 +0000 (UTC)
commit edddceb25b368a688f38ce98b84a720fddbdc7dc
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Sep 1 01:04:42 2013 -0400
Maintain window title of update details dialog
When going back to the OS updates list, the title needs
to be set back to "OS updates".
src/gs-shell-updates.c | 36 +++++++++++++++++++++++++++---------
1 files changed, 27 insertions(+), 9 deletions(-)
---
diff --git a/src/gs-shell-updates.c b/src/gs-shell-updates.c
index 7653e6c..d5376a6 100644
--- a/src/gs-shell-updates.c
+++ b/src/gs-shell-updates.c
@@ -30,7 +30,6 @@
#include "gs-app-widget.h"
static void gs_shell_updates_finalize (GObject *object);
-static void show_update_details (GsAppWidget *app_widget, GsShellUpdates *shell_updates);
#define GS_SHELL_UPDATES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GS_TYPE_SHELL_UPDATES,
GsShellUpdatesPrivate))
@@ -43,6 +42,7 @@ struct GsShellUpdatesPrivate
gboolean cache_valid;
gboolean waiting;
GsShell *shell;
+ GsApp *app;
};
enum {
@@ -277,15 +277,13 @@ gs_shell_updates_unselect_treeview_cb (gpointer user_data)
}
static void
-show_update_details (GsAppWidget *app_widget, GsShellUpdates *shell_updates)
+show_update_details (GsApp *app, GsShellUpdates *shell_updates)
{
- GsApp *app = gs_app_widget_get_app (app_widget);
+ GsShellUpdatesPrivate *priv = shell_updates->priv;
GsApp *app_related;
GsAppKind kind;
GtkWidget *widget;
- GsShellUpdatesPrivate *priv = shell_updates->priv;
- app = gs_app_widget_get_app (app_widget);
kind = gs_app_get_kind (app);
/* set update header */
@@ -333,9 +331,17 @@ gs_shell_updates_activated_cb (GtkListBox *list_box,
GtkListBoxRow *row,
GsShellUpdates *shell_updates)
{
- GsAppWidget *app_widget = GS_APP_WIDGET (gtk_bin_get_child (GTK_BIN (row)));
+ GsShellUpdatesPrivate *priv = shell_updates->priv;
+ GsAppWidget *app_widget;
+ GsApp *app;
- show_update_details (app_widget, shell_updates);
+ app_widget = GS_APP_WIDGET (gtk_bin_get_child (GTK_BIN (row)));
+ app = gs_app_widget_get_app (app_widget);
+
+ g_clear_object (&priv->app);
+ priv->app = g_object_ref (app);
+
+ show_update_details (priv->app, shell_updates);
}
/**
@@ -392,6 +398,9 @@ gs_shell_updates_button_back_cb (GtkWidget *widget, GsShellUpdates *shell_update
gtk_widget_hide (widget);
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "scrolledwindow_update"));
gtk_widget_show (widget);
+
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "dialog_update"));
+ gtk_window_set_title (GTK_WINDOW (widget), gs_app_get_name (priv->app));
}
/**
@@ -473,6 +482,12 @@ scrollbar_mapped_cb (GtkWidget *sb, GtkScrolledWindow *swin)
gtk_scrolled_window_set_shadow_type (swin, GTK_SHADOW_NONE);
}
+static void
+dialog_update_hide_cb (GtkWidget *dialog, GsShellUpdates *shell_updates)
+{
+ g_clear_object (&shell_updates->priv->app);
+}
+
void
gs_shell_updates_setup (GsShellUpdates *shell_updates,
GsShell *shell,
@@ -547,8 +562,10 @@ gs_shell_updates_setup (GsShellUpdates *shell_updates,
shell_updates);
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "dialog_update"));
g_signal_connect (widget, "delete-event",
- G_CALLBACK (gtk_widget_hide_on_delete),
- shell_updates);
+ G_CALLBACK (gtk_widget_hide_on_delete), shell_updates);
+ g_signal_connect (widget, "hide",
+ G_CALLBACK (dialog_update_hide_cb), shell_updates);
+
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_update_back"));
g_signal_connect (widget, "clicked",
G_CALLBACK (gs_shell_updates_button_back_cb),
@@ -592,6 +609,7 @@ gs_shell_updates_finalize (GObject *object)
g_object_unref (priv->builder);
g_object_unref (priv->plugin_loader);
g_object_unref (priv->cancellable);
+ g_clear_object (&priv->app);
G_OBJECT_CLASS (gs_shell_updates_parent_class)->finalize (object);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]