2000-11-15 Jeffrey Stedfast <fejj@helixcode.com>
* filter-driver.c (filter_driver_filter_folder): Sync here
instead.
(filter_driver_filter_mbox): And here too.
(filter_driver_finalise): Don't sync here afterall - it's more
preferable to sync right after processing.
svn path=/trunk/; revision=6588
2000-11-12 Jeffrey Stedfast <fejj@helixcode.com>
* filter-driver.c (filter_driver_filter_message): If there is a
default folder and the message hasn't been deleted then... should
be: If there is a default folder and the message hasn't been
copied to another folder and the message hasn't been deleted...
(filter_driver_filter_message): Make it so that the FILTER_LOG_END
is only called if filtered were applied to the message so we don't
get huge gaps of whitespace in the log file.
(filter_driver_filter_message):
svn path=/trunk/; revision=6555
2000-11-12 Jeffrey Stedfast <fejj@helixcode.com>
* filter-driver.c (filter_driver_filter_message): If there is a
default folder and the message hasn't been deleted then... should
be: If there is a default folder and the message hasn't been
copied to another folder...
(filter_driver_filter_message): Make it so that the FILTER_LOG_END
is only called if filtered were applied to the message so we don't
get huge gaps of whitespace in the log file.
svn path=/trunk/; revision=6554
2000-11-12 Jeffrey Stedfast <fejj@helixcode.com>
* filter-driver.c (filter_driver_filter_message): If there is a
default folder and the message hasn't been deleted then... should
be: If there is a default folder and the message hasn't been
copied to another folder...
svn path=/trunk/; revision=6551
2000-11-12 Federico Mena Quintero <federico@helixcode.com>
* gui/event-editor.c (recur_to_comp_object): Clear the rdate and
exrule lists from the component if we are setting a simple
recurrence.
(recur_to_comp_object): Set the exdate list here instead of in
dialog_to_comp_object().
(preview_recur): New function to tag the recurrence preview
calendar based on the information from the dialog box.
(fill_exception_widgets): Fill the exception widgets here; moved
over from fill_widgets().
(fill_recurrence_widgets): Call preview_recur(). Also, call
fill_exception_widgets() first of all.
(recurrence_type_toggled_cb): Call preview_recur().
(recur_interval_selection_done_cb): Likewise.
(recur_ending_selection_done_cb): Likewise.
(recurrence_exception_add_cb): Likewise.
(recurrence_exception_modify_cb): Likewise.
(recurrence_exception_delete_cb): Likewise.
(date_changed_cb): Likewise.
(recur_interval_value_changed_cb): Likewise, new function.
* gui/tag-calendar.[ch]: New files with utilities for tagging
calendars. mark.[ch] should go away some day.
* gui/tag-calendar.c (tag_calendar): Moved over from
gnome_calendar_tag_calendar(). Take in a CalClient instead of a
GnomeCalendar. Added API docs.
(tag_calendar_by_comp): New function to tag a calendar based on a
single calendar component instead of a whole client.
* gui/gnome-cal.c (initial_load): Use tag_calendar_by_client().
(obj_updated_cb): Likewise.
(obj_removed_cb): Likewise.
(gnome_calendar_on_date_navigator_date_range_changed): Likewise.
(editor_closed_cb): Free the closure.
(destroy_editor_cb): Renamed from free_uid(). Do not free the
UID; just unref the event editor. Our destroy handler to it will
free things properly. This will also cause the corresponding
calendar client to be unrefed.
(editor_closed_cb): Use a flag on the GnomeCalendar to decide
whether to remove the editor from the hash table. This is sort of
icky.
* gui/calendar-model.c (obj_updated_cb): If the object is new, we
have to use e_table_model_row_inserted(), not row_changed().
Thanks to JP Rosevear for reporting this.
* gui/Makefile.am (evolution_calendar_SOURCES): Added
tag-calendar.[ch] to the list of sources.
svn path=/trunk/; revision=6547
2000-11-10 Christopher James Lahey <clahey@helixcode.com>
* e-search-bar.c: Made the underline show up properly in the main
menu bar.
svn path=/trunk/; revision=6532
2000-11-10 Christopher James Lahey <clahey@helixcode.com>
* e-search-bar.c: Switched from using gtk_menu_item_new_with_label
for the menu header to using gnome_stock_menu_item.
svn path=/trunk/; revision=6530
2000-11-08 Anna Marie Dirks <anna@helixcode.com>
* e-search-bar.c: Fixed two spacing problems: first, changed
the spacing around the end of the text-entry widget so that
the text entry is always aligned with the beginning of the scrollbar;
second, trimmed down the space between the widgets in the search bar.
svn path=/trunk/; revision=6522
2000-11-06 Not Zed <NotZed@HelixCode.com>
* filter-driver.c (do_flag): you shouldn't use an integer to
set the flag. You should use a string, and look it up, because
the flag bits might change.
(filter_driver_filter_message): Can som e one PLEASE STOP
INDENTING THE CODE. Even if i have to come over the and
beat it into you. YOU DONT INDENT CODE ONCE ITS BEEN CHECKED IN
TO CVS, otherwise you SCREW UP THE DIFF's. Can't you please
please learn this?
(filter_driver_log): Fixes for api changes to mime_message.
2000-11-05 Not Zed <NotZed@HelixCode.com>
* filter-message-search.c (get_sent_date): Fix for date change
api. No longer need to encode/decode the date, after its been
encoded/ecoded already.
(get_received_date): Likewise.
svn path=/trunk/; revision=6477
2000-11-06 Christopher James Lahey <clahey@helixcode.com>
* e-search-bar.h: Fixed the argument comment. Removed an old enum
that's not used here.
svn path=/trunk/; revision=6457
2000-11-06 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added e-search-bar.c and e-search-bar.h.
* e-search-bar.c, e-search-bar.h: Moved this from
e-addressbook-search.
svn path=/trunk/; revision=6454
2000-11-02 Jeffrey Stedfast <fejj@helixcode.com>
* filter-driver.c (filter_driver_log): Fix for when 'desc' is
NULL.
(filter_driver_filter_message): Use a more user-friendly filter
name in the log file.
svn path=/trunk/; revision=6359
2000-11-02 Jeffrey Stedfast <fejj@helixcode.com>
* filter-driver.c (filter_driver_log): Fix for when 'desc' is
NULL.
(filter_driver_filter_message): Use a more user-friendly filter
name in the log file.
svn path=/trunk/; revision=6347
2000-11-01 Jeffrey Stedfast <fejj@helixcode.com>
* filter-driver.c (filter_driver_filter_message): Use
filter_driver_log() where appropriate.
(do_copy): Use the service url for the path rather than the
folder->full_name because that'll only get you a "/mbox" which is
entirely useless. Replace occurences of report_status with
filter_driver_log.
(do_move): Same.
(report_status): Don't use this for logging anymore, use only for
reporting the status back to the caller.
(filter_driver_log): Renamed from filter_driver_status_log. Now
ONLY handles file logging and is for INTERNAL USE ONLY.
(do_flag): Replace occurences of report_status with
filter_driver_log.
(do_score): Same.
(do_colour): Same.
(do_stop): Same.
svn path=/trunk/; revision=6340
2000-11-01 Jeffrey Stedfast <fejj@helixcode.com>
* filter-datespec.c (validate): Check to make sure the user has
entered a valid date.
svn path=/trunk/; revision=6324
2000-10-31 Jeffrey Stedfast <fejj@helixcode.com>
* filtertypes.xml: Updated to allow the user to select "sounds
like" or "does not sound like" (uses header-soundex).
* filter-message-search.c (header_matches): Oops. Should be using
!g_strncasecmp. This should fix it so this filter match works
right.
(header_starts_with): Same.
(header_ends_with): Same.
(header_soundex): New filter callback for soundex matching (yes,
it's probably a bloated feature but hey, it was fun to code)
svn path=/trunk/; revision=6302
2000-10-31 Jeffrey Stedfast <fejj@helixcode.com>
* filter-folder.c (validate): Override the default validate
function to only return TRUE if a folder has been selected.
* filter-editor.c (rule_add): Validate that all the rule parts and
action parts are correctly filled in.
(rule_edit): Same.
svn path=/trunk/; revision=6300
2000-10-31 Jeffrey Stedfast <fejj@helixcode.com>
* filtertypes.xml: Updated to add an action to set message flags.
* filter-driver.c (do_flag): New callback to set message info
flags.
* filter-element.c (filter_element_set_data): New convenience
function to set the data on a FilterElement.
* filter-url.c (get_widget): Set the sources list to point to the
FilterElement data.
svn path=/trunk/; revision=6298
2000-10-31 Federico Mena Quintero <federico@helixcode.com>
* filter-rule.c (get_widget): Do not pad around the Name hbox;
its parent already has spacing.
Do not pad around the inframe's children; the inframe already has
spacing.
svn path=/trunk/; revision=6294
2000-10-30 Jeffrey Stedfast <fejj@helixcode.com>
* filter-option.c (option_activate): If a regex option is
selected, change the FilterElement data to TRUE else set to FALSE.
* filter-rule.c (more_parts): Validate the previously entered
FilterPart before allowing the user to add a new FilterPart.
* filter-part.c (filter_part_validate): New convenience function
to validate an entire FilterPart expression.
* filter-input.c (validate): Validate the entry text if it
contains a regular expression.
* filter-element.[c,h]: New virtual function to validate the
contents of the FilterElement (useful for regex and sexp).
(filter_element_validate): You get the idea...
svn path=/trunk/; revision=6285
2000-10-30 Jeffrey Stedfast <fejj@helixcode.com>
* filter-input.c:
* filter-option.c:
* filter-part.c: Pure formatting changes, no actual code
changes. Since I know I'm going to get flamed for this, I'm sorry
but I'll probably have to modify code in these files and it's
easier if the code is quickly readable by me.
* filter-rule.c (get_widget): Set the "remove" button insensitive
for <= 1 instead of == 1.
svn path=/trunk/; revision=6283
2000-10-28 Jeffrey Stedfast <fejj@helixcode.com>
* filter-driver.c (filter_driver_filter_message): Copy the message
to the default folder if it wasn't marked as deleted.
svn path=/trunk/; revision=6249
2000-10-27 Jeffrey Stedfast <fejj@helixcode.com>
* filtertypes.xml: Added header-starts-with, header-ends-with, and
header-exists menu items.
* filter-message-search.c (header_starts_with): New callback to
match the beginnings of headers.
(header_ends_with): New callback to match the ends of headers.
(header_exists): New callback to determine if a header exists
which is useful when filtering out all those pesky bug-buddy
emails!
svn path=/trunk/; revision=6242
2000-10-27 Jacob "Ulysses" Berkman <jacob@helixcode.com>
* filter-driver.c (filter_driver_filter_mbox): divide before
multiple so that we don't overflow.
svn path=/trunk/; revision=6235
2000-10-27 Jeffrey Stedfast <fejj@helixcode.com>
* filter-driver.c (do_move): Don't mark as deleted here, otherwise
the message will have the DELETED flag set in the folder it's
being moved to.
(do_delete): Don't set the DELETED flag here either...we'll only
set it at the very end of the filtering process.
(filter_driver_filter_message): Set the DELETED flag after all
processing is completed.
svn path=/trunk/; revision=6221
2000-10-25 Jeffrey Stedfast <fejj@helixcode.com>
* filtertypes.xml: Added option menu items to allow searching
based on regular expressions.
* filter-message-search.c (body_regex): New callback to match text
in the body using regex.
(body_contains): Modified to only match using strstr.
(header_regex): New callback to match headers using regex.
(header_contains): Modified to only match using strstr.
svn path=/trunk/; revision=6177
2000-10-24 Jeffrey Stedfast <fejj@helixcode.com>
* filter-element.c (filter_element_new_type_name): Remove
filter-url code.
* filter-url.[c,h]: What was I smoking? There's no good reason to
filter on source urls as there are other ways to get the same
effect. Thanks to both Zucchi and Miguel for helping me see this
:-)
svn path=/trunk/; revision=6158
2000-10-23 Jeffrey Stedfast <fejj@helixcode.com>
* filter-filter.c (less_parts): Set the remove button insensitive
if there is only 1 action left.
(more_parts): Set the remove button sensitive (since we now have 2
or more actions).
(get_widget): If there is only 1 action, disable the remove
button.
* filter-rule.c (xml_encode): If there is a defined source, don't
set it to "incoming", set it to whatever the source is!
(less_parts): Set the remove button insensitive if there is only 1
criterion left.
(more_parts): Set the remove button sensitive (since we now have 2
or more criterion).
(get_widget): If there is no name for the filter then set it to
"Untitled", highlight it, and grab the focus. If there is only 1
criterion, disable the remove button.
* filter-editor.c, vfolder-editor.c: GUI fixes here and there as
well as some consistancy fixes between them.
* filter-driver.c (filter_driver_filter_mbox): Updated to send the
source url to filter_driver_filter_message()
(filter_driver_filter_folder): Updated to send the source url of
the folder to filter_driver_filter_message()
(filter_driver_filter_message): Now takes a source_url argument
that represents the url of the folder the message is coming from
(so that we may filter based upon that information).
svn path=/trunk/; revision=6138
2000-10-23 Jeffrey Stedfast <fejj@helixcode.com>
* filter-editor.c: Remove the "demand" source from the list.
* filter.glade: Remove the "On Demand" option and replace it with
an "Outgoing" option.
svn path=/trunk/; revision=6123
2000-10-20 Jeffrey Stedfast <fejj@helixcode.com>
* Makefile.am: Added filter-url.[c,h].
* filter-message-search.c (get_source): New callback to get the
source url of the message being filtered.
(filter_message_search): Now takes a source argument.
* filter-element.c (filter_element_new_type_name): Added code to
handle URL types.
* filter-url.[c,h]: New filter object to handle URLs (ie in the
case of filtering on source url). FIXME: find a way to populate
the source combo box (including mail-config.h breaks the build in
the addressbook - how does including mail-tools.h not break the
build???)
* filtertypes.xml: Added the source filter type and added the
move-to action.
* filter-driver.c (do_move): New callback, a "Copy" action should
just copy the message to another location while a Move should both
copy the message to a new location and delete it from the source
location.
(do_delete): Set the deleted flag on the message info.
(filter_driver_filter_message): Now returns void as we don't care
if it was copied or not in the caller functions. Also check the
CamelMessageInfo being passed in - if the message has been marked
as deleted prior to being filtered, then return immediately as we
don't want to apply filter actions to deleted messages.
svn path=/trunk/; revision=6094
2000-10-11 Not Zed <NotZed@HelixCode.com>
* filter-driver.c (filter_driver_filter_mbox): Report the
percentage of file complete for the filter.
2000-10-10 Not Zed <NotZed@HelixCode.com>
* filter-driver.c (filter_driver_run): Why on earth does this code
ref all these objects for? This is not right at all.
(filter_driver_run): Changed source type to a string.
(filter_driver_run): REmove the very weird exception copying
stuff - just ref it instead.
(do_score):
(do_colour):
(do_stop):
(do_copy):
(mark_forward):
(do_delete): Removed bogus 'terminated' testing. This is NOT
NEEDED HERE. It is tested after every rule/action, and
termination only makes sense at that point.
(filter_driver_filter_message): new funciton (renamed), filter
only a message.
(filter_driver_filter_mbox): Filter a whole mbox.
(filter_driver_run): If we aren't given an info, create a simple
one based on the message headers.
(filter_driver_filter_message): Renamed from filter_driver_run().
(filter_driver_set_status_func): Set the status callback function.
(filter_driver_set_default_folder): Set the default folder for
filtering.
(report_status): Internal function to report the status of a given
event.
(do_copy): Removed a pointless cache lookup - duh, we do it in
open_folder anyway (infact, we do it in camel too!!).
(filter_driver_filter_message): Removed pointless re-refing of
arguments. Why would anyone think this could be any use at all?
(filter_driver_filter_folder): New function to filter a whole
folder.
* filter-editor.c (rule_add): api fixes.
(rule_edit):
(rule_up):
(rule_down):
(set_sensitive): This didn't take into account the source, now it
does.
(select_source): Fix for api changes. Changed the rather generic
'number' argument to be 'source', and a string.
(filter_editor_construct): Changed the 'number' to 'source', and
set the string appropriately. Added a warning for one case where
the glade file is out of sync.
* score-editor.c (score_editor_construct):
(rule_edit):
(rule_delete):
(rule_up):
(rule_down):
(set_sensitive): api fixes.
* vfolder-editor.c (set_sensitive): Api fixes.
(vfolder_editor_construct):
(rule_edit):
(vfolder_editor_construct):
* rule-context.h (RCNextRuleFunc): Added a source argument.
* rule-context.c (rule_context_next_rule): Added source argument.
(rule_context_find_rule): Added source argument.
(rule_context_get_rank_rule): Added source argument.
(rule_context_get_rank_rule_with_source): Removed.
(save): Fixed for changes to RCNextRuleFunc prototype.
* filter-rule.h: Changed the source to be a string, removed the
filter_source_t type.
* filter-rule.c (filter_rule_set_source): New function to set the
source of a rule. What idiot ran this code through indent?
(filter_rule_find_list): Added a source argument.
(filter_rule_next_list): Added a source argument.
(get_widget): Fixed the wording. You dont remove search parts,
you can only remove the last one. Why you even need to mention
they are search 'criteria' is beyond me. Whoever added the
scrolled window needs to be shot, its the single most awful GUI
feature ever invented (ranks with the close button next to
maximise).
(xml_encode): Save source as a string (if present).
(xml_decode): Likewise for loading & fixed a small memleak.
(filter_rule_finalise): Free source.
svn path=/trunk/; revision=5884
2000-10-06 Not Zed <NotZed@HelixCode.com>
* rule-context.c (load): Remove the stupid on-demand cb shit.
(rule_context_load): And here too.
svn path=/trunk/; revision=5797
2000-09-27 Jeffrey Stedfast <fejj@helixcode.com>
* filter-driver.c (filter_driver_run): Now takes an argument to
specify the log file (or NULL if logging is not to be performed).
svn path=/trunk/; revision=5605
2000-09-18 Jeffrey Stedfast <fejj@helixcode.com>
* filtertypes.xml: Modified to use more intuitive naming
* score-rule.c (xml_decode): Make sure the score is within our
range
(get_widget): Changed range to -3 to +3
* filter-score.c (get_widget): Changed range to -3 to +3
(xml_decode): Make sure the score is within our range
* filter-rule.c (get_widget): Rearranged widgets.
* filter-filter.c (get_widget): Rearranged widgets.
* filter-editor.c (filter_editor_construct): Updated to allow for
double-clicking on a rule to edit it.
svn path=/trunk/; revision=5492