aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-vfolder-editor.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-08-25 20:24:39 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-08-25 20:24:39 +0800
commit0362cc8c008abdc905497a2bf4fdb661bceface3 (patch)
tree1fe4bfcb4bae914c68014d20aa51181753918a31 /mail/em-vfolder-editor.c
parentd8ddaf9a85dd4c5e484d8351a3dde0353f31f492 (diff)
downloadgsoc2013-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-vfolder-editor.c')
-rw-r--r--mail/em-vfolder-editor.c88
1 files changed, 43 insertions, 45 deletions
diff --git a/mail/em-vfolder-editor.c b/mail/em-vfolder-editor.c
index 84acd5f293..058ad0a957 100644
--- a/mail/em-vfolder-editor.c
+++ b/mail/em-vfolder-editor.c
@@ -31,40 +31,49 @@
#include <glib/gi18n.h>
#include "e-util/e-util-private.h"
+#include "e-util/gconf-bridge.h"
#include "em-vfolder-editor.h"
#include "em-vfolder-rule.h"
-#define d(x)
+static gpointer parent_class;
-static FilterRule *create_rule (RuleEditor *re);
+static FilterRule *
+vfolder_editor_create_rule (RuleEditor *rule_editor)
+{
+ FilterRule *rule = filter_rule_new ();
+ FilterPart *part;
-static RuleEditorClass *parent_class = NULL;
+ /* create a rule with 1 part in it */
+ rule = (FilterRule *) em_vfolder_rule_new ();
+ part = rule_context_next_part (rule_editor->context, NULL);
+ filter_rule_add_part (rule, filter_part_clone (part));
-static void
-em_vfolder_editor_finalise (GObject *obj)
-{
- G_OBJECT_CLASS (parent_class)->finalize (obj);
+ return rule;
}
static void
-em_vfolder_editor_class_init (EMVFolderEditorClass *klass)
+vfolder_editor_class_init (EMVFolderEditorClass *class)
{
- GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- RuleEditorClass *re_class = (RuleEditorClass *) klass;
+ RuleEditorClass *rule_editor_class;
- parent_class = g_type_class_ref (rule_editor_get_type ());
+ parent_class = g_type_class_peek_parent (class);
- gobject_class->finalize = em_vfolder_editor_finalise;
-
- /* override methods */
- re_class->create_rule = create_rule;
+ rule_editor_class = RULE_EDITOR_CLASS (class);
+ rule_editor_class->create_rule = vfolder_editor_create_rule;
}
static void
-em_vfolder_editor_init (EMVFolderEditor *ve)
+vfolder_editor_init (EMVFolderEditor *vfolder_editor)
{
- ;
+ GConfBridge *bridge;
+ const gchar *key_prefix;
+
+ bridge = gconf_bridge_get ();
+ key_prefix = "/apps/evolution/mail/vfolder_editor";
+
+ gconf_bridge_bind_window_size (
+ bridge, key_prefix, GTK_WINDOW (vfolder_editor));
}
GType
@@ -72,20 +81,22 @@ em_vfolder_editor_get_type (void)
{
static GType type = 0;
- if (!type) {
- static const GTypeInfo info = {
+ if (G_UNLIKELY (type == 0)) {
+ static const GTypeInfo type_info = {
sizeof (EMVFolderEditorClass),
- NULL, /* base_class_init */
- NULL, /* base_class_finalize */
- (GClassInitFunc) em_vfolder_editor_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) vfolder_editor_class_init,
+ (GClassFinalizeFunc) NULL,
+ NULL, /* class_data */
sizeof (EMVFolderEditor),
- 0, /* n_preallocs */
- (GInstanceInitFunc) em_vfolder_editor_init,
+ 0, /* n_preallocs */
+ (GInstanceInitFunc) vfolder_editor_init,
+ NULL /* value_table */
};
- type = g_type_register_static (RULE_TYPE_EDITOR, "EMVFolderEditor", &info, 0);
+ type = g_type_register_static (
+ RULE_TYPE_EDITOR, "EMVFolderEditor", &type_info, 0);
}
return type;
@@ -101,13 +112,14 @@ em_vfolder_editor_get_type (void)
GtkWidget *
em_vfolder_editor_new (EMVFolderContext *vc)
{
- EMVFolderEditor *ve = (EMVFolderEditor *) g_object_new (em_vfolder_editor_get_type(), NULL);
+ EMVFolderEditor *ve;
GladeXML *gui;
gchar *gladefile;
- gladefile = g_build_filename (EVOLUTION_GLADEDIR,
- "filter.glade",
- NULL);
+ ve = g_object_new (EM_TYPE_VFOLDER_EDITOR, NULL);
+
+ gladefile = g_build_filename (
+ EVOLUTION_GLADEDIR, "filter.glade", NULL);
gui = glade_xml_new (gladefile, "rule_editor", NULL);
g_free (gladefile);
@@ -118,17 +130,3 @@ em_vfolder_editor_new (EMVFolderContext *vc)
return GTK_WIDGET (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;
-}