diff options
Diffstat (limited to 'calendar')
-rw-r--r-- | calendar/ChangeLog | 2 | ||||
-rw-r--r-- | calendar/gui/dialogs/calendar-setup.c | 232 |
2 files changed, 27 insertions, 207 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 6cc60405f9..24f645466e 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,6 +1,8 @@ 2004-05-25 Larry Ewing <lewing@ximian.com> * gui/dialogs/calendar-setup.c: remove now unused functions. + (source_group_can_add): fix can add logic, remove more unused + functions. * gui/dialogs/calendar-setup.c (calendar_setup_edit_task_list): use the new dialog. diff --git a/calendar/gui/dialogs/calendar-setup.c b/calendar/gui/dialogs/calendar-setup.c index 5a64306134..15599aab09 100644 --- a/calendar/gui/dialogs/calendar-setup.c +++ b/calendar/gui/dialogs/calendar-setup.c @@ -205,23 +205,20 @@ static gboolean source_group_can_add (ESourceGroup *source_group) { gboolean can_add; - EUri *uri; - + if (!source_group) return FALSE; - + can_add = !e_source_group_get_readonly (source_group); - + if (can_add) { - uri = e_uri_new (e_source_group_peek_base_uri (source_group)); + char *uri = e_source_group_peek_base_uri (source_group); - if (uri && uri->protocol && uri->protocol [0] && strcmp (uri->protocol, "groupwise")) + if (g_str_has_prefix (uri, "groupwise://") || g_str_has_prefix (uri, "exchange://")) can_add = FALSE; - - if (uri) - e_uri_free (uri); + } - + return can_add; } @@ -241,7 +238,7 @@ source_group_menu_add_groups (GtkMenuShell *menu_shell, ESourceList *source_list menu_item = gtk_menu_item_new_with_label (e_source_group_peek_name (group)); gtk_widget_show (menu_item); - if (source_group_can_add (group)) + if (!source_group_can_add (group)) gtk_widget_set_sensitive(menu_item, FALSE); else if (i == -1) index = i; @@ -328,21 +325,6 @@ source_dialog_destroy (SourceDialog *source_dialog) } static gboolean -general_page_verify (SourceDialog *source_dialog) -{ - const gchar *name; - - if (!source_dialog->source_group && !source_dialog->source) - return FALSE; - - name = gtk_entry_get_text (GTK_ENTRY (source_dialog->name_entry)); - if (!name || !name [0]) - return FALSE; - - return TRUE; -} - -static gboolean remote_page_verify (SourceDialog *source_dialog) { const gchar *uri; @@ -596,26 +578,6 @@ dialog_to_source (SourceDialog *source_dialog) colorpicker_get_color (GNOME_COLOR_PICKER (source_dialog->source_color))); } -static gboolean -source_dialog_is_valid (SourceDialog *source_dialog) -{ - if (!general_page_verify (source_dialog)) - return FALSE; - - if (((source_dialog->source && source_is_remote (source_dialog->source)) || - (source_dialog->source_group && source_group_is_remote (source_dialog->source_group))) && - !remote_page_verify (source_dialog)) - return FALSE; - - return TRUE; -} - -static void -editor_set_buttons_sensitive (SourceDialog *source_dialog, gboolean sensitive) -{ - gtk_widget_set_sensitive (glade_xml_get_widget (source_dialog->gui_xml, "ok-button"), sensitive); -} - static void source_group_changed_sensitive (SourceDialog *source_dialog) { @@ -656,86 +618,6 @@ new_calendar_add (SourceDialog *source_dialog) gtk_widget_destroy (source_dialog->window); } -gboolean -calendar_setup_new_calendar (GtkWindow *parent) -{ - SourceDialog *source_dialog = g_new0 (SourceDialog, 1); - int index; - GList *icon_list; - - source_dialog->gui_xml = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, "add-calendar-window", NULL); - if (!source_dialog->gui_xml) { - g_warning (G_STRLOC ": Cannot load Glade file."); - g_free (source_dialog); - return FALSE; - } - - source_dialog->window = glade_xml_get_widget (source_dialog->gui_xml, "add-calendar-window"); - g_signal_connect (source_dialog->window, "key-press-event", G_CALLBACK (key_press_event), NULL); - - source_dialog->name_entry = glade_xml_get_widget (source_dialog->gui_xml, "name-entry"); - g_signal_connect_swapped (source_dialog->name_entry, "changed", - G_CALLBACK (general_entry_modified), source_dialog); - source_dialog->source_list = e_source_list_new_for_gconf_default ("/apps/evolution/calendar/sources"); - - source_dialog->group_optionmenu = - glade_xml_get_widget (source_dialog->gui_xml, "group-optionmenu"); - if (!GTK_IS_MENU (gtk_option_menu_get_menu (GTK_OPTION_MENU (source_dialog->group_optionmenu)))) { - GtkWidget *menu = gtk_menu_new (); - gtk_option_menu_set_menu (GTK_OPTION_MENU (source_dialog->group_optionmenu), menu); - gtk_widget_show (menu); - } - - /* NOTE: This assumes that we have sources. If they don't exist, they're set up - * on startup of the calendar component. */ - index = source_group_menu_add_groups (GTK_MENU_SHELL (gtk_option_menu_get_menu ( - GTK_OPTION_MENU (source_dialog->group_optionmenu))), source_dialog->source_list); - gtk_option_menu_set_history (GTK_OPTION_MENU (source_dialog->group_optionmenu), index); - if (e_source_list_peek_groups (source_dialog->source_list)) - source_dialog->source_group = e_source_list_peek_groups (source_dialog->source_list)->data; - g_signal_connect_swapped (source_dialog->group_optionmenu, "changed", - G_CALLBACK (source_group_changed_sensitive), source_dialog); - source_dialog->uri_entry = glade_xml_get_widget (source_dialog->gui_xml, "uri-entry"); - source_dialog->uri_label = glade_xml_get_widget (source_dialog->gui_xml, "uri-label"); - source_dialog->uri_hbox = glade_xml_get_widget (source_dialog->gui_xml, "uri-hbox"); - - g_signal_connect_swapped (source_dialog->uri_entry, "changed", - G_CALLBACK (general_entry_modified), source_dialog); - - source_dialog->refresh_spin = glade_xml_get_widget (source_dialog->gui_xml, "refresh-spin"); - source_dialog->refresh_optionmenu = glade_xml_get_widget (source_dialog->gui_xml, "refresh-optionmenu"); - source_dialog->refresh_label = glade_xml_get_widget (source_dialog->gui_xml, "refresh-label"); - source_dialog->refresh_hbox = glade_xml_get_widget (source_dialog->gui_xml, "refresh-hbox"); - - g_signal_connect_swapped (glade_xml_get_widget (source_dialog->gui_xml, "cancel-button"), "clicked", - G_CALLBACK (new_calendar_cancel), source_dialog); - - source_dialog->add_button = glade_xml_get_widget (source_dialog->gui_xml, "add-button"); - gtk_widget_set_sensitive (source_dialog->add_button, FALSE); - g_signal_connect_swapped (source_dialog->add_button, "clicked", - G_CALLBACK (new_calendar_add), source_dialog); - - source_dialog->source_color = glade_xml_get_widget (source_dialog->gui_xml, "source-color"); - - g_object_weak_ref (G_OBJECT (source_dialog->window), - (GWeakNotify) source_dialog_destroy, source_dialog); - - source_to_dialog (source_dialog); - - gtk_window_set_type_hint (GTK_WINDOW (source_dialog->window), GDK_WINDOW_TYPE_HINT_DIALOG); - gtk_window_set_modal (GTK_WINDOW (source_dialog->window), TRUE); - - icon_list = e_icon_factory_get_icon_list ("stock_calendar"); - if (icon_list) { - gtk_window_set_icon_list (GTK_WINDOW (source_dialog->window), icon_list); - g_list_foreach (icon_list, (GFunc) g_object_unref, NULL); - g_list_free (icon_list); - } - - gtk_widget_show_all (source_dialog->window); - return TRUE; -} - static void edit_calendar_finish (SourceDialog *source_dialog) { @@ -758,8 +640,10 @@ calendar_setup_edit_calendar (GtkWindow *parent, ESource *source) } source_dialog->window = glade_xml_get_widget (source_dialog->gui_xml, "add-calendar-window"); - source_dialog->source = source; - g_object_ref (source); + if (source) { + source_dialog->source = source; + g_object_ref (source); + } g_signal_connect (source_dialog->window, "key-press-event", G_CALLBACK (key_press_event), NULL); @@ -856,84 +740,9 @@ new_task_list_add (SourceDialog *source_dialog) } gboolean -calendar_setup_new_task_list (GtkWindow *parent) +calendar_setup_new_calendar (GtkWindow *parent) { - SourceDialog *source_dialog = g_new0 (SourceDialog, 1); - int index; - GList *icon_list; - - source_dialog->gui_xml = glade_xml_new (EVOLUTION_GLADEDIR "/" GLADE_FILE_NAME, "add-task-list-window", NULL); - if (!source_dialog->gui_xml) { - g_warning (G_STRLOC ": Cannot load Glade file."); - g_free (source_dialog); - return FALSE; - } - - source_dialog->window = glade_xml_get_widget (source_dialog->gui_xml, "add-task-list-window"); - g_signal_connect (source_dialog->window, "key-press-event", G_CALLBACK (key_press_event), NULL); - - source_dialog->name_entry = glade_xml_get_widget (source_dialog->gui_xml, "name-entry"); - g_signal_connect_swapped (source_dialog->name_entry, "changed", - G_CALLBACK (general_entry_modified), source_dialog); - source_dialog->source_list = e_source_list_new_for_gconf_default ("/apps/evolution/tasks/sources"); - - source_dialog->group_optionmenu = - glade_xml_get_widget (source_dialog->gui_xml, "group-optionmenu"); - if (!GTK_IS_MENU (gtk_option_menu_get_menu (GTK_OPTION_MENU (source_dialog->group_optionmenu)))) { - GtkWidget *menu = gtk_menu_new (); - gtk_option_menu_set_menu (GTK_OPTION_MENU (source_dialog->group_optionmenu), menu); - gtk_widget_show (menu); - } - - /* NOTE: This assumes that we have sources. If they don't exist, they're set up - * on startup of the calendar component. */ - index = source_group_menu_add_groups (GTK_MENU_SHELL (gtk_option_menu_get_menu ( - GTK_OPTION_MENU (source_dialog->group_optionmenu))), source_dialog->source_list); - gtk_option_menu_set_history (GTK_OPTION_MENU (source_dialog->group_optionmenu), index); - if (e_source_list_peek_groups (source_dialog->source_list)) - source_dialog->source_group = e_source_list_peek_groups (source_dialog->source_list)->data; - g_signal_connect_swapped (source_dialog->group_optionmenu, "changed", - G_CALLBACK (source_group_changed_sensitive), source_dialog); - - source_dialog->uri_entry = glade_xml_get_widget (source_dialog->gui_xml, "uri-entry"); - source_dialog->uri_label = glade_xml_get_widget (source_dialog->gui_xml, "uri-label"); - source_dialog->uri_hbox = glade_xml_get_widget (source_dialog->gui_xml, "uri-hbox"); - - g_signal_connect_swapped (source_dialog->uri_entry, "changed", - G_CALLBACK (general_entry_modified), source_dialog); - - source_dialog->refresh_spin = glade_xml_get_widget (source_dialog->gui_xml, "refresh-spin"); - source_dialog->refresh_optionmenu = glade_xml_get_widget (source_dialog->gui_xml, "refresh-optionmenu"); - source_dialog->refresh_label = glade_xml_get_widget (source_dialog->gui_xml, "refresh-label"); - source_dialog->refresh_hbox = glade_xml_get_widget (source_dialog->gui_xml, "refresh-hbox"); - - g_signal_connect_swapped (glade_xml_get_widget (source_dialog->gui_xml, "cancel-button"), "clicked", - G_CALLBACK (new_task_list_cancel), source_dialog); - - source_dialog->add_button = glade_xml_get_widget (source_dialog->gui_xml, "add-button"); - gtk_widget_set_sensitive (source_dialog->add_button, FALSE); - - g_signal_connect_swapped (source_dialog->add_button, "clicked", - G_CALLBACK (new_task_list_add), source_dialog); - g_object_weak_ref (G_OBJECT (source_dialog->window), - (GWeakNotify) source_dialog_destroy, source_dialog); - - source_dialog->source_color = glade_xml_get_widget (source_dialog->gui_xml, "source-color"); - - source_to_dialog (source_dialog); - - gtk_window_set_type_hint (GTK_WINDOW (source_dialog->window), GDK_WINDOW_TYPE_HINT_DIALOG); - gtk_window_set_modal (GTK_WINDOW (source_dialog->window), TRUE); - - icon_list = e_icon_factory_get_icon_list ("stock_task"); - if (icon_list) { - gtk_window_set_icon_list (GTK_WINDOW (source_dialog->window), icon_list); - g_list_foreach (icon_list, (GFunc) g_object_unref, NULL); - g_list_free (icon_list); - } - - gtk_widget_show_all (source_dialog->window); - return TRUE; + return calendar_setup_edit_calendar (parent, NULL); } static void @@ -958,8 +767,10 @@ calendar_setup_edit_task_list (GtkWindow *parent, ESource *source) } source_dialog->window = glade_xml_get_widget (source_dialog->gui_xml, "add-task-list-window"); - source_dialog->source = source; - g_object_ref (source); + if (source) { + source_dialog->source = source; + g_object_ref (source); + } g_signal_connect (source_dialog->window, "key-press-event", G_CALLBACK (key_press_event), NULL); @@ -1036,3 +847,10 @@ calendar_setup_edit_task_list (GtkWindow *parent, ESource *source) gtk_widget_show_all (source_dialog->window); return TRUE; } + +gboolean +calendar_setup_new_task_list (GtkWindow *parent) +{ + return calendar_setup_edit_task_list (parent, NULL); +} + |