[glade/glade-3-10] Make n-row and n-column save false. Fixes bug #660607 "Warnings when using GtkGrid created in Glade



commit 96d2b865842646f7090e39ec4074d0749f9dba32
Author: Juan Pablo Ugarte <juanpablougarte gmail com>
Date:   Thu Oct 6 15:09:10 2011 -0300

    Make n-row and n-column save false.
    Fixes bug #660607 "Warnings when using GtkGrid created in Glade 3.10"
    
    Conflicts:
    
    	ChangeLog

 ChangeLog                     |   11 +++++++++++
 gladeui/glade-project.c       |    6 +++---
 plugins/gtk+/glade-gtk-grid.c |   34 ++++++++++++++++++++++++++++++++++
 plugins/gtk+/gtk+.xml.in      |    4 ++--
 4 files changed, 50 insertions(+), 5 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 8ef11cc..5fd806d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2011-10-06  Juan Pablo Ugarte <juanpablougarte gmail com>
+
+	* plugins/gtk+/gtk+.xml.in: Make n-row and n-column save false.
+	  Fixes bug #660607 "Warnings when using GtkGrid created in Glade 3.10"
+
+	* gladeui/glade-project.c:
+	  Emit parse-finished signal before setting loading state to false.
+
+	* plugins/gtk+/glade-gtk-grid.c: infer n-row and n-column virtual
+	  properties value from children packing props. 
+
 2011-10-06  Tristan Van Berkom <tvb gnome org>
 
 	* gladeui/glade-widget-adaptor.c: Implemented a generic ->depends() routine
diff --git a/gladeui/glade-project.c b/gladeui/glade-project.c
index 79605a1..27ad165 100644
--- a/gladeui/glade-project.c
+++ b/gladeui/glade-project.c
@@ -1527,15 +1527,15 @@ glade_project_load_internal (GladeProject *project)
    */
   glade_project_fix_object_props (project);
 
+  /* Emit "parse-finished" signal */
+  g_signal_emit (project, glade_project_signals[PARSE_FINISHED], 0);
+
   /* Reset project status here too so that you get a clean
    * slate after calling glade_project_open().
    */
   project->priv->modified = FALSE;
   project->priv->loading = FALSE;
 
-  /* Emit "parse-finished" signal */
-  g_signal_emit (project, glade_project_signals[PARSE_FINISHED], 0);
-
   /* Update ui with versioning info
    */
   glade_project_verify_project_for_ui (project);
diff --git a/plugins/gtk+/glade-gtk-grid.c b/plugins/gtk+/glade-gtk-grid.c
index b8a247a..7fe1b77 100644
--- a/plugins/gtk+/glade-gtk-grid.c
+++ b/plugins/gtk+/glade-gtk-grid.c
@@ -419,6 +419,35 @@ glade_gtk_grid_configure_end (GladeFixed * fixed,
   return TRUE;
 }
 
+static void
+glade_gtk_grid_parse_finished (GladeProject *project, GObject *container)
+{
+  GladeWidget *gwidget = glade_widget_get_from_gobject (container);
+  GladeGridAttachments attach;
+  GList *list, *children;
+  gint row = 0, column = 0, n_row = 0, n_column = 0;
+
+  children = gtk_container_get_children (GTK_CONTAINER (container));
+
+  for (list = children; list; list = list->next)
+    {
+      GtkWidget *widget = list->data;
+
+      glade_gtk_grid_get_child_attachments (GTK_WIDGET (container), widget, &attach);
+
+      n_row = attach.top_attach + attach.height;
+      n_column = attach.left_attach + attach.width;
+      
+      if (row < n_row) row = n_row;
+      if (column < n_column) column = n_column;
+    }
+
+  if (n_column) glade_widget_property_set (gwidget, "n-columns", n_column);
+  if (n_row) glade_widget_property_set (gwidget, "n-rows", n_row);
+
+  g_list_free (children);
+}
+
 void
 glade_gtk_grid_post_create (GladeWidgetAdaptor * adaptor,
                              GObject * container, GladeCreateReason reason)
@@ -433,6 +462,11 @@ glade_gtk_grid_post_create (GladeWidgetAdaptor * adaptor,
 
   g_signal_connect (G_OBJECT (gwidget), "configure-end",
                     G_CALLBACK (glade_gtk_grid_configure_end), container);
+
+  if (reason == GLADE_CREATE_LOAD)
+    g_signal_connect (glade_widget_get_project (gwidget), "parse-finished",
+		      G_CALLBACK (glade_gtk_grid_parse_finished),
+		      container);
 }
 
 static gboolean
diff --git a/plugins/gtk+/gtk+.xml.in b/plugins/gtk+/gtk+.xml.in
index 0364358..6255adf 100644
--- a/plugins/gtk+/gtk+.xml.in
+++ b/plugins/gtk+/gtk+.xml.in
@@ -1452,13 +1452,13 @@ embedded in another object</_tooltip>
       </packing-actions>
 
       <properties>
-	<property id="n-rows" _name="Rows" default="3" query="True" needs-sync="True">
+	<property id="n-rows" _name="Rows" default="3" query="True" needs-sync="True" save="False">
 	  <parameter-spec>
 	    <type>GParamUInt</type>
 	  </parameter-spec>
 	  <_tooltip>The number of rows for this grid</_tooltip>
 	</property>
-	<property id="n-columns" _name="Columns" default="3" query="True" needs-sync="True">
+	<property id="n-columns" _name="Columns" default="3" query="True" needs-sync="True" save="False">
 	  <parameter-spec>
 	    <type>GParamUInt</type>
 	  </parameter-spec>



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