From a218c7d2f7e86bccc7665a3c96569eb14d1c75da Mon Sep 17 00:00:00 2001 From: Not Zed Date: Thu, 17 Jun 2004 07:34:50 +0000 Subject: ** See #59885. 2004-06-17 Not Zed ** 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 --- mail/em-vfolder-editor.c | 123 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 mail/em-vfolder-editor.c (limited to 'mail/em-vfolder-editor.c') 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 + * Jeffrey Stedfast + * + * 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 +#endif + +#include +#include + +#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; +} -- cgit v1.2.3