aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/dialogs/event-page.c
Commit message (Collapse)AuthorAgeFilesLines
* added option to hide completed tasks after a given number ofDamon Chaplin2001-08-191-1/+7
| | | | | | | | | | | | | | | | | 2001-08-18 Damon Chaplin <damon@ximian.com> * gui/dialogs/cal-prefs-dialog.glade: added option to hide completed tasks after a given number of minutes/hours/days. Unfinished. * gui/dialogs/event-page.c (event_page_fill_component): initialize zone to NULL to avoid a warning. (contacts_clicked_cb): work around a bug in SelectNames by notifying that the page has changed when you click the 'Contacts' button. Otherwise it is easy to lose changes. * gui/dialogs/task-page.c (contacts_clicked_cb): ditto. svn path=/trunk/; revision=12215
* hide the timezone fields for all-day events. We will use DATE values forDamon Chaplin2001-08-171-8/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-08-16 Damon Chaplin <damon@ximian.com> * gui/dialogs/event-page.c: hide the timezone fields for all-day events. We will use DATE values for these eventually, and these don't have timezones associated with them. Currently we just use the default timezone for all-day events, as a workaround until we have DATE values working. * gui/dialogs/comp-editor-util.c (comp_editor_new_date_edit): added make_time_insensitive flag. Though we may not use it. * gui/dialogs/event-page.glade: made the 'All day event' toggle right-aligned, so it doesn't move when the other widgets are shown and hidden. * gui/e-timezone-entry.c (e_timezone_entry_set_default_timezone): new function to set the default timezone of the widget. If the current timezone setting matches the default then the entry field is hidden. Most people won't use timezones so this makes the GUI simpler. * gui/dialogs/event-page.c (init_widgets): * gui/dialogs/task-page.c (init_widgets): set the default timezone using the above function. * gui/dialogs/task-page.c (task_page_fill_widgets): if the start date or due date is not set, we use the default timezone, so the user doesn't have to set this each time they set the date. svn path=/trunk/; revision=12137
* New function to strip surrounding whitespace from a string of categoriesFederico Mena Quintero2001-08-171-2/+6
| | | | | | | | | | | | | | | 2001-08-16 Federico Mena Quintero <federico@ximian.com> * gui/dialogs/comp-editor-util.c (comp_editor_strip_categories): New function to strip surrounding whitespace from a string of categories entered by the user. * gui/dialogs/task-page.c (task_page_fill_component): Use comp_editor_strip_categories(). * gui/dialogs/event-page.c (event_page_fill_component): Likewise. svn path=/trunk/; revision=12122
* added support for the Contacts field. Note that I'm not sure what weDamon Chaplin2001-08-151-9/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-08-14 Damon Chaplin <damon@ximian.com> * gui/dialogs/task-page.c: * gui/dialogs/event-page.c: added support for the Contacts field. Note that I'm not sure what we should put in the iCalendar CONTACT properties. Currently we put "name <email>", but it isn't recognized as a contact when we reopen the dialog, so we may need more info here. Also we currently use a simple parser to parse the above format, and we should maybe use some camel function. * gui/dialogs/task-page.glade: * gui/dialogs/event-page.glade: replaced the GtkEntry fields for the Contacts with a GtkEventBox which we put the BonoboControl in at runtime. * gui/dialogs/meeting-page.c (invite_entry_changed): added FIXMEs since it doesn't seem to be freeing the EDestination stuff. JP? * gui/dialogs/comp-editor-util.c: added bunch of utility functions to handle the Contacts field in the main Event and Task pages. * gui/gnome-cal.c: added visible_start and visible_end fields, so we only emit the 'dates-shown-changed' signal when really necessary. Currently changing the folder title bar label results in a complete redraw of the Evolution window (silly GtkLabel queueing a resize), so we want to avoid that as much as possible. (gnome_calendar_new_appointment_for): only move the event's end time to the end of the day if it is not already 00:00:00. * gui/e-week-view-event-item.c: * gui/e-week-view.c: * gui/e-day-view.c: added support for double-clicking on an event to open it, and for double-clicking on the background to create a new event. There is still a minor problem to sort out, but it basically works. * cal-util/cal-component.c: added support for CONTACT properties, mainly by copying the code for COMMENT properties which are exactly the same type. * gui/e-day-view.c (e_day_view_realize): use the same color for the top canvas background as the shortcut bar, to make it look a little nicer (I think). Although we still have the theme problem with hard-coded colors. svn path=/trunk/; revision=12039
* turn on word-wrap for the description fields. Fixes bug #6821.Damon Chaplin2001-08-121-1/+4
| | | | | | | | | | 2001-08-11 Damon Chaplin <damon@ximian.com> * gui/dialogs/event-page.c (init_widgets): * gui/dialogs/task-page.c (init_widgets): turn on word-wrap for the description fields. Fixes bug #6821. svn path=/trunk/; revision=11922
* added 'different_timezone' fields to EDayViewEvent and EWeekViewEvent, toDamon Chaplin2001-08-071-0/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-08-06 Damon Chaplin <damon@ximian.com> * gui/e-week-view.h: * gui/e-day-view.h: added 'different_timezone' fields to EDayViewEvent and EWeekViewEvent, to note that the event is in a different timezone. We now compute this once when we add the event to the array, rather than each time we draw the event. If it is set, we will draw the timezone icon next to the event. * gui/e-day-view-main-item.c: take transparency into account when drawing the blue vertical bars to represent busy time. * gui/tag-calendar.c: take transparency into account when tagging the mini calendar. * gui/e-calendar-table.c (e_calendar_table_init): removed the "None" options for transparency and classification, since these properties have defaults anyway, so we may as well use those to keep it simple. Also use "Free" and "Busy" for transparency, rather than "Transparent" and "Opaque". * gui/calendar-model.c: updated classification & transparency code as above. * gui/e-calendar-table.etspec: changed "Transparency" to "Show Time As" since people have a chance of understanding that. * gui/e-week-view.c: * gui/e-day-view.c: * gui/gnome-cal.c: added functions to get the visible time range. * gui/calendar-commands.c: finished stuff to set the folder bar label to the dates currently displayed. * gui/control-factory.c (control_factory_new_control): connected signal to update the folder title bar label when the dates shown are changed. I had to connect it here since we need the BonoboControl in the callback, and I don't know how to get the control from the widget. * gui/tasks-control.c (tasks_control_activate): clear the folder bar label. We could display something here at some point. * gui/dialogs/recurrence-page.glade: changed "_Add" to "A_dd", since we have an "_Actions" menu. (These also use Alt+key, right?) * gui/dialogs/event-page.glade: * gui/dialogs/event-page.c: added 'Show Time As' field, which is really the TRANSP property but with a better name! Also changed one of the "_Confidential" to "Con_fidential" since we already have "_Contacts" using the same 'C' key. * pcs/cal-backend-file.c (cal_backend_file_get_free_busy): skip events that are TRANSPARENT. Also added comment as this code looks inefficient. * cal-util/cal-component.c: removed stuff for comparing timezones. * gui/comp-util.c (cal_comp_util_compare_event_timezones): moved the above function here, and updated it to compare the UTC offsets of the times as well as the TZIDs. svn path=/trunk/; revision=11717
* I18n fixes.Chyla Zbigniew2001-08-041-1/+1
| | | | | | | | | | | * gui/dialogs/event-page.c (summary_changed_cb): Use e_dialog_editable_get instead of gtk_editable_get_chars (we need UTF-8 string). * gui/itip-utils.c: Added missing #include <config.h> svn path=/trunk/; revision=11619
* try to use builtin timezones before getting them from the server. WhenDamon Chaplin2001-07-171-12/+25
| | | | | | | | | | | | | | | | | | | | | | 2001-07-16 Damon Chaplin <damon@ximian.com> * gui/dialogs/task-page.c (task_page_fill_widgets): * gui/dialogs/event-page.c (event_page_fill_widgets): try to use builtin timezones before getting them from the server. When creating new events/tasks the timezones may not be on the server. * gui/dialogs/event-page.c (event_page_fill_widgets): for all-day events we subtract a day from the end date rather than add it. * gui/dialogs/e-timezone-dialog.c (on_map_leave): ignore the event if it isn't a GDK_CROSSING_NORMAL event. For some reason we are getting leave events when the button is pressed, which meant that selecting timezones in the map didn't work. * gui/dialogs/comp-editor-util.c (comp_editor_dates): * gui/print.c (print_date_label): only free icaltimetype if not NULL. svn path=/trunk/; revision=11144
* Fixes bug #4380 as well as some leftovers from the days of struct tm andFederico Mena Quintero2001-07-121-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-11 Federico Mena Quintero <federico@ximian.com> Fixes bug #4380 as well as some leftovers from the days of struct tm and some uninitialized values. * gui/gnome-cal.c (gnome_calendar_on_date_navigator_selection_changed): Initialize the icaltimetype structures completely. (gnome_calendar_init): Do not reset priv->zone to NULL here, since it was set by gnome_calendar_update_config_settings() from setup_widgets(). * gui/calendar-model.c (set_completed): Do not set is_daylight. * gui/e-day-view.c (e_day_view_convert_grid_position_to_time): Likewise. * gui/e-week-view.c (e_week_view_set_timezone): Likewise. * cal-util/cal-recur.c (generate_instances_for_chunk): Likewise, and initialize start_tt and end_tt completely. * cal-util/timeutil.c (time_year_begin_with_zone): Likewise. (time_month_begin_with_zone): Likewise. (time_week_begin_with_zone): Likewise. (time_day_begin_with_zone): Likewise. (time_day_end_with_zone): Likewise. (time_from_isodate): Likewise. * gui/dialogs/task-page.c (task_page_fill_component): Initialize icaltime before using it. * gui/dialogs/event-page.c (event_page_fill_component): Likewise. * gui/dialogs/recurrence-page.c (simple_recur_to_comp): Removed an unused icaltimetype. * gui/dialogs/task-details-page.c (task_details_page_fill_component): Initialize icaltime before using it. svn path=/trunk/; revision=11024
* more timezone updates. I'm pretty much done with the calendar code now,Damon Chaplin2001-07-111-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-10 Damon Chaplin <damon@ximian.com> * gui/calendar-model.c: * gui/e-calendar-table.c: * gui/e-day-view-main-item.c: * gui/e-day-view-top-item.c: * gui/e-day-view.[hc]: * gui/e-week-view.c: * gui/gnome-cal.c: * gui/print.c: * gui/dialogs/cal-prefs-dialog.c: * gui/dialogs/comp-editor-util.c: * gui/dialogs/event-page.c: * pcs/cal-backend-file.c: * pcs/query.c: * cal-util/cal-component.[hc]: * cal-util/cal-recur.c: * cal-util/timeutil.[hc]: * cal-client/cal-client.[hc]: more timezone updates. I'm pretty much done with the calendar code now, except for alarms and conduits, which Federico and JP know more about. And there are a couple of other minor things to fix. But it is still pretty buggy. svn path=/trunk/; revision=10984
* Fixes bug #4018 and what would be the analogous bugs for the otherFederico Mena Quintero2001-07-051-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-04 Federico Mena Quintero <federico@ximian.com> Fixes bug #4018 and what would be the analogous bugs for the other component editors. * gui/dialogs/comp-editor-page.h (CompEditorPageClass): New virtual method "::focus_main_widget()". * gui/dialogs/comp-editor-page.c (comp_editor_page_focus_main_widget): New function. * gui/dialogs/comp-editor.c (comp_editor_append_page): If we are inserting the main page, ask it to focus its main widget. * gui/dialogs/alarm-page.c (alarm_page_focus_main_widget): Implemented. * gui/dialogs/event-page.c (event_page_focus_main_widget): Implemented. #include "e-util/e-categories-config.h". * gui/dialogs/meeting-page.c (meeting_page_focus_main_widget): Implemented. * gui/dialogs/recurrence-page.c (recurrence_page_focus_main_widget): Implemented. * gui/dialogs/task-details-page.c (task_details_page_focus_main_widget): Implemented. * gui/dialogs/task-page.c (task_page_focus_main_widget): Implemented. svn path=/trunk/; revision=10784
* cal-client/cal-client.[hc] cal-util/cal-component.cDamon Chaplin2001-07-031-129/+217
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-03 Damon Chaplin <damon@ximian.com> * cal-client/cal-client.[hc] * cal-util/cal-component.c * cal-util/cal-recur.[hc] * cal-util/test-recur.c * cal-util/timeutil.c * gui/calendar-config.c * gui/calendar-model.[hc] * gui/comp-util.[hc] * gui/e-calendar-table.c * gui/e-day-view-main-item.c * gui/e-day-view-top-item.c * gui/e-day-view.[hc] * gui/e-itip-control.c * gui/e-timezone-entry.[hc] * gui/e-week-view.[hc] * gui/gnome-cal.[hc] * gui/goto.c * gui/tag-calendar.[hc] * gui/dialogs/cal-prefs-dialog.c * gui/dialogs/comp-editor-page.[hc] * gui/dialogs/comp-editor-util.[hc] * gui/dialogs/comp-editor.c * gui/dialogs/e-timezone-dialog.[hc] * gui/dialogs/event-page.c * gui/dialogs/meeting-page.c * gui/dialogs/recurrence-page.c * gui/dialogs/task-details-page.c * gui/dialogs/task-details-page.glade * gui/dialogs/task-page.c * idl/evolution-calendar.idl * pcs/cal-backend-file.c * pcs/cal-backend.c * pcs/cal-backend.h * pcs/cal.c * pcs/query.c: timezone changes everywhere. There's still quite a few things to update, and its not working well at present. svn path=/trunk/; revision=10729
* use the new self-contained e_categories_config_open_dialog_for_entry()Rodrigo Moya2001-07-031-18/+1
| | | | | | | | | | | | | | | | | 2001-07-02 Rodrigo Moya <rodrigo@ximian.com> * gui/dialogs/task-page.c (categories_clicked_cb): * gui/dialogs/event-page.c (categories_clicked_cb): use the new self-contained e_categories_config_open_dialog_for_entry() function * gui/e-week-view-event-item.c (e_week_view_item_draw_icons): * gui/e-day-view-top-item.c (e_day_view_reshape_long_event): (e_day_view_reshape_day_event): ditto * gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event): use e_categories_config_get_icon_for() to retrieve the icon associated with each category svn path=/trunk/; revision=10699
* Renamed the occur field to occur_start; added an occur_end field. This wayFederico Mena Quintero2001-06-271-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-06-26 Federico Mena Quintero <federico@ximian.com> * idl/evolution-calendar.idl (CalAlarmInstance): Renamed the occur field to occur_start; added an occur_end field. This way we can present the complete times for the occurrence from the server. * cal-util/cal-component.h (CalAlarmInstance): Likewise. * pcs/cal-backend-file.c (add_alarm_occurrences_cb): Fill the new fields appropriately. (generate_absolute_triggers): Likewise; we use -1 in case the component has no DTSTART or DTEND because there are no meaningful occurrence dates here. (fill_alarm_instances_seq): Fill in the new fields. * cal-client/cal-client.c (build_alarm_instance_list): Likewise. * gui/alarm-notify/alarm-notify-dialog.c (alarm_notify_dialog): Take in both the occur_start and occur_end times. * gui/goto.c (goto_dialog): Free the dlg structure on the bail-out cases. * gui/dialogs/event-page.c (get_widgets): Do not assert if we cannot find the main widget; just return FALSE. * gui/dialogs/alarm-page.c (get_widgets): Likewise. * gui/dialogs/task-page.c (get_widgets): Likewise. * gui/dialogs/task-details-page.c (get_widgets): Likewise. * gui/dialogs/meeting-page.c (get_widgets): Likewise. svn path=/trunk/; revision=10517
* if the timezones of the start and end of the event are the same, then ifDamon Chaplin2001-06-201-0/+56
| | | | | | | | | | | 2001-06-19 Damon Chaplin <damon@ximian.com> * gui/dialogs/event-page.c: if the timezones of the start and end of the event are the same, then if the start timezone is changed we change the end timezone as well, since that is what most users will want. svn path=/trunk/; revision=10323
* added a 'Time zone' setting. Also rearranged a little, adding a newDamon Chaplin2001-06-201-15/+0
| | | | | | | | | | | | | | | | | | | 2001-06-19 Damon Chaplin <damon@ximian.com> * gui/dialogs/cal-prefs-dialog.c: added a 'Time zone' setting. Also rearranged a little, adding a new 'General' page, since we had too many settings on the 'Calendar' page. * gui/e-timezone-entry.[hc]: * gui/dialogs/e-timezone-dialog.[hc]: * gui/dialogs/comp-editor.c: * gui/dialogs/comp-editor-page.[hc]: * gui/dialogs/event-page.c: * gui/dialogs/task-details-page.c: * gui/dialogs/task-page.c: removed CalClient stuff. The timezone dialog now uses the timezone data directly from the client's libical library. svn path=/trunk/; revision=10321
* added timezone fields. Also moved the 'All Day' flag into an alignment soDamon Chaplin2001-06-191-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-06-19 Damon Chaplin <damon@ximian.com> * gui/dialogs/task-details-page.glade: * gui/dialogs/task-page.glade: * gui/dialogs/event-page.glade: added timezone fields. Also moved the 'All Day' flag into an alignment so it doesn't mess up the height of the other widgets. * gui/dialogs/task-details-page.c: * gui/dialogs/task-page.c: * gui/dialogs/event-page.c: added code to handle the timezone fields. This still needs to be hooked up when the libical code is finished. * gui/dialogs/e-timezone-dialog.c (on_map_leave): new function to clear the preview label and turn off the highlighted point on the map when you move the mouse outside it. (find_selected_point): new function to try to find the point corresponding to the text in the combo. (on_combo_changed): call the above function to update the selected point. (on_map_leave): turn off the preview point & label when the mouse leaves the map. (e_timezone_dialog_set_cal_client): changed it so that selecting "None" clears the entry. * gui/dialogs/comp-editor-page.[hc]: added set_cal_client() virtual method since some pages need to access the CalClient to get timezone information. Also added comp_editor_page_set_cal_client() to call the virtual method. * gui/dialogs/comp-editor.c (comp_editor_set_cal_client): called comp_editor_page_set_cal_client() on each page. * gui/calendar-config.c: added functions to get & set the timezone. svn path=/trunk/; revision=10285
* use new funcJP Rosevear2001-06-021-4/+4
| | | | | | | | | | | | | | | | | | | | | 2001-06-01 JP Rosevear <jpr@ximian.com> * gui/dialogs/event-page.c (make_date_edit): use new func * gui/dialogs/task-details-page.c (task_details_page_create_date_edit): ditto * gui/dialogs/recurrence-page.c (make_ending_until_special): ditto * gui/dialogs/comp-editor-util.c (comp_editor_new_date_edit): rename date_edit_new function * gui/dialogs/comp-editor-util.h: new proto * gui/dialogs/task-page.c (task_page_set_summary): no longer any need to block/unblock the handler (task_page_create_date_edit): use new func svn path=/trunk/; revision=10093
* renamed from editor-page for consistency, more complete implementationJP Rosevear2001-06-021-137/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-06-01 JP Rosevear <jpr@ximian.com> * gui/dialogs/comp-editor-page.[hc]: renamed from editor-page for consistency, more complete implementation * gui/dialogs/comp-editor.[hc]: More complete implementation * gui/dialogs/*-page.*: The various pages needed to construct the event and task dialogs * gui/dialogs/comp-editor-util.[hc]: useful utility functions for the component editor pages to use * gui/dialogs/Makefile.am: Build and install new files * gui/event-editor*: Remove, obsoleted by the new comp-editor stuff * gui/dialogs/task-editor-dialog.glade: ditto * gui/e-calendar-table.c (open_task): update to use comp editor stuff * gui/e-tasks.c (e_tasks_new_task): ditto * gui/gnome-cal.c (gnome_calendar_edit_object): ditto * gui/Makefile.am: don't build non-existent files nor try to install them svn path=/trunk/; revision=10088
* Finished porting from the old event-editor.c. Made it store a clone of theFederico Mena Quintero2001-05-241-5/+30
| | | | | | | | | | | | | | | | | | | 2001-05-23 Federico Mena Quintero <federico@ximian.com> * gui/dialogs/recurrence-page.c: Finished porting from the old event-editor.c. Made it store a clone of the component for when we need to expand the recurrence set. 2001-05-22 Federico Mena Quintero <federico@ximian.com> * gui/dialogs/event-page.c (event_page_get_dates): New function. * gui/dialogs/editor-page.c (editor_page_set_dates): Renamed from editor_page_set_dtstart(); now sets both DTSTART and DTEND. * gui/dialogs/alarm-page.c (alarm_page_set_dates): Ahem, it is a svn path=/trunk/; revision=9953
* Split the event and task editors into different objects for the separateFederico Mena Quintero2001-05-171-0/+908
2001-05-16 Federico Mena Quintero <federico@ximian.com> Split the event and task editors into different objects for the separate pages; this way they can be shared by both editors. * gui/dialogs/editor-page.[ch]: New abstract class for a page in a calendar component editor. * gui/dialogs/event-page.[ch]: Main page of an event editor. * gui/dialogs/alarm-page.[ch]: Alarm page of a calendar component editor. * gui/dialogs/recurrence-page.[ch]: Recurrence page of a calendar component editor. * gui/dialogs/event-page.c (event_page_fill_widgets): Eeek, this was missing a bunch of break statements. (event_page_fill_component): Use a temporary variable rather than allocating a struct icaltimetype. * gui/dialogs/alarm-page.c (get_alarm_string): Do not use fixed-size buffers. (alarm_page_fill_widgets): Use cal_obj_uid_list_free(). (append_reminder): Now the list stores the plain CalComponentAlarm structures in the row data. We do *NOT* want to be frobbing the component's data directly. Rather, we clone the alarms from the component and maintain them on our own. (alarm_page_fill_component): Clone the alarms before adding them to the component so that we maintain the invariant that the alarm structures in the list did *not* come from the component. * cal-util/cal-component.c (cal_component_add_alarm): Added documentation. (cal_component_remove_alarm): Added documentation. (cal_component_remove_alarm): Do a lookup in our hash table of alarms instead of scanning the whole component. (CalComponentAlarm): Removed the `parent' field, since it was unused. (cal_component_free_alarm_uids): Removed function, since cal_component_get_alarm_uids() is documented so that the user will know that he must use cal_obj_uid_list_free(). (cal_component_alarm_clone): New function. svn path=/trunk/; revision=9861