Evolution consists of entirely too many small utility libraries, which
increases linking and loading time, places a burden on higher layers of
the application (e.g. modules) which has to remember to link to all the
small in-tree utility libraries, and makes it difficult to generate API
documentation for these utility libraries in one Gtk-Doc module.
Merge the following utility libraries under the umbrella of libeutil,
and enforce a single-include policy on libeutil so we can reorganize
the files as desired without disrupting its pseudo-public API.
libemail-utils/libemail-utils.la
libevolution-utils/libevolution-utils.la
filter/libfilter.la
widgets/e-timezone-dialog/libetimezonedialog.la
widgets/menus/libmenus.la
widgets/misc/libemiscwidgets.la
widgets/table/libetable.la
widgets/text/libetext.la
This also merges libedataserverui from the Evolution-Data-Server module,
since Evolution is its only consumer nowadays, and I'd like to make some
improvements to those APIs without concern for backward-compatibility.
And finally, start a Gtk-Doc module for libeutil. It's going to be a
project just getting all the symbols _listed_ much less _documented_.
But the skeletal structure is in place and I'm off to a good start.
Make ECalendarItem, ECalendarView, ECalModel, EDateEdit, EMeetingStore,
and EMeetingTimeSelector extensible and register extensions to
automatically bind every instance to the appropriate EShellSettings.
Conflicts:
calendar/gui/gnome-cal.c
modules/calendar/e-cal-shell-content.c
Make ECalendarItem, ECalendarView, ECalModel, EDateEdit, EMeetingStore,
and EMeetingTimeSelector extensible and register extensions to
automatically bind every instance to the appropriate EShellSettings.
We can't require the use of EUIManager everywhere because we don't
control all the UI manager instances -- the most compelling example
being the composer, whose UI manager comes from GtkhtmlEditor.
Instead, EPluginUI will check the instance type and pick an appropriate
"load_from_string" function.
Replace the EVO_EXPRESS environment variable with an --express command
line option. (Note, this adds a new translatable string for --help.)
Add an EUIManager class with an "express-mode" property and custom load
functions that use our new "express" preprocessor. This replaces the UI
manager functions in e-utils.c.
(Also going to see if I can get GTK+ to add an "add_ui_from_string"
method to GtkUIManagerClass that we can override. Then we could just
call gtk_ui_manager_add_ui_from_string() and the preprocessor would
automatically do its thing and chain up.)
Add an "express-mode" read-only GObject property to EShell.
Add e_shell_configure_ui_manager() to e-shell-utils.c. For now this
just creates a one-way property binding:
EShell:express-mode -> EUIManager:express-mode
Call this immediately after e_ui_manager_new(). (EUIManager can't do
this itself because it lives too low in the dependency hierarchy and
doesn't know about EShell.)
Begin dismantling calendar-config.c and migrating calendar settings to
EShellSettings. EShellSettings utilizes GObject properties instead of
separate get/set/notify functions for each setting.
2009-01-19 Milan Crha <mcrha@redhat.com>
** Fix for bug #225712
* calendar/gui/dialogs/comp-editor.h: (CompEditorClass::send_comp),
(comp_editor_send_comp): Changed function prototypes.
* calendar/gui/dialogs/comp-editor.c: (real_send_comp), (save_comp_with_send),
(comp_editor_send_comp): Strip alarms based on user's choice.
* calendar/gui/dialogs/send-comp.h: (send_component_dialog):
* calendar/gui/dialogs/send-comp.c: (have_nonprocedural_alarm),
(send_component_dialog): Show option "Send my alarms with this event"
when prompting to send event or not, but only if have any non-procedure
alarms and if it the caller want to know user's opinion. Default is
to strip all alarms. Procedure alarms are always strip out.
* calendar/gui/dialogs/event-editor.c: (event_editor_send_comp):
* calendar/gui/dialogs/task-editor.c: (task_editor_send_comp):
Honor function prototype changes and use new parameter strip_alarms.
* calendar/gui/itip-utils.h: (itip_send_comp):
* calendar/gui/itip-utils.c: (comp_compliant), (itip_send_comp),
(reply_to_calendar_comp):
New parameter to strip all alarms or only procedure alarms.
* calendar/gui/tasks-control.c: (tasks_control_forward_cmd):
* calendar/gui/e-itip-control.c: (send_item), (send_freebusy), (ok_clicked_cb):
* calendar/gui/e-calendar-table.c: (e_calendar_table_on_forward):
* calendar/gui/e-memo-table.c: (e_memo_table_on_forward):
* calendar/gui/e-calendar-view.c: (e_calendar_view_cut_clipboard),
(delete_event), (e_calendar_view_delete_selected_occurrence),
(on_forward):
Always strip alarms when sending component.
* calendar/gui/e-calendar-view.c: (e_calendar_view_add_event),
(e_calendar_view_modify_and_send):
* calendar/gui/e-cal-model-calendar.c: (ecmc_set_value_at):
Strip alarms based on user's choice.
* plugins/itip-formatter/itip-view.h:
* plugins/itip-formatter/itip-view.c: (itip_view_set_show_keep_alarm_check),
(itip_view_get_keep_alarm_check_state),
(itip_view_set_show_inherit_alarm_check),
(itip_view_get_inherit_alarm_check_state): New functions to new
options to either inherit reminder from the incoming event or to
preserve users reminders in already existing event in the calendar.
* plugins/itip-formatter/itip-view.c: (struct _ItipViewPrivate), (alarm_check_toggled_cb),
(itip_view_init): Properly initialize new option's members.
* plugins/itip-formatter/itip-formatter.c: (find_cal_opened_cb), (update_item),
(send_comp_to_attendee), (update_attendee_status), (send_item),
(extract_itip_data), (view_response_cb), (format_itip_object):
Setup new options based on the actual data.
svn path=/trunk/; revision=37097