2001-10-23 Christopher James Lahey <clahey@ximian.com>
* configure.in: Bumped version to 0.15.99.3 for EText's
"draw_button" argument.
* gal/e-text/e-entry.c: Forward the "draw_button" argument to the
contained EText.
* gal/e-text/e-text.c, gal/e-text/e-text.h (e_text_draw): Added
new "draw_button" argument. If this is turned on and the first
widget that's a parent of the containing canvas with GTK_NO_WINDOW
turned off above the current one is a button, EText draws a button
underneath itself to match the containing button.
From gal/shortcut-bar/ChangeLog:
2001-10-23 Christopher James Lahey <clahey@ximian.com>
* e-shortcut-bar.c (e_shortcut_bar_add_group): Turn on
"draw_button" argument to EEntry.
svn path=/trunk/; revision=13934
2001-10-23 <NotZed@Ximian.com>
* mail-session.c (get_password): Completely re-done. We now hae a
completely async dialogue when requested from antoehr thread, and
dont use gtk_main() if we can avoid it (which is normally the
case). This stuff is only partially finished, and will mena the
removal of the same from mail-mt.c, and the mail_user_message()
code will be moved here and changed to work in a similar way.
* mail-callbacks.c (empty_trash): Dont try and connect to remote
stores just to get the trash. Also, always run empty trash async,
and make sure we unref the trash.
(empty_trash): Hmm, dont unref the trash, causes a problem on
exit, i suspect something else is doing funky unrefs on it.
* mail-tools.c (mail_tool_get_trash): Pass a 'connect' arg, tell
it whether it should tryand connect or not to the parent service,
if it isn't already connected.
* component-factory.c (owner_unset_cb): Dont try wait_all here,
could potentially deadlock.
(idle_quit): Keep returning TRUE if we have outstanding
processing. Note that this may busy-wait during exit processign
with busy tasks :(
(idle_quit): Keep calling ourselves till we no longer get called
(i.e. gtk_main really quits).
* mail-mt.c (mail_msg_active): New function, returns TRUE if
events are still active/outstanding.
(do_op_status): @$@$#@@!#@!! didn't unlock the mail_msg_lock if
data->activity was NULL and we had no global_shell_client anymore!
Also shortcut processing if this is going to be the case.
(mail_msg_init): Setup a temporary other gui_port for redoing with
new semantics password, user message and progress reporting.
(mail_get_password): #ifdef'd out all this code temporarily, till
it gets fully moved to mail-session.c
2001-10-22 <NotZed@Ximian.com>
* component-factory.c (owner_set_cb): Dont call enable_interaction
here.
(interactive_cb): But here instead, let the shell tell us when its
ok to go interactive.
svn path=/trunk/; revision=13933
2001-10-22 Christopher James Lahey <clahey@ximian.com>
* e-table-item.c (eti_idle_maybe_show_cursor): Make this check
immediately for whether to show the cursor, instead of in the idle
handler.
* e-tree-table-adapter.c (e_tree_table_adapter_node_set_expanded):
Added a pre_change here since we send two changes.
svn path=/trunk/; revision=13931
2001-10-22 Christopher James Lahey <clahey@ximian.com>
* e-tree-memory.c (e_tree_memory_sort_node): Call
e_tree_model_pre_change here where appropriate.
svn path=/trunk/; revision=13929
2001-10-22 Christopher James Lahey <clahey@ximian.com>
* e-table-item.c (eti_cancel_drag_due_to_model_change): Cancel the
drag or maybe drag if you have the mouse button down when the
pre_change signal comes in. Fixes Ximian bug #11309.
* e-table-without.c (add_row, remove_row,
e_table_without_show_all): Call e_table_model_pre_change where
appropriate here.
svn path=/trunk/; revision=13927
2001-10-22 Anna Marie Dirks <anna@ximian.com>
* evolution-message-composer.xml: Added an accelerator (H_TML) to the Format->Html
menu item.
svn path=/trunk/; revision=13926
2001-10-22 Jeffrey Stedfast <fejj@ximian.com>
* mail-display.h (mail_html_write_string): New fun macro.
* mail-format.c (write_one_text_plain_chunk): Use gtk_html_write
instead of mail_html_write so we avoid strdup'ing the text.
(handle_text_plain_flowed): Use the mail_html_write_string macro.
(handle_message_rfc822): Here too.
(mail_format_raw_message): We can do it here also...
(attachment_header): We can do it a little bit here...
(write_address): A microscopic bit here...
(write_hr): same.
svn path=/trunk/; revision=13925
2001-10-22 Damon Chaplin <damon@ximian.com>
* e-summary-tasks.c (generate_html): set the default timezone on the
server.
* e-summary-calendar.c (e_cal_comp_util_compare_event_timezones):
update to check for DATE values.
(uids_to_array): pass the default timezone
to cal_recur_generate_instances.
(generate_html): set the default timezone on the server.
svn path=/trunk/; revision=13921
2001-10-22 Damon Chaplin <damon@ximian.com>
* idl/evolution-calendar.idl: added setDefaultTimezone() method.
* pcs/cal-backend.c (cal_backend_get_default_timezone):
(cal_backend_set_default_timezone): new functions to call class
methods.
* pcs/cal-backend-file.c: lots of changes to handle the default
timezone and use it.
* pcs/query.c: use the default timezone.
* gui/dialogs/task-details-page.c (date_changed_cb): initialized
completed_tt.
* gui/dialogs/event-page.c: changed it to handle DATE values. The
'All Day Event' checkbox is only set now when the DTSTART and DTEND
are DATE values.
* gui/dialogs/comp-editor-util.c (comp_editor_free_dates): free the
CalComponentDateTime structs as well.
* gui/e-tasks.c: set the default timezone on the server.
* gui/tag-calendar.c:
* gui/gnome-cal.c:
* gui/e-week-view.c:
* gui/e-day-view.c: updates to handle DATE values.
* gui/e-calendar-table.c (date_compare_cb): updated to use the new
ECellDateEditValue values, so it now works.
(percent_compare_cb): updated to use GPOINTER_TO_INT values.
(e_calendar_table_init): use an ECellPercent for the percent field
and an ECellDateEditText for the date fields.
* gui/comp-util.c (cal_comp_util_compare_event_timezones): return TRUE
if the DTSTART or DTEND is a DATE value. We don't want to show the
timezone icons for DATE values.
* gui/comp-editor-factory.c (resolve_pending_requests): set the default
timezone on the server.
* gui/calendar-model.c: major changes to support sorting properly.
For date and percent fields we now use subclasses of ECellText, so
we don't use a char* as the model value. For the percent field we now
use a GINT_TO_POINTER. For the date fields we now use a
ECellDateEditValue* as the value.
* gui/calendar-config.c (calendar_config_configure_e_cell_date_edit):
set the timezone and use_24_hour flags of the new ECellDateEditText.
* conduits/todo/todo-conduit.c (pre_sync):
* conduits/calendar/calendar-conduit.c (pre_sync): set the default
timezone on the server.
* cal-util/timeutil.c (time_days_in_month): removed debug message.
* cal-util/test-recur.c: try to handle timezones in the iCalendar
file properly, and updated to pass default timezone.
* cal-util/cal-util.c (cal_util_generate_alarms_for_comp):
(cal_util_generate_alarms_for_list): added default timezone argument.
* cal-util/cal-recur.c: changed many of the functions to take a default
timezone, to use to resolve DATE and floating DATE-TIME values.
* cal-client/cal-client.c (cal_client_set_default_timezone): new
function to set the default timezone.
(cal_client_ensure_timezone_on_server): new function to ensure that
a given timezone is on the server.
* gui/e-cell-date-edit-text.c: new subclass of ECellText to display
and edit a date value.
* cal-util/cal-recur.c (cal_obj_byday_expand_monthly): changed week_num
to -week_num when calculating the weeks to go back from the end of the
month for things like BYDAY=-2WE. Fixes bug #11525.
(cal_recur_generate_instances_of_rule): only go up to MAX_YEAR (2037).
We can't really handle anything past that anyway.
(cal_recur_ensure_rule_end_date): initialize cb_date.end_date to 0,
so if the RULE doesn't generate COUNT instances we save 0 as the
time_t.
svn path=/trunk/; revision=13920
* e-shell-view-menu.c (command_open_folder_in_new_window): No need
to gtk_widget_show() the view anymore.
* e-shell-view.c (activate_shortcut_cb): No need to
gtk_widget_show() the view anymore.
* e-shell.c (impl_Shell_createNewView): Don't explicitly show the
new view.
(e_shell_create_view): gtk_widget_show() the new view and flush
the GTK+ event loop before sending the ::interactive notification.
(create_view): New helper function.
(e_shell_create_view): Use it.
(e_shell_create_view_from_settings): New.
(e_shell_restore_from_settings): Use
`e_shell_create_view_from_settings()'.
svn path=/trunk/; revision=13918
2001-10-22 Federico Mena Quintero <federico@ximian.com>
* gui/tasks-control-factory.c (tasks_control_factory_fn): Put up a
warning dialog box if we failed to create the tasks control.
Fixes bug #13033.
svn path=/trunk/; revision=13917
2001-10-22 Damon Chaplin <damon@ximian.com>
* e-cell-date-edit.c (e_cell_date_edit_set_popup_values):
(e_cell_date_edit_update_cell): use the new ECellText methods to get
the text and set the value.
* e-cell-percent.c: new subclass of ECellText to display & edit a
percentage value.
svn path=/trunk/; revision=13916
2001-10-22 Anna Marie Dirks <anna@ximian.com>
* mail-config.glade: Added several new accelerators to the edit account
dialog, and fixed the focus targets on all existing accelerators. I
was hoping that since the widgets used in the account editor are also
used in the first-time start-up druid and them mail-config druid,
that this would fix all accelerator problems for those druids as well,
but there is something wrong with Bonobo which is preventing
the druids from responding to their accelerators. Sigh. Anyway,
most accelerators in the edit account dialog work correctly
now, though there are few (such as _Full Name) which fail to
do anything. I don't know why.
svn path=/trunk/; revision=13914
2001-10-22 Damon Chaplin <damon@ximian.com>
* zoneinfo/*: updated all files again, placing current RDATEs first,
so Outlook uses those. Also fixed a few bugs in vzic which resulted in
a few changes.
* zoneinfo/Makefile.am (DIRS): added America/North_Dakota.
2001-10-22 Damon Chaplin <damon@ximian.com>
* src/libical/icaltimezone.c (icaltimezone_get_utc_offset):
(icaltimezone_get_utc_offset_of_utc_time): if we go off the start of
the changes array, return the TZOFFSETFROM of the first change.
Also changed the maximum year to 2037.
* src/libical/icaltime.c (icaltime_day_of_week):
(icaltime_start_doy_of_week):
(icaltime_week_number): init tm_hour to 12. Sometimes mktime()
adjusts the time, if that local time doesn't actually exist, leading
to the wrong day being returned. It is unlikely to adjust by 12 hours.
(icaltime_as_timet_with_zone):
(icaltime_from_timet_with_zone): change it back so it does convert
DATE values to/from the timezone. time_t values don't really go well
with DATE values, so be very careful when using them. We now assume
that the time_t points to the start of the day in the given timezone.
(We used to assume it pointed to the start of the day in UTC, but
that meant it was actually incorrect wrt the displayed calendar.)
* src/libical/icalrecur.c (expand_year_days): for FREQ=YEARLY with no
modifiers, we add one day, using the month and day from DTSTART.
(next_year): make sure we never go past 2037.
* scripts/mkderivedproperties.pl: Updated to allow DTSTART, DTEND, DUE
and RECURRENCE-ID to be set with DATE values. I think it now handles
all properties which can take DATE values, except RDATE which uses
DATE-TIME-PERIOD.
svn path=/trunk/; revision=13912
2001-10-22 Jeffrey Stedfast <fejj@ximian.com>
* mail-stream-gtkhtml.c (mail_stream_gtkhtml_new): New class that
wraps writing to a GtkHTML stream so that we don't have to write
to an intermediate GByteArray.
* mail-display.c (on_url_requested): Use the new Camel->GtkHTML
stream - this means we don't have to chew up nearly as much
memory...yay!
svn path=/trunk/; revision=13911
2001-10-22 <NotZed@Ximian.com>
* providers/local/camel-spool-summary.c (summary_rebuild): No, use
Storing, as the other code does :p
(spool_summary_check): Check for consistency.
svn path=/trunk/; revision=13904
2001-10-22 Damon Chaplin <damon@ximian.com>
* e-cell-text.[hc]: added set_value() class method, which sets the
model value based on the text. In ECellText itself it assumes the model
value is a char* and passes the text directly. Subclasses may parse
the text into some other datatype.
Also made the calls the e_cell_text_get_text(), e_cell_text_free_text()
and e_cell_text_set_value() public, since we need them in ECellCombo.
* e-cell-combo.c (e_cell_combo_select_matching_item):
(e_cell_combo_update_cell): use e_cell_text_get_text()/free_text()/
set_value() so it can handle subclasses of ECellText as the child.
svn path=/trunk/; revision=13901
2001-10-22 Christopher James Lahey <clahey@ximian.com>
* e-table-col.c, e-table-col.h, e-table-column-specification.c,
e-table-column-specification.h: Added a disabled field here.
* e-table-config.c, e-table-field-chooser-item.c: Pay attention to
the disabled field here.
* e-table-utils.c: Copy the disabled field from the column
specification to the col.
svn path=/trunk/; revision=13897
2001-10-22 Jeffrey Stedfast <fejj@ximian.com>
* camel-pgp-mime.c (camel_pgp_mime_part_verify): If we are
kludging around a inline-pgp signed part, do some charset
conversion to protect any 8bit text.
svn path=/trunk/; revision=13896
* mail-mt.c: #include "component-factory.h".
(do_op_status): Pass the component ID instead of the msg ID.
* component-factory.h (COMPONENT_ID): #define here instead of
`component-factory.c'.
(SUMMARY_FACTORY_ID): Likewise.
svn path=/trunk/; revision=13895
* camel-filter-search.c, camel-folder-search.c (check_header): Use
search_type_mlist for mailing list searches.
* camel.c (camel_init): call camel-mime-utils-init func.
* camel-mime-utils.c: Changed mail mail_list_magic to include a
domain part, also pre-compile all the patterns. They are all
backward compatible except List-Id: which now uses the
mail-address-like <list-name.host.name> part rather than the
plain-text part (which might've been blank anyway).
(camel_mime_utils_init): Initialisation function to setup any
static data required by camel-mime-utils at run-time. We now
setup the base64/charset class tables here, so it doesn't need to
be done statically.
(camel_mime_special_table, camel_mime_base64_rank): No longer
statically initialise these.
(main): Removed + the tests at the end of the file.
(header_raw_check_mailing_list): Dont compile regex's here,
already compiled in utils_init. Use the regex patterns to remove
leading <'s from addresses. Also, if there is a domain part
matched, add that after a '@' is added.
camel-search-private.c:
(camel_search_header_match): Added SEARCH_TYPE_MLIST for mlist
search types. It ignores the domain part if either (but not both)
of the values dont have it.
svn path=/trunk/; revision=13894
2001-10-22 Jeffrey Stedfast <fejj@ximian.com>
* mail-format.c (format_mime_part): Don't wrap error text with
<blockquote>, this is done inside mail_error_write.
(handle_multipart_encrypted): If we get an exception trying to
decrypt the mime part, display an error rather than trying to
treat it as multipart/mixed.
* mail-callbacks.c (empty_trash): Confirm expunge.
svn path=/trunk/; revision=13893
2001-10-22 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c (folder_browser_destroy): Move the folder sync
code along with a few other things from folder_browser_finalise()
into here instead.
(folder_browser_finalise): Moved some cleanup functions into
destroy.
svn path=/trunk/; revision=13892
* e-shell.c: New member `is_interactive' in `EShellPrivate'.
(init): Init to %FALSE.
(set_interactive): New.
(e_shell_create_view): Make interactive.
(view_destroy_cb): If no views are left, make non-interactive.
* evolution-shell-component.c (class_init): Set up the
"interactive" signal.
(impl_interactive): New implementation for the ::interactive
method.
(class_init): Install.
* evolution-shell-component.h: New signal `interactive'.
* Evolution-ShellComponent.idl: New method ::interactive.
svn path=/trunk/; revision=13890
2001-10-22 Christopher James Lahey <clahey@ximian.com>
* gal/util/e-text-event-processor-emacs-like.c
(control_keys): Make C-w not do anything here.
(e_text_event_processor_emacs_like_event): Make C-A-* not do
anything here.
svn path=/trunk/; revision=13889
* mail-format.c (handle_application_pgp): Remove this unused
hack.
(mail_format_mime_message): Initialize a fourth hash table, used
to keep track of fake MIME parts.
(mail_part_set_default_displayed_inline): New routine to set the
default disposition of a part (doesn't change it if the user has
already overridden it).
(format_mime_part): Wrap a blockquote around the error text (moved
here from mail_error_write since it doesn't apply in other cases).
(write_hr): Write a <hr> with appropriate padding between MIME
parts.
(write_one_text_plain_chunk): Write some plain text with
appropriate margins.
(handle_text_plain): Use write_one_text_plain_chunk. Update for
inline specials handler API change.
(fake_mime_part_from_data): Use the "fake_parts" hash to avoid
recreating the same fake parts again if the message is
redisplayed. Lets you toggle the shown/hiddenness of uudecode
parts, and do the new pgp verification thing for inline pgp
signatures.
(try_inline_pgp): Don't do any actual PGP handling here: Just
rewrite as a multipart/encrypted.
(try_inline_pgp_sig): Likewise, just do a multipart/signed (with
the x-inline-pgp-hack parameter set).
(try_uudecoding, try_inline_binhex): Update for API changes.
(handle_multipart_signed): Exciting and new. Use <object> to
create a button which the user must click to do the
verification. Change the formatting of the gpg output text a bit.
* mail-display.c (on_link_clicked): Remove x-evolution-decode-pgp
hack, which is no longer used.
(pixbuf_gen_idle): Add a hack for the PGP verification button.
(do_attachment_header, do_external_viewer): Split out of
on_object_requeested for clarity.
(do_signature): New routine to do the PGP verification button.
(on_object_requested): Now just dispatches to
do_attachment_header, do_external_viewer, or do_signature.
(mail_error_write): Don't do <blockquote> here. Fixed the problem
that was trying to fix elsewhere.
svn path=/trunk/; revision=13888
* e-passwords.c (e_passwords_get_password): Pass a
CORBA_Environment to bonobo_config_get_string so it doesn't g_warn
on error. (Since the "error" is most likely just that the password
isn't cached.)
(e_passwords_remember_password, e_passwords_get_password,
e_passwords_add_password): Change "if (foo) { entire function; }"
to "if (!foo) return;"
* e-html-utils.c (special_chars): Don't allow single quote or
backtick in email addresses, or pipes following URLs.
svn path=/trunk/; revision=13887
2001-10-22 <NotZed@Ximian.com>
* camel-search-private.c (camel_search_header_match): Match check
against all addresses in a multiple address match. Should fix
#13051.
svn path=/trunk/; revision=13885