2008-05-12 [wwp] 3.4.0cvs30
[claws.git] / src / prefs_matcher.c
index 10d499c02ef29db3af173484b87988d47e91e5a0..378ffe9e0be3c4be76aec1528a8176002500a466 100644 (file)
@@ -52,7 +52,7 @@
 #include "colorlabel.h"
 
 static void prefs_matcher_addressbook_select(void);
-static void prefs_matcher_test_info(void);
+static void prefs_matcher_test_info(GtkWidget *widget, GtkWidget *parent);
 
 enum {
        PREFS_MATCHER_COND,
@@ -337,14 +337,14 @@ static void prefs_matcher_models_create(void)
        matcher.model_contain = GTK_TREE_MODEL(store);
        
        store = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN);
-       COMBOBOX_ADD(store, "Subject", CRITERIA_HEADER);
-       COMBOBOX_ADD(store, "From", CRITERIA_HEADER);
-       COMBOBOX_ADD(store, "To", CRITERIA_HEADER);
-       COMBOBOX_ADD(store, "Cc", CRITERIA_HEADER);
-       COMBOBOX_ADD(store, "To or Cc", CRITERIA_HEADER);
-       COMBOBOX_ADD(store, "In-Reply-To", CRITERIA_HEADER);
-       COMBOBOX_ADD(store, "Newsgroups", CRITERIA_HEADER);
-       COMBOBOX_ADD(store, "References", CRITERIA_HEADER);
+       COMBOBOX_ADD(store, "Subject", CRITERIA_SUBJECT);
+       COMBOBOX_ADD(store, "From", CRITERIA_FROM);
+       COMBOBOX_ADD(store, "To", CRITERIA_TO);
+       COMBOBOX_ADD(store, "Cc", CRITERIA_CC);
+       COMBOBOX_ADD(store, "To or Cc", CRITERIA_TO_OR_CC);
+       COMBOBOX_ADD(store, "In-Reply-To", CRITERIA_INREPLYTO);
+       COMBOBOX_ADD(store, "Newsgroups", CRITERIA_NEWSGROUPS);
+       COMBOBOX_ADD(store, "References", CRITERIA_REFERENCES);
        COMBOBOX_ADD(store, "Sender", CRITERIA_HEADER);
        COMBOBOX_ADD(store, "X-ML-Name", CRITERIA_HEADER);
        COMBOBOX_ADD(store, "X-List", CRITERIA_HEADER);
@@ -355,9 +355,9 @@ static void prefs_matcher_models_create(void)
        matcher.model_headers = GTK_TREE_MODEL(store);
        
        store = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN);
-       COMBOBOX_ADD(store, "headers part", CRITERIA_HEADERS_PART);
-       COMBOBOX_ADD(store, "body part", CRITERIA_BODY_PART);
-       COMBOBOX_ADD(store, "whole message", CRITERIA_MESSAGE);
+       COMBOBOX_ADD(store, _("headers part"), CRITERIA_HEADERS_PART);
+       COMBOBOX_ADD(store, _("body part"), CRITERIA_BODY_PART);
+       COMBOBOX_ADD(store, _("whole message"), CRITERIA_MESSAGE);
        matcher.model_phrase = GTK_TREE_MODEL(store);
        
        store = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN);
@@ -695,7 +695,7 @@ static void prefs_matcher_create(void)
        gtk_box_pack_start(GTK_BOX(lower_hbox), test_btn, FALSE, FALSE, 0);
        g_signal_connect(G_OBJECT (test_btn), "clicked",
                         G_CALLBACK(prefs_matcher_test_info),
-                        NULL);
+                        window);
 
        /* register / substitute / delete */
        reg_hbox = gtk_hbox_new(FALSE, HSPACING_NARROW);
@@ -1321,7 +1321,7 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
        gint value, sel;
 
        if (value_criteria == -1)
-               return -1;
+               return NULL;
 
        criteria = prefs_matcher_get_matching_from_criteria(value_criteria);
 
@@ -1454,27 +1454,27 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
                if (*expr == '\0') {
                        gchar *tmp;
 
-                       if (strcasecmp(header, Q_("Filtering Matcher Menu|All")) == 0)
+                       if (g_utf8_collate(header, Q_("Filtering Matcher Menu|All")) == 0)
                                tmp = g_strdup(_("all addresses in all headers"));
                        else
-                       if (strcasecmp(header, _("Any")) == 0)
+                       if (g_utf8_collate(header, _("Any")) == 0)
                                tmp = g_strdup(_("any address in any header"));
                        else
                                tmp = g_strdup_printf(_("the address(es) in header '%s'"), header);
                        alertpanel_error(_("Book/folder path is not set.\n\n"
                                                "If you want to match %s against the whole address book, "
-                                               "you have to select 'Any' from the book/folder drop-down list."),
-                                               tmp);
+                                               "you have to select '%s' from the book/folder drop-down list."),
+                                               tmp, _("Any"));
                        g_free(tmp);
                    return NULL;
                }
-               /* don't store translated "Any"/"All" in matcher expressions */
-               if (strcasecmp(header, Q_("Filtering Matcher Menu|All")) == 0)
+               /* store UNtranslated "Any"/"All" in matcher expressions */
+               if (g_utf8_collate(header, Q_("Filtering Matcher Menu|All")) == 0)
                        header = "All";
                else
-                       if (strcasecmp(header, _("Any")) == 0)
+                       if (g_utf8_collate(header, _("Any")) == 0)
                                header = "Any";
-               if (strcasecmp(expr, _("Any")) == 0)
+               if (g_utf8_collate(expr, _("Any")) == 0)
                        expr = "Any";
                break;
        }
@@ -1951,11 +1951,11 @@ static void prefs_matcher_ok(void)
                }
                 g_free(str);
                gtk_widget_hide(matcher.window);
-               inc_unlock();
                if (matchers_callback != NULL)
                        matchers_callback(matchers);
                matcherlist_free(matchers);
        }
+       inc_unlock();
 }
 
 /*!
@@ -2013,20 +2013,23 @@ static DescriptionWindow test_desc_win = {
 /*!
  *\brief       Show Test action's info
  */
-static void prefs_matcher_test_info(void)
+static void prefs_matcher_test_info(GtkWidget *widget, GtkWidget *parent)
 {
+       test_desc_win.parent = parent;
        description_window_create(&test_desc_win);
 }
 
 static void prefs_matcher_addressbook_select(void)
 {
-       gchar *folderpath = NULL;
-       gboolean ret = FALSE;
-
-       folderpath = (gchar *) gtk_entry_get_text(GTK_ENTRY(GTK_BIN(matcher.addressbook_folder_combo)->child));
-       ret = addressbook_folder_selection(&folderpath);
-       if ( ret != FALSE && folderpath != NULL)
-               gtk_entry_set_text(GTK_ENTRY(GTK_BIN(matcher.addressbook_folder_combo)->child), folderpath);
+       const gchar *folderpath = NULL;
+       gchar *new_path = NULL;
+
+       folderpath = gtk_entry_get_text(GTK_ENTRY(GTK_BIN(matcher.addressbook_folder_combo)->child));
+       new_path = addressbook_folder_selection(folderpath);
+       if (new_path) {
+               gtk_entry_set_text(GTK_ENTRY(GTK_BIN(matcher.addressbook_folder_combo)->child), new_path);
+               g_free(new_path);
+       } 
 }