diff options
author | Dan Winship <danw@src.gnome.org> | 2000-02-25 00:43:09 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2000-02-25 00:43:09 +0800 |
commit | 4ec5c4b998528e2854aa52cbaf107e5b6f22ee6e (patch) | |
tree | ecbe56a984d8c4e96ebf41b80742ac0b5ad0bb45 /camel/camel-folder.c | |
parent | 55e6218d5907cc9f27ad81a15d750e7c3d2d5d75 (diff) | |
download | gsoc2013-evolution-4ec5c4b998528e2854aa52cbaf107e5b6f22ee6e.tar.gz gsoc2013-evolution-4ec5c4b998528e2854aa52cbaf107e5b6f22ee6e.tar.zst gsoc2013-evolution-4ec5c4b998528e2854aa52cbaf107e5b6f22ee6e.zip |
Move "separator" from camel-store to camel-folder, since it can vary from
location to location in an IMAP store. Rename CamelFolder::init_with_store
to init and add parent_folder, name, and separator arguments.
svn path=/trunk/; revision=1919
Diffstat (limited to 'camel/camel-folder.c')
-rw-r--r-- | camel/camel-folder.c | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/camel/camel-folder.c b/camel/camel-folder.c index b516216381..4b90328919 100644 --- a/camel/camel-folder.c +++ b/camel/camel-folder.c @@ -38,9 +38,9 @@ static GtkObjectClass *parent_class=NULL; -static void _init_with_store (CamelFolder *folder, - CamelStore *parent_store, - CamelException *ex); +static void _init (CamelFolder *folder, CamelStore *parent_store, + CamelFolder *parent_folder, const gchar *name, + gchar separator, CamelException *ex); static void _finalize (GtkObject *object); @@ -141,7 +141,7 @@ camel_folder_class_init (CamelFolderClass *camel_folder_class) parent_class = gtk_type_class (gtk_object_get_type ()); /* virtual method definition */ - camel_folder_class->init_with_store = _init_with_store; + camel_folder_class->init = _init; camel_folder_class->open = _open; #ifdef FOLDER_ASYNC_TEST camel_folder_class->open_async = _open_async; @@ -224,6 +224,8 @@ _finalize (GtkObject *object) if (camel_folder->parent_store) gtk_object_unref (GTK_OBJECT (camel_folder->parent_store)); + if (camel_folder->parent_folder) + gtk_object_unref (GTK_OBJECT (camel_folder->parent_folder)); GTK_OBJECT_CLASS (parent_class)->finalize (object); CAMEL_LOG_FULL_DEBUG ("Leaving CamelFolder::finalize\n"); @@ -231,16 +233,21 @@ _finalize (GtkObject *object) /** - * _init_with_store: init the folder by setting its parent store. + * _init: init the folder * @folder: folder object to initialize * @parent_store: parent store object of the folder + * @parent_folder: parent folder of the folder (may be NULL) + * @name: (short) name of the folder + * @separator: separator between the parent folder name and this name * - * + * Initalizes the folder by setting the parent store, parent folder, + * and name. **/ static void -_init_with_store (CamelFolder *folder, CamelStore *parent_store, CamelException *ex) +_init (CamelFolder *folder, CamelStore *parent_store, + CamelFolder *parent_folder, const gchar *name, + gchar separator, CamelException *ex) { - g_assert (folder != NULL); g_assert (parent_store != NULL); g_assert (folder->parent_store == NULL); @@ -248,10 +255,14 @@ _init_with_store (CamelFolder *folder, CamelStore *parent_store, CamelException folder->parent_store = parent_store; gtk_object_ref (GTK_OBJECT (parent_store)); + folder->parent_folder = parent_folder; + if (parent_folder) + gtk_object_ref (GTK_OBJECT (parent_folder)); + folder->open_mode = FOLDER_OPEN_UNKNOWN; folder->open_state = FOLDER_CLOSE; - folder->name = NULL; - folder->full_name = NULL; + folder->separator = separator; + camel_folder_set_name (folder, name, ex); } @@ -415,7 +426,6 @@ _set_name (CamelFolder *folder, const gchar *name, CamelException *ex) { - gchar separator; gchar *full_name; const gchar *parent_full_name; @@ -435,18 +445,15 @@ _set_name (CamelFolder *folder, CAMEL_LOG_FULL_DEBUG ("CamelFolder::set_name, folder name is %s\n", name); - separator = camel_store_get_separator (folder->parent_store, ex); - if (camel_exception_get_id (ex)) return; - if (folder->parent_folder) { parent_full_name = camel_folder_get_full_name (folder->parent_folder, ex); if (camel_exception_get_id (ex)) return; full_name = g_strdup_printf ("%s%c%s", parent_full_name, - separator, name); + folder->separator, name); } else { - full_name = g_strdup_printf ("%c%s", separator, name); + full_name = g_strdup_printf ("%c%s", folder->separator, name); } CAMEL_LOG_FULL_DEBUG ("CamelFolder::set_name, folder full name " |