aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-meeting-time-sel.c
Commit message (Collapse)AuthorAgeFilesLines
* listen for the time editors to changeJP Rosevear2002-08-151-2/+9
| | | | | | | | | | | | | | | | | | | | | | | 2002-08-14 JP Rosevear <jpr@ximian.com> * gui/dialogs/cal-prefs-dialog.c (init_widgets): listen for the time editors to change (cal_prefs_dialog_start_of_day_changed): make sure the start is never after the end (cal_prefs_dialog_end_of_day_changed): make sure the end is never after the start * gui/e-meeting-time-sel.c (e_meeting_time_selector_set_working_hours): make sure to show a minimum of 1 hour for work day * gui/e-day-view-main-item.c (e_day_view_main_item_draw): calculate the work/not working color boxes to the nearest pixel, rather the the nearest time division Fixes #10286, #26285 svn path=/trunk/; revision=17776
* add back protoJP Rosevear2002-06-251-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* use new column enums (set_value_at): emit pre-change/cell change signalsJP Rosevear2002-02-161-70/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-02-14 JP Rosevear <jpr@ximian.com> * gui/e-meeting-model.c: use new column enums (set_value_at): emit pre-change/cell change signals (destroy): destroy refresh_queue and refresh_data (init): init new elements (refresh_queue_add): if the attendee is being refreshed already, possibly update the start/end times to look for and update the callback info, otherwise add it to the queue (refresh_queue_remove): remove a refreshing attende from the queue (process_callbacks): make all the callbacks and remove the attendee from the queue (process_free_busy): process the callbacks immediately if parsing fails or on successful completion of processing (async_close): process free busy (cursor_cb): we're only looking for one at a time now (refresh_busy_periods): idle callback to start processing the queue (e_meeting_model_refresh_all_busy_periods): add every row to the queue (e_meeting_model_refresh_busy_periods): add a single row to the queue * gui/e-meeting-model.h: new protos, enum the columns * gui/e-meeting-time-sel.c: use new compare time function (e_meeting_time_selector_construct): listen for a cell changed signal and use separate callbacks for rows_inserted and rows_deleted (e_meeting_time_selector_refresh_free_busy): util function to refresh free busy info (e_meeting_time_selector_on_update_free_busy): use above (rows_inserted_cb): refresh free busy on the new rows (cell_changed_cb): refresh free busy on the row when the address changes (rows_deleted_cb): redraw * gui/e-meeting-utils.[hc]: a holding spot for a meeting time comparison function * gui/Makefile.am: compile new files svn path=/trunk/; revision=15741
* properly convert the dtstart and dtend times if they are UTC (cursor_cb):JP Rosevear2001-12-121-4/+20
| | | | | | | | | | | | | | | | | | | | | | | | | 2001-12-11 JP Rosevear <jpr@ximian.com> * gui/e-meeting-model.c (process_free_busy_comp): properly convert the dtstart and dtend times if they are UTC (cursor_cb): if we don't have anybody to get f/b info for, process the callbacks immediately (e_meeting_model_refresh_busy_periods): take start/end times, calculate the timet values with object timezone (e_meeting_model_etable_model_to_view_row): proper cast (e_meeting_model_etable_view_to_model_row): ditto (async_open): bail out if we couldn't open properly * gui/e-meeting-time-sel.c (e_meeting_time_selector_on_update_free_busy): use defines for determining the number of days before and after of free busy to request (e_meeting_time_selector_update_dates_shown): use defines for the number of days shown * gui/e-meeting-model.h: update proto svn path=/trunk/; revision=15000
* Explicitly destroy the EMeetingModel. This is a hack to work aroundJon Trowbridge2001-12-071-0/+5
| | | | | | | | | | | | | | | | | | | 2001-12-06 Jon Trowbridge <trow@ximian.com> * gui/dialogs/event-editor.c (event_editor_destroy): Explicitly destroy the EMeetingModel. This is a hack to work around problems with the reference counting; we are still leaking the EMeetingModels. * gui/e-meeting-time-sel.c (e_meeting_time_selector_construct): Ref our EMeetingModel. (e_meeting_time_selector_destroy): Unref the model. * gui/e-meeting-model.c (destroy): Properly destroy corba_select_names with a call to bonobo_object_release_unref. (Fixes 14002) svn path=/trunk/; revision=14919
* don't let an empty event occur for all days when auto scrollingJP Rosevear2001-11-091-0/+10
| | | | | | | | | | 2001-11-08 JP Rosevear <jpr@ximian.com> * gui/e-meeting-time-sel.c (e_meeting_time_selector_timeout_handler): don't let an empty event occur for all days when auto scrolling svn path=/trunk/; revision=14640
* emit changed signal (e_meeting_time_selector_on_end_time_changed): emitJP Rosevear2001-11-081-18/+46
| | | | | | | | | | | | | | | | | | 2001-11-07 JP Rosevear <jpr@ximian.com> * gui/e-meeting-time-sel.c (e_meeting_time_selector_on_start_time_changed): emit changed signal (e_meeting_time_selector_on_end_time_changed): emit changed signal, if end time is now before start time and all day event, make sure a whole day is still selected (e_meeting_time_selector_drag_meeting_time): calculate the first and last_time's in whole days for all day events (e_meeting_time_selector_timeout_handler): calculate the drag time to be whole days for all day events and scroll the canvas even if we don't update the time so the user can see where they're headed svn path=/trunk/; revision=14617
* add a changed signal (e_meeting_time_selector_construct): emit changedJP Rosevear2001-11-061-46/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-11-05 JP Rosevear <jpr@ximian.com> * gui/e-meeting-time-sel.c (e_meeting_time_selector_class_init): add a changed signal (e_meeting_time_selector_construct): emit changed signal (e_meeting_time_selector_set_meeting_time): ditto (e_meeting_time_selector_set_all_day): set the all day setting (e_meeting_time_selector_autopick): emit changed signal (e_meeting_time_selector_find_nearest_interval): find proper interval when in all day mode (e_meeting_time_selector_find_nearest_interval_backward): ditto (e_meeting_time_selector_drag_meeting_time): for all day events, move the time when past the 12 hour mark, and and always make sure 1 full day is selected, emit changed signal when appropriate (e_meeting_time_selector_update_start_date_edit): set date and time of day together (e_meeting_time_selector_update_end_date_edit): ditto, and adjust display time if all day event * gui/e-meeting-time-sel-item.c (e_meeting_time_selector_item_draw): remove unused variable (e_meeting_time_selector_item_button_press): for all day mode, make the interval a whole day * gui/dialogs/schedule-page.c (update_time): set the meeting time selector setting instead of manual mucking with the e-date-edit widgets (init_widgets): listen to the changed signal of the meeting time selector instead of propagating multiple events as it updates * gui/dialogs/event-page.c (update_time): block time zone change signals svn path=/trunk/; revision=14601
* don't overwrite memory (e_meeting_time_selector_on_end_time_changed):JP Rosevear2001-10-311-2/+8
| | | | | | | | | | | 2001-10-30 JP Rosevear <jpr@ximian.com> * gui/e-meeting-time-sel.c (e_meeting_time_selector_on_start_time_changed): don't overwrite memory (e_meeting_time_selector_on_end_time_changed): ditto svn path=/trunk/; revision=14506
* if we are doing all day stuff, make the drag increment 1 day at a timeJP Rosevear2001-10-311-6/+14
| | | | | | | | | | 2001-10-30 JP Rosevear <jpr@ximian.com> * gui/e-meeting-time-sel.c (e_meeting_time_selector_drag_meeting_time): if we are doing all day stuff, make the drag increment 1 day at a time svn path=/trunk/; revision=14492
* move in whole day increments if we are in all day modeJP Rosevear2001-10-311-26/+24
| | | | | | | | | | | | | | | | | | | | | | | | 2001-10-30 JP Rosevear <jpr@ximian.com> * gui/e-meeting-time-sel-item.c (e_meeting_time_selector_item_button_press): move in whole day increments if we are in all day mode * gui/e-meeting-time-sel.c (e_meeting_time_selector_on_start_time_changed): get rid of localtime call (e_meeting_time_selector_on_end_time_changed): ditto (e_meeting_time_selector_update_start_date_edit): set the date editor using the meeting time fields directly (e_meeting_time_selector_update_end_date_edit): ditto * gui/dialogs/schedule-page.c (update_time): do the set_show_time stuff first * conduits/calendar/calendar-conduit.c (process_multi_day): don't adjust the time, set the default timezone for date values svn path=/trunk/; revision=14475
* count the actual attendees (doesn't include people delegatingJP Rosevear2001-10-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-10-30 JP Rosevear <jpr@ximian.com> * gui/e-meeting-model.c (e_meeting_model_count_actual_attendees): count the actual attendees (doesn't include people delegating * gui/e-meeting-time-sel.c: use e_meeting_model_count_actual_attendees (renamed) * gui/e-meeting-time-sel-item.c: use e_meeting_model_etable_view_to_model_row calls instead of calling on the model directly, use e_meeting_model_count_actual_attendees * gui/e-meeting-model.c (e_meeting_model_etable_model_to_view_row): get the real mapping (e_meeting_model_etable_view_to_model_row): ditto (get_key): e-table-without callback (duplicate_key): ditto (free_gotten_key): ditto (free_duplicated_key): ditto (init): create without model (e_meeting_model_etable_from_model): build etable from without model * gui/e-meeting-model.h: update protos * gui/dialogs/meeting-page.c (right_click_cb): convert row from view to model row svn path=/trunk/; revision=14462
* use libical-evolution.laDamon Chaplin2001-10-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-10-29 Damon Chaplin <damon@ximian.com> * importers/Makefile.am (evolution_calendar_importer_LDADD): * gui/Makefile.am (evolution_calendar_LDADD): * cal-util/Makefile.am (test_recur_LDADD): * cal-client/Makefile.am (client_test_LDADD): use libical-evolution.la * gui/dialogs/schedule-page.c: save the timezone passed in for the start time, so if our times are changed we use this. Also, if the end time was passed in in a different timezone, convert it. Also hide the time fields for DATE values. Note that DATE values still do not work. * gui/dialogs/meeting-page.glade: changed "Invite Others" to "Invite Others..." to be consistent with the other page. * gui/dialogs/event-page.c (times_updated): (all_day_event_toggled_cb): set is_date if appropriate. * gui/e-itip-control.c (write_label_piece): convert all UTC times to the current timezone. Outlook sends simple, non-recurring, events as UTC times, which isn't very useful. svn path=/trunk/; revision=14397
* Fixing the license text.Ettore Perazzoli2001-10-281-1/+0
| | | | svn path=/trunk/; revision=14211
* Update the licensing information to require version 2 of the GPLEttore Perazzoli2001-10-271-2/+2
| | | | | | (instead of version 2 or any later version). svn path=/trunk/; revision=14190
* convert the formatted date to UTF-8.Damon Chaplin2001-10-271-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* track the spacer vbox (e_meeting_time_selector_style_set): make sure theJP Rosevear2001-10-251-8/+76
| | | | | | | | | | | | | | | | | | | | | | | 2001-10-24 JP Rosevear <jpr@ximian.com> * gui/e-meeting-time-sel.c (e_meeting_time_selector_construct): track the spacer vbox (e_meeting_time_selector_style_set): make sure the rows are the correct size for the style * gui/e-meeting-time-sel-item.c (e_meeting_time_selector_item_paint_day_top): slight adjustments to where the text is drawn * gui/e-meeting-time-sel.h: new member * gui/e-meeting-model.c (build_etable): ensure uniform row height * conduits/todo/todo-conduit.c (comp_from_remote_record): mark status as completed in appropriate places and don't overwrite legitimate percentages and such svn path=/trunk/; revision=13989
* adjust the display canvas when the table scrollsJP Rosevear2001-10-241-2/+19
| | | | | | | | | | | 2001-10-23 JP Rosevear <jpr@ximian.com> * gui/e-meeting-time-sel.c (e_meeting_time_selector_table_vadjustment_changed): adjust the display canvas when the table scrolls (e_meeting_time_selector_construct): listen for table scrolling svn path=/trunk/; revision=13951
* no longer set the scrollbar policy hereJP Rosevear2001-10-241-1/+3
| | | | | | | | | | | | | | | | 2001-10-23 JP Rosevear <jpr@ximian.com> * gui/e-meeting-model.c (build_etable): no longer set the scrollbar policy here * gui/e-meeting-time-sel.c (e_meeting_time_selector_update_main_canvas_scroll_region): add an extra row to the height so the click to add row can be properly seen (e_meeting_time_selector_construct): set the scrollbar policy for the etable scrolled svn path=/trunk/; revision=13948
* we don't need to save the stateJP Rosevear2001-10-221-7/+0
| | | | | | | | | | | | | | | | 2001-10-22 JP Rosevear <jpr@ximian.com> * gui/dialogs/meeting-page.c (meeting_page_destroy): we don't need to save the state * gui/e-meeting-time-sel.c (e_meeting_time_selector_destroy): ditto * gui/e-meeting-model.c (build_etable): listen for the etable being destroyed (table_destroy_cb): save the state when the etable is destroyed svn path=/trunk/; revision=13872
* call the invite others dialog in the modelJP Rosevear2001-10-191-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-10-18 JP Rosevear <jpr@ximian.com> * gui/e-meeting-time-sel.c (e_meeting_time_selector_on_invite_others_button_clicked): call the invite others dialog in the model * gui/e-meeting-attendee.c (e_meeting_attendee_get_atype): pick attendee type based on role and cutype * gui/e-meeting-attendee.h: remove proto * gui/Makefile.am: compile select names idl * gui/e-meeting-model.h: new proto * gui/dialogs/meeting-page.c: remove invite others dialogs bits from here * gui/e-meeting-model.c (e_meeting_model_invite_others_dialog): and put them here * gui/dialogs/Makefile.am: compile corba bits in parent dir * gui/dialogs/comp-editor-util.h: reflect above in includes * gui/dialogs/e-delegate-dialog.c: ditto * gui/dialogs/schedule-page.c: ditto and clean includes svn path=/trunk/; revision=13775
* gui/e-meeting-time-sel.cJP Rosevear2001-10-191-3/+11
| | | | | | | | | | | | | | | | | 2001-10-18 JP Rosevear <jpr@ximian.com> * gui/e-meeting-time-sel.c * gui/e-meeting-time-sel-item.c (e_meeting_time_selector_item_paint_day_top): use 12 or 24 hour settings * gui/e-meeting-time-sel.c: strings for 12 hour setting (e_meeting_time_selector_construct): increase width slightly * gui/e-meeting-time-sel.h: extern the new char array svn path=/trunk/; revision=13759
* Warning fixes courtesy of Chris Lahey <clahey@ximian.com>.Federico Mena Quintero2001-09-261-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | 2001-09-25 Federico Mena Quintero <federico@ximian.com> Warning fixes courtesy of Chris Lahey <clahey@ximian.com>. * gui/e-itip-control.c (write_html): Warning fixes. Also, don't strdup() more than necessary. * gui/e-meeting-time-sel.c (e_meeting_time_selector_refresh_cb): Warning fixes. * gui/itip-utils.c (itip_addresses_get): Warning fixes. * gui/print.c (print_day_background): Warning fixes. * gui/dialogs/alarm-options.c (alarm_to_aalarm_widgets): Warning fixes. (alarm_to_palarm_widgets): Likewise. * gui/dialogs/delete-comp.c: #include "../calendar-config.h" svn path=/trunk/; revision=13120
* A page that shows the meeting time selector and free/busy data forJP Rosevear2001-09-191-0/+2622
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