diff options
author | Jonathon Jongsma <jonathon@quotidian.org> | 2009-11-25 06:34:24 +0800 |
---|---|---|
committer | Jonathon Jongsma <jonathon@quotidian.org> | 2009-12-01 03:31:19 +0800 |
commit | 193625ae674a7dfd8a80c0ffeab390e6fcb65856 (patch) | |
tree | 625e56c715b4c8115cda20bbfdb7dfdcb18ffcd7 /filter/e-filter-rule.c | |
parent | ae8f6d681c0512089f9259de0fd1b270396991d5 (diff) | |
download | gsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.tar gsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.tar.gz gsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.tar.bz2 gsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.tar.lz gsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.tar.xz gsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.tar.zst gsoc2013-evolution-193625ae674a7dfd8a80c0ffeab390e6fcb65856.zip |
port filter/ classes over to new EError API
https://bugzilla.gnome.org/show_bug.cgi?id=602963
Diffstat (limited to 'filter/e-filter-rule.c')
-rw-r--r-- | filter/e-filter-rule.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/filter/e-filter-rule.c b/filter/e-filter-rule.c index f60230dc31..fb496a5b87 100644 --- a/filter/e-filter-rule.c +++ b/filter/e-filter-rule.c @@ -239,11 +239,14 @@ more_parts (GtkWidget *button, if (data->rule->parts) { EFilterPart *part; GList *l; + EError *error = NULL; l = g_list_last (data->rule->parts); part = l->data; - if (!e_filter_part_validate (part, GTK_WINDOW (gtk_widget_get_toplevel (button)))) + if (!e_filter_part_validate (part, &error)) { + e_error_run_dialog (GTK_WINDOW (gtk_widget_get_toplevel (button)), error); return; + } } /* create a new rule entry, use the first type of rule */ @@ -353,13 +356,15 @@ filter_rule_finalize (GObject *object) static gint filter_rule_validate (EFilterRule *rule, - GtkWindow *error_parent) + EError **error) { gint valid = TRUE; GList *parts; + g_warn_if_fail (error == NULL || *error == NULL); if (!rule->name || !*rule->name) { - e_error_run (error_parent, "filter:no-name", NULL); + if (error) + *error = e_error_new ("filter:no-name", NULL); return FALSE; } @@ -368,7 +373,7 @@ filter_rule_validate (EFilterRule *rule, parts = rule->parts; valid = parts != NULL; while (parts && valid) { - valid = e_filter_part_validate ((EFilterPart *) parts->data, error_parent); + valid = e_filter_part_validate ((EFilterPart *) parts->data, error); parts = parts->next; } @@ -907,7 +912,7 @@ e_filter_rule_set_source (EFilterRule *rule, gint e_filter_rule_validate (EFilterRule *rule, - GtkWindow *error_parent) + EError **error) { EFilterRuleClass *class; @@ -916,7 +921,7 @@ e_filter_rule_validate (EFilterRule *rule, class = E_FILTER_RULE_GET_CLASS (rule); g_return_val_if_fail (class->validate != NULL, FALSE); - return class->validate (rule, error_parent); + return class->validate (rule, error); } gint |