[Goodies-commits] r5197 - in xfce4-dict/trunk: . lib
Enrico Troeger
enrico at xfce.org
Tue Aug 5 10:31:39 CEST 2008
Author: enrico
Date: 2008-08-05 08:31:38 +0000 (Tue, 05 Aug 2008)
New Revision: 5197
Modified:
xfce4-dict/trunk/ChangeLog
xfce4-dict/trunk/lib/prefs.c
Log:
* Don't allow setting an empty search URL in the preferences dialog.
Modified: xfce4-dict/trunk/ChangeLog
===================================================================
--- xfce4-dict/trunk/ChangeLog 2008-08-05 08:31:17 UTC (rev 5196)
+++ xfce4-dict/trunk/ChangeLog 2008-08-05 08:31:38 UTC (rev 5197)
@@ -5,6 +5,7 @@
* Make dict_open_browser() static for common.c as it is not used
anywhere else.
* Add 'xdg-open' as possible browser command to open URLs.
+ * Don't allow setting an empty search URL in the preferences dialog.
2008-07-16 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: xfce4-dict/trunk/lib/prefs.c
===================================================================
--- xfce4-dict/trunk/lib/prefs.c 2008-08-05 08:31:17 UTC (rev 5196)
+++ xfce4-dict/trunk/lib/prefs.c 2008-08-05 08:31:38 UTC (rev 5197)
@@ -41,6 +41,13 @@
gchar *url;
} web_dict_t;
+enum
+{
+ NOTEBOOK_PAGE_GENERAL = 0,
+ NOTEBOOK_PAGE_DICTD,
+ NOTEBOOK_PAGE_WEB,
+ NOTEBOOK_PAGE_ASPELL
+};
static void show_panel_entry_toggled(GtkToggleButton *tb, DictData *dd)
{
@@ -98,18 +105,34 @@
void dict_prefs_dialog_response(GtkWidget *dlg, gint response, DictData *dd)
{
- gchar *tmp;
+ gchar *dictionary, *search_url;
- /* MODE DICT */
- tmp = gtk_combo_box_get_active_text(
+ /* check some values before actually saving the settings in case we need to return to
+ * the dialog */
+ dictionary = gtk_combo_box_get_active_text(
GTK_COMBO_BOX(g_object_get_data(G_OBJECT(dlg), "dict_combo")));
- if (tmp == NULL || tmp[0] == '0' || tmp[0] == '-')
+ if (! NZV(dictionary) || dictionary[0] == '-')
{
- xfce_err(_("You have chosen an invalid dictionary entry."));
- g_free(tmp);
+ xfce_err(_("You have chosen an invalid dictionary."));
+ g_free(dictionary);
+ gtk_notebook_set_current_page(
+ GTK_NOTEBOOK(g_object_get_data(G_OBJECT(dlg), "notebook")), NOTEBOOK_PAGE_DICTD);
+ gtk_widget_grab_focus(GTK_WIDGET(g_object_get_data(G_OBJECT(dlg), "dict_combo")));
return;
}
+ search_url = g_strdup(gtk_entry_get_text(
+ GTK_ENTRY(g_object_get_data(G_OBJECT(dlg), "web_entry"))));
+ if (! NZV(search_url) || search_url[0] == '-')
+ {
+ xfce_err(_("You must set a valid search URL."));
+ g_free(search_url);
+ gtk_notebook_set_current_page(
+ GTK_NOTEBOOK(g_object_get_data(G_OBJECT(dlg), "notebook")), NOTEBOOK_PAGE_WEB);
+ gtk_widget_grab_focus(GTK_WIDGET(g_object_get_data(G_OBJECT(dlg), "web_entry")));
+ return;
+ }
+ /* MODE DICT */
dd->port = gtk_spin_button_get_value_as_int(
GTK_SPIN_BUTTON(g_object_get_data(G_OBJECT(dlg), "port_spinner")));
@@ -118,20 +141,19 @@
GTK_ENTRY(g_object_get_data(G_OBJECT(dlg), "server_entry"))));
g_free(dd->dictionary);
- dd->dictionary = tmp;
+ dd->dictionary = dictionary;
/* MODE WEB */
g_free(dd->web_url);
- dd->web_url = g_strdup(gtk_entry_get_text(
- GTK_ENTRY(g_object_get_data(G_OBJECT(dlg), "web_entry"))));
+ dd->web_url = search_url;
/* MODE SPELL */
- tmp = gtk_combo_box_get_active_text(
+ dictionary = gtk_combo_box_get_active_text(
GTK_COMBO_BOX(g_object_get_data(G_OBJECT(dlg), "spell_combo")));
- if (NZV(tmp))
+ if (NZV(dictionary))
{
g_free(dd->spell_dictionary);
- dd->spell_dictionary = tmp;
+ dd->spell_dictionary = dictionary;
}
g_free(dd->spell_bin);
@@ -222,6 +244,7 @@
notebook = gtk_notebook_new();
gtk_widget_show(notebook);
+ g_object_set_data(G_OBJECT(dialog), "notebook", notebook);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), notebook, FALSE, TRUE, 0);
gtk_container_set_border_width(GTK_CONTAINER(notebook), 5);
@@ -238,7 +261,8 @@
inner_vbox = gtk_vbox_new(FALSE, 5);
gtk_container_set_border_width(GTK_CONTAINER(inner_vbox), 5);
gtk_widget_show(inner_vbox);
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), notebook_vbox, gtk_label_new(_("General")));
+ gtk_notebook_insert_page(GTK_NOTEBOOK(notebook),
+ notebook_vbox, gtk_label_new(_("General")), NOTEBOOK_PAGE_GENERAL);
label = gtk_label_new(_("<b>Default search method:</b>"));
gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
@@ -341,7 +365,8 @@
inner_vbox = gtk_vbox_new(FALSE, 5);
gtk_container_set_border_width(GTK_CONTAINER(inner_vbox), 5);
gtk_widget_show(inner_vbox);
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), notebook_vbox, gtk_label_new(_("Dict")));
+ gtk_notebook_insert_page(GTK_NOTEBOOK(notebook),
+ notebook_vbox, gtk_label_new(_("Dict")), NOTEBOOK_PAGE_DICTD);
/* server address */
label1 = gtk_label_new_with_mnemonic(_("Server:"));
@@ -449,7 +474,8 @@
inner_vbox = gtk_vbox_new(FALSE, 5);
gtk_container_set_border_width(GTK_CONTAINER(inner_vbox), 5);
gtk_widget_show(inner_vbox);
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), notebook_vbox, gtk_label_new(_("Web")));
+ gtk_notebook_insert_page(GTK_NOTEBOOK(notebook),
+ notebook_vbox, gtk_label_new(_("Web")), NOTEBOOK_PAGE_WEB);
label = gtk_label_new(_("<b>Web search URL:</b>"));
gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
@@ -496,7 +522,8 @@
inner_vbox = gtk_vbox_new(FALSE, 5);
gtk_container_set_border_width(GTK_CONTAINER(inner_vbox), 5);
gtk_widget_show(inner_vbox);
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), notebook_vbox, gtk_label_new(_("Aspell")));
+ gtk_notebook_insert_page(GTK_NOTEBOOK(notebook),
+ notebook_vbox, gtk_label_new(_("Aspell")), NOTEBOOK_PAGE_ASPELL);
label1 = gtk_label_new_with_mnemonic(_("Aspell program:"));
gtk_widget_show(label1);
More information about the Goodies-commits
mailing list