aboutsummaryrefslogtreecommitdiffstats
path: root/filter/rule-context.c
diff options
context:
space:
mode:
author8 <NotZed@Ximian.com>2001-10-28 17:39:04 +0800
committerMichael Zucci <zucchi@src.gnome.org>2001-10-28 17:39:04 +0800
commit15ada734a7008b42c2ca2c21aece9336c2b9e075 (patch)
tree49036be5a3eac64ecac70f22d35ab38493bd00eb /filter/rule-context.c
parentc0cf9754b8c5ec7e13f6ee035040d792bc254ee2 (diff)
downloadgsoc2013-evolution-15ada734a7008b42c2ca2c21aece9336c2b9e075.tar
gsoc2013-evolution-15ada734a7008b42c2ca2c21aece9336c2b9e075.tar.gz
gsoc2013-evolution-15ada734a7008b42c2ca2c21aece9336c2b9e075.tar.bz2
gsoc2013-evolution-15ada734a7008b42c2ca2c21aece9336c2b9e075.tar.lz
gsoc2013-evolution-15ada734a7008b42c2ca2c21aece9336c2b9e075.tar.xz
gsoc2013-evolution-15ada734a7008b42c2ca2c21aece9336c2b9e075.tar.zst
gsoc2013-evolution-15ada734a7008b42c2ca2c21aece9336c2b9e075.zip
Implement, change any folder uri's that have been renamed, to the new one.
2001-10-28 <NotZed@Ximian.com> * filter-context.c (filter_rename_uri): Implement, change any folder uri's that have been renamed, to the new one. (filter_delete_uri): Dont actually do any work (yet). We could probably put rename_uri on every rule context/filter part/filter element, and let their methods handle it, but for now its easy enough just to handle the few cases that we have to handle manually. * rule-context.c (rule_context_delete_uri): Update a filter context for a deleted uri, e.g. folder removed. (rule_context_rename_uri): Update a filter context for a renamed uri, e.g. * filter-folder.c (filter_folder_set_value): New function to set the uri of a folder filter. * rule-editor.c (rule_move): Add undo for move. (rule_editor_add_undo): Add extra rank item. (rule_editor_play_undo): handle rank case. (rule_editor_finalise): Clean up any hanging over undo log. (editor_clicked): Only enable 'undo' if we have EVOLUTION_RULE_UNDO enabled. Code still a bit flakey. (rule_editor_construct): Only enable a cancel button if EVOLUTION_RULE_UNDO is set. (rule_editor_add_undo): Only add if undo enabled. * filter-rule.c (filter_rule_set_name): Emit a changed event if it changes. (filter_rule_set_source): Same. svn path=/trunk/; revision=14289
Diffstat (limited to 'filter/rule-context.c')
-rw-r--r--filter/rule-context.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/filter/rule-context.c b/filter/rule-context.c
index ce83abc662..d11e4ec722 100644
--- a/filter/rule-context.c
+++ b/filter/rule-context.c
@@ -38,6 +38,8 @@
static int load(RuleContext * f, const char *system, const char *user);
static int save(RuleContext * f, const char *user);
+static int rename_uri(RuleContext *f, const char *olduri, const char *newuri, GCompareFunc cmp);
+static int delete_uri(RuleContext *f, const char *uri, GCompareFunc cmp);
static void rule_context_class_init(RuleContextClass * class);
static void rule_context_init(RuleContext * gspaper);
@@ -95,7 +97,9 @@ rule_context_class_init (RuleContextClass * class)
/* override methods */
class->load = load;
class->save = save;
-
+ class->rename_uri = rename_uri;
+ class->delete_uri = delete_uri;
+
/* signals */
signals[RULE_ADDED] =
gtk_signal_new("rule_added",
@@ -647,3 +651,29 @@ rule_context_find_rank_rule (RuleContext *f, int rank, const char *source)
return NULL;
}
+
+static int
+delete_uri(RuleContext *f, const char *uri, GCompareFunc cmp)
+{
+ return 0;
+}
+
+int
+rule_context_delete_uri(RuleContext *f, const char *uri, GCompareFunc cmp)
+{
+ return ((RuleContextClass *) ((GtkObject *) f)->klass)->delete_uri(f, uri, cmp);
+}
+
+static int
+rename_uri(RuleContext *f, const char *olduri, const char *newuri, GCompareFunc cmp)
+{
+ return 0;
+}
+
+int
+rule_context_rename_uri(RuleContext *f, const char *olduri, const char *newuri, GCompareFunc cmp)
+{
+ return ((RuleContextClass *) ((GtkObject *) f)->klass)->rename_uri (f, olduri, newuri, cmp);
+}
+
+