+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
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
/* 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;
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;
}
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;
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;
}
{
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);
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);
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();
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();
- gtk_widget_hide(matcher.window);
- inc_unlock();
+
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);
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();