* 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-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-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-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
* 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
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-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-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-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-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-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-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-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-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 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 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
* 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-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
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
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 <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-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-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-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-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-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-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 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-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-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-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-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
* 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-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-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-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-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-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-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-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