diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2009-08-25 20:24:39 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2009-08-25 20:24:39 +0800 |
commit | 0362cc8c008abdc905497a2bf4fdb661bceface3 (patch) | |
tree | 1fe4bfcb4bae914c68014d20aa51181753918a31 /mail/em-filter-editor.c | |
parent | d8ddaf9a85dd4c5e484d8351a3dde0353f31f492 (diff) | |
download | gsoc2013-evolution-0362cc8c008abdc905497a2bf4fdb661bceface3.tar gsoc2013-evolution-0362cc8c008abdc905497a2bf4fdb661bceface3.tar.gz gsoc2013-evolution-0362cc8c008abdc905497a2bf4fdb661bceface3.tar.bz2 gsoc2013-evolution-0362cc8c008abdc905497a2bf4fdb661bceface3.tar.lz gsoc2013-evolution-0362cc8c008abdc905497a2bf4fdb661bceface3.tar.xz gsoc2013-evolution-0362cc8c008abdc905497a2bf4fdb661bceface3.tar.zst gsoc2013-evolution-0362cc8c008abdc905497a2bf4fdb661bceface3.zip |
Bug 488409 - Remember size of filter/vfolder editor windows
Diffstat (limited to 'mail/em-filter-editor.c')
-rw-r--r-- | mail/em-filter-editor.c | 126 |
1 files changed, 63 insertions, 63 deletions
diff --git a/mail/em-filter-editor.c b/mail/em-filter-editor.c index 8d720742c6..b782ca8cbf 100644 --- a/mail/em-filter-editor.c +++ b/mail/em-filter-editor.c @@ -29,68 +29,79 @@ #include <glib/gi18n.h> #include "e-util/e-util-private.h" +#include "e-util/gconf-bridge.h" #include "em-filter-editor.h" #include "em-filter-rule.h" -#define d(x) +static gpointer parent_class; -static FilterRule *create_rule (RuleEditor *re); - -static void em_filter_editor_class_init (EMFilterEditorClass *klass); -static void em_filter_editor_init (EMFilterEditor *fe); -static void em_filter_editor_finalise (GObject *obj); - -static RuleEditorClass *parent_class = NULL; - -GType -em_filter_editor_get_type (void) +static FilterRule * +filter_editor_create_rule (RuleEditor *rule_editor) { - static GType type = 0; - - if (!type) { - static const GTypeInfo info = { - sizeof (EMFilterEditorClass), - NULL, /* base_class_init */ - NULL, /* base_class_finalize */ - (GClassInitFunc) em_filter_editor_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (EMFilterEditor), - 0, /* n_preallocs */ - (GInstanceInitFunc) em_filter_editor_init, - }; + FilterRule *rule = filter_rule_new (); + FilterPart *part; - type = g_type_register_static (RULE_TYPE_EDITOR, "EMFilterEditor", &info, 0); - } + /* create a rule with 1 part & 1 action in it */ + rule = (FilterRule *)em_filter_rule_new (); + part = rule_context_next_part (rule_editor->context, NULL); + filter_rule_add_part (rule, filter_part_clone (part)); + part = em_filter_context_next_action ( + (EMFilterContext *)rule_editor->context, NULL); + em_filter_rule_add_action ( + (EMFilterRule *)rule, filter_part_clone (part)); - return type; + return rule; } static void -em_filter_editor_class_init (EMFilterEditorClass *klass) +filter_editor_class_init (EMFilterEditorClass *class) { - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - RuleEditorClass *re_class = (RuleEditorClass *) klass; - - parent_class = g_type_class_ref (rule_editor_get_type ()); + RuleEditorClass *rule_editor_class; - gobject_class->finalize = em_filter_editor_finalise; + parent_class = g_type_class_peek_parent (class); - /* override methods */ - re_class->create_rule = create_rule; + rule_editor_class = RULE_EDITOR_CLASS (class); + rule_editor_class->create_rule = filter_editor_create_rule; } static void -em_filter_editor_init (EMFilterEditor *fe) +filter_editor_init (EMFilterEditor *filter_editor) { - ; + GConfBridge *bridge; + const gchar *key_prefix; + + bridge = gconf_bridge_get (); + key_prefix = "/apps/evolution/mail/filter_editor"; + + gconf_bridge_bind_window_size ( + bridge, key_prefix, GTK_WINDOW (filter_editor)); } -static void -em_filter_editor_finalise (GObject *obj) +GType +em_filter_editor_get_type (void) { - G_OBJECT_CLASS (parent_class)->finalize (obj); + static GType type = 0; + + if (G_UNLIKELY (type == 0)) { + static const GTypeInfo type_info = { + sizeof (EMFilterEditorClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) filter_editor_class_init, + (GClassFinalizeFunc) NULL, + NULL, /* class_data */ + sizeof (EMFilterEditor), + 0, /* n_preallocs */ + (GInstanceInitFunc) filter_editor_init, + NULL /* value_table */ + }; + + type = g_type_register_static ( + RULE_TYPE_EDITOR, "EMFilterEditor", &type_info, 0); + } + + return type; } /** @@ -101,15 +112,17 @@ em_filter_editor_finalise (GObject *obj) * Return value: A new #EMFilterEditor object. **/ EMFilterEditor * -em_filter_editor_new (EMFilterContext *fc, const EMFilterSource *source_names) +em_filter_editor_new (EMFilterContext *fc, + const EMFilterSource *source_names) { - EMFilterEditor *fe = (EMFilterEditor *) g_object_new (em_filter_editor_get_type(), NULL); + EMFilterEditor *fe; GladeXML *gui; gchar *gladefile; - gladefile = g_build_filename (EVOLUTION_GLADEDIR, - "filter.glade", - NULL); + fe = g_object_new (EM_TYPE_FILTER_EDITOR, NULL); + + gladefile = g_build_filename ( + EVOLUTION_GLADEDIR, "filter.glade", NULL); gui = glade_xml_new (gladefile, "rule_editor", NULL); g_free (gladefile); @@ -149,7 +162,10 @@ select_source (GtkComboBox *combobox, EMFilterEditor *fe) } void -em_filter_editor_construct (EMFilterEditor *fe, EMFilterContext *fc, GladeXML *gui, const EMFilterSource *source_names) +em_filter_editor_construct (EMFilterEditor *fe, + EMFilterContext *fc, + GladeXML *gui, + const EMFilterSource *source_names) { GtkWidget *combobox; gint i; @@ -175,19 +191,3 @@ em_filter_editor_construct (EMFilterEditor *fe, EMFilterContext *fc, GladeXML *g column = gtk_tree_view_get_column (GTK_TREE_VIEW (RULE_EDITOR (fe)->list), 0); gtk_tree_view_column_set_visible (column, TRUE); } - -static FilterRule * -create_rule (RuleEditor *re) -{ - FilterRule *rule = filter_rule_new (); - FilterPart *part; - - /* create a rule with 1 part & 1 action in it */ - rule = (FilterRule *)em_filter_rule_new (); - part = rule_context_next_part (re->context, NULL); - filter_rule_add_part (rule, filter_part_clone (part)); - part = em_filter_context_next_action ((EMFilterContext *)re->context, NULL); - em_filter_rule_add_action ((EMFilterRule *)rule, filter_part_clone (part)); - - return rule; -} |