added dialog for incomplete rules in scoring, filtering and matcher to ask
authorJens Oberender <j.obi@troja.net>
Wed, 11 Dec 2002 01:00:58 +0000 (01:00 +0000)
committerJens Oberender <j.obi@troja.net>
Wed, 11 Dec 2002 01:00:58 +0000 (01:00 +0000)
wheather really close

ChangeLog.claws
configure.in
src/prefs_filtering.c
src/prefs_matcher.c
src/prefs_scoring.c

index 64b4184df74a0169fa04efd2bec2ff953e286eb3..396455ad69dca673ec2eee6be71e910cdc9cdc16 100644 (file)
@@ -1,3 +1,10 @@
+2002-12-11 [jens]       0.8.6claws98
+       * src/prefs_filtering.c
+       * src/prefs_matcher.c
+       * src/prefs_scoring.c
+               added dialog for incomplete rules in scoring, filtering and
+               matcher to ask wheather really close
+
 2002-12-11 [colin]     0.8.6claws97
 
        * src/folder.c
 2002-12-11 [colin]     0.8.6claws97
 
        * src/folder.c
index 31153c1df095adc18e992cb46fb6b7423787da6b..a5a089ef3d536db1790614e41dd01cd1621a48b5 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=8
 MICRO_VERSION=6
 INTERFACE_AGE=0
 BINARY_AGE=0
 MICRO_VERSION=6
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws97
+EXTRA_VERSION=claws98
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index 549737a4bf9d5451bff92feb78b63d78dda62661..f68bfa74912f8d195f676336cd648e2ac0f934f7 100644 (file)
@@ -947,7 +947,7 @@ static void prefs_filtering_condition_define(void)
 /* register / substitute delete buttons */
 
 
 /* register / substitute delete buttons */
 
 
-static FilteringProp * prefs_filtering_dialog_to_filtering(void)
+static FilteringProp * prefs_filtering_dialog_to_filtering(gboolean alert)
 {
        MatcherList * cond;
        gchar * cond_str;
 {
        MatcherList * cond;
        gchar * cond_str;
@@ -962,7 +962,7 @@ static FilteringProp * prefs_filtering_dialog_to_filtering(void)
        
        cond_str = gtk_entry_get_text(GTK_ENTRY(filtering.cond_entry));
        if (*cond_str == '\0') {
        
        cond_str = gtk_entry_get_text(GTK_ENTRY(filtering.cond_entry));
        if (*cond_str == '\0') {
-               alertpanel_error(_("Condition string is empty."));
+               if(alert == TRUE) alertpanel_error(_("Condition string is empty."));
                return NULL;
        }
 
                return NULL;
        }
 
@@ -980,7 +980,7 @@ static FilteringProp * prefs_filtering_dialog_to_filtering(void)
        case ACTION_EXECUTE:
                destination = gtk_entry_get_text(GTK_ENTRY(filtering.dest_entry));
                if (*destination == '\0') {
        case ACTION_EXECUTE:
                destination = gtk_entry_get_text(GTK_ENTRY(filtering.dest_entry));
                if (*destination == '\0') {
-                       alertpanel_error(_("Destination is not set."));
+                       if(alert == TRUE) alertpanel_error(_("Destination is not set."));
                        return NULL;
                }
                break;
                        return NULL;
                }
                break;
@@ -1002,7 +1002,7 @@ static FilteringProp * prefs_filtering_dialog_to_filtering(void)
        cond = matcher_parser_get_cond(cond_str);
 
        if (cond == NULL) {
        cond = matcher_parser_get_cond(cond_str);
 
        if (cond == NULL) {
-               alertpanel_error(_("Condition string is not valid."));
+               if(alert == TRUE) alertpanel_error(_("Condition string is not valid."));
                filteringaction_free(action);
                return NULL;
        }
                filteringaction_free(action);
                return NULL;
        }
@@ -1016,7 +1016,7 @@ static void prefs_filtering_register_cb(void)
 {
        FilteringProp * prop;
        
 {
        FilteringProp * prop;
        
-       prop = prefs_filtering_dialog_to_filtering();
+       prop = prefs_filtering_dialog_to_filtering(TRUE);
        if (prop == NULL)
                return;
        prefs_filtering_clist_set_row(-1, prop);
        if (prop == NULL)
                return;
        prefs_filtering_clist_set_row(-1, prop);
@@ -1037,7 +1037,7 @@ static void prefs_filtering_substitute_cb(void)
        row = GPOINTER_TO_INT(clist->selection->data);
        if (row == 0) return;
 
        row = GPOINTER_TO_INT(clist->selection->data);
        if (row == 0) return;
 
-       prop = prefs_filtering_dialog_to_filtering();
+       prop = prefs_filtering_dialog_to_filtering(TRUE);
        if (prop == NULL)
                return;
        prefs_filtering_clist_set_row(row, prop);
        if (prop == NULL)
                return;
        prefs_filtering_clist_set_row(row, prop);
@@ -1420,6 +1420,31 @@ static void prefs_filtering_key_pressed(GtkWidget *widget, GdkEventKey *event,
 
 static void prefs_filtering_ok(void)
 {
 
 static void prefs_filtering_ok(void)
 {
+       FilteringProp * prop;
+       gchar * str;
+       gchar * filtering_str;
+       gint row = 1;
+        AlertValue val;
+       
+       prop = prefs_filtering_dialog_to_filtering(FALSE);
+       if (prop != NULL) {
+               str = filteringprop_to_string(prop);
+               while (gtk_clist_get_text(GTK_CLIST(filtering.cond_clist),
+                                         row, 0, &filtering_str)) {
+                       if (strcmp(filtering_str, str) == 0) break;
+                       row++;
+               }
+               if (strcmp(filtering_str, str) != 0) {
+                        val = alertpanel(_("Entry not registered"),
+                                        _("The entry was not registered\nAre you really finish?"),
+                                        _("Yes"), _("No"), NULL);
+                        if (G_ALERTDEFAULT != val) {
+                               g_free(str);
+                               return;
+                        }
+               }
+               g_free(str);
+       }
        prefs_filtering_set_list();
        prefs_matcher_write_config();
        prefs_filtering_close();
        prefs_filtering_set_list();
        prefs_matcher_write_config();
        prefs_filtering_close();
index df0bfbf274c97110578310aadec42e364bdcc542..251f241b97140486b24057e53f6e0da4653d7631 100644 (file)
@@ -1384,11 +1384,40 @@ static void prefs_matcher_cancel(void)
 static void prefs_matcher_ok(void)
 {
        MatcherList * matchers;
 static void prefs_matcher_ok(void)
 {
        MatcherList * matchers;
+       MatcherProp * matcherprop;
+       AlertValue val;
+       gint criteria;
+       gint value_criteria;
+       gchar * matcher_str;
+       gchar * str;
+       gint row = 1;
 
        matchers = prefs_matcher_get_list();
 
        matchers = prefs_matcher_get_list();
-       gtk_widget_hide(matcher.window);
-       inc_unlock();
+
        if (matchers != NULL) {
        if (matchers != NULL) {
+               matcherprop = prefs_matcher_dialog_to_matcher();
+               if (matcherprop != NULL) {
+                       str = matcherprop_to_string(matcherprop);
+                       if(strcmp(str, "all") != 0) {
+                               while (gtk_clist_get_text(GTK_CLIST(matcher.cond_clist),
+                                                 row, 0, &matcher_str)) {
+                                       if (strcmp(matcher_str, str) == 0) break;
+                                       row++;
+                               }
+                               if (strcmp(matcher_str, str) != 0) {
+                                       val = alertpanel(_("Entry not registered"),
+                                                _("The entry was not registered\nAre you really finish?"),
+                                                _("Yes"), _("No"), NULL);
+                                       if (G_ALERTDEFAULT != val) {
+                                               g_free(str);
+                                               return;
+                                       }
+                               }
+                       }
+               }
+                g_free(str);
+               gtk_widget_hide(matcher.window);
+               inc_unlock();
                if (matchers_callback != NULL)
                        matchers_callback(matchers);
                matcherlist_free(matchers);
                if (matchers_callback != NULL)
                        matchers_callback(matchers);
                matcherlist_free(matchers);
index 5f389f97bd7069304b1244bac6e4ae7dd2ecba71..029902f70f8f632b68e94d8374d6984da9858882 100644 (file)
@@ -730,6 +730,50 @@ static void prefs_scoring_key_pressed(GtkWidget *widget, GdkEventKey *event,
 
 static void prefs_scoring_ok(void)
 {
 
 static void prefs_scoring_ok(void)
 {
+       MatcherList * cond;
+       gchar * cond_str;
+       gchar * score_str;
+       gchar * scoring_str;
+       gchar * str;
+       ScoringProp * prop;
+       gint score;
+       gint row = 1;
+        AlertValue val;
+
+       cond_str = gtk_entry_get_text(GTK_ENTRY(scoring.cond_entry));
+       score_str = gtk_entry_get_text(GTK_ENTRY(scoring.score_entry));
+       if (*cond_str != '\0' && *score_str != '\0') {
+               score = atoi(score_str);
+               cond = matcher_parser_get_cond(cond_str);
+
+               if (cond == NULL) {
+                       prefs_common_save_config();
+                       prefs_scoring_set_list();
+                       prefs_matcher_write_config();
+                       if (cur_item != NULL)
+                               prefs_folder_item_save_config(cur_item);
+                       gtk_widget_hide(scoring.window);
+                       inc_unlock();
+                       return;
+               }
+               prop = scoringprop_new(cond, score);
+               str = scoringprop_to_string(prop);
+               while (gtk_clist_get_text(GTK_CLIST(scoring.cond_clist),
+                                 row, 0, &scoring_str)) {
+                       if (strcmp(scoring_str, str) == 0) break;
+                       row++;
+               }
+                if (strcmp(scoring_str, str) != 0) {
+                        val = alertpanel(_("Entry not registered"),
+                                 _("The entry was not registered\nAre you really finish?"),
+                                 _("Yes"), _("No"), NULL);
+                        if (G_ALERTDEFAULT != val) {
+                                g_free(str);
+                                return;
+                        }
+                }
+               g_free(str);
+       }
        prefs_common_save_config();
        prefs_scoring_set_list();
        prefs_matcher_write_config();
        prefs_common_save_config();
        prefs_scoring_set_list();
        prefs_matcher_write_config();