diff options
author | Not Zed <NotZed@Ximian.com> | 2004-06-17 15:34:50 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2004-06-17 15:34:50 +0800 |
commit | a218c7d2f7e86bccc7665a3c96569eb14d1c75da (patch) | |
tree | 1195c4ed2291f51c36d15125d32be3cc53b9822b /mail/em-vfolder-editor.c | |
parent | 5d5f3b88c3ad76e0b81763f9c48b7fee84df2292 (diff) | |
download | gsoc2013-evolution-a218c7d2f7e86bccc7665a3c96569eb14d1c75da.tar.gz gsoc2013-evolution-a218c7d2f7e86bccc7665a3c96569eb14d1c75da.tar.zst gsoc2013-evolution-a218c7d2f7e86bccc7665a3c96569eb14d1c75da.zip |
** See #59885.
2004-06-17 Not Zed <NotZed@Ximian.com>
** See #59885.
** Moved all of the mail specific filtering stuff from filter/* to
here. Renamed appropriately into em* space, etc.
* em-filter-folder-element.c (emff_copy_value): implement for folders.
* em-vfolder-rule.c (get_widget): read the vfolder glade from
mail-config.glade.
* mail-config.glade: moved the vfolder source selector here.
* em-search-context.c: new mail search specific rule context.
* mail-component.c (setup_search_context): use the new
em_search_context.
* vfolder-rule.c (validate): change error to mail context.
* filter-folder.c (validate): change error to mail context.
* Makefile.am (em-filter-i18n.h): added rule for i18n of mail
filter type stuff.
(libevolution_mail_la_SOURCES): added in the filter and vfolder
rule stuff specific to mail.
** See #59885.
* em-format-html-quote.[ch]: remove and remove from build, not
used.
* Makefile.am (libevolution_mail_la_LIBADD): add libeabutil and
evolutionsmime.
* mail-component-factory.c (factory): there is no mail_config
anymore.
svn path=/trunk/; revision=26380
Diffstat (limited to 'mail/em-vfolder-editor.c')
-rw-r--r-- | mail/em-vfolder-editor.c | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/mail/em-vfolder-editor.c b/mail/em-vfolder-editor.c new file mode 100644 index 0000000000..3974790223 --- /dev/null +++ b/mail/em-vfolder-editor.c @@ -0,0 +1,123 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Copyright (C) 2001-2002 Ximian Inc. + * + * Authors: Not Zed <notzed@lostzed.mmc.com.au> + * Jeffrey Stedfast <fejj@ximian.com> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public + * License as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <gtk/gtk.h> +#include <libgnome/gnome-i18n.h> + +#include "em-vfolder-editor.h" +#include "em-vfolder-rule.h" + +#define d(x) + +static FilterRule *create_rule (RuleEditor *re); + +static RuleEditorClass *parent_class = NULL; + + +static void +em_vfolder_editor_finalise (GObject *obj) +{ + G_OBJECT_CLASS (parent_class)->finalize (obj); +} + +static void +em_vfolder_editor_class_init (EMVFolderEditorClass *klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + RuleEditorClass *re_class = (RuleEditorClass *) klass; + + parent_class = g_type_class_ref (rule_editor_get_type ()); + + gobject_class->finalize = em_vfolder_editor_finalise; + + /* override methods */ + re_class->create_rule = create_rule; +} + +static void +em_vfolder_editor_init (EMVFolderEditor *ve) +{ + ; +} + +GtkType +em_vfolder_editor_get_type (void) +{ + static GtkType type = 0; + + if (!type) { + static const GTypeInfo info = { + sizeof (EMVFolderEditorClass), + NULL, /* base_class_init */ + NULL, /* base_class_finalize */ + (GClassInitFunc) em_vfolder_editor_class_init, + NULL, /* class_finalize */ + NULL, /* class_data */ + sizeof (EMVFolderEditor), + 0, /* n_preallocs */ + (GInstanceInitFunc) em_vfolder_editor_init, + }; + + type = g_type_register_static (RULE_TYPE_EDITOR, "EMVFolderEditor", &info, 0); + } + + return type; +} + +/** + * em_vfolder_editor_new: + * + * Create a new EMVFolderEditor object. + * + * Return value: A new #EMVFolderEditor object. + **/ +EMVFolderEditor * +em_vfolder_editor_new (EMVFolderContext *vc) +{ + EMVFolderEditor *ve = (EMVFolderEditor *) g_object_new (em_vfolder_editor_get_type(), NULL); + GladeXML *gui; + + gui = glade_xml_new (EVOLUTION_GLADEDIR "/filter.glade", "rule_editor", NULL); + rule_editor_construct ((RuleEditor *) ve, (RuleContext *) vc, gui, NULL, _("Virtual _Folders")); + gtk_widget_hide(glade_xml_get_widget (gui, "filter_source")); + g_object_unref (gui); + + return ve; +} + +static FilterRule * +create_rule (RuleEditor *re) +{ + FilterRule *rule = filter_rule_new (); + FilterPart *part; + + /* create a rule with 1 part in it */ + rule = (FilterRule *) em_vfolder_rule_new (); + part = rule_context_next_part (re->context, NULL); + filter_rule_add_part (rule, filter_part_clone (part)); + + return rule; +} |