diff options
-rw-r--r-- | mail/ChangeLog | 9 | ||||
-rw-r--r-- | mail/mail-tools.c | 19 | ||||
-rw-r--r-- | mail/subscribe-dialog.c | 12 |
3 files changed, 34 insertions, 6 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 722aa5abba..5b020c59aa 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,5 +1,14 @@ 2000-10-02 Chris Toshok <toshok@helixcode.com> + * subscribe-dialog.c (subscribe_dialog_destroy): destroy our + tree_model and remove the root node. also, release_unref our + control and view, and unref the listener. + + * mail-tools.c (mail_tool_uri_to_folder): news url's contain host + names too, now. + +2000-10-02 Chris Toshok <toshok@helixcode.com> + * subscribe-dialog.c, subscribe-dialog.h: add a storage-set-view-listener, and add a little printf saying what storage was selected. diff --git a/mail/mail-tools.c b/mail/mail-tools.c index 6c28372541..0c89fb4cdd 100644 --- a/mail/mail-tools.c +++ b/mail/mail-tools.c @@ -459,9 +459,16 @@ mail_tool_get_root_of_store (const char *source_uri, CamelException *ex) CamelStore *store; CamelFolder *folder; + mail_tool_camel_lock_up(); + + if (!strncmp (source_uri, "news://", 7)) + store = (CamelStore*)camel_session_get_service (session, source_uri, + CAMEL_PROVIDER_STORE, ex); + else + store = camel_session_get_store (session, source_uri, ex); + mail_tool_camel_lock_up (); - store = camel_session_get_store (session, source_uri, ex); if (!store) { mail_tool_camel_lock_down (); return NULL; @@ -530,10 +537,14 @@ mail_tool_uri_to_folder (const char *uri, CamelException *ex) mail_tool_camel_lock_up(); store = camel_session_get_store (session, uri, ex); if (store) { - const char *folder_path; + const char *folder_path, *ptr; - folder_path = uri + 5; - folder = camel_store_get_folder (store, folder_path, FALSE, ex); + for (ptr = (char *)(uri + 7); *ptr && *ptr != '/'; ptr++); + if (*ptr == '/') { + ptr++; + folder_path = ptr; + folder = camel_store_get_folder (store, folder_path, FALSE, ex); + } } mail_tool_camel_lock_down(); diff --git a/mail/subscribe-dialog.c b/mail/subscribe-dialog.c index 496a9f4c1d..ef1daa72f6 100644 --- a/mail/subscribe-dialog.c +++ b/mail/subscribe-dialog.c @@ -581,9 +581,17 @@ subscribe_dialog_gui_init (SubscribeDialog *sc) static void subscribe_dialog_destroy (GtkObject *object) { - SubscribeDialog *subscribe_dialog; + SubscribeDialog *sc; + + sc = SUBSCRIBE_DIALOG (object); + + gtk_object_unref (GTK_OBJECT (sc->listener)); + + bonobo_object_release_unref (sc->storage_set_control, NULL); + bonobo_object_release_unref (sc->storage_set_view, NULL); - subscribe_dialog = SUBSCRIBE_DIALOG (object); + e_tree_model_node_remove (sc->model, sc->root); + gtk_object_unref (GTK_OBJECT (sc->model)); subscribe_dialog_parent_class->destroy (object); } |