Rearange widget registration into a table.
[pspp] / src / ui / gui / psppire-var-sheet.c
index 5cd839651b9ccebcb8ba8a8cffca963a6163b64e..66a95deeed2ad4831cd712d6b016600fcbe6f38a 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPPIRE - a graphical user interface for PSPP.
-   Copyright (C) 2008, 2009, 2011, 2012, 2013 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -195,7 +195,7 @@ on_var_column_edited (GtkCellRendererText *cell,
             {
               gtk_widget_queue_resize (GTK_WIDGET (var_sheet));
               var_sheet->scroll_to_bottom_signal =
-                g_signal_connect (var_sheet, "size-request",
+                g_signal_connect (var_sheet, "size-allocate",
                                   G_CALLBACK (scroll_to_bottom), NULL);
             }
         }
@@ -252,7 +252,7 @@ on_var_column_edited (GtkCellRendererText *cell,
       break;
 
     case VS_LABEL:
-      var_set_label (var, new_text, false);
+      var_set_label (var, new_text);
       break;
 
     case VS_VALUES:
@@ -286,8 +286,8 @@ on_var_column_edited (GtkCellRendererText *cell,
     case VS_ROLE:
       if (!strcmp (new_text, var_role_to_string (ROLE_INPUT)))
         var_set_role (var, ROLE_INPUT);
-      else if (!strcmp (new_text, var_role_to_string (ROLE_OUTPUT)))
-        var_set_role (var, ROLE_OUTPUT);
+      else if (!strcmp (new_text, var_role_to_string (ROLE_TARGET)))
+        var_set_role (var, ROLE_TARGET);
       else if (!strcmp (new_text, var_role_to_string (ROLE_BOTH)))
         var_set_role (var, ROLE_BOTH);
       else if (!strcmp (new_text, var_role_to_string (ROLE_NONE)))
@@ -321,15 +321,9 @@ get_var_align_stock_id (enum alignment alignment)
 {
   switch (alignment)
     {
-    case ALIGN_LEFT:
-      return GTK_STOCK_JUSTIFY_LEFT;
-
-    case ALIGN_CENTRE:
-      return GTK_STOCK_JUSTIFY_CENTER;
-
-    case ALIGN_RIGHT:
-      return GTK_STOCK_JUSTIFY_RIGHT;
-
+    case ALIGN_LEFT: return "align-left";
+    case ALIGN_CENTRE: return "align-center";
+    case ALIGN_RIGHT: return "align-right";
     default:
       g_return_val_if_reached ("");
     }
@@ -340,12 +334,12 @@ get_var_role_stock_id (enum var_role role)
 {
   switch (role)
     {
-    case ROLE_INPUT: return "variable-role-input";
-    case ROLE_OUTPUT: return "variable-role-target";
-    case ROLE_BOTH: return "variable-role-both";
-    case ROLE_NONE: return "variable-role-none";
-    case ROLE_PARTITION: return "variable-role-partition";
-    case ROLE_SPLIT: return "variable-role-split";
+    case ROLE_INPUT: return "role-input";
+    case ROLE_TARGET: return "role-target";
+    case ROLE_BOTH: return "role-both";
+    case ROLE_NONE: return "role-none";
+    case ROLE_PARTITION: return "role-partition";
+    case ROLE_SPLIT: return "role-split";
     default:
       g_return_val_if_reached ("");
     }
@@ -368,6 +362,7 @@ render_var_cell (PsppSheetViewColumn *tree_column,
                                                   "column-number")) - 1;
   row = GPOINTER_TO_INT (iter->user_data);
 
+  gtk_cell_renderer_set_visible (cell, true);
   if (row >= psppire_dict_get_var_cnt (var_sheet->dict))
     {
       if (GTK_IS_CELL_RENDERER_TEXT (cell))
@@ -382,7 +377,9 @@ render_var_cell (PsppSheetViewColumn *tree_column,
             g_object_set (cell, "adjustment", NULL, NULL);
         }
       else
-        g_object_set (cell, "stock-id", "", NULL);
+       {
+         gtk_cell_renderer_set_visible (cell, false);
+       }
       return;
     }
 
@@ -591,8 +588,9 @@ get_string_width (PsppSheetView *treeview, GtkCellRenderer *renderer,
   g_object_set (G_OBJECT (renderer),
                 PSPPIRE_IS_CELL_RENDERER_BUTTON (renderer) ? "label" : "text",
                 string, (void *) NULL);
-  gtk_cell_renderer_get_size (renderer, GTK_WIDGET (treeview),
-                              NULL, NULL, NULL, &width, NULL);
+
+  gtk_cell_renderer_get_preferred_width (renderer, GTK_WIDGET (treeview), NULL, &width);
+
   return width;
 }
 
@@ -1116,6 +1114,9 @@ psppire_var_sheet_dispose (GObject *obj)
   g_object_unref (var_sheet->var_type_dialog);
   */
 
+  g_object_unref (var_sheet->builder);
+
+  
   G_OBJECT_CLASS (psppire_var_sheet_parent_class)->dispose (obj);
 }
 
@@ -1276,7 +1277,7 @@ on_edit_clear_variables (GtkAction *action, PsppireVarSheet *var_sheet)
       for (i = 1; i <= range_set_node_get_width (node); i++)
         {
           unsigned long row = range_set_node_get_end (node) - i;
-          if (row >= 0 && row < psppire_dict_get_var_cnt (dict))
+          if (row < psppire_dict_get_var_cnt (dict))
             psppire_dict_delete_variables (dict, row, 1);
         }
     }
@@ -1393,15 +1394,15 @@ psppire_var_sheet_init (PsppireVarSheet *obj)
                     alignment_to_string (ALIGN_RIGHT), ALIGN_RIGHT,
                     NULL);
 
-  add_combo_column (obj, VS_MEASURE, _("Measure"), 12, measure_to_stock_id,
+  add_combo_column (obj, VS_MEASURE, _("Measure"), 11, measure_to_stock_id,
                     measure_to_string (MEASURE_NOMINAL), MEASURE_NOMINAL,
                     measure_to_string (MEASURE_ORDINAL), MEASURE_ORDINAL,
                     measure_to_string (MEASURE_SCALE), MEASURE_SCALE,
                     NULL);
 
-  add_combo_column (obj, VS_ROLE, _("Role"), 12, role_to_stock_id,
+  add_combo_column (obj, VS_ROLE, _("Role"), 11, role_to_stock_id,
                     var_role_to_string (ROLE_INPUT), ROLE_INPUT,
-                    var_role_to_string (ROLE_OUTPUT), ROLE_OUTPUT,
+                    var_role_to_string (ROLE_TARGET), ROLE_TARGET,
                     var_role_to_string (ROLE_BOTH), ROLE_BOTH,
                     var_role_to_string (ROLE_NONE), ROLE_NONE,
                     var_role_to_string (ROLE_PARTITION), ROLE_PARTITION,