X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fui%2Fgui%2Fpsppire-dict.c;h=e6291b69c465535ee94434908070a9b78772d031;hb=ddf35b11f8525281dd9e524a5d322a80bf56a24f;hp=1e8beac5e3f1f1023ebb7d13f763596554915dd3;hpb=1173dd76c5e0a4f85f45cdc9d95b5be43aa552d3;p=pspp diff --git a/src/ui/gui/psppire-dict.c b/src/ui/gui/psppire-dict.c index 1e8beac5e3..e6291b69c4 100644 --- a/src/ui/gui/psppire-dict.c +++ b/src/ui/gui/psppire-dict.c @@ -56,7 +56,7 @@ enum { /* --- prototypes --- */ static void psppire_dict_class_init (PsppireDictClass *class); static void psppire_dict_init (PsppireDict *dict); -static void psppire_dict_finalize (GObject *object); +static void psppire_dict_dispose (GObject *object); static void dictionary_tree_model_init (GtkTreeModelIface *iface); @@ -115,7 +115,7 @@ psppire_dict_class_init (PsppireDictClass *class) parent_class = g_type_class_peek_parent (class); - object_class->finalize = psppire_dict_finalize; + object_class->dispose = psppire_dict_dispose; signals [BACKEND_CHANGED] = g_signal_new ("backend-changed", @@ -129,7 +129,7 @@ psppire_dict_class_init (PsppireDictClass *class) signals [VARIABLE_CHANGED] = - g_signal_new ("variable_changed", + g_signal_new ("variable-changed", G_TYPE_FROM_CLASS (class), G_SIGNAL_RUN_FIRST, 0, @@ -142,7 +142,7 @@ psppire_dict_class_init (PsppireDictClass *class) signals [VARIABLE_INSERTED] = - g_signal_new ("variable_inserted", + g_signal_new ("variable-inserted", G_TYPE_FROM_CLASS (class), G_SIGNAL_RUN_FIRST, 0, @@ -227,13 +227,13 @@ psppire_dict_class_init (PsppireDictClass *class) } static void -psppire_dict_finalize (GObject *object) +psppire_dict_dispose (GObject *object) { PsppireDict *d = PSPPIRE_DICT (object); - dict_destroy (d->dict); + dict_set_callbacks (d->dict, NULL, NULL); - G_OBJECT_CLASS (parent_class)->finalize (object); + G_OBJECT_CLASS (parent_class)->dispose (object); } /* Pass on callbacks from src/data/dictionary, as @@ -379,23 +379,24 @@ psppire_dict_generate_name (const PsppireDict *dict, char *name, size_t size) return name; } -/* Insert a new variable at posn IDX, with the name NAME. +/* Insert a new variable at posn IDX, with the name NAME, and return the + new variable. If NAME is null, then a name will be automatically assigned. */ -void +struct variable * psppire_dict_insert_variable (PsppireDict *d, gint idx, const gchar *name) { - struct variable *var ; + struct variable *var; char tmpname[64]; - g_return_if_fail (idx >= 0); - g_return_if_fail (d); - g_return_if_fail (PSPPIRE_IS_DICT (d)); + g_return_val_if_fail (idx >= 0, NULL); + g_return_val_if_fail (d, NULL); + g_return_val_if_fail (PSPPIRE_IS_DICT (d), NULL); - if ( ! name ) + if (name == NULL) { if (!psppire_dict_generate_name (d, tmpname, sizeof tmpname)) - g_return_if_reached (); + g_return_val_if_reached (NULL); name = tmpname; } @@ -409,6 +410,8 @@ psppire_dict_insert_variable (PsppireDict *d, gint idx, const gchar *name) d->disable_insert_signal = FALSE; g_signal_emit (d, signals[VARIABLE_INSERTED], 0, idx); + + return var; } /* Delete N variables beginning at FIRST */