PsppireDataEditor: Automatically set the dictionary as hmodel when the data store...
authorJohn Darrington <john@darrington.wattle.id.au>
Sun, 7 May 2017 10:51:22 +0000 (12:51 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Sun, 7 May 2017 10:51:22 +0000 (12:51 +0200)
src/ui/gui/psppire-data-editor.c
src/ui/gui/psppire-data-sheet.c

index 13cd902de82f7da88780c79db4def0f09fc013ad..2b654f76bf83a3cabd5945a26857946dfbd15525 100644 (file)
@@ -166,7 +166,6 @@ psppire_data_editor_set_property (GObject         *object,
       de->dict = g_value_get_pointer (value);
       g_object_ref (de->dict);
 
-      g_object_set (de->data_sheet, "hmodel", de->dict, NULL);
       g_object_set (de->var_sheet, "data-model", de->dict, NULL);
       break;
     case PROP_VALUE_LABELS:
index cf73ff454cfafe8746cc2b88668d765fb0bec2a2..f9800a501bab93b8b0ee19a29257b789c952962a 100644 (file)
@@ -362,6 +362,15 @@ psppire_data_sheet_new (void)
   return GTK_WIDGET (obj);
 }
 
+static void
+set_dictionary (PsppireDataSheet *sheet)
+{
+  GtkTreeModel *data_model = NULL;
+  g_object_get (sheet, "data-model", &data_model, NULL);
+
+  PsppireDataStore *store = PSPPIRE_DATA_STORE (data_model);
+  g_object_set (sheet, "hmodel", store->dict, NULL);
+}
 
 static void
 psppire_data_sheet_init (PsppireDataSheet *sheet)
@@ -383,4 +392,7 @@ psppire_data_sheet_init (PsppireDataSheet *sheet)
 
   g_signal_connect (sheet, "value-changed",
                    G_CALLBACK (change_data_value), NULL);
+
+  g_signal_connect (sheet, "notify::data-model",
+                   G_CALLBACK (set_dictionary), NULL);
 }