X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fui%2Fgui%2Fpsppire-data-store.c;h=9ed530344cf9f8c4d45652e3b535b7996510c6ec;hb=cda91450a687e3f520ec4614dcc2d09f6f7c82bb;hp=d75348584211afe2e72b3dbe5da8f8975c6d7fc9;hpb=75fe94ea24fd7b12a0d99b8f36a79d8423e668d4;p=pspp-builds.git diff --git a/src/ui/gui/psppire-data-store.c b/src/ui/gui/psppire-data-store.c index d7534858..9ed53034 100644 --- a/src/ui/gui/psppire-data-store.c +++ b/src/ui/gui/psppire-data-store.c @@ -286,6 +286,25 @@ delete_variables_callback (GObject *obj, gint var_num, gint n_vars, gpointer dat var_num, -1); } + +static void +variable_changed_callback (GObject *obj, gint var_num, gpointer data) +{ + PsppireDataStore *store; + + g_return_if_fail (data); + + store = PSPPIRE_DATA_STORE (data); + + g_sheet_column_columns_changed (G_SHEET_COLUMN (store), + var_num, 1); + + + g_sheet_model_range_changed (G_SHEET_MODEL (store), + -1, var_num, + -1, var_num); +} + static void insert_variable_callback (GObject *obj, gint var_num, gpointer data) { @@ -365,8 +384,6 @@ psppire_data_store_new (PsppireDict *dict) void psppire_data_store_set_dictionary (PsppireDataStore *data_store, PsppireDict *dict) { - gint var_cnt = psppire_dict_get_next_value_idx (dict); - data_store->dict = dict; if ( data_store->case_file) @@ -375,7 +392,7 @@ psppire_data_store_set_dictionary (PsppireDataStore *data_store, PsppireDict *di data_store->case_file = 0; } - data_store->case_file = psppire_case_file_new (var_cnt); + data_store->case_file = psppire_case_file_new (); g_signal_connect (data_store->case_file, "cases-deleted", G_CALLBACK (delete_cases_callback), @@ -398,6 +415,11 @@ psppire_data_store_set_dictionary (PsppireDataStore *data_store, PsppireDict *di G_CALLBACK (delete_variables_callback), data_store); + g_signal_connect (dict, "variable-changed", + G_CALLBACK (variable_changed_callback), + data_store); + + g_signal_connect (dict, "dict-size-changed", G_CALLBACK (dict_size_change_callback), data_store); @@ -821,3 +843,4 @@ psppire_data_store_sheet_row_init (GSheetRowIface *iface) iface->get_button_label = geometry_get_row_button_label; } +