diff options
-rw-r--r-- | mail/ChangeLog | 9 | ||||
-rw-r--r-- | mail/session.c | 24 | ||||
-rw-r--r-- | mail/subscribe-dialog.c | 34 |
3 files changed, 46 insertions, 21 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index e84f8975d2..ff11955455 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,12 @@ +2001-01-26 Jeffrey Stedfast <fejj@ximian.com> + + * subscribe-dialog.c (populate_store_foreach): Check for a NULL + service->url as we obviously can't subscribe to folders on a + non-existant mail source :-) + (subscribe_do_get_store): Check for a NULL url here too, not that + we should need it anymore (due to the above fix) but it doesn't + hurt. Also, should we wait on the thread? Probably doesn't matter. + 2001-01-26 Iain Holmes <iain@ximian.com> * evolution-outlook-importer.c (load_file_fn): Replace fsetpos with diff --git a/mail/session.c b/mail/session.c index a4a2122ddc..8e8ff6e4bf 100644 --- a/mail/session.c +++ b/mail/session.c @@ -1,11 +1,26 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* mail-session.c: handles the session information and resource manipulation */ /* - * mail-session.c: handles the session information and resource manipulation + * Authors: Miguel de Icaza <miguel@gnu.org> * - * Author: - * Miguel de Icaza (miguel@gnu.org) + * Copyright 2001 Ximian, Inc. (www.ximian.com) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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 Street #330, Boston, MA 02111-1307, USA. * - * (C) 2000 Helix Code, Inc. http://www.helixcode.com */ + #include <config.h> #include <gnome.h> #include "mail.h" @@ -34,7 +49,6 @@ mail_session_request_dialog (const char *prompt, gboolean secret, const char *ke gboolean async) { GtkWidget *dialog; - char *ans; if (!passwords) diff --git a/mail/subscribe-dialog.c b/mail/subscribe-dialog.c index 4026754a6e..5c8ee04180 100644 --- a/mail/subscribe-dialog.c +++ b/mail/subscribe-dialog.c @@ -224,7 +224,9 @@ static void subscribe_do_get_store (SubscribeDialog *sc, const char *url, SubscribeGetStoreCallback cb, gpointer cb_data) { get_store_input_t *input; - + + g_return_if_fail (url != NULL); + input = g_new (get_store_input_t, 1); input->sc = sc; input->url = g_strdup (url); @@ -232,6 +234,7 @@ subscribe_do_get_store (SubscribeDialog *sc, const char *url, SubscribeGetStoreC input->cb_data = cb_data; mail_operation_queue (&op_get_store, input, TRUE); + mail_operation_wait_for_finish (); } /* ** SUBSCRIBE FOLDER ******************************************************* */ @@ -870,8 +873,7 @@ store_cb (SubscribeDialog *sc, CamelStore *store, gpointer data) if (camel_store_supports_subscriptions (store)) { sc->store_list = g_list_prepend (sc->store_list, store); e_table_model_row_inserted (sc->store_model, 0); - } - else { + } else { camel_object_unref (CAMEL_OBJECT (store)); } } @@ -879,6 +881,8 @@ store_cb (SubscribeDialog *sc, CamelStore *store, gpointer data) static void populate_store_foreach (MailConfigService *service, SubscribeDialog *sc) { + g_return_if_fail (service->url != NULL); + subscribe_do_get_store (sc, service->url, store_cb, NULL); } @@ -894,7 +898,7 @@ populate_store_list (SubscribeDialog *sc) news = mail_config_get_news (); g_slist_foreach ((GSList *)news, (GFunc)populate_store_foreach, sc); - + e_table_model_changed (sc->store_model); } @@ -945,21 +949,20 @@ subscribe_dialog_gui_init (SubscribeDialog *sc) gtk_widget_show_all (folder_search_widget); search_control = bonobo_control_new (folder_search_widget); - bonobo_ui_component_object_set ( - component, "/Toolbar/FolderSearch", - bonobo_object_corba_objref (BONOBO_OBJECT (search_control)), NULL); + bonobo_ui_component_object_set (component, "/Toolbar/FolderSearch", + bonobo_object_corba_objref (BONOBO_OBJECT (search_control)), + NULL); /* set our our contents */ #if 0 sc->description = html_new (TRUE); put_html (GTK_HTML (sc->description), EXAMPLE_DESCR); - gtk_table_attach ( - GTK_TABLE (sc->table), sc->description->parent->parent, - 0, 1, 0, 1, - GTK_FILL | GTK_EXPAND, - 0, - 0, 0); + gtk_table_attach (GTK_TABLE (sc->table), sc->description->parent->parent, + 0, 1, 0, 1, + GTK_FILL | GTK_EXPAND, + 0, + 0, 0); #endif /* set up the store etable */ @@ -1055,9 +1058,8 @@ subscribe_dialog_gui_init (SubscribeDialog *sc) gtk_widget_show (sc->hpaned); /* FIXME: Session management and stuff? */ - gtk_window_set_default_size ( - GTK_WINDOW (sc->app), - DEFAULT_WIDTH, DEFAULT_HEIGHT); + gtk_window_set_default_size (GTK_WINDOW (sc->app), + DEFAULT_WIDTH, DEFAULT_HEIGHT); populate_store_list (sc); } |