/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Authors: Iain Holmes * * Copyright 2002 Ximian, Inc. (www.ximian.com) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA. * */ #ifdef HAVE_CONFIG_H #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "e-summary-shown.h" #define COLS 1 /* Needs to be filled in before use */ #define SPEC " \ \ \ \ \ \ " #define PARENT_TYPE (gtk_hbox_get_type ()) static GtkObjectClass *e_summary_shown_parent_class; enum { ITEM_CHANGED, SELECTION_CHANGED, LAST_SIGNAL }; static guint32 shown_signals[LAST_SIGNAL] = { 0 }; typedef struct _TableData { ETreeModel *etm; ETreePath *root; GtkWidget *etable; GSList *contents; } TableData; struct _ESummaryShownPrivate { TableData *all, *shown; GtkWidget *add, *remove; }; static GdkPixbuf * icon_at (ETreeModel *etm, ETreePath path, void *model_data) { return NULL; } static int column_count (ETreeModel *etm, void *data) { return COLS; } static void * duplicate_value (ETreeModel *etm, int col, const void *value, void *data) { return g_strdup (value); } static void free_value (ETreeModel *etm, int col, void *value, void *data) { g_free (value); } static void * initialise_value (ETreeModel *etm, int col, void *data) { return g_strdup (""); } static gboolean value_is_empty (ETreeModel *etm, int col, const void *value, void *data) { return !(value && *(char *)value); } static char * value_to_string (ETreeModel *etm, int col, const void *value, void *data) { return g_strdup (value); } static void * value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) { GHashTable *model = model_data; ESummaryShownModelEntry *entry; if (e_tree_model_node_is_root (etm, path)) { return ""; } entry = g_hash_table_lookup (model, path); if (entry == NULL) { return ""; } else { return entry->name; } } static gboolean is_editable (ETreeModel *etm, ETreePath path, int col, void *model_data) { return FALSE; } static void destroy (GtkObject *object) { ESummaryShown *shown; ESummaryShownPrivate *priv; shown = E_SUMMARY_SHOWN (object); priv = shown->priv; if (priv == NULL) { return; } g_free (priv); shown->priv = NULL; e_summary_shown_parent_class->destroy (object); } static void e_summary_shown_class_init (GtkObjectClass *object_class) { object_class->destroy = destroy; e_summary_shown_parent_class = gtk_type_class (PARENT_TYPE); shown_signals[ITEM_CHANGED] = gtk_signal_new ("item-changed", GTK_RUN_LAST, GTK_CLASS_TYPE (object_class), GTK_SIGNAL_OFFSET (ESummaryShownClass, item_changed), gtk_marshal_NONE__NONE, GTK_TYPE_NONE, 0); shown_signals[SELECTION_CHANGED] = gtk_signal_new ("selection-changed", GTK_RUN_LAST, GTK_CLASS_TYPE (object_class), GTK_SIGNAL_OFFSET (ESummaryShownClass, selection_changed), gtk_marshal_NONE__POINTER, GTK_TYPE_NONE, 1, GTK_TYPE_POINTER); } static gboolean is_location_in_shown (ESummaryShown *shown, const char *location) { GSList *p; for (p = shown->priv->shown->contents; p; p = p->next) { ESummaryShownModelEntry *entry = p->data; if (entry->location == NULL) { continue; } if (strcmp (entry->location, location) == 0) { return TRUE; } } return FALSE; } struct _CountData { ESummaryShown *shown; GList *selected_list; int count; }; static void real_selected_count (ETreePath path, gpointer data) { ESummaryShownModelEntry *entry; struct _CountData *cd = data; entry = g_hash_table_lookup (cd->shown->all_model, path); g_return_if_fail (entry != NULL); cd->selected_list = g_list_prepend (cd->selected_list, path); if (entry->showable == FALSE) { return; } if (is_location_in_shown (cd->shown, entry->location)) { return; } cd->count++; } static void all_selection_changed (ETree *et, ESummaryShown *shown) { ESelectionModel *esm; int count; esm = e_tree_get_selection_model (et); count = e_selection_model_selected_count (esm); if (count == 0) { gtk_widget_set_sensitive (shown->priv->add, FALSE); gtk_signal_emit (GTK_OBJECT (shown), shown_signals[SELECTION_CHANGED], 0, NULL); } else { struct _CountData *cd; cd = g_new (struct _CountData, 1); cd->shown = shown; cd->selected_list = NULL; cd->count = 0; e_tree_selection_model_foreach (E_TREE_SELECTION_MODEL (esm), real_selected_count, cd); if (cd->count != 0) { gtk_widget_set_sensitive (shown->priv->add, TRUE); } else { gtk_widget_set_sensitive (shown->priv->add, FALSE); } gtk_signal_emit (GTK_OBJECT (shown), shown_signals[SELECTION_CHANGED], cd->selected_list); g_list_free (cd->selected_list); g_free (cd); } } static void shown_selection_changed (ETree *et, ESummaryShown *shown) { ESelectionModel *esm; int count; esm = e_tree_get_selection_model (et); count = e_selection_model_selected_count (esm); if (count == 0) { gtk_widget_set_sensitive (shown->priv->remove, FALSE); } else { gtk_widget_set_sensitive (shown->priv->remove, TRUE); } } static void maybe_move_to_shown (ETreePath path, gpointer closure) { gpointer *pair = closure; ESummaryShown *shown = pair[0]; GList **list = pair[1]; ESummaryShownModelEntry *entry, *new_entry; entry = g_hash_table_lookup (shown->all_model, path); g_return_if_fail (entry != NULL); /* Check is the entry can be shown */ if (entry->showable == FALSE) { return; } /* check if the entry is already in the shown list */ if (is_location_in_shown (shown, entry->location) == TRUE) { return; } new_entry = g_new (ESummaryShownModelEntry, 1); new_entry->name = g_strdup (entry->name); new_entry->location = g_strdup (entry->location); new_entry->showable = entry->showable; new_entry->ref_count = 0; *list = g_list_prepend (*list, new_entry); } static void add_clicked (GtkWidget *button, ESummaryShown *shown) { ESelectionModel *esm; ETree *et; gpointer pair[2]; GList *list = NULL; GList *iterator; et = e_tree_scrolled_get_tree (E_TREE_SCROLLED (shown->priv->all->etable)); esm = e_tree_get_selection_model (et); pair[0] = shown; pair[1] = &list; e_tree_selection_model_foreach (E_TREE_SELECTION_MODEL (esm), maybe_move_to_shown, pair); for (iterator = list; iterator; iterator = iterator->next) { ESummaryShownModelEntry *new_entry = iterator->data; e_summary_shown_add_node (shown, FALSE, new_entry, NULL, FALSE, NULL); } g_list_free (list); gtk_signal_emit (GTK_OBJECT (shown), shown_signals[ITEM_CHANGED]); gtk_widget_set_sensitive (GTK_WIDGET (button), FALSE); } static void remove_from_shown (ETreePath path, gpointer closure) { gpointer *pair = closure; ESummaryShown *shown = pair[0]; GList **list = pair[1]; ESummaryShownModelEntry *entry; entry = g_hash_table_lookup (shown->shown_model, path); g_return_if_fail (entry != NULL); *list = g_list_prepend (*list, entry); } static void remove_clicked (GtkWidget *button, ESummaryShown *shown) { ESelectionModel *esm; ETree *et; gpointer pair[2]; GList *list = NULL; GList *iterator; et = e_tree_scrolled_get_tree (E_TREE_SCROLLED (shown->priv->shown->etable)); esm = e_tree_get_selection_model (et); pair[0] = shown; pair[1] = &list; e_tree_selection_model_foreach (E_TREE_SELECTION_MODEL (esm), remove_from_shown, pair); list = g_list_reverse (list); for (iterator = list; iterator; iterator = iterator->next) { ESummaryShownModelEntry *entry = iterator->data; e_summary_shown_remove_node (shown, FALSE, entry); } g_list_free (list); gtk_signal_emit (GTK_OBJECT (shown), shown_signals[ITEM_CHANGED]); gtk_widget_set_sensitive (GTK_WIDGET (button), FALSE); } static TableData * make_table (GHashTable *data_model, const char *title, GtkSignalFunc callback, gpointer closure) { TableData *td; ETreeMemory *etmm; ETree *tree; char *real_spec; td = g_new (TableData, 1); td->etm = e_tree_memory_callbacks_new (icon_at, column_count, NULL, NULL, NULL, NULL, value_at, NULL, is_editable, duplicate_value, free_value, initialise_value, value_is_empty, value_to_string, data_model); etmm = E_TREE_MEMORY (td->etm); e_tree_memory_set_expanded_default (etmm, FALSE); td->root = e_tree_memory_node_insert (etmm, NULL, 0, NULL); real_spec = g_strdup_printf (SPEC, title); td->etable = e_tree_scrolled_new (td->etm, NULL, real_spec, NULL); g_free (real_spec); tree = e_tree_scrolled_get_tree (E_TREE_SCROLLED (td->etable)); e_tree_root_node_set_visible (tree, FALSE); g_signal_connect (tree, "selection-change", callback, closure); td->contents = NULL; return td; } static void e_summary_shown_init (ESummaryShown *shown) { ESummaryShownPrivate *priv; GtkWidget *vbox; GtkWidget *align; gtk_box_set_spacing (GTK_BOX (shown), 3); shown->shown_model = g_hash_table_new (NULL, NULL); shown->all_model = g_hash_table_new (NULL, NULL); priv = g_new (ESummaryShownPrivate, 1); shown->priv = priv; priv->all = make_table (shown->all_model, _("All"), G_CALLBACK (all_selection_changed), shown); gtk_box_pack_start (GTK_BOX (shown), priv->all->etable, TRUE, TRUE, 2); gtk_widget_show (priv->all->etable); vbox = gtk_vbox_new (TRUE, 9); align = gtk_alignment_new (.5, .5, .5, 0.0); gtk_container_add (GTK_CONTAINER (align), vbox); gtk_box_pack_start (GTK_BOX (shown), align, FALSE, FALSE, 3); /* Fixme: nice GFX version */ priv->add = gtk_button_new_from_stock (GTK_STOCK_ADD); gtk_widget_set_sensitive (priv->add, FALSE); gtk_box_pack_start (GTK_BOX (vbox), priv->add, TRUE, FALSE, 0); g_signal_connect (priv->add, "clicked", G_CALLBACK (add_clicked), shown); /* Fixme: Ditto */ priv->remove = gtk_button_new_from_stock (GTK_STOCK_REMOVE); gtk_widget_set_sensitive (priv->remove, FALSE); gtk_box_pack_start (GTK_BOX (vbox), priv->remove, TRUE, FALSE, 0); g_signal_connect (priv->remove, "clicked", G_CALLBACK (remove_clicked), shown); gtk_widget_show_all (align); priv->shown = make_table (shown->shown_model, _("Shown"), G_CALLBACK (shown_selection_changed), shown); gtk_box_pack_start (GTK_BOX (shown), priv->shown->etable, TRUE, TRUE, 2); gtk_widget_show (priv->shown->etable); } E_MAKE_TYPE (e_summary_shown, "ESummaryShown", ESummaryShown, e_summary_shown_class_init, e_summary_shown_init, PARENT_TYPE); GtkWidget * e_summary_shown_new (void) { ESummaryShown *shown; shown = gtk_type_new (e_summary_shown_get_type ()); return GTK_WIDGET (shown); } ETreePath e_summary_shown_add_node (ESummaryShown *shown, gboolean all, ESummaryShownModelEntry *entry, ETreePath parent, gboolean expanded, gpointer data) { TableData *td; ETreePath path; ETreeMemory *etmm; ETree *tree; GHashTable *model; g_return_val_if_fail (IS_E_SUMMARY_SHOWN (shown), NULL); if (all == TRUE) { td = shown->priv->all; model = shown->all_model; } else { td = shown->priv->shown; model = shown->shown_model; } if (parent == NULL) { parent = td->root; } etmm = E_TREE_MEMORY (td->etm); path = e_tree_memory_node_insert (etmm, parent, -1, data); tree = e_tree_scrolled_get_tree (E_TREE_SCROLLED (td->etable)); if (e_tree_model_get_expanded_default (E_TREE_MODEL(etmm)) != expanded) e_tree_node_set_expanded (tree, path, expanded); entry->path = path; g_hash_table_insert (model, path, entry); if (all == FALSE) { /* Add the location to the list */ td->contents = g_slist_prepend (td->contents, entry); } return path; } void e_summary_shown_remove_node (ESummaryShown *shown, gboolean all, ESummaryShownModelEntry *entry) { TableData *td; GHashTable *model; ETreeMemory *etmm; g_return_if_fail (IS_E_SUMMARY_SHOWN (shown)); if (all == TRUE) { td = shown->priv->all; model = shown->all_model; } else { td = shown->priv->shown; model = shown->shown_model; } etmm = E_TREE_MEMORY (td->etm); e_tree_memory_node_remove (etmm, entry->path); g_hash_table_remove (model, entry->path); if (all == FALSE) { td->contents = g_slist_remove (td->contents, entry); } } void e_summary_shown_freeze (ESummaryShown *shown) { g_return_if_fail (IS_E_SUMMARY_SHOWN (shown)); e_tree_memory_freeze (E_TREE_MEMORY (shown->priv->all->etm)); e_tree_memory_freeze (E_TREE_MEMORY (shown->priv->shown->etm)); } void e_summary_shown_thaw (ESummaryShown *shown) { g_return_if_fail (IS_E_SUMMARY_SHOWN (shown)); e_tree_memory_thaw (E_TREE_MEMORY (shown->priv->all->etm)); e_tree_memory_thaw (E_TREE_MEMORY (shown->priv->shown->etm)); } static void make_list (ETreePath path, gpointer data) { GList **list = data; *list = g_list_prepend (*list, path); } GList * e_summary_shown_get_selection (ESummaryShown *shown, gboolean all) { ETree *et; ESelectionModel *esm; GList *list = NULL; if (all) { et = e_tree_scrolled_get_tree (E_TREE_SCROLLED (shown->priv->all->etable)); } else { et = e_tree_scrolled_get_tree (E_TREE_SCROLLED (shown->priv->shown->etable)); } esm = e_tree_get_selection_model (et); e_tree_selection_model_foreach (E_TREE_SELECTION_MODEL (esm), make_list, &list); return list; } class='commitgraph'>* Updated Swedish translation.Christian Rose2001-07-252-136/+145 * Add "Compose New Message" to the Actions menu as suggested in bug #866.Peter Williams2001-07-252-2/+8 * Set up the local trash in the folder cache.Peter Williams2001-07-252-0/+8 * Updated Slovak translation.Stanislav Visnovsky2001-07-242-712/+640 * Make the error reporting a little but more descriptive.Peter Williams2001-07-242-2/+7 * Add new label widgets with a message that SSL isn't supported.Peter Williams2001-07-245-8/+70 * Reworded a few questions.Aaron Weber2001-07-244-12/+16 * Correct minimal version testFrédéric Crozat2001-07-242-2/+7 * Updated Swedish translation.Christian Rose2001-07-242-325/+375 * Added a validate function that checks to make sure that vfolders that haveJon Trowbridge2001-07-243-0/+40 * Dont call notifyResult here if we've just launched a thread to do theNot Zed2001-07-242-13/+17 * Only show the warning dialog instead of using `gnome_dialog_run()' so itEttore Perazzoli2001-07-241-2/+10 * Somehow this missed the commit.Not Zed2001-07-241-2/+2 * Go back to calling mail_msg_free here. (mail_msg_destroy): Remove theNot Zed2001-07-243-8/+31 * Only show the warning dialog instead of using `gnome_dialog_run()' so itEttore Perazzoli2001-07-242-7/+13 * fixed the test to see whether we should draw the icons.Damon Chaplin2001-07-242-3/+8 * Added some warnings for bad cases.Not Zed2001-07-242-4/+26 * Oops. Uncomment this code since Trow fixed GtkHTML to actually have thisJeffrey Stedfast2001-07-242-1/+4 * Fixed the "Read" to be Read in the glade file per menesis' request.Jeffrey Stedfast2001-07-246-5/+94 * pass extra param to icalparser_get_next_char (icalparser_get_next_char):JP Rosevear2001-07-242-26/+43 * changed so it doesn't use mktime(). We are having problems becauseDamon Chaplin2001-07-242-17/+28 * fixed my fix to compileJeffrey Stedfast2001-07-241-2/+2 * Pulled instance of config-setupassist.sgml to make stuff build right.Kevin Breit2001-07-244-2/+8 * If the source and destination folders are the same, just mark the uids asJeffrey Stedfast2001-07-242-4/+21 * Carefully check for NULL everywhere, and do the right thing if the messageJon Trowbridge2001-07-242-2/+24 * validated.Aaron Weber2001-07-248-424/+26 * Add new feed to the shown listIain Holmes2001-07-242-0/+11 * Uhm, set the usize to `1, -1' instead.Ettore Perazzoli2001-07-242-1/+6 * Some commit mix ups left the KDE rdf url still set to the old, invalidJacob Leach2001-07-241-1/+1 * [Bug #5225: No UI way to mark as unimportant]Jason Leach2001-07-245-6/+49 * Make the storage registar(?) genericIain Holmes2001-07-242-35/+76 * Add the "Mark as Unimportant" cmd and menu item to the Edit menu. BugJason Leach2001-07-242-3/+12 * Fix the Newsforge name and the KDE rdfIain Holmes2001-07-242-2/+7 * Change the butt-ugly UI to a saner (and just as flexible) one. Instead ofPeter Williams2001-07-242-98/+114 * Set the usize for the contained hbox to 0x0.Ettore Perazzoli2001-07-242-0/+7 * Minor revisions.Aaron Weber2001-07-2418-960/+822 * Get the manuals from the `evolution-guide' dir as that's where they getEttore Perazzoli2001-07-242-5/+10 * Update the url (and site name) for the KDE rdf. Bug #5145.Jason Leach2001-07-242-1/+6 * Changed background transparency.Aaron Weber2001-07-242-0/+0 * Re-fix for my 07-18 not-quite-fix.Dan Winship2001-07-245-8/+84 * Don't handle button events whose button number is not 1.Ettore Perazzoli2001-07-242-1/+7 * Slight fix for when source == destination (we don't want to do this actionJeffrey Stedfast2001-07-242-0/+9 * Removing changes to Makefile.am; didn't know this was a global directoryAndrew Hughes Chatham2001-07-231-4/+2 * Handle GDK_KP_* cursor keys as well.Ettore Perazzoli2001-07-231-1/+5 * Added some operation progress reporting. Actual data transfer is 'tricky'Not Zed2001-07-234-12/+44 * Add an extra @type arg to the xferFolder and removeFolder methods inEttore Perazzoli2001-07-2314-17/+174 * Removing these macros from the global gnome macros directory. Sorry about that.Andrew Hughes Chatham2001-07-234-148/+0 * Add a `user_creatable' property to folder types and make componentsEttore Perazzoli2001-07-2219-18/+110 * typo in changelog.Jacob Leach2001-07-221-1/+1 * Capitalize "messgaes" in "Hide Read messages" menu item label. Bug #5091.Jason Leach2001-07-222-1/+6 * Use `g_source_remove()' instead of `gtk_timeout_remove()' here, as we areEttore Perazzoli2001-07-222-1/+13 * Updated Swedish translation.Christian Rose2001-07-212-124/+135 * Removed some debugging spew I committed by mistake.Jon Trowbridge2001-07-211-4/+1 * Change window policy to allow the completion window to shrink when theJon Trowbridge2001-07-212-11/+9 * Fixed the first time druid stuff a little more.Kevin Breit2001-07-214-16/+28 * [Fix a crash if you start evolution with a bad URI.]Jason Leach2001-07-213-2/+16 * Make dist, dist check, and rpm are now supported and working. If you want to ...Kevin Gibbs2001-07-215-2/+152 * Removed the "Forward To" filter action.Jeffrey Stedfast2001-07-213-45/+44 * Removed the "Redirect" menu since this is now a future feature.Jeffrey Stedfast2001-07-212-5/+5 * Change this back to the "evolution:/local/Inbox" URI.Jason Leach2001-07-212-1/+6 * Revert last changes, URIs are now back to original in shell.Jason Leach2001-07-214-8/+13 * [This is a better way to have "Local Folders" be shown as the localJason Leach2001-07-219-8/+77 * More usage fixes for CamelException. Check our own exception forPeter Williams2001-07-212-2/+12 * Pull up test fixes to get them building againJP Rosevear2001-07-2110-12/+18 * Pull in new splash screenJP Rosevear2001-07-212-0/+4 * Bump to 0.11.99JP Rosevear2001-07-212-1/+5 * Don't let the user remove vtrash folders.Peter Williams2001-07-212-0/+8 * Fix DanW's fix. Pass the right arguments to mail_msg_destroy.Peter Williams2001-07-214-6/+41 * er, unbroke changelogJeffrey Stedfast2001-07-211-1/+0 * Don't expunge the source folder if we have a cache.Jeffrey Stedfast2001-07-214-11/+18 * Use mail_msg_destroy rather than mail_msg_free, so the cancellationDan Winship2001-07-212-1/+7 * install 2 new category icons (16_category_suppliers.png andRodrigo Moya2001-07-202-17/+24 * use the 2 new category icons (16_category_suppliers.png andRodrigo Moya2001-07-202-2/+8 * Updated Slovak translation a bit.Stanislav Visnovsky2001-07-202-229/+198 * New category icon again... /tigertTuomas Kuosmanen2001-07-202-0/+3 * Icon for "suppliers" category for Evolution. /tigertTuomas Kuosmanen2001-07-202-0/+2 * *** empty log message ***Rodrigo Moya2001-07-201-0/+1 * Duh, this one I changed, not the other. Anyway..Tuomas Kuosmanen2001-07-201-0/+0 * Removed the colored background from the icons, since it turned out itTuomas Kuosmanen2001-07-206-0/+8 * renamed to camel_charset_to_iconv() to make it just a little moreNot Zed2001-07-206-9/+15 * Update this evolution:/local/ URI to evolution:/Local Folders/ to go alongJason Leach2001-07-202-1/+7 * Update the evolution:/local/ URI's to evolution:/Local Folders/ to goJason Leach2001-07-204-11/+18 * Removed unused prototype.Federico Mena Quintero2001-07-203-2/+8 * Convert to the iconv-friendly charset names.Jeffrey Stedfast2001-07-209-116/+165 * Fix #4605: "Save Image as" should be "Save Image as...".Jason Leach2001-07-202-2/+7 * Fixed a compiler warning about returning without a value in a non-voidJeffrey Stedfast2001-07-201-1/+1 * free various data related settings (destroy): use cleanup and unref theJP Rosevear2001-07-202-5/+70 * Modified to treat the return value from camel_charset_locale_name() as aJeffrey Stedfast2001-07-205-62/+79 * updated to use new print icon.Damon Chaplin2001-07-203-1/+7 * update to use new print icon.Damon Chaplin2001-07-203-11/+14 * Updated Swedish translation.Christian Rose2001-07-202-188/+199 * Make the local storage name "Local Folders" instead of "local", looksJason Leach2001-07-207-12/+27 * HTMLIain Holmes2001-07-202-1/+5 * Set the vertical scrolling policy for the mail display to AUTOMATIC, onlyJason Leach2001-07-204-6/+18 * Line up the padding for the folder title bar labels when you have theJason Leach2001-07-203-3/+15 * In camel:Peter Williams2001-07-206-42/+234 * No need for `acharset' anymore. (check_html_charset): Return a const char*Jeffrey Stedfast2001-07-202-13/+17 * Remove my iso8859-1 -> iso-8859-1 hack and useJeffrey Stedfast2001-07-205-36/+156 * install the 2 new category iconsRodrigo Moya2001-07-202-1/+7 * use the 2 new category iconsRodrigo Moya2001-07-202-2/+5 * Fix the mail folder linksIain Holmes2001-07-203-2/+5 * Set the text colour to BLACKIain Holmes2001-07-202-1/+7 * 2 new category icons.. /tigertTuomas Kuosmanen2001-07-203-0/+5 * remove something notzed didn't mean to commitDan Winship2001-07-201-1/+1 * Revert 7/11/2001 patch for IMAP INBOX filtering at NotZed's request.Peter Williams2001-07-192-67/+17 * remvoed register/start/end etc code.Not Zed2001-07-195-318/+41 * s/imagedir/imagesdirRodrigo Moya2001-07-192-1/+5 * partial checkin before completing the changesNot Zed2001-07-196-127/+137 * remove all the servers that just don't work anymore, and add Verisign'sChris Toshok2001-07-192-20/+9 * Remove obsolete reference to account.default_account.Jon Trowbridge2001-07-192-1/+5 * Remove this prototype for a function that was removed long ago.Jason Leach2001-07-192-4/+6 * Update to the new way of finding the default account.Jason Leach2001-07-192-3/+14 * [Simplifying how default account is stored and used internally, fixesJason Leach2001-07-197-82/+89 * [ patch contributed by Jos Dehaes <jos.dehaes@bigfoot.com> ]Chris Toshok2001-07-192-15/+75 * Flush the listener's queue before unreffing it to ensure that it doesn'tDan Winship2001-07-194-5/+22 * toolbar icons for message editorJakub Steiner2001-07-194-0/+5 * More stuffIain Holmes2001-07-194-10/+28 * Remove spewageIain Holmes2001-07-192-1/+4 * Make the Tasks option workIain Holmes2001-07-193-5/+68 * prune the list of cards that match our query using the avoid list here,Chris Toshok2001-07-192-17/+29 * Do what was suggested in #4596.Jeffrey Stedfast2001-07-193-32/+32 * When the dialog gets closed, always make sure the entry widget becomesJeffrey Stedfast2001-07-192-1/+5 * When the dialog gets closed, always make sure the entry widget becomesJeffrey Stedfast2001-07-192-188/+179 * Make pretty buttons.Iain Holmes2001-07-193-7/+66 * Return -1 if we don't find it? This is what most of the code expected butJeffrey Stedfast2001-07-193-31/+41 * Cosmetic fixesIain Holmes2001-07-192-0/+6 * USe a message box to look nicer.Iain Holmes2001-07-192-10/+12 * Updated Slovak translation.Stanislav Visnovsky2001-07-192-3217/+5211 * Add GTK_WIDGET to the charset picker. Reportedly prevent a craash forPeter Williams2001-07-192-1/+4 * Typo fix. Later: And actually fix the typo.Peter Williams2001-07-182-1/+2 * Typo fix.Peter Williams2001-07-182-1/+5 * Updated Swedish translation.Christian Rose2001-07-182-433/+472 * don't show the time in the EDateEdit widget for adding EXDATEs.Damon Chaplin2001-07-183-2/+10 * [ Fixes bugs #4611 - crash searching in the name field at Bigfoot for "\"Chris Toshok2001-07-182-6/+25 * do not discard drawing icon if mask is NULLRodrigo Moya2001-07-183-2/+10 * generate default configuration for icons-per-category the first time. AndRodrigo Moya2001-07-183-59/+116 * Setup the auto-receive here instead.Jeffrey Stedfast2001-07-183-2/+11 * find the next displayable component (get_prev): find the previousJP Rosevear2001-07-182-3/+52 * Remove leftover ifdefs - FedericoFederico Mena Quintero2001-07-182-12/+1 * Reset the autoreceive when necessary.Iain Holmes2001-07-183-0/+8 * do not strdup a NULL (valid) timezoneJP Rosevear2001-07-182-6/+14 * Remove the debugging message here.Dan Winship2001-07-181-1/+0 * Fix for last change: hide the entire widget, not just the entry.Jason Leach2001-07-183-4/+10 * Clean up some exception misusage.Peter Williams2001-07-186-20/+78 * Fix to correctly handle text/uri-lists that contain more than a singleJeffrey Stedfast2001-07-183-53/+74 * Correctly handle text/uri-list's that contain more than a single fileJeffrey Stedfast2001-07-182-24/+30 * oops, save ChangeLog before committing - FedericoFederico Mena Quintero2001-07-181-1/+2 * Make the Path: entry into a GnomeFileEntry so you get a nice "Browse..."Jason Leach2001-07-182-24/+40 * Fix up the "exactly version N" case of EVO_CHECK_LIBDan Winship2001-07-182-2/+10 * Really fixes #4380. The previous fix was necessary but not sufficient; itFederico Mena Quintero2001-07-186-5/+58 * Cleaned up a bit. (handle_multipart_encrypted): Replace the encrypted partJeffrey Stedfast2001-07-183-19/+26 * Hold a reference to our listener while the idle function is active.Jon Trowbridge2001-07-187-19/+68 * Removed old, broken code and annoying g_messages.Jon Trowbridge2001-07-183-50/+22 * Make a nicer delete account dialogIain Holmes2001-07-182-6/+11 * install category iconsRodrigo Moya2001-07-182-1/+23 * Use CAMEL_VTRASH_NAME.Jeffrey Stedfast2001-07-187-21/+28 * Use CAMEL_VTRASH_NAME.Jeffrey Stedfast2001-07-184-8/+15 * okay. me lazy. cvs stupid. = recommitting all again. These are tiny filesTuomas Kuosmanen2001-07-171-0/+0 * some stuff, apparently I copied over some files since it wants to commitTuomas Kuosmanen2001-07-174-0/+0 * new icons.. /tigertTuomas Kuosmanen2001-07-174-0/+5 * Patch from Taylor Hayward <thayward@gjpc.com>. Added accelerators to a fewChristopher James Lahey2001-07-175-57/+61 * Print a g_message when the list of invited people changes in theJon Trowbridge2001-07-172-2/+20 * Added addSectionWithLimit to the SelectNames interface.Jon Trowbridge2001-07-179-37/+254 * destroy the dialog widget here. Fixes bug #4198.Damon Chaplin2001-07-172-0/+10 * Add closing dots to the "Filter on..." items for consistency with theEttore Perazzoli2001-07-172-4/+9 * [ Fix bug #4705 - LDAP storage gets saved with corrupted binddn]Chris Toshok2001-07-174-5/+29 * try to use builtin timezones before getting them from the server. WhenDamon Chaplin2001-07-176-26/+77 * return NULL if we couldn't find the LOCATION.Damon Chaplin2001-07-173-9/+26 * Use g_strcasecmp() when looking for a Trash folder - it may be lowercaseJeffrey Stedfast2001-07-172-8/+20 * Fix logicIain Holmes2001-07-171-1/+1 * Use g_strcasecmp() when looking for a Trash folder - it may be lowercaseJeffrey Stedfast2001-07-174-28/+39 * Removed unused headers - FedericoFederico Mena Quintero2001-07-171-8/+0 * Generalized function for trying a number of strptime() formats on aFederico Mena Quintero2001-07-173-53/+110 * Fixes bug #2901.Federico Mena Quintero2001-07-172-16/+10 * Don't import if nsmail is emptyIain Holmes2001-07-172-3/+60 * Use other folders to import intoIain Holmes2001-07-172-2/+15 * Let VTrash folders accept/export the same dnd types as normal folders.Jeffrey Stedfast2001-07-172-20/+26 * Given: 4 EXISTS 1 EXPUNGE We have to pass 3, not 4 toDan Winship2001-07-172-0/+16 * prototype outbox_folder so we can check if a folder is it.Peter Williams2001-07-172-4/+23 * Use our own display_style member instead of the global setting.Peter Williams2001-07-178-10/+44 * Nicer error reporting.Iain Holmes2001-07-173-6/+31 * DUH. No need to update every folder if we set the folder browser to NULL.Peter Williams2001-07-162-5/+11 * Call mail_autoreceive_setup() so that any changes to the list of accountsJeffrey Stedfast2001-07-162-0/+9 * *** empty log message ***Jacob Berkman2001-07-163-21/+27 * Reset the view when we set the model here. Fixes Ximian #4105.Christopher James Lahey2001-07-161-0/+1 * Changelog too.. /tigertTuomas Kuosmanen2001-07-161-0/+6 * new icons added.. /tigertTuomas Kuosmanen2001-07-163-0/+0 * Removed. (load_shortcuts): Don't call it.Ettore Perazzoli2001-07-162-29/+6 * Changed to use test -h instead of -L for checking /var/mail vsNot Zed2001-07-162-1/+6 * Updated slightly for new design.Kevin Breit2001-07-164-6/+30 * [Fix #4387, Shortcut bar items don't keep the name after rename.]Ettore Perazzoli2001-07-152-1/+8 * Display an icon for nodes at depth greater than 2 in the tree view asEttore Perazzoli2001-07-152-11/+10 * Commented out some unused variables and labels. (e_destination_importv):Christopher James Lahey2001-07-153-0/+22 * Start editing immediately on a button_press that grabs the focus.Christopher James Lahey2001-07-151-27/+44 * Added a call to e_table_view_to_model_row here.Christopher James Lahey2001-07-152-3/+16 * Fix a crash that could happen by closing one or more views, and thenEttore Perazzoli2001-07-153-4/+14 * If the message info for an expunged message is NULL, then just break out -Jeffrey Stedfast2001-07-152-0/+13 * Some QA.Carlos Perelló Marín2001-07-152-37/+41 * Icon name fixIain Holmes2001-07-142-1/+5 * new category icons, more to follow. /tigertTuomas Kuosmanen2001-07-144-0/+5 * Added lots of good stuff with the first time druid.Kevin Breit2001-07-142-0/+510 * more updatesJP Rosevear2001-07-142-14/+54 * WiddleIain Holmes2001-07-141-1/+4 * oops, forgot some stuffJeffrey Stedfast2001-07-141-2/+8 * Typo fixPeter Williams2001-07-141-1/+1 * Merged mine and Peter's entries.Jeffrey Stedfast2001-07-144-16/+48 * 0.11 news for peterwPeter Williams2001-07-141-0/+27 * Ummmm, it's the NEWS, take a guessIain Holmes2001-07-141-0/+9 * Added a hack to convert charsets in the format iso8859-1 to iso-8859-1Jeffrey Stedfast2001-07-142-25/+43 * Segfault prevention here if no uid is currently loaded.Peter Williams2001-07-142-6/+8