[glade] GladeEditor: Update the widget name in a property editor dialog



commit e7430cc302bb53b24f8acd74ad34285975aa3dce
Author: Tristan Van Berkom <tristan upstairslabs com>
Date:   Thu Jan 28 12:08:21 2016 +0100

    GladeEditor: Update the widget name in a property editor dialog
    
    For the ones spawned specifically for a given widget

 gladeui/glade-editor.c |   28 ++++++++++++++++++++--------
 1 files changed, 20 insertions(+), 8 deletions(-)
---
diff --git a/gladeui/glade-editor.c b/gladeui/glade-editor.c
index 0d2a22e..245ca2b 100644
--- a/gladeui/glade-editor.c
+++ b/gladeui/glade-editor.c
@@ -1274,6 +1274,22 @@ glade_editor_hide_class_field (GladeEditor *editor)
     }
 }
 
+static void
+editor_widget_name_changed (GladeWidget *widget,
+                           GParamSpec  *pspec,
+                           GtkWindow   *window)
+{
+  gchar *title, *prj_name;
+
+  prj_name = glade_project_get_name (glade_widget_get_project (widget));
+  /* Translators: first %s is the project name, second is a widget name */
+  title = g_strdup_printf (_("%s - %s Properties"), prj_name,
+                           glade_widget_get_display_name (widget));
+  gtk_window_set_title (window, title);
+  g_free (title);
+  g_free (prj_name);
+}
+
 /**
  * glade_editor_dialog_for_widget:
  * @widget: a #GladeWidget
@@ -1287,7 +1303,6 @@ GtkWidget *
 glade_editor_dialog_for_widget (GladeWidget *widget)
 {
   GtkWidget *window, *editor;
-  gchar *title, *prj_name;
 
   g_return_val_if_fail (GLADE_IS_WIDGET (widget), NULL);
 
@@ -1295,13 +1310,10 @@ glade_editor_dialog_for_widget (GladeWidget *widget)
   window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_UTILITY);
 
-  prj_name = glade_project_get_name (glade_widget_get_project (widget));
-  /* Translators: first %s is the project name, second is a widget name */
-  title = g_strdup_printf (_("%s - %s Properties"), prj_name,
-                           glade_widget_get_name (widget));
-  gtk_window_set_title (GTK_WINDOW (window), title);
-  g_free (title);
-  g_free (prj_name);
+  /* Keep the title up to date */
+  editor_widget_name_changed (widget, NULL, window);
+  g_signal_connect_object (G_OBJECT (widget), "notify::name",
+                          G_CALLBACK (editor_widget_name_changed), window, 0);
 
   if (glade_app_get_accel_group ())
     {


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