diff options
Diffstat (limited to 'ui/gtk')
-rw-r--r-- | ui/gtk/main_menubar.c | 16 | ||||
-rw-r--r-- | ui/gtk/prefs_dlg.c | 21 |
2 files changed, 4 insertions, 33 deletions
diff --git a/ui/gtk/main_menubar.c b/ui/gtk/main_menubar.c index d8bccc9aff..f2b87383c2 100644 --- a/ui/gtk/main_menubar.c +++ b/ui/gtk/main_menubar.c @@ -4784,7 +4784,6 @@ menu_prefs_change_ok (GtkWidget *w, gpointer parent_w) module_t *module = (module_t *)g_object_get_data (G_OBJECT(w), "module"); pref_t *pref = (pref_t *)g_object_get_data (G_OBJECT(w), "pref"); const gchar *new_value = gtk_entry_get_text(GTK_ENTRY(entry)); - range_t *newrange; gchar *p; guint uval; @@ -4803,26 +4802,15 @@ menu_prefs_change_ok (GtkWidget *w, gpointer parent_w) } break; case PREF_STRING: - if (strcmp (*pref->varp.string, new_value) != 0) { - module->prefs_changed = TRUE; - g_free((void*)*pref->varp.string); - *pref->varp.string = g_strdup(new_value); - } + prefs_set_string_like_value(pref, new_value, &module->prefs_changed); break; case PREF_RANGE: - if (range_convert_str(&newrange, new_value, pref->info.max_value) != CVT_NO_ERROR) { + if (!prefs_set_range_value(pref, new_value, &module->prefs_changed)) { simple_dialog(ESD_TYPE_ERROR, ESD_BTN_OK, "The value \"%s\" isn't a valid range.", new_value); return; } - if (!ranges_are_equal(*pref->varp.range, newrange)) { - module->prefs_changed = TRUE; - g_free(*pref->varp.range); - *pref->varp.range = newrange; - } else { - g_free (newrange); - } break; default: g_assert_not_reached(); diff --git a/ui/gtk/prefs_dlg.c b/ui/gtk/prefs_dlg.c index 42f9fcae2f..ba5b94c7b0 100644 --- a/ui/gtk/prefs_dlg.c +++ b/ui/gtk/prefs_dlg.c @@ -1085,36 +1085,19 @@ pref_fetch(pref_t *pref, gpointer user_data) case PREF_FILENAME: case PREF_DIRNAME: str_val = gtk_entry_get_text(GTK_ENTRY(pref->control)); - if (strcmp(*pref->varp.string, str_val) != 0) { - *pref_changed_p = TRUE; - g_free((void *)*pref->varp.string); - *pref->varp.string = g_strdup(str_val); - } + prefs_set_string_like_value(pref, str_val, pref_changed_p); break; case PREF_RANGE: - { - range_t *newrange; - convert_ret_t ret; - str_val = gtk_entry_get_text(GTK_ENTRY(pref->control)); - ret = range_convert_str(&newrange, str_val, pref->info.max_value); - if (ret != CVT_NO_ERROR) + if (!prefs_set_range_value(pref, str_val, pref_changed_p)) #if 0 return PREFS_SET_SYNTAX_ERR; /* range was bad */ #else return 0; /* XXX - should fail */ #endif - if (!ranges_are_equal(*pref->varp.range, newrange)) { - *pref_changed_p = TRUE; - g_free(*pref->varp.range); - *pref->varp.range = newrange; - } else - g_free(newrange); - break; - } case PREF_STATIC_TEXT: case PREF_UAT: |