/** * gda_data_model_array_set_n_columns: * @model: the #GdaDataModelArray. * @cols: number of columns for rows this data model should use. * * Sets the number of columns for rows inserted in this model. * @cols must be greated than or equal to 0. * * Also clears @model's contents. */ void gda_data_model_array_set_n_columns (GdaDataModelArray *model, gint cols) { g_return_if_fail (GDA_IS_DATA_MODEL_ARRAY (model)); gda_data_model_array_clear (model); model->priv->number_of_columns = cols; g_object_notify (G_OBJECT (model), "n-columns"); }
static void gda_data_model_array_finalize (GObject *object) { GdaDataModelArray *model = (GdaDataModelArray *) object; g_return_if_fail (GDA_IS_DATA_MODEL_ARRAY (model)); /* free memory */ gda_data_model_freeze (GDA_DATA_MODEL(model)); gda_data_model_array_clear (model); g_array_free (model->priv->rows, TRUE); g_hash_table_foreach (model->priv->column_spec, (GHFunc) hash_free_column, model); g_hash_table_destroy (model->priv->column_spec); model->priv->column_spec = NULL; g_free (model->priv); model->priv = NULL; /* chain to parent class */ parent_class->finalize (object); }
static void update_possible_operations (DemoData *data) { GdaServerOperationType type; GdaDataModel *model; model = gdaui_data_selector_get_model (GDAUI_DATA_SELECTOR (data->op_combo)); if (!model) { gint columns[] = {1}; model = gda_data_model_array_new_with_g_types (2, G_TYPE_INT, G_TYPE_STRING); gdaui_combo_set_model (GDAUI_COMBO (data->op_combo), model, 1, columns); } else gda_data_model_array_clear (GDA_DATA_MODEL_ARRAY (model)); for (type = 0; type < GDA_SERVER_OPERATION_LAST; type ++) if (gda_server_provider_supports_operation (get_provider_obj (data), NULL, type, NULL)) { gint row; row = gda_data_model_append_row (model, NULL); if (row < 0) g_error ("Cant' append data to a GdaDataModelArray"); else { GValue value; memset (&value, 0, sizeof (GValue)); g_value_init (&value, G_TYPE_INT); g_value_set_int (&value, type); gda_data_model_set_value_at (model, 0, row, &value, NULL); memset (&value, 0, sizeof (GValue)); g_value_init (&value, G_TYPE_STRING); g_value_set_string (&value, gda_server_operation_op_type_to_string (type)); gda_data_model_set_value_at (model, 1, row, &value, NULL); } } }