Commit Graph

75 Commits

Author SHA1 Message Date
f58154d28e Fixes part of #41148, #41216 and #41235
2003-04-22  Rodrigo Moya <rodrigo@ximian.com>

	Fixes part of #41148, #41216 and #41235

	* gui/e-itip-control.c (init):
	* gui/e-meeting-time-sel.c (e_meeting_time_selector_construct,
	  e_meeting_time_selector_add_key_color):
	* gui/e-timezone-entry.c (e_timezone_entry_init):
	* gui/gnome-cal.c (setup_widgets):
	* gui/tasks-control.c (confirm_expunge):
	* gui/dialogs/comp-editor.c (setup_widgets):
	* gui/dialogs/e-delegate-dialog.c (e_delegate_dialog_construct):
	* gui/dialogs/meeting-page.c (meeting_page_construct):
	* gui/dialogs/recurrence-page.c (make_weekly_special,
	  make_monthly_special, make_ending_count_special):
	* gui/dialogs/schedule-page.c (schedule_page_construct):
	use HIG-suggested spacing.

svn path=/trunk/; revision=20927
2003-04-22 21:15:41 +00:00
1bd3678dbe [ fixes #21499 ]
2003-04-18  Rodney Dawes  <dobey@ximian.com>

	[ fixes #21499 ]
	* gui/component/Makefile.am:
	* gui/component/addressbook.c:
	* gui/component/select-names/e-select-names-bonobo.c:
	* gui/contact-editor/Makefile.am:
	* gui/contact-editor/e-contact-editor.c:
	* gui/contact-list-editor/Makefile.am:
	* gui/contact-list-editor/e-contact-list-editor.c:
	Use PREFIX instead of EVOLUTION_DATADIR for bonobo_ui_util_set_ui ()

	* gui/Makefile.am:
	* gui/calendar-commands.c:
	* gui/tasks-control.c:
	* gui/dialogs/Makefile.am:
	* gui/dialogs/comp-editor.c:
	Use PREFIX instead of EVOLUTION_DATADIR for bonobo_ui_util_set_ui ()

	* Makefile.am:
	* e-msg-composer.c:
	Use PREFIX instead of EVOLUTION_DATADIR for bonobo_ui_util_set_ui ().
	Fixes bug #21499.

	* Makefile.am:
	* folder-browser-ui.c:
	* mail-signature-editor.c:
	* message-browser.c:
	Use PREFIX instead of EVOLUTION_DATADIR for bonobo_ui_util_set_ui ().
	Fixes bug #21499.

	* Makefile.am:
	* e-summary-factory.c:
	Use PREFIX instead of EVOLUTION_DATADIR for bonobo_ui_util_set_ui ()

	* e-shell-view.c: Use PREFIX instead of EVOLUTION_DATADIR for
	bonobo_ui_util_set_ui () [#21499]

svn path=/trunk/; revision=20888
2003-04-18 17:46:26 +00:00
d8cac9eeaf Update for e_notice move
* gui/itip-utils.c: Update for e_notice move

	* gui/tasks-control.c (confirm_expunge): Move the code that used
	to be e_gnome_dialog_set_parent here, since it was marked
	deprecated and this was the only place using it.

	* gui/dialogs/comp-editor.c: Update for e_notice move
	(page_changed_cb, page_summary_changed_cb, page_dates_changed_cb):
	Pass a parent_window to e_notice.

	* gui/dialogs/meeting-page.c: Update for e_notice move.
	(meeting_page_fill_component, meeting_page_fill_component,
	popup_delegate_cb): Pass a parent_window to e_notice

svn path=/trunk/; revision=20503
2003-03-25 15:49:44 +00:00
460a3fb010 corrected button ordering and changed the return type to be a
2003-03-12  Rodrigo Moya <rodrigo@ximian.com>

	* gui/dialogs/save-comp.[ch] (save_component_dialog): corrected
	button ordering and changed the return type to be a GtkResponseType.

	* gui/dialogs/comp-editor.c (prompt_to_save_changes): adapted to
	changes in save_component_dialog.

svn path=/trunk/; revision=20261
2003-03-12 16:04:50 +00:00
6b4c3984d5 If only the pipe wouldn't break.
svn path=/trunk/; revision=20143
2003-03-04 19:52:37 +00:00
84d3e4130f Remove cruft. Rename ICONSDIR to IMAGESDIR. (gladedir, etspecdir): Remove
* gui/dialogs/Makefile.am (INCLUDES): Remove cruft. Rename
	ICONSDIR to IMAGESDIR.
	(gladedir, etspecdir): Remove definitions

	* gui/dialogs/alarm-page.c: #include gtktreeselection.h and
	gtkcellrenderertext.h
	(append_reminder): Remove unused variable.
	(alarm_page_fill_component): Likewise.
	(alarm_page_set_summary): Likewise.
	(delete_clicked_cb): Likewise.

	* gui/dialogs/comp-editor.c (make_icon_from_comp):
	s/ICONSDIR/IMAGESDIR/

	* gui/dialogs/event-page.c: #include <string.h>

	* gui/dialogs/meeting-page.c (meeting_page_construct): Remove
	unused variable.
	(meeting_page_fill_widgets): Likewise

	* gui/dialogs/recurrence-page.c: #include gtktreeselection.h and
	gtkcellrenderertext.h
	(append_exception): Remove unused variable
	(fill_component): Likewise
	(recurrence_page_set_summary): Likewise.
	(exception_delete_cb): Likewise

svn path=/trunk/; revision=19792
2003-02-06 01:58:04 +00:00
3cf26e43e2 Mainly making all views use PangoLayouts for text. When drawing a
2003-01-25  Hans Petter Jansson  <hpj@ximian.com>

	Mainly making all views use PangoLayouts for text. When drawing a
	PangoLayout, the draw offset is the top left corner of the layout,
	not the text's baseline. Keep this in mind when viewing the
	changes. I'll be brief about the exact changes, since they speak
	better for themselves.

	* gui/e-day-view-time-item.c (e_day_view_time_item_get_column_width):
	Use Pango.
	(e_day_view_time_item_draw): Use Pango.

	* gui/e-day-view-top-item.c (e_day_view_top_item_draw): Use Pango.
	(e_day_view_top_item_draw_long_event): Add some FIXME text so we can
	see when this is being used. Is it in use at all?

	* gui/e-day-view.c: No longer specify an explicit X font string for
	the large font. Use the main font, and change the point size.
	(e_day_view_init): Use Pango.
	(e_day_view_style_set): Use Pango. Comment out the gdk_font setting
	for the drag text items for now.

	* gui/e-day-view.h: Use Pango.

	* gui/e-week-view-event-item.c (e_week_view_draw_time): Use Pango.

	* gui/e-week-view-main-item.c (e_week_view_main_item_draw_day):
	Use Pango.

	* gui/e-week-view-titles-item.c (e_week_view_titles_item_draw):
	Use Pango.

	* gui/e-week-view.c: No longer specify an explicit X font string for
	the small font. Use the main font, and change the point size.
	(e_week_view_init): Use Pango.
	(e_week_view_destroy): Use Pango.
	(get_string_width): Implemented for convenience.
	(get_digit_width): Implemented for convenience.
	(e_week_view_style_set): Use Pango.
	(e_week_view_recalc_cell_sizes): Use Pango.
	(e_week_view_get_time_string_width): Use Pango.

	* gui/e-week-view.h: Use Pango.

	Following are some random UTF-8 fixes and a crash fix.

	* gui/itip-utils.c (comp_description): Use g_locale_to_utf8 ().

	* gui/dialogs/comp-editor.c (make_title_from_comp): Return a
	UTF-8 string.

	* gui/dialogs/alarm-page.c (alarm_page_set_summary): Pass UTF-8
	directly to GTK.

	* gui/dialogs/delete-comp.c (delete_component_dialog): Ditto.

	* gui/dialogs/meeting-page.c (meeting_page_fill_widgets): Ditto.
	(meeting_page_construct): Ditto.

	* gui/dialogs/recurrence-page.c (recurrence_page_set_summary): Ditto.

	* gui/dialogs/event-editor.c (event_editor_finalize): Fix crash caused
	by gtk_object_destroy()-ing a non-GtkObject.

svn path=/trunk/; revision=19628
2003-01-26 01:42:05 +00:00
2c11fe24f2 Add a terminating NULL to the concatenation.
2003-01-23  Hans Petter Jansson  <hpj@ximian.com>

	* gui/dialogs/comp-editor.c (comp_editor_merge_ui): Add a terminating
	NULL to the concatenation.

svn path=/trunk/; revision=19612
2003-01-24 05:03:54 +00:00
bc61f8e11c Use EVOLUTION_GALVIEWSDIR.
* gui/gnome-cal.c (gnome_calendar_setup_view_menus): Use
EVOLUTION_GALVIEWSDIR.

* gui/e-tasks.c (e_tasks_setup_view_menus): Use
EVOLUTION_GALVIEWSDIR.

* cal-util/Makefile.am: Install libcal-util.la in $(privlibdir)
instead of $(libdir).

* gui/dialogs/comp-editor.c (setup_widgets): Get
evolution-comp-editor.xml from EVOLUTION_UIDIR.
(comp_editor_merge_ui): Get the file in EVOLUTION_UIDIR.

* gui/tasks-control.c (tasks_control_activate): Get
evolution-tasks.xml from EVOLUTION_UI_DIRECTORY.

* gui/calendar-commands.c (calendar_control_activate): Get
evolution-calendar.xml from EVOLUTION_UI_DIRECTORY.

* pcs/Makefile.am (pcsincludedir): Version using $(BASE_VERSION).

* importers/Makefile.am: Install evolution-calendar-importer in
$(libexecdir)/evolution/$(BASE_VERSION).
(sounddir): Remove.

* gui/dialogs/Makefile.am (iconsdir): Version using
$(BASE_VERSION).
(gladedir): Likewise.
(etspecdir): Likewise.

* gui/Makefile.am (help_base): Remove.
(install-data-local): Do not make the $(help_base)/C directory.
(etspecdir): Version using $(BASE_VERSION).
(gladedir): Likewise.
(iconsdir): Likewise.
(INCLUDES): Update the EVOLUTION_IMAGESDIR define to be versioned,
and add a -DEVOLUTION_GALVIEWSDIR.

* cal-util/Makefile.am: Install evolution-alarm-notify in
$(libexecdir)/evolution/$(BASE_VERSION).

* cal-util/Makefile.am (libcal_utilincludedir): Version using
$(BASE_VERSION).
* gui/alarm-notify/Makefile.am (iconsdir): Likewise.
(gladedir): Likewise.

* cal-client/Makefile.am: Install libcal-client.la in privlibdir
instead of libdir.
(libcal_clientincludedir): Version using $(BASE_VERSION).

svn path=/trunk/; revision=19553
2003-01-22 20:07:51 +00:00
8a30fde1e5 Replace gtk_signal_disconnect_by_data() with
2002-12-19  Hans Petter Jansson  <hpj@ximian.com>

        * gui/calendar-commands.c (calendar_control_deactivate):
        Replace gtk_signal_disconnect_by_data() with
        g_signal_handlers_disconnect_matched(). Former takes GtkObject,
        latter takes GObject.

        * gui/calendar-model.c (calendar_model_destroy): Ditto.
        (update_query): Ditto.
        (calendar_model_set_cal_client): Ditto.

        * gui/e-day-view.c (e_day_view_destroy): Ditto.
        (update_query): Ditto.
        (e_day_view_set_cal_client): Ditto.

        * gui/e-tasks.c (query_eval_error_cb): Ditto.
        (query_query_done_cb): Ditto.

        * gui/e-week-view.c (e_week_view_destroy): Ditto.
        (update_query): Ditto.
        (e_week_view_set_cal_client): Ditto.

        * gui/gnome-cal.c (update_query): Ditto.
        (gnome_calendar_destroy): Ditto.

        * gui/tasks-control.c (tasks_control_deactivate): Ditto.

        * gui/e-comp-editor-registry.c (foreach_close_cb): Replace
        gtk_signal_handler_(un)block_by_data() with
        g_signal_handlers_(un)block_matched(). Former takes GtkObject, latter
        takes GObject.

        * gui/dialogs/alarm-page.c (alarm_page_get_type): Replace with
        E_MAKE_TYPE().
        (alarm_page_class_init): Use GObject as base class instead of
        GtkObject, and set up finalization instead of destroy handler.
        (alarm_page_destroy): Change to alarm_page_finalize() and assume
        parent is GObject, not GtkObject.
        (alarm_page_new): Use g_object_new(), not gtk_type_new().

        * gui/dialogs/event-page.c: Same general changes as above file.
        (update_time): Replace gtk_signal_handler_(un)block_by_data()
        with g_signal_handlers_(un)block_matched().
        (clear_widgets): Ditto.
        (times_updated): Ditto.

        * gui/dialogs/recurrence-page.c: Same general changes as above file.
        (clear_widgets): Replace gtk_signal_handler_(un)block_by_data()
        with g_signal_handlers_(un)block_matched().
        (append_exception): Ditto.
        (fill_ending_date): Ditto.
        (recurrence_page_fill_widgets): Ditto.

        * gui/dialogs/comp-editor.c: Same general changes as above file.
        (comp_editor_finalize): Replace gtk_signal_disconnect_by_data()
        with g_signal_handlers_disconnect_matched().
        (comp_editor_remove_page): Ditto.

        * gui/dialogs/event-editor.c: Same general changes as above file.
        * gui/dialogs/meeting-page.c: Same general changes as above file.
        * gui/dialogs/schedule-page.c: Same general changes as above file.
        * gui/dialogs/task-details-page.c: Same general changes.
        * gui/dialogs/task-editor.c: Same general changes as above file.
        * gui/dialogs/task-page.c: Same general changes as above file.
        * gui/dialogs/e-delegate-dialog.c: Same general changes.

svn path=/trunk/; revision=19167
2002-12-19 13:09:14 +00:00
3041d1943a run fix.sh over this.
2002-11-27  Not Zed  <NotZed@Ximian.com>

        * gui/itip-utils.[ch]: run fix.sh over this.

        * gui/dialogs/*.[ch]: run fix.sh over all of this.

2002-11-26  Richard Li <Richard.Li@Sun.COM>

        * cal-client/cal-client.c (cal_client_construct): removed extra call
        to CORBA_exception_init.

2002-11-22  Not Zed  <NotZed@Ximian.com>

        * gui/dialogs/delete-comp.c (delete_component_dialog): Changed
        e_messagebox -> gtk_messagedialog.

svn path=/trunk/; revision=18972
2002-12-02 03:06:02 +00:00
4dec64f373 #include gtkoptionmenu.h. (cal_prefs_dialog_new): adapted to changes in
2002-11-06  Rodrigo Moya <rodrigo@ximian.com>

	* gui/cal-prefs-dialog.c: #include gtkoptionmenu.h.
	(cal_prefs_dialog_new): adapted to changes in glade_xml_new.

	* gui/dialogs/event-page.h:
	* gui/dialogs/meeting-page.h:
	* gui/dialogs/recurrence-page.h:
	* gui/dialogs/schedule-page.h:
	* gui/dialogs/task-details-page.h:
	* gui/dialogs/task-page.h:
	* gui/cal-prefs-dialog.h: use correctly the macros.

	* gui/dialogs/cancel-comp.c:
	* gui/dialogs/changed-comp.c:
	* gui/dialogs/comp-editor-page.c:
	* gui/gnome-cal.h: removed non-existent headers.

	* gui/dialogs/comp-editor.c: remove non-existent headers.
	(close_dialog): gtk_widget_destroy the widget.
	(setup_widgets, comp_editor_merge_ui): use BonoboWindow correctly.
	(comp_editor_set_cal_client, comp_editor_send_comp,
	 comp_editor_edit_comp): use G_OBJECT_GET_CLASS for
	getting the class of an object.

	* gui/dialogs/comp-editor-page.c (comp_editor_page_class_init):
	use g_signal_* functions.

	* gui/dialogs/comp-editor-util.c: converted to BonoboActivation.

	* gui/dialogs/comp-editor.h: #include bonobo-window.h, not
	bonobo-win.h.

svn path=/trunk/; revision=18622
2002-11-07 02:00:56 +00:00
155223435b Fixes #11434
2002-10-08  Rodrigo Moya <rodrigo@ximian.com>

	Fixes #11434

	* gui/dialogs/comp-editor-page.[ch]
	(comp_editor_page_display_validation_error): new function.

	* gui/dialogs/event-page.c (event_page_fill_component):
	* gui/dialogs/recurrence-page.c (fill_component):
	* gui/dialogs/task-details-page.c (task_details_page_fill_component):
	* gui/dialogs/task-page.c (task_page_fill_component): added
	checks for all date values, and return FALSE if we find
	some invalid date/times.

	* gui/dialogs/comp-editor.c (save_comp): activate the page that
	returns error in fill_component.

svn path=/trunk/; revision=18352
2002-10-08 17:58:08 +00:00
2fe0e9f18f bail out if we couldn't send the cancel
2002-09-04  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/event-editor.c (event_editor_send_comp): bail out if
	we couldn't send the cancel

	* gui/dialogs/task-editor.c (task_editor_send_comp): ditto

	* gui/dialogs/comp-editor.c (save_comp_with_send): indicate send
	status
	(real_send_comp): return success/fail, only resave the component a
	if we successfully sent
	(comp_editor_send_comp): return success/fail

	* gui/itip-utils.h: update proto

	* gui/itip-utils.c (itip_send_comp): return true if we sent the
	message

svn path=/trunk/; revision=17966
2002-09-04 18:12:28 +00:00
6bea7d339a set the editor to changed so the item actually gets saved
2002-08-09  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/comp-editor.c (real_send_comp): set the editor to
	changed so the item actually gets saved

svn path=/trunk/; revision=17753
2002-08-09 17:22:45 +00:00
a599d0dd76 check for an attendee in the list (comp_to_list): only add the user if
2002-08-08  JP Rosevear  <jpr@ximian.com>

	* gui/itip-utils.c (users_has_attendee): check for an attendee in
	the list
	(comp_to_list): only add the user if they aren't on the list
	(comp_server_send): don't remove the users, pass back the list
	(itip_send_comp): send to server before doing comp_minimal

	* gui/dialogs/comp-editor.c (real_send_comp): edit and save the
	updated comp

	* pcs/cal.c (impl_Cal_send_object): copy the correct item to pass
	back

svn path=/trunk/; revision=17747
2002-08-08 19:47:45 +00:00
7
1ea6884e82 use util function to see if the user is the organizer
2002-07-17    <jpr@ximian.com>

	* gui/calendar-model.c (calendar_model_value_at): use util
	function to see if the user is the organizer

	* gui/dialogs/cancel-comp.c (cancel_component_dialog): add
	deleting proto to indicate whether cancelling or deleting is the
	primary operation

	* gui/dialogs/cancel-comp.h: update proto

	* gui/dialogs/comp-editor.c (delete_cmd): offer to cancel

	* gui/dialogs/task-editor.c (cancel_task_cmd): call
	cancel_component_dialog with new param

	* gui/dialogs/event-editor.c (cancel_meeting_cmd): ditto

	* gui/e-week-view.c (e_week_view_on_editing_stopped): only update
	request if user is organizer
	(e_week_view_show_popup_menu): disable the meeting and meeting
	organizer mask if appropriate
	(e_week_view_delete_event_internal): offer to cancel the meeting
	(e_week_view_on_cut): ditto
	(selection_received): send request if its a meeting

	* gui/e-day-view.h: add meeting icon/mask

	* gui/e-day-view.c (e_day_view_on_event_right_click): disable the
	meeting and meeting organizer mask if appropriate
	(e_day_view_delete_event_internal): offer to cancel meeting
	(e_day_view_on_cut): ditto
	(e_day_view_finish_long_event_resize): only update request if user
	is organizer
	(e_day_view_reshape_long_event): add meeting icon to count
	(e_day_view_reshape_day_event): ditto
	(e_day_view_on_top_canvas_drag_data_received): only update request
	if user is organizer
	(e_day_view_on_main_canvas_drag_data_received): ditto
	(selection_received): offer to send meeting info

	* gui/e-day-view-main-item.c
	(e_day_view_main_item_draw_day_event): draw meeting icon if
	appropriate (using dummy icon atm)

svn path=/trunk/; revision=17491
2002-07-17 17:23:49 +00:00
5ab2df3c08 add back proto
2002-06-25  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/comp-editor-page.h: add back proto

	* gui/dialogs/comp-editor-page.c
	(comp_editor_page_notify_needs_send): add page needs_send signal

	* gui/e-meeting-time-sel.c
	(e_meeting_time_selector_on_invite_others_button_draw): check to
	see if the button should be sensitive when drawing
	(e_meeting_time_selector_construct): listen for the button draw
	signal

	* cal-util/cal-component.c (cal_component_strip_errors): remove
	X-LIC-ERROR x properties

	* cal-util/cal-component.h: new proto

	* gui/dialogs/meeting-page.c (change_clicked_cb): set needs_send
	to true
	(meeting_page_fill_widgets): set up gui based on if the user or
	someone else is the organizer
	(meeting_page_construct): read the addresses here for the combo
	box
	(get_widgets): explicitly set the value in list values

	* gui/dialogs/event-editor.c (set_menu_sens): base this on the
	exist org and user org values of the comp editor
	(event_editor_edit_comp): set up editable row restrictions on the
	meeting model if the user is not an organizer, and don't set needs
	send if we aren't the organizer initially
	(model_row_changed_cb): set needs_send to true
	(row_count_changed_cb): ditto

	* gui/dialogs/meeting-page.glade: update gui

	* gui/dialogs/comp-editor.c (save_comp_with_send): if the user is
	not the organizer, REPLY rather than REQUEST
	(comp_editor_set_existing_org): accessor
	(comp_editor_get_existing_org): ditto
	(comp_editor_set_user_org): ditto
	(comp_editor_get_user_org): ditto
	(real_edit_comp): determine if there is an existing organizer and
	if the organizers is a user
	(page_changed_cb): warn the user that changes may be discarded
	(page_summary_changed_cb): ditto
	(page_dates_changed_cb): ditto

	* gui/dialogs/comp-editor.h: new protos

	* gui/itip-utils.c (itip_organizer_is_user): determine if the
	organizer of a component is a user
	(itip_sentby_is_user): same for sentby field of organizer
	(comp_sentby): use above routines instead
	(comp_compliant): strip all X-LIC-ERROR fields generated by
	libical

	* gui/e-meeting-model.c (is_cell_editable): if there is a list of
	editable rows, allow only the status column of those rows to be
	edited
	(init): init edit_rows
	(e_meeting_model_restricted_add): add an editable row to the model
	(e_meeting_model_restricted_remove): remove an editable row
	(e_meeting_model_restricted_clear): clear all editable rows
	(e_meeting_model_etable_click_to_add): set the click to add arg on
	all tables
	(e_meeting_model_etable_from_model): track the tables
	(table_destroy_list_cb): remove the table being destroyed from the
	list
	(table_destroy_state_cb): remove the table being destroyed from
	the list

	* gui/e-meeting-model.h: new protos

	* gui/e-itip-control.c (update_attendee_status): kill warning

svn path=/trunk/; revision=17274
2002-06-25 13:11:47 +00:00
08f9758626 update proto
2002-05-26  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/comp-editor.h: update proto

	* gui/dialogs/comp-editor.c (comp_editor_get_comp): new function
	to get base comp

	* gui/e-comp-editor-registry.c (e_comp_editor_registry_add): get
	the base comp, not the current comp, don't unref it
	(foreach_close_cb): block the signal, unblock it if the editor
	could not be closed
	(e_comp_editor_registry_close_all): fix preconditions
	(editor_destroy_cb): get the base comp, not the current comp,
	don't unref it

svn path=/trunk/; revision=17020
2002-05-26 17:10:48 +00:00
a1d69a1b83 if there are remaining items, return false (foreach_close_cb): don't
2002-05-26  JP Rosevear  <jpr@ximian.com>

	* gui/e-comp-editor-registry.c (e_comp_editor_registry_close_all):
	if there are remaining items, return false
	(foreach_close_cb): don't remove the item if it couldn't be closed

	* gui/e-comp-editor-registry.h: update proto

	* gui/component-factory.c (request_quit): return a boolean
	indicating if everything was closed

	* gui/dialogs/comp-editor.h: update proto

	* gui/dialogs/comp-editor.c (comp_editor_close): return true if
	the editor was closed, false otherwise

svn path=/trunk/; revision=17019
2002-05-26 16:46:49 +00:00
fb1d17d150 a registry of comp editors so we can close them all centrally
2002-05-26  JP Rosevear  <jpr@ximian.com>

	* gui/e-comp-editor-registry.[hc]: a registry of comp editors so
	we can close them all centrally

	* gui/gnome-cal.c (gnome_calendar_init): there is no editor hash
	now
	(gnome_calendar_destroy): ditto
	(gnome_calendar_edit_object): look for the event editor in the
	registry, if it isn't there, create it and add it to the registry

	* gui/e-calendar-table.c (open_task): look for the task editor in
	the registry, if it isn't there, create it and add it to the
	registry

	* gui/component-factory.c (request_quit): close all open editors
	(create_object): add a request_quit function to the shell
	component

	* gui/comp-editor-factory.c (free_client): there is no
	uid_comp_hash to free any more
	(editor_destroy_cb): we get an OpenClient as callback data now,
	reduce the editor count and destroy it if it is 0
	(edit_existing): don't create the Component, add the new editor to
	the registry, increase the editor count
	(edit_new): ditto
	(open_client): set the editor count to 0
	(impl_editExisting): look in the registry for the editor

	* gui/Makefile.am: Build new sources

	* gui/main.c (main): create the registry

	* gui/dialogs/comp-editor.c (comp_editor_close): prompt to save
	and then close dialog

	* gui/dialogs/comp-editor.h: new proto

	* gui/GNOME_Evolution_Calendar.oaf.in: remove dead summary stuff

svn path=/trunk/; revision=17018
2002-05-26 16:21:28 +00:00
9e052c1a09 Pass the @component_pixmaps in so we give the new "Meeting" button an
* gui/dialogs/event-editor.c (event_editor_init): Pass the
@component_pixmaps in so we give the new "Meeting" button an icon.

* gui/dialogs/comp-editor.c (comp_editor_merge_ui): New arg
@component_pixmaps to pass in custom pixmaps.

svn path=/trunk/; revision=16955
2002-05-20 21:28:00 +00:00
48140af35f added PermissionDenied exception and make it be raised in open,
2002-05-16  Rodrigo Moya <rodrigo@ximian.com>

	* idl/evolution-calendar.idl: added PermissionDenied exception and
	make it be raised in open, updateObjects and removeObject.

	* pcs/cal-backend.h: added CAL_BACKEND_OPEN_PERMISSION_DENIED to
	CalBackendOpenStatus enumeration, added CalBackendResult enumeration.

	* pcs/cal.c:
	* pcs/cal-backend.c:
	* pcs/cal-backend-file.c: adapted to changes in update_objects and
	remove_object methods.

	* cal-client/cal-client.[ch]: added CalClientResult enumeration.
	(cal_client_update_object, cal_client_update_objects,
	 cal_client_remove_object): changed to return a CalClientResult.

	* conduits/calendar/calendar-conduit.c:
	* calendar/conduits/todo/todo-conduit.c:
	* importers/icalendar-importer.c:
	* gui/dialogs/comp-editor.c:
	* gui/calendar-model.c:
	* gui/e-calendar-table.c:
	* gui/e-day-view.c:
	* gui/e-itip-control.c:
	* gui/e-week-view.c:
	* gui/comp-util.c:
	* gui/e-tasks.c:
	* gui/tasks-migrate.c: adapted to changes in cal_client_update_object(s)
	and cal_client_remove_object.

svn path=/trunk/; revision=16932
2002-05-16 16:41:35 +00:00
a3aae682ce implement new pop up menu items for "Save as", "Print", "Assign Task",
2002-03-29  JP Rosevear  <jpr@ximian.com>

	* gui/e-calendar-table.c: implement new pop up menu items for
	"Save as", "Print", "Assign Task", "Forward as iCalendar"

	* gui/e-day-view.c: similarly, also "Publish Free/Busy
	Information" and "New Meeting" and "New Task"

	* gui/e-week-view.c: ditto

	* gui/dialogs/task-editor.c (show_assignment): move the assignment
	page stuff here
	(task_editor_show_assignment): use it
	(assign_task_cmd): ditto

	* gui/dialogs/task-editor.h: new proto

	* gui/dialogs/comp-editor.c (save_as_cmd): use new e-util file
	selector function

svn path=/trunk/; revision=16287
2002-03-29 21:45:33 +00:00
843b04862e pass extra itip_send_comp params (send_freebusy): ditto (ok_clicked_cb):
002-02-19  JP Rosevear  <jpr@ximian.com>

 	* gui/e-itip-control.c (send_item): pass extra itip_send_comp
 	params
 	(send_freebusy): ditto
 	(ok_clicked_cb): ditto, including the timezones culled from the
 	component

 	* gui/e-week-view.c: pass extra itip_send_comp params

 	* gui/calendar-commands.c: ditto

 	* gui/e-day-view.c: ditto

 	* gui/dialogs/task-editor.c: ditto

 	* gui/dialogs/event-editor.c: ditto

 	* gui/dialogs/comp-editor.c: ditto

 	* gui/itip-utils.h (itip_send_comp): update proto

 	* gui/itip-utils.c (foreach_tzid_callback): check the passed in
 	zones, then the builtin time zones then the client

2002-02-19  JP Rosevear  <jpr@ximian.com>

 	* gui/e-itip-control.c (find_my_address): strip the ical value and
 	do a case insensitive compare
 	(find_attendee): ditto
 	(change_status): put the error message here
 	(ok_clicked_cb): don't update the item or rsvp unless
 	change_status was successful, trip the ical value and do a case
 	insensitive compare

 	* gui/itip-utils.c (get_address): strip the incoming address
 	(itip_strip_mailto): use g_strncasecmp
 	(comp_limit_attendees): strip the ical value and do a case
 	insensitive compare

svn path=/trunk/; revision=15763
2002-02-19 16:26:25 +00:00
72d188ef33 remove needs send signal related cruft (save_comp_with_send): with
2001-12-21  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/comp-editor.c: remove needs send signal related
	cruft
	(save_comp_with_send): with send_component_dialog, indicate if the
	meeting info is newly created or not
	(real_edit_comp): remember if the dialog initially needs a send

	* gui/dialogs/send-comp.c (send_component_dialog): take a "new"
	parameter indicating whether the dialog should intimate if the
	component to be sent is a new meeting or not

	* gui/dialogs/send-comp.h: update proto

	* gui/dialogs/comp-editor.c: remove no longer used needs_send
	notification and signal

	* gui/dialogs/comp-editor.h: remove proto

	* gui/e-day-view.c (e_day_view_on_main_canvas_drag_data_received): add new
	param to send_component_dialog
	(e_day_view_finish_long_event_resize): ditto
	(e_day_view_finish_resize): ditto
	(e_day_view_on_editing_stopped): ditto
	(e_day_view_on_top_canvas_drag_data_received): ditto

	* gui/e-week-view.c (e_week_view_on_editing_stopped): add new
	param to send_component_dialog

svn path=/trunk/; revision=15204
2001-12-21 16:17:09 +00:00
1
ff1f6c3f1a inherit from bonobo window
2001-12-21    <jpr@ximian.com>

	* gui/dialogs/comp-editor.h: inherit from bonobo window

	* gui/dialogs/comp-editor.c: inherit from bonobo window
	(comp_editor_key_press_event): Look for an escape key press and
	close the window if found

svn path=/trunk/; revision=15202
2001-12-21 14:49:31 +00:00
f7c509da22 make sure to remove all attendees from the model when we edit a new comp,
2001-11-06  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/event-editor.c (event_editor_edit_comp): make sure
	to remove all attendees from the model when we edit a new comp,
	append the pages if they are needed and we weren't showing them
	before

	* gui/dialogs/task-editor.c (task_editor_edit_comp): same as above

 	* gui/dialogs/comp-editor.c (comp_editor_remove_page): check for a
 	return value indicating the page was not found and return if so

svn path=/trunk/; revision=14615
2001-11-07 15:43:32 +00:00
0051272a4e disconnect signals added in append_page(). Fixes Gtk-Critical warning
2001-10-30  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/comp-editor.c (comp_editor_remove_page): disconnect
	signals added in append_page(). Fixes Gtk-Critical warning about
	GtkAccelGroup being added twice to a window.

svn path=/trunk/; revision=14518
2001-10-31 05:37:20 +00:00
61fd4ec1b8 Fix bug #10016.
2001-10-30  Federico Mena Quintero  <federico@ximian.com>

	Fix bug #10016.

	* gui/dialogs/comp-editor.c (comp_editor_merge_ui): Use
	bonobo_ui_util_set_ui() instead of doing things by hand.  Hmmm, if
	only that function had a way of telling us whether it failed so
	that we could avoid setting the verb list...

	* gui/dialogs/event-editor.c (event_editor_init): Do not pass the
	filename with the full path so that Bonobo can find it in a smart
	way.

	* gui/dialogs/task-editor.c (task_editor_init): Likewise.

svn path=/trunk/; revision=14447
2001-10-30 09:47:58 +00:00
70708440ca when the week start day is set to Sunday, we have to be careful to make
2001-10-27  Damon Chaplin  <damon@ximian.com>

	* gui/print.c (print_week_view):
	(range_selector_new): when the week start day is set to Sunday, we
	have to be careful to make sure we print the correct week, since
	the previous Saturday is actually printed first. Fixes bug #13687.
	(print_week_summary): always set compress_weekend to true if
	multi_week_view is FALSE (i.e. we are printing the week view).
	Fixes bug #13688.

	* gui/e-itip-control.c (send_freebusy): use the timezones from the
	DTSTART and DTEND.
	(write_label_piece): output the date-time and the timezone after it.
	Note that we may want to convert it to the current timezone and display
	that as well. Also converted COMPLETED to the current timezone.
	And fixed all uses of old timezone functions.

	* gui/dialogs/comp-editor.c (commit_all_fields): added function to
	set the focus in the window to NULL, so all fields lose their focus,
	so they emit "changed" signals and update their values if needed.
	We call this when most menu commands are used, e.g. 'Save and Close',
	'Print' etc. Fixes bug #11434. In future we should also check fields
	are valid and show dialogs if they are not.

	* gui/calendar-model.c (get_completed): use the completed value
	properly. Fixes bug #13694.

	* cal-util/timeutil.c (icaltimetype_to_tm_with_zone): don't check
	from_zone and to_zone != NULL. A NULL zone is valid, it is for
	floating times.

svn path=/trunk/; revision=14266
2001-10-28 02:26:21 +00:00
54634a1357 Delete appointments with empty summaries. Fixes Ximian bug #780.
2001-10-27  Federico Mena Quintero  <federico@ximian.com>

	* gui/e-day-view.c (e_day_view_on_editing_stopped): Delete
	appointments with empty summaries.  Fixes Ximian bug #780.

	* gui/e-week-view.c (e_week_view_on_editing_stopped): Likewise.

	* gui/dialogs/delete-comp.c (delete_component_dialog): Added an
	argument to specify whether we unconditionally want single
	components to be considered as not having a summary.

	* gui/comp-util.c (cal_comp_confirm_delete_empty_comp): New
	function.

	* gui/misc.[ch]: New files with miscellaneous utility functions;
	moved string_is_empty() over from calendar-model.c.

	* gui/calendar-model.c: Use the string_is_empty()
	function from misc.c.

	* gui/Makefile.am (evolution_calendar_SOURCES): Added misc.[ch] to
	the list of sources.

svn path=/trunk/; revision=14233
2001-10-27 22:13:20 +00:00
7ba9607966 Fixing the license text.
svn path=/trunk/; revision=14214
2001-10-27 17:38:13 +00:00
7b5415e500 convert the formatted date to UTF-8.
2001-10-26  Damon Chaplin  <damon@ximian.com>

	* gui/e-itip-control.c (write_label_piece): convert the formatted
	date to UTF-8.

	* cal-util/cal-recur.c (CAL_OBJ_DEBUG): turn off debug functions.

	* gui/dialogs/comp-editor-util.c (parse_contact_string): handle UTF8
	correctly. Bug #4450. Good enough for 1.0.

	* gui/e-week-view-event-item.c (e_week_view_draw_time): set the gc
	color before drawing. Should fix bug #11469.

	* gui/dialogs/task-editor.c (task_editor_edit_comp): show or hide the
	meeting page as appropriate. Note this may be called more than once,
	if the task gets updated somewhere else and the user clicks 'Update
	the object'. Hopefully fixes bug #12930.

	* gui/print.c (print_comp_item): printed more fields and made a little
	prettier. Fixes bug #9352.
	(print_date_label): used the correct timezones for each date field.

	* *.c: removed several debug messages.

svn path=/trunk/; revision=14187
2001-10-27 00:07:29 +00:00
e4e894969e subtract 1 from any positive BYSETPOS value, since our array is 0-based.
2001-10-25  Damon Chaplin  <damon@ximian.com>

	* cal-util/cal-recur.c (cal_obj_bysetpos_filter): subtract 1 from
	any positive BYSETPOS value, since our array is 0-based.

	* gui/dialogs/recurrence-page.c (simple_recur_to_comp):
	(recurrence_page_fill_widgets): Outlook (2000) will not accept monthly
	recurrences like BYDAY=2TU. Instead it uses BYDAY=TU;BYSETPOS=2.
	So to be compatable with it we now do the same, although we still
	accept and convert the old format.

	* cal-client/cal-client.c (cal_client_get_component_as_string): new
	function to return a complete VCALENDAR string containing a VEVENT
	or VTODO with all the VTIMEZONEs it uses.

	* gui/dialogs/comp-editor.c (save_as_ok): use above function so we
	save the VTIMEZONE data with the VEVENT/VTODO. Fixes bug #????.
	Also made sure we output "METHOD:PUBLISH" since Outlook (2000) will
	not import it otherwise.

	* gui/dialogs/comp-editor.c (page_mapped_cb):
	(page_unmapped_cb): install/uninstall the GtkAccelGroup for the page.
	(comp_editor_append_page): connect to the map/unmap signals to
	install/uninstall the accelerators. (This is all for bug #11609,
	though of course it doesn't work too well in GTK+ 1.2 anyway.)

	* gui/dialogs/task-page.c (get_widgets):
	* gui/dialogs/task-details-page.c (get_widgets):
	* gui/dialogs/schedule-page.c (get_widgets):
	* gui/dialogs/recurrence-page.c (get_widgets):
	* gui/dialogs/meeting-page.c (get_widgets):
	* gui/dialogs/event-page.c (get_widgets):
	* gui/dialogs/alarm-page.c (get_widgets): got the GtkAccelGroup from
	the original window, ref'ed it and placed it in the CompEditorPage
	struct.

	* gui/dialogs/comp-editor-page.c (comp_editor_page_destroy): unref
	any GtkAccelGroup for the page.

	* gui/dialogs/task-page.glade: changed '_Confidential' to
	'Con_fidential' as it clashed with '_Contacts'. It now matches the
	event editor as well.

	* gui/dialogs/event-page.glade:
	* gui/dialogs/task-page.glade: Set CAN_FOCUS to TRUE for the custom
	EDateEdit widgets, and set them as the accel targets of the labels.

svn path=/trunk/; revision=14108
2001-10-25 23:28:15 +00:00
8f14d0c6c9 show an error message when we can't update the object on the calendar
2001-10-25  Rodrigo Moya <rodrigo@ximian.com>

	* gui/dialogs/comp-editor.c (save_comp): show an error message when
	we can't update the object on the calendar server

svn path=/trunk/; revision=14090
2001-10-25 12:00:00 +00:00
d6e71d2ad9 listen for changes in the date editors (schedule_page_set_dates): update
2001-10-21  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/schedule-page.c (init_widgets): listen for changes
	in the date editors
	(schedule_page_set_dates): update the times when they change
	elsewhere
	(update_time): set the time in the dialog
	(time_changed_cb): notify of changed times

	* gui/dialogs/comp-editor.c (page_dates_changed_cb): don't call
	the set dates function on the page that noted the change
	(page_summary_changed_cb): same for set summary function

	* gui/dialogs/event-page.c (update_time): move time setting stuff
	to util function
	(event_page_set_dates): use it
	(event_page_fill_component): ditto

	* gui/e-meeting-time-sel.h: fix comment

svn path=/trunk/; revision=13863
2001-10-22 03:51:41 +00:00
dba5f1b79e remove warnings.
2001-10-15  Larry Ewing  <lewing@ximian.com>

	* gui/dialogs/comp-editor.c (set_icon_from_comp): remove warnings.

svn path=/trunk/; revision=13686
2001-10-15 21:49:55 +00:00
a28d046880 call set_icon_from_comp. (set_icon_from_comp): set the window icon from
2001-10-13  Larry Ewing  <lewing@ximian.com>

	* gui/dialogs/comp-editor.c (real_edit_comp): call
	set_icon_from_comp.
	(set_icon_from_comp): set the window icon from the comp.
	(make_icon_from_comp): get the icon path based on comp type.

	* gui/dialogs/Makefile.am (iconsdir): EVOLUTION_ICONSDIR bits.

svn path=/trunk/; revision=13666
2001-10-14 04:02:13 +00:00
1bd22eb65b return fill_component success
2001-10-12  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/alarm-page.c: return fill_component success

	* gui/dialogs/task-page.c: ditto

	* gui/dialogs/task-details-page.c: ditto

	* gui/dialogs/schedule-page.c: ditto

	* gui/dialogs/recurrence-page.c: ditto

	* gui/dialogs/event-page.c: ditto

	* gui/dialogs/meeting-page.c: use e_notice instead of
	duplicate_error
	(meeting_page_get_cancel_comp): duh, deleted_attendees is an array
	now
	(meeting_page_fill_component): spew gui errors if there is no
	organizer or no attendees, return success

	* gui/dialogs/event-editor.c (event_editor_send_comp): always call
	parent method and don't send the cancellation comp if the method
	is publish
	(refresh_meeting_cmd): use the orginal comp to refresh
	(forward_cmd): prompt the user for the version they want to send
	(current, original)

	* gui/dialogs/task-editor.c (forward_cmd): as above
	(refresh_task_cmd): ditto

	* gui/dialogs/comp-editor-page.c
	(comp_editor_page_fill_component): return boolean of whether the
	component could be filled or not

	* gui/dialogs/comp-editor-page.h: update proto

	* gui/dialogs/comp-editor.c (prompt_to_save_changes): take a param
	on whether to try and send or not
	(comp_editor_get_current_comp): only fill component if its changed
	(comp_editor_save_comp): prompt user as well

	* gui/dialogs/comp-editor.h: change proto

	* gui/itip-utils.c: replace error_dialog with e_notice
	(comp_content_type): specify charset

svn path=/trunk/; revision=13635
2001-10-12 22:09:57 +00:00
2ddb68d1f7 refactor functionality into several function (comp_string): if we are
2001-10-03  JP Rosevear  <jpr@ximian.com>

	* gui/itip-utils.c (itip_send_comp): refactor functionality into
	several function
	(comp_string): if we are publishing, empty the attendee list

	* gui/dialogs/event-editor.c (schedule_meeting_cmd): when we
	schedule a new meeting, mark the event editor as changed

	* pcs/cal.c (cal_class_init): get correct parent class

	* gui/dialogs/comp-editor.c (comp_editor_merge_ui): use the
	generated ui component name

svn path=/trunk/; revision=13385
2001-10-03 20:15:28 +00:00
11c665c925 Use bonobo_ui_component_new_default()', not bonobo_ui_component_new()'.
* e-shell-view.c (e_shell_view_construct): Use
`bonobo_ui_component_new_default()', not
`bonobo_ui_component_new()'.

* mail-account-gui.c (launch_signature_editor): Use
`bonobo_ui_component_new_default()', not
`bonobo_ui_component_new()'.

* e-msg-composer.c (setup_ui): Use
`bonobo_ui_component_new_default()', not
`bonobo_ui_component_new()'.

* gui/dialogs/comp-editor.c (setup_widgets): Use
`bonobo_ui_component_new_default()', not
`bonobo_ui_component_new()'.

svn path=/trunk/; revision=13306
2001-10-02 18:33:34 +00:00
0586d60922 unref the page objects here, instead of in close_dialog(). (This was fixed
2001-10-01  Damon Chaplin  <damon@ximian.com>

	* gui/dialogs/comp-editor.c (comp_editor_destroy): unref the page
	objects here, instead of in close_dialog(). (This was fixed a while
	ago, but accidentally reverted.) Fixes bug #7543.

svn path=/trunk/; revision=13278
2001-10-01 20:12:00 +00:00
b235a79eff added comparison functions for these special cell types. But the date and
2001-09-26  Damon Chaplin  <damon@ximian.com>

	* gui/e-calendar-table.c (date_compare_cb):
	(percent_compare_cb):
	(priority_compare_cb): added comparison functions for these special
	cell types. But the date and percent ones don't work yet due to the
	use of static text buffers for return cell values.
	(e_calendar_table_init): added the comparison functions to the
	ETableExtras. NOTE: task_compare_cb() never seems to be called.
	I'm not sure why it is there.

	* gui/e-calendar-table.etspec: set the comparison function names for
	the date/percent/priority fields.

	* cal-util/cal-util.c (cal_util_priority_to_string):
	(cal_util_priority_from_string): new utility functions.

	* gui/calendar-model.c (get_priority):
	(set_priority): used above utility functions, and removed the warning
	dialog which isn't useful now that the field isn't editable.

	* gui/dialogs/event-page.c (times_updated): handle timezones and for
	all-day events make sure it stays an all-day event after adjusting.
	Fixes bugs #5945 and #10222.

	* gui/calendar-commands.c (pixmaps): fixed the E_PIXMAP paths - the
	edit items were moved beneath 'EditPlaceholder'. This gets rid of
	those long Bonobo warnings! (and we get the icons back)

	* gui/dialogs/comp-editor.c (pixmaps): removed the PrintPreview toolbar
	icon, since it doesn't appear in the xml file. Gets rid of warning.

	* gui/dialogs/event-page.c (notify_dates_changed): new function to
	emit the notification signal when the dates are changed. It also
	handles timezones now.

	* gui/dialogs/comp-editor-page.h (CompEditorPageDates): used
	CalComponentDateTime for start/end/due so we have the timezone as well
	as the time.

	* gui/dialogs/comp-editor-util.c (comp_editor_dates): updated to get
	the timezones as well as the times.
	(comp_editor_free_dates): new function needed to free all the structs.

	* gui/dialogs/recurrence-page.c (recurrence_page_set_dates): added call
	to preview_recur() to make sure the preview gets updated.

	* gui/dialogs/alarm-page.c (alarm_page_fill_widgets): free the
	CompEditorPageDates struct after use.

	* gui/tag-calendar.c (tag_calendar_by_comp): added 'comp_is_on_server'
	argument. If FALSE, we try to use builtin timezones first. This is
	needed for the recurrence page of the event editor, because the
	timezones may not have been added to the server yet. This and the
	changes to the notification stuff should fix bug #5034.

	* gui/gnome-cal.c (dn_query_obj_updated_cb): call above
	tag_calendar_by_comp() with TRUE since the events will be on the
	server in this case.

	* gui/e-day-view-layout.c:
	* gui/e-day-view.c: made sure an event always takes up at least one
	row, even when the start & end times are the same. Fixes bug #5944.
	I don't know if we should try to also handle events with the end time
	before the start time.

	* gui/e-week-view.c (e_week_view_style_set): check that the small font
	is actually smaller than the normal font. If it isn't, don't use it.
	Hopefully fixes bug #6876.
	(e_week_view_on_new_appointment): if only one day is selected, then
	we set the initial time of the event to 1/2-hour from the start of the
	working day, to differentiate 'New Appointment' from 'New All Day
	Event'. Fixes bug #8892.

	* gui/e-day-view.c (e_day_view_on_new_appointment): do the same as the
	above.

svn path=/trunk/; revision=13186
2001-09-27 04:02:17 +00:00
568c0dcc4b disconnect signals first thing
2001-09-26  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/comp-editor.c (comp_editor_destroy): disconnect
	signals first thing

svn path=/trunk/; revision=13151
2001-09-26 16:25:25 +00:00
ce71400f35 use bonobo-exception stuff to clean code
2001-09-25  JP Rosevear  <jpr@ximian.com>

	* pcs/cal.c: use bonobo-exception stuff to clean code

	* pcs/cal-factory.c (add_uri): add uri to the list if the type
	matches
	(impl_CalFactory_uriList): implement uriList method

	* pcs/cal-backend.h: new virtual function member

	* pcs/cal-backend.c (cal_backend_is_remote): call virtual function

	* pcs/cal-backend-file.c (cal_backend_file_class_init): override
	virtual function
	(cal_backend_file_is_remote): new virtual function, always return
	FALSE

	* idl/evolution-calendar.idl: uriList factory call, with flags for
	types to get

	* gui/dialogs/comp-editor.c (comp_editor_destroy): cast to remove
	warning

	* gui/e-itip-control.c (write_label_piece): kill warnings by take
	const char *

	* gui/component-factory.c (create_object): aggregate offline
	interface

	* gui/Makefile.am: compile new files

	* calobj.[hc]: Remove obsolete files

	* cal-util/cal-util.h: enum URI types for uriList call

	* cal-client/cal-client.c (build_uri_list): build list from string
	sequence
	(cal_client_uri_list): factory call to get uri list

	* cal-client/cal-client.h: new proto

	* cal-client/cal-client.c: use bonobo exception stuff to clean
	code

	* gui/calendar-offline-handler.[hc]: Start some skeleton routines
	for online/offline handling

	* pcs/cal-factory.c (launch_backend_for_uri): use accessor and
	remove FIXME

svn path=/trunk/; revision=13110
2001-09-25 16:35:40 +00:00
a2f7306500 make sure to release the ref on priv->comp.
2001-09-20  Larry Ewing  <lewing@ximian.com>

	* gui/dialogs/recurrence-page.c (recurrence_page_destroy): make
	sure to release the ref on priv->comp.

	* gui/dialogs/comp-editor.c (real_edit_comp): make sure to release
	the ref on priv->comp.

svn path=/trunk/; revision=13008
2001-09-20 05:19:37 +00:00
e5c7ee01fd listen for model changes (task_editor_edit_comp): add the attendees to the
2001-09-19  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/task-editor.c (init_widgets): listen for model
	changes
	(task_editor_edit_comp): add the attendees to the model and notify
	of need send
	(row_count_changed_cb): mark as changed when row added/deleted
	(model_row_changed_cb): mark as changed when row changes

	* gui/dialogs/event-editor.c (init_widgets): listen for model
	changes
	(event_editor_init): flip page order
	(event_editor_edit_comp): set needs send value
	(schedule_meeting_cmd): flip page order
	(row_count_changed_cb): mark as changed when row added/deleted
	(model_row_changed_cb): mark as changed when row changes

	* gui/dialogs/schedule-page.c: remove model change notification
	stuff
	(schedule_page_fill_widgets): no need to do the needs_send here
	because the editor handles this since it owns the model

	* gui/dialogs/event-editor.c (init_widgets): listen for model
	changes
	(event_editor_init): flip page order
	(event_editor_edit_comp): set needs send value
	(schedule_meeting_cmd): flip page order
	(row_count_changed_cb): mark as changed when row added/deleted
	(model_row_changed_cb): mark as changed when row changes

	* gui/dialogs/meeting-page.c (meeting_page_fill_widgets): no need
	to do the needs_send here because the editor handles this since it
	owns the model
	(invite_entry_changed): ditto

	* gui/dialogs/comp-editor.c (comp_editor_set_changed): new
	accessor
	(comp_editor_get_changed): ditto
	(comp_editor_set_needs_send): ditto
	(comp_editor_get_needs_send): ditto

	* gui/dialogs/comp-editor.h: new protos

	* gui/itip-utils.c (itip_addresses_get): reflect configuration
	path changes in the mailer

	* gui/e-meeting-model.c: remove commented out code, ifdef one
	section for later

svn path=/trunk/; revision=12983
2001-09-19 18:46:34 +00:00
d639a620a6 A page that shows the meeting time selector and free/busy data for
2001-09-18  JP Rosevear  <jpr@ximian.com>

	* gui/dialogs/schedule-page.*: A page that shows the meeting time
	selector and free/busy data for attendees

	* gui/dialogs/meeting-page.c: use the meeting model to track/edit
	attendees, remove table value conversion routines and simple table
	routines
	(set_attendees): take a pointer array
	(meeting_page_destroy): destroy the pointer array, save state
	(meeting_page_init): new pointer array
	(meeting_page_fill_widgets): don't null the deleted attendees
	field
	(popup_delegate_cb): array add
	(popup_delete_cb): array add
	(cleanup_attendees): iterate over the array to unref now
	(meeting_page_fill_widgets): don't null out fields, no need to add
	attendees here
	(invite_entry_changed): use e_meeting_attendee routines
	(popup_delegate_cb): ditto
	(popup_delete_cb): ditto
	(meeting_page_new): take new arg and pass it to construct
	(meeting_page_construct): take new arg, use e-meeting-model
	routines to construct table

	* gui/dialogs/task-editor.c (task_editor_init): new meeting model
	(task_editor_destroy): unref the model

	* gui/dialogs/event-editor.c (event_editor_init): make new model
	and pass it to meeting and schedule pages
	(event_editor_set_cal_client): virtual function, set meeting model
	client
	(event_editor_edit_comp): add the attendees to the model
	(event_editor_destroy): unref model

	* gui/dialogs/comp-editor.h: add virtual function

	* gui/dialogs/comp-editor.c (comp_editor_set_cal_client): make
	set_cal_client a virutal function

	* gui/e-meeting-types.h: generally useful type defines

	* gui/e-meeting-time-sel*.[hc]: Move here and use an e-table for
	the attendee list and extract display information from the new
	meeting model and attendees

	* gui/e-meeting-time-sel.etspec: spec for the table

	* gui/e-meeting-attendee.[hc]: meeting attendees for the model,
	with to/from conversions for CalComponentAttendee structure, emits
	changed signal and allows getting and setting of free busy
	periods

	* gui/e-meeting-model.[hc]: move the model out on its own

	* gui/e-itip-control.c (write_error_html): clean up warnings

svn path=/trunk/; revision=12968
2001-09-19 04:33:33 +00:00
b5660966bd don't call calendar_config_check_timezone_set() now, since the startup
2001-09-03  Damon Chaplin  <damon@ximian.com>

	* gui/calendar-commands.c (calendar_control_activate):
	* gui/tasks-control.c (tasks_control_activate): don't call
	calendar_config_check_timezone_set() now, since the startup wizard
	handles that.

	* gui/e-tasks.c (e_tasks_class_init): changed selection_changed signal
	to GTK_RUN_LAST. It has no reason to be GTK_RUN_FIRST.

	* gui/gnome-cal.c:
	* gui/e-week-view.c:
	* gui/e-day-view.c: added "selection_changed" signal,
	XX_delete_event() and XX_get_num_events_selected().

	* gui/e-day-view-top-item.c (e_day_view_top_item_draw): fix the shadow
	around the dates at the top - it was 1 pixel off.

	* gui/calendar-commands.c: added sensitize_commands(), similar to in
	tasks-control.c, so we only make Cut/Copy/Delete sensitive when an
	event is selected. Also added delete_event_cmd().

	* gui/dialogs/task-page.c (task_page_set_summary):
	* gui/dialogs/event-page.c (event_page_set_summary): do nothing,
	since the summary only gets changed on the main event/task page now.
	Fixes bug #6939.

	* gui/e-day-view.c (e_day_view_on_main_canvas_drag_data_received):
	(e_day_view_on_top_canvas_drag_data_received): check that we are
	dragging an event from the same EDayView. We currently don't support
	DnD from other widgets.
	(e_day_view_update_top_canvas_drag): only get the summary if we
	actually have an event. Fixes bug #5162.

	* gui/e-day-view.c (e_day_view_on_editing_stopped): if the text hasn't
	changed we need to call e_day_view_update_event_label() to show the
	times again if necessary. Fixes bug #1813.

	* gui/dialogs/comp-editor.c (comp_editor_destroy): destroy the
	CompEditorPage objects here rather than in close_dialog(), after the
	widgets have been destroyed. We do this because the widgets have lots
	of signal handlers connected with the CompEditorPage objects as the
	signal data, so we want to ensure that the data pointer is always
	valid. (Alternatively we could disconnect all the handlers when the
	CompEditorPage objects are destroyed, or use connect_while_alive()).
	Fixes bug #7543.

	Note: there is still a small bug in that if you type in a time and
	then hit 'Save and Close', the time won't be saved. I'm not sure
	where this should be fixed - should the actions which close the
	dialog grab the focus to the toplevel, so any widgets currently
	being edited finish the edit and emit 'changed'?

	* gui/dialogs/recurrence-page.c (append_exception): use
	gtk_clist_set_row_data_full() so freeing is handled automatically by
	the GtkClist. This helps avoid problems at destroy-time.
	(exception_delete_cb): just call gtk_clist_remove() now. No need to
	free the row data as GtkCList now handles it.
	(recurrence_page_destroy): no need to free the data in the clist.

	* gui/dialogs/alarm-page.c: ditto.

	* gui/dialogs/meeting-page.c: ditto.
	(etable_destroy_cb): save the ETable state in this new handler cb
	rather than in the destroy method, since the widget will already be
	destroyed by then.

svn path=/trunk/; revision=12575
2001-09-04 00:36:49 +00:00