2000-05-06 Damon Chaplin <damon@helixcode.com>
* cal-util/timeutil.c (time_day_begin):
(time_day_end): changed these so they just do a simple localtime(),
update the struct tm, then do a mktime(). I don't know why it used to
look at the tm_isdst flags etc. From a little test program I wrote
which steps through testing every hour for a year it wasn't working
correctly, and the new code does.
(time_add_day): also got rid of the stuff that looked at tm_isdst here.
My test program now works better.
svn path=/trunk/; revision=2841
2000-05-06 Christopher James Lahey <clahey@helixcode.com>
* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:
Mostly finished ECardSimple.
* contact-editor/e-contact-editor.c: Changed this to match with
some of the changes to ECardSimple.
* gui/component/addressbook.c: Changed this to look for
"addressbook.db" in the given directory if it doesn't find the
file "uri".
* gui/minicard/e-minicard.c, gui/minicard/e-minicard.h: Changed
this to use ECardSimple.
svn path=/trunk/; revision=2839
2000-05-06 Christopher James Lahey <clahey@helixcode.com>
* e-msg-composer-hdrs.c: Turned off focus in the To, Cc, and Bcc
buttons.
svn path=/trunk/; revision=2838
2000-05-06 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c, widgets/e-text/e-text.h: Added a
"changed" signal that gets sent whenever the text changes.
svn path=/trunk/; revision=2837
2000-05-06 Christopher James Lahey <clahey@helixcode.com>
* e-table-group-container.c, e-table.c: Killed some warnings.
svn path=/trunk/; revision=2836
* mail.h: consolidate mail-format.h, mail-identify.h, mail-ops.h,
main.h and session.h into this new file. There's no reason to have
a .h for every .c.
svn path=/trunk/; revision=2830
2000-05-06 Christopher James Lahey <clahey@helixcode.com>
* gui/component/addressbook.c: Made the component take a uri
through its property bag.
svn path=/trunk/; revision=2829
2000-05-06 Christopher James Lahey <clahey@helixcode.com>
* e-html-utils.c: Got rid of some warnings.
* e-util.c, e-util.h: Added e_read_file which takes a filename and
returns a newly allocated string containing the contents of that
file.
svn path=/trunk/; revision=2828
2000-05-06 Damon Chaplin <damon@helixcode.com>
* gui/e-day-view.c:
* gui/e-week-view.c: finish editing event when user hits Return key.
(e_week_view_on_text_item_event): stop event signals after doing any
other calls, since otherwise it will also stop any other resulting
event signals.
* gui/e-week-view-event-item.c (e_week_view_event_item_draw): don't
draw the start/end times while editing.
* gui/eventedit.c: changed the Summary field to a GtkEntry, since we
now only want a single line of text.
* cal-util/calobj.c (ical_object_normalize_summary): new function to
convert the summary field to a single line of text, by converting any
sequence of CR & LF characters to a single space.
(ical_object_create_from_vobject): call the above function. I think
all functions that load iCalObjects go through this.
(ical_new): called it here as well just in case.
svn path=/trunk/; revision=2827
2000-05-06 Damon Chaplin <damon@helixcode.com>
* cal-util/calobj.[hc]: added guint ref_count to iCalObject struct,
and ical_object_ref/unref() functions. I've updated all the gui/
stuff to use ref_counts but I haven't touched the pcs/ stuff. Maybe
just using ical_object_destroy() is OK there.
* gui/gncal-todo.c:
* gui/calendar-commands.c:
* gui/eventedit.c:
* gui/e-week-view.c:
* gui/e-day-view.c: use refcounting for iCalObjects.
* gui/e-day-view-main-item.c:
* gui/e-day-view-top-item.c:
* gui/e-day-view.c: try not to ever draw outside the event, even when
the event is very small.
2000-05-05 Damon Chaplin <damon@helixcode.com>
* gui/e-day-view.c: don't allow recurring events to be resized or
dragged, and don't show the resize/drag cursors. Actually it may be
better to let the user do the resize/drag and then ask them what they
want to do - change the single occurrence or the entire series.
* gui/e-day-view-time-item.c (e_day_view_time_item_show_popup_menu):
use e_auto_kill_popup_menu_on_hide() to destroy the popup menu.
* gui/popup-menu.c: include e-gui-utils.h
svn path=/trunk/; revision=2823
2000-05-05 Anders Carlsson <andersca@gnu.org>
* test-mail.c (create_container): Use the OAFIID when using an
OAF-enabled build of bonobo.
svn path=/trunk/; revision=2818
2000-05-05 Christopher James Lahey <clahey@helixcode.com>
* backend/ebook/Makefile.am: Added e-card-simple.c and
e-card-simple.h.
* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:
New card wrapper class to simplify things.
* contact-editor/e-contact-editor.c,
contact-editor/e-contact-editor.h: Changed e-contact-editor to use
ECardSimple a bit.
svn path=/trunk/; revision=2815
2000-05-05 NotZed <NotZed@HelixCode.com>
* camel-folder-summary.c: And same here ...
* camel-mime-utils.c: Defined out some memory profiling stuff I
left there by mistake.
* camel-mime-parser.c (folder_scan_content): Apply the fix from
the header scanner to here too.
(folder_scan_header): Only check for end of header if we have
space for it (didn't end the read with a newline)
(folder_scan_header): inptr is the only real thing we need
registerised for performance. Try to help the compiler be smart
about it ..
(folder_scan_header): Simplified the save header case a tad.
Commented out some memory profiling stuff.
svn path=/trunk/; revision=2811
2000-05-05 <notzed@helixcode.com>
* camel-mime-utils.c (header_decode_mailbox): Plug a memory leak.
(header_decode_text): Fixed memory leaks with g_string_append().
(header_encode_string): And here too, and a few other places. The
glib api is so awful ...
(header_content_type_decode): More memory leaks, more left ...
2000-05-05 <notzed@helixcode.com>
* camel-mime-parser.c (folder_scan_init_with_fd): Make sure we
init the end of buffer sentinal!
(folder_scan_init_with_stream): And here too ...
svn path=/trunk/; revision=2810
* e-table-sorted-variable.c (etsv_sort): use rows here instead of
E_TABLE_SUBSET(etsv)->n_map, since the table can be populated by
the gtk_main_iteration above. otherwise the vals_closure may not
be fully populated.
svn path=/trunk/; revision=2809
2000-05-04 NotZed <NotZed@HelixCode.com>
* providers/mbox/camel-mbox-folder.c (summary_get_message_info):
Maxcount is minimum of the max and the requested count, not the
maximum :)
* camel-mime-parser.c (folder_scan_content): Properly set midline,
so we dont falsely catch offset boundary markers (i.e. From inside
content).
(folder_read): Set a sentinal on the end of the read data (\n) so
we dont have to check the buffer boundary in the inner loop.
(mempool_*): New experimental memory management routines, speed
up simple structure parsing by about 25% ... not compiled in by
default. Something similar may be needed for camel-mime-utils to
address performance issues with g_malloc and friends.
* camel-mime-utils.c: Added a macro w(x) used to wrap all warnings
about mime/rfc violations, so they can be turned off.
* camel-folder-summary.c (summary_build_content_info): Step after
the end of a message ...
Turn into a stand-alone program for testing and profiling.
svn path=/trunk/; revision=2808
2000-05-04 NotZed <NotZed@HelixCode.com>
* message-list.c (message_list_set_folder): Get the whole message
summary right away.
(folder_changed): And if we change too.
(ml_row_count): Use the match count or summary table length as the
row count.
(get_message_info): Use array references to lookup message summary
info. For the search result list, use the summary_search_cache to
cache the info lookup.
(message_list_init): Allocate the summary search cache.
(message_list_destroy): Free the summary search cache and the
summary table, if there is one to free.
(message_list_set_search): Save the match count, and clear the
summary search cache for reuse.
(folder_changed): Re-retrieve the summary list if the folder has
changed.
(message_list_set_folder): Retrieve the summary list when opening
the folder.
svn path=/trunk/; revision=2807
2000-05-04 Christopher James Lahey <clahey@helixcode.com>
* e-table-group-container.c, e-table-group-leaf.c,
e-table-group.c, e-table-group.h: Add an e_table_group_add_all
function and implement it in the different ETableGroup classes.
* e-table-sort-info.c: Make set_nth not call changed twice if it
needs to allocate more space.
* e-table-sorted-variable.c, e-table-subset-variable.c,
e-table-subset-variable.h: Add and implement an
e_table_subset_variable_add_all command.
* e-table.c: Use e_table_group_add_all as appropriate. Fix ETable
grouping xml to work if there is a text element at the bottom of
the grouping tree.
svn path=/trunk/; revision=2806
2000-05-04 Damon Chaplin <damon@helixcode.com>
* gui/e-day-view.c (e_day_view_foreach_event_with_uid): for the long
events pass E_DAY_VIEW_LONG_EVENT as the day. Fixes SEGV.
* gui/calendar-commands.c: when we switch views, grab the focus.
* gui/gnome-cal.c (gnome_calendar_tag_calendar):
(gnome_calendar_mark_gtk_calendar_day): changed this so it uses
cal_client_get_events_in_range(), and doesn't load any objects.
Also just return if it isn't visible.
* gui/calendar-commands.c (calendar_get_events_in_range): call
g_list_sort() to sort the list rather than g_list_insert_sorted() for
each element. It is much more efficient.
Also changed it so that the co->ev_start/end fields are copied from
the CalObjInstance rather than the parameters to the function
(that is right, isn't it?)
Also freed the list elements, and finally the list.
(calendar_iterate): changed this to use cal_client_get_events_in_range
since that is more efficient than getting all the uids and then loading
and parsing all the events.
* pcs/cal-backend.c (save): output the '... saved' message before
freeing the string!
* gui/gncal-todo.c (gncal_todo_update):
* gui/e-week-view.c (e_week_view_update_event):
* gui/e-day-view.c (e_day_view_update_event):
* gui/calendar-commands.c (calendar_get_events_in_range):
(calendar_iterate): free obj_string after it is parsed.
svn path=/trunk/; revision=2802
2000-05-03 Damon Chaplin <damon@helixcode.com>
* e-shell-view.c (e_shell_view_new): turned the notebook border off.
The calendar looks better without it. If any of the views want a
border they should create it themselves, shouldn't they?
svn path=/trunk/; revision=2801
* configure.in: Oops. The Kerberos check was succeeding when it
shouldn't have (and thus breaking the pop3 build for "normal"
people). Fix.
svn path=/trunk/; revision=2799
* providers/pop3/camel-pop3-store.c (pop3_connect): Don't fall
back to plaintext passwords if APOP fails, since it should also
fail.
svn path=/trunk/; revision=2798
* camel-session.c (camel_session_list_providers): New function to
replace camel_provider_scan. Returns a list of either (a) all
currently-loaded providers, or (b) all available providers.
* camel-url.[ch]: Add an "empty" flag to CamelURL (indicating that
it contains only a protocol).
* camel-service.c (camel_service_query_auth_types): Make this take
a CamelException (since it may have to try to connect to the
server, and it might not able to.)
* providers/pop3/camel-pop3-store.c: add KPOP (Kerberized POP)
support. This is mostly so I have two kinds of authmech to play
with instead of just one. (But it does actually work.)
* providers/smtp/camel-smtp-transport.c (query_auth_types): update
for prototype change, but disable the functionality, since it
doesn't really support any auth types yet.
(camel_smtp_transport_get_type): add an object init function to
set the service url_flags.
svn path=/trunk/; revision=2797
2000-05-04 Christopher James Lahey <clahey@helixcode.com>
* e-table-item.c, e-table-item.h: Added a height_cache idle loop
so that the height_cache will be validated in the idle loop.
svn path=/trunk/; revision=2794
2000-05-04 Christopher James Lahey <clahey@helixcode.com>
* e-table-sorted-variable.c: Load all the data to be sorted by
before actually doing the sort.
svn path=/trunk/; revision=2793
2000-05-04 Christopher James Lahey <clahey@helixcode.com>
* e-cell-text.c, e-cell-text.h: Fix author information.
* e-table-group-leaf.c: Set a length threshold of 200.
* e-table-item.c: Height cache is now actually a map. Made
"length_threshold" argument work. If over the length threshold,
use the height cache to get a better estimate so that once the
height cache is full, height estimate is perfect.
svn path=/trunk/; revision=2791