Commit Graph

261 Commits

Author SHA1 Message Date
53337e992f Get the mail component to use the new Evolution::ShellView interface.
This implementation is so ugly and evil and needs to be replaced.
Don't look at it.  Go away.

svn path=/trunk/; revision=4797
2000-08-13 05:20:54 +00:00
8cb514d6dd Merge with camel-async.
svn path=/trunk/; revision=4687
2000-08-10 17:30:50 +00:00
f4a16f3c8d Basic framework for saving the size of the vpaned in the main message view
svn path=/trunk/; revision=4623
2000-08-09 03:19:08 +00:00
b9eece78e6 Redone to show a dialogue first, and show progress of whats happening as
2000-08-07  Not Zed  <NotZed@HelixCode.com>

        * mail-local.c (local_reconfigure_folder): Redone to show a
        dialogue first, and show progress of whats happening as its done.

        * Makefile.am (glade_DATA): Added local-config.glade, for mailbox
        reconfig dialogue.

2000-08-04  Not Zed  <NotZed@HelixCode.com>

        * folder-browser.c (mail_uri_to_folder): Use local_uri_to_folder()
        for local uri's (file://).

        * mail-local.c (local_uri_to_folder): Handle looking up folder
        storage type before opening the store/folder.
        (local_reconfigure_folder): Function to reconfigure the format of
        a local mailbox into another storage format.

        * Makefile.am (evolution_mail_SOURCES): Added mail-local.c and
        missing mail-vfolder.h.

svn path=/trunk/; revision=4591
2000-08-08 03:55:11 +00:00
3892c5df4d Fixed some warnings.
2000-07-31  Christopher James Lahey  <clahey@helixcode.com>

	* component-factory.c, folder-browser.c: Fixed some warnings.

	* message-list.c: Made the icon column non sortable.

svn path=/trunk/; revision=4440
2000-07-31 22:32:52 +00:00
72092414aa Configurable vfolder sources, and a button to save a search
as a new vfolder.

2000-07-31  Not Zed  <NotZed@HelixCode.com>

        * mail-vfolder.h: Header for vfolder functions.

        * folder-browser.c (mail_uri_to_folder): Use new scheme to open
        vfolders.
        (search_save): New button/function to save a search as a vfolder.

        * mail-vfolder.c (vfolder_edit): Made asynchronous.
        (vfolder_uri_to_folder): New function for loading vfolders and
        setting up their source folders.
        (vfolder_refresh): Change shell vfolder uri's to indirect
        references rather than the real vfolder uri.
        (vfolder_gui_add_rule): Add a rule with user confirmation.
        (vfolder_create_part): Get a new part by name, for creating rules
        in code.

        * message-thread.c (thread_messages): Check for uid lookup
        failure, which indicates an error in the folder or calling code.

svn path=/trunk/; revision=4422
2000-07-31 15:07:49 +00:00
237f2dc92b Initial code to support IMAP folders that don't use "/" as a directory
2000-07-16  Jeffrey Stedfast <fejj@helixcode.com>

	* folder-browser.c, component-factory.c: Initial code to support
	IMAP folders that don't use "/" as a directory separator.

svn path=/trunk/; revision=4185
2000-07-17 03:46:26 +00:00
db53781003 Only unref the folder if it's been set.
* message-list.c (message_list_destroy): Only unref the folder if
	it's been set.

	* folder-browser.c (folder_browser_destroy): Only sync the folder
	if it's been set.

svn path=/trunk/; revision=4162
2000-07-14 00:25:01 +00:00
f61cf36756 Disable Search capability menu/entry if folder doesn't support it.
2000-07-11  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser.c (folder_browser_load_folder): Disable
	Search capability menu/entry if folder doesn't support it.

	* message-list.c (message_list_regenerate): Don't perform
	a search if the folder doesn't support it.

svn path=/trunk/; revision=4097
2000-07-11 20:42:27 +00:00
04073f3c49 kill more debugging messages
* kill more debugging messages

svn path=/trunk/; revision=4050
2000-07-10 20:48:10 +00:00
e17db743f3 Update message_list_select_next to do either next or previous.
* message-list.c (message_list_select): Update
	message_list_select_next to do either next or previous.

	* folder-browser.c (etable_key): Make 'n' and 'p' do next and
	previous unread message.

	* mail-ops.c (select_first_unread): Update.
	(real_fetch_mail): clean up a bit.

svn path=/trunk/; revision=4046
2000-07-10 20:04:32 +00:00
76bfeb54e4 Fix syncing of the mailbox on exit so that it's done on destruction of
the corresponding FolderBrowser instead of using the "owner_unset"
signel (the latter was broken, because the FolderBrowser is destroyed
before "owner_unset" is emitted, so we have no chance to sync at that
point).

svn path=/trunk/; revision=4038
2000-07-10 16:37:55 +00:00
10b1fc590b Fix up the pageup/pagedown increment a bit.
* folder-browser.c (etable_key): Fix up the pageup/pagedown
	increment a bit.

svn path=/trunk/; revision=4001
2000-07-09 03:30:47 +00:00
2d33aa8a77 Lots of changes. Store uids as node data on the tree nodes and use those
* message-list.c: Lots of changes. Store uids as node data on the
	tree nodes and use those rather than rows where possible. (The
	concept of "row" is just getting too complicated.) Get rid of the
	summary_table, because given a uid we can call
	camel_folder_get_message_info, which makes more sense than keeping
	a separate uid->row hash table ourselves.

	(get_message_info): update
	(get_message_row): removed
	(ml_col_cound, ml_row_count, ml_value_at, ml_set_value_at,
	ml_cell_is_editable, ml_duplicate_value, ml_free_value,
	ml_initialize_value, ml_value_is_empty, ml_value_to_string):
	Removed. We always use the tree model now.
	(message_list_init): Remove the non-tree code.
	(build_tree): store uids in the tree rather than row numbers,
	and build the message_list->uid_rowmap to map from uids to rows
	when needed.
	(message_list_regenerate): Renamed from _set_search, since it's
	used to redraw in non-search cases too.
	(message_changed): Use the uid_rowmap to get a model row number.

	* message-thread.c (thread_messages): Change the interface on this
	to work with the new MessageList.

	* folder-browser.c (search_set, folder_browser_clear_search):
	s/message_list_set_search/message_list_regenerate/

svn path=/trunk/; revision=3960
2000-07-07 21:15:11 +00:00
443433db56 fix warnings.
* folder-browser-factory.c, folder-browser.c, mail-ops.c,
	message-list.c: fix warnings.

svn path=/trunk/; revision=3931
2000-07-07 00:47:24 +00:00
647cc8b636 New function to select the first message on or after the given row that
* message-list.c (message_list_select_next): New function to
	select the first message on or after the given row that meets
	certain flag criteria.

	* folder-browser.c (etable_key): call message_list_select_next to
	select next non-deleted message after Delete.

	* mail-ops.c (real_fetch_mail): call message_list_select_next to
	select first unread message in current folder if it changes.
	(real_delete_msg): Remove the code to move the etable cursor. It
	only makes sense really if you deleted the message with the
	keyboard, so do it from there.

svn path=/trunk/; revision=3927
2000-07-06 21:33:07 +00:00
e497e9ad28 Fix double freeing of the camel exception; this prevents a crash when a
folder cannot be opened.

svn path=/trunk/; revision=3858
2000-07-02 21:25:15 +00:00
a640827879 s/mbox/file/ to make this work again
svn path=/trunk/; revision=3834
2000-06-30 20:54:51 +00:00
6f95a96083 New function, a wrapper around e_table_selected_row_foreach, which calls
* message-list.c (message_list_foreach): New function, a wrapper
	around e_table_selected_row_foreach, which calls the callback
	function with UIDs rather than row numbers.

	* folder-browser-factory.c: Remove never-used "Find" button from
	the toolbar and replace it with "Refile". (We need a better icon
	for this...). Hook up "Refile" to "refile_msg".

	* mail-ops.c (refile_msg): Call the shell's user_select_folder
	routine, and then use message_list_foreach and real_refile_msg to
	do the work.
	(delete_msg): Update to use message_list_foreach.

	* folder-browser.c (mail_uri_to_folder): new function, extracted
	from folder_browser_load_folder, to turn a URI into a folder.
	(folder_browser_load_folder): Use it.

svn path=/trunk/; revision=3833
2000-06-30 20:05:47 +00:00
187f4c8b0c commenting out of some GDK_THREADS_*() junk that was causing a lock
also fixed an assignment problem (var = void) in mail-config.c

svn path=/trunk/; revision=3738
2000-06-26 16:02:06 +00:00
c3d1ab1fc9 folder-browser.c: Improved the code to separate the imap namespace from the folder path
svn path=/trunk/; revision=3713
2000-06-23 19:55:09 +00:00
30f5127773 Now should correctly get the selected folder from the given URL.
2000-06-22  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser.c (folder_browser_load_folder): Now should
	correctly get the selected folder from the given URL.

svn path=/trunk/; revision=3704
2000-06-23 02:29:37 +00:00
d12be02179 add handling for loading "news:" folders.
2000-06-22  Chris Toshok  <toshok@helixcode.com>

	* folder-browser.c (folder_browser_load_folder): add handling for
	loading "news:" folders.

	* component-factory.c (create_news_storage): add a root for news
	source.
	(owner_set_cb): call create_news_storage.

svn path=/trunk/; revision=3703
2000-06-23 02:11:38 +00:00
afa7176eab Updated to prepend url-> path if it exists for that imap store.
2000-06-22  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser.c (folder_browser_load_folder): Updated to
	prepend url-> path if it exists for that imap store.

	* component-factory.c (create_imap_storage): Modified to not
	prepend a hard-coded namespace.

svn path=/trunk/; revision=3701
2000-06-22 21:55:14 +00:00
ed11b82023 oops, should have checked for a NULL sources in component-factory.c
(create_imap_storage)

svn path=/trunk/; revision=3657
2000-06-21 01:36:34 +00:00
9272361bba Only fetch the summary if the folder summary doesn't already exist. When
2000-06-20  Jeffrey Stedfast  <fejj@helixcode.com>

	* providers/imap/camel-imap-folder.c (imap_get_summary): Only
	fetch the summary if the folder summary doesn't already exist.
	When the summary *does* exist, start fetching from 1, not 0.
	(imap_free_summary): Don't do anything here.
	(imap_finalize): Free the summary here instead of in
	imap_free_summary().

	* camel-url.c (check_equal): No need to check s1 if s2 is NULL
	(camel_url_equal): Don't check the passwd component of the url.

and in mail/component-factory.c (create_imap_storage): removal of
debug statements
mail/folder-browser.c (folder_browser_load_folder): improved imap
service parser

svn path=/trunk/; revision=3649
2000-06-20 21:11:07 +00:00
8f881bd9d5 working on getting IMAP folder selection working
svn path=/trunk/; revision=3648
2000-06-20 18:04:10 +00:00
1ede35fcdd basically got IMAP into the tree view
svn path=/trunk/; revision=3643
2000-06-20 04:57:39 +00:00
11c0b04807 started to add code to load an IMAP folder.
2000-06-18  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser.c (folder_browser_load_folder): started to add
	code to load an IMAP folder.

	* component-factory.c: Started to add a create_imap_storage
	method so that we can eventually have our IMAP store displayed
	in the tree view.
	(create_vfolder_storage): Renamed from
	create_test_storage().
	(owner_set_cb): Updated.

svn path=/trunk/; revision=3627
2000-06-19 02:55:09 +00:00
94f0df746e New function to revert back to non-searching mode.
* folder-browser.c (folder_browser_clear_search): New function to
	revert back to non-searching mode.

	* mail-ops.c (fetch_mail): Use folder_browser_clear_search.

svn path=/trunk/; revision=3576
2000-06-15 17:31:53 +00:00
860fb187ff Return the result of folder_browser_load_folder. (get_prop, set_prop,
* folder-browser.c (folder_browser_set_uri): Return the result of
	folder_browser_load_folder.
	(get_prop, set_prop, folder_browser_properties_init): Remove. No
	longer needed.

	* folder-browser-factory.c (folder_browser_factory_new_control):
	Add a "uri" argument, return NULL if setting it fails.
	(folder_browser_factory_new_control): Remove property bag stuff.
	(folder_browser_factory_init, folder_browser_factory): Remove
	this, since we're using the component factory now.

	* component-factory.c (create_view): Update for
	folder_browser_factory_new_control change and return NOTFOUND as
	appropriate.

	* main.c (main): Don't call folder_browser_factory_init.

svn path=/trunk/; revision=3532
2000-06-12 19:29:17 +00:00
88b0244b32 Add a serial number to FolderBrowser.
* folder-browser.c (folder_browser_new): Add a serial number to
	FolderBrowser.

	* folder-browser-factory.c (control_activate, control_deactivate):
	Include fb serial number in the name of the Bonobo toolbar to
	prevent problems with disappearing toolbars. This is a kludge and
	should go away.

svn path=/trunk/; revision=3501
2000-06-10 01:52:51 +00:00
440b4825e9 Update for folder creation/existence changes.
* mail-ops.c (fetch_mail):
	* folder-browser.c (folder_browser_load_folder): Update for folder
	creation/existence changes.

	* message-list.c (message_list_set_folder): Remove the code to
	create the folder if it doesn't exist, since we don't want to do
	that.

svn path=/trunk/; revision=3455
2000-06-07 00:07:06 +00:00
425047aa48 Allow "GDK_KP_Delete", a keypad delete key, to delete a message.
* folder-browser.c (etable_key): Allow "GDK_KP_Delete", a keypad
	delete key, to delete a message.

svn path=/trunk/; revision=3435
2000-06-05 22:35:25 +00:00
b6a422ad58 Add "Delete" = delete message.
* folder-browser.c (etable_key): Add "Delete" = delete message.

svn path=/trunk/; revision=3432
2000-06-05 21:19:51 +00:00
a161070ec2 Connect to ETable's key_press signal. (etable_key): scroll mail on
* folder-browser.c (my_folder_browser_init): Connect to ETable's
	key_press signal.
	(etable_key): scroll mail on space/backspace.

svn path=/trunk/; revision=3375
2000-06-02 04:29:06 +00:00
9c6a4c53a9 Properly encode the search string.
2000-05-30  Not Zed  <NotZed@HelixCode.com>

        * folder-browser.c (search_set): Properly encode the search string.

svn path=/trunk/; revision=3301
2000-05-30 22:54:37 +00:00
bebbdbbbcb Hardcode the vfolder source to just the inbox (so at least it returns
2000-05-29  Not Zed  <NotZed@HelixCode.com>

        * folder-browser.c (folder_browser_load_folder): Hardcode the
        vfolder source to just the inbox (so at least it returns
        something).

        * component-factory.c (create_test_storage): Create a vfolder dir
        first, and put the folders in that.
        (create_test_storage): Create the storage as VFolders, not
        "storage_name" :)

svn path=/trunk/; revision=3269
2000-05-29 20:39:19 +00:00
5b887fe6dc vfolder gui! So you can define them,k they show up in the list (well,
after a restart), but they always come up empty - doesn't search any
folders yet.

2000-05-27  Not Zed  <NotZed@HelixCode.com>

        * Makefile.am (SHELL_OBJS): Include mail storage so we can
        initialise folders.

        * component-factory.c (create_test_storage): Parses vfolder
        defintions and adds them to the storage.  Definetly needs more
        work.

        * folder-browser-factory.c (control_activate): Add the VFolder
        druid menu item.
        (control_deactivate): And remove it.

        * mail-ops.c (vfolder_editor_clicked): For editing vfolder
        definitions (rather like filters, oddly enough :).  Tries to
        update the shell but it doesn't seem to work properly - requires a
        mail component restart to take effect.

        * folder-browser.c (folder_browser_load_folder): Handle vfolder:
        urls' appropriately and map to camel.  Still needs a way to tell
        the vfolder what folders to search! (all vfolders come up empty!).

svn path=/trunk/; revision=3241
2000-05-28 06:18:11 +00:00
e033af05d7 Added widgets/e-paned/Makefile.
2000-05-24  Christopher James Lahey  <clahey@helixcode.com>

	* configure.in: Added widgets/e-paned/Makefile.

	* tests/ui-tests/message-browser.c: Switched from GtkPaned to
	EPaned.

	* widgets/Makefile.am: Added e-paned directory.

	* widgets/e-paned/, widgets/e-paned/.cvsignore,
	widgets/e-paned/Makefile.am, widgets/e-paned/e-hpaned.c,
	widgets/e-paned/e-hpaned.h, widgets/e-paned/e-paned.c,
	widgets/e-paned/e-paned.h, widgets/e-paned/e-vpaned.c,
	widgets/e-paned/e-vpaned.h: New widget based completely on
	GtkPaned from 1.4.  This will be more advanced soon.

From calendar/ChangeLog:

2000-05-24  Christopher James Lahey  <clahey@helixcode.com>

	* gui/Makefile.am: Added libepaned.a.

	* gui/gnome-cal.c: Switched from GtkPaned to EPaned.

From mail/ChangeLog:

2000-05-24  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added libepaned.a.

	* folder-browser.c: Switched from GtkPaned to EPaned.

From shell/ChangeLog:

2000-05-24  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added libepaned.a.

	* e-shell-view.c: Switched from GtkPaned to EPaned.

From widgets/shortcut-bar/ChangeLog:

2000-05-24  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added libepaned.a.

	* test-shortcut-bar.c: Switched from GtkPaned to EPaned.

svn path=/trunk/; revision=3191
2000-05-24 23:00:39 +00:00
0a232b36bf Updated for the GtkHTML API changes. Also fixed some compiler
warnings here and there.

svn path=/trunk/; revision=3145
2000-05-21 09:18:20 +00:00
c6de9ace9f make this a little less kludgy. Use gnome_error_dialog rather than printf
* folder-browser.c (folder_browser_load_folder): make this a
	little less kludgy. Use gnome_error_dialog rather than printf on
	errors.

	* mail-ops.c (fetch_mail): Fix to work with the new shell stuff...
	sorta. Will need more fixing later when the new shell framework is
	more done.

	* mail-config.c (finish): Call gnome_config_sync so the data
	actually gets written.

svn path=/trunk/; revision=2931
2000-05-09 05:08:25 +00:00
5883763060 Don't hardcode "inbox" here.
* folder-browser-factory.c (folder_browser_factory): Don't
	hardcode "inbox" here.

	* folder-browser.c (folder_browser_set_uri): Don't hardcode
	"inbox" here either.
	(folder_browser_load_folder): Create a new store according to the
	folder browser's URI, and load the mbox file from that store.
	Parts of this are temporary.

	* session.c, mail.h: There is no longer a global store, just a
	global session.

	* mail-config.c, mail-ops.c: Update for default_session -> session
	change. fetch_mail is currently broken.

svn path=/trunk/; revision=2853
2000-05-07 03:15:22 +00:00
2ef945c6e2 consolidate mail-format.h, mail-identify.h, mail-ops.h, main.h and
* 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 17:16:22 +00:00
8813178854 comment out the changed signal for now.
2000-05-03  Larry Ewing  <lewing@helixcode.com>

	* folder-browser.c (folder_browser_gui_init): comment out the
	changed signal for now.

svn path=/trunk/; revision=2775
2000-05-03 06:29:22 +00:00
ab96ee0005 > 2000-05-02 NotZed <NotZed@HelixCode.com>
>
> 	* folder-browser.c (folder_browser_gui_init): Connect the changed
> 	signal to search, so it searched immediately?
>
40a46,48
> 	(message_list_set_search): Save the search string.
> 	(folder_changed): If the folder changes, re-run the search,
> 	otherwise we may end up with invalid entries in the display.

svn path=/trunk/; revision=2749
2000-05-02 17:53:26 +00:00
c65aa11c9b > (folder_browser_gui_init): Add an option meny to the search line.
> 	(create_option_menu): Build the option menu from a table.
> 	(search_set): Build a search from another string whent he option
> 	menu or text item is changed.  5 search options are defined so
> 	far.

svn path=/trunk/; revision=2742
2000-05-02 01:59:58 +00:00
5c3e0a6314 A hackish little quick-search entry. (search_activate): Perform a
2000-05-01  NotZed  <NotZed@HelixCode.com>

        * folder-browser.c (folder_browser_gui_init): A hackish little
        quick-search entry.
        (search_activate): Perform a quick-search on the folder subject
        only.

        * message-list.c (get_message_info): If there is an active search,
        then get the data from that ... use this instead of
        _get_message_info().
        (ml_row_count): If we have an active search, get the info from its
        result.
        (select_msg): Changed to use get_message_info, so searches work.
        (ml_value_at): And same here.

        * mail-display.c: Include missing errno.h.

svn path=/trunk/; revision=2724
2000-05-01 21:51:03 +00:00
01bf08bdbc + * addressbook/gui/component/addressbook.c (addressbook_factory):
+	Added gtk_widget_push/pop_colormap/visual, which I assume is
+	necessary for canvas use.
+
+	* folder-browser.c (folder_browser_new): set folder_browser->uri
+	to NULL, so that we know when to free it.
+
+	* e-table-col.c (e_table_col_new_with_pixbuf): ref etc->ecell,
+	like in e_table_col_new, since that same ECell is unref'd in
+	etc_destroy().
+

svn path=/trunk/; revision=2350
2000-04-09 06:47:20 +00:00
59606c2849 + * folder-browser.c (folder_browser_destroy): Unref the shell
+	interface that we have a handle to.
+
+	* folder-browser-factory.c (control_destroy_cb): New function;
+	destroys a folder-browser when its control is destroyed.
+	(folder_browser_factory): Hook up to the above.
+
+	* e-shell-view.c (destroy_folder_view): New function;
+	Bonobo_Unknown_unref's the controls that have the views in them.
+	(esv_destroy): Calls the above for each folder_view in the
+	hashtable.
+	(get_view): unref the ServiceRepository interface of the control
+	when we're done with it.
+

svn path=/trunk/; revision=2333
2000-04-07 21:42:56 +00:00