TODO:

 - Put an applet in the notification tray area
 
 - Show totals at the bottom.  Under the mailbox titles, show the number of
	mailboxes

-- Old milestones

Milestone 0 (base functionality for first public release)
 - Find a web page for it
 - Announce in Gnome-Announce
 - Announce in Erlug
 - Announce in 242096@bugs.debian.org
 - Announce in gtkmm-list as a small program using lots of gtk-- features
 - Add menu entry as in #269400

Milestone 1 (polishing)
 - Add a "time last message arrived" column, sortable
 - Catch SIGHUP and issue a reload
 - Add a commandline option to issue a reload to a running buffy
 - Maintain a pidfile in ~/.buffy/pid (but there may be more than one buffy
	running)
 - Add imap support
   libc-client-dev
	 - Add "Add IMAP" button in Preferences dialog
 - Don't crash if a mailbox disappears: just issue a rescan, or simply remove that mailbox
 - Preferences menu/locationList: include a column with the number of mailboxes
	found
 - Run an update when the double-click command returns
	(requires catching SIGCHLD and transforming it in a signal in a thread-safe way)
 - Allow to drag a row and drop it as the mailbox path
 + Remember window position between invocations
 + Save column sorting order
    + Asked in gtkmm-list (useless)
	 + Found in new documentation for gtk--
 - Quit the preferences dialog with ESC, and confirm it with Enter
 
Milestone 2 (per-box customization)
 - Have a look at gnubiff, which also has auto-detection of mailbox format
   http://prdownloads.sourceforge.net/gnubiff/gnubiff-2.0.0.tar.gz?download
 - Implement "mailbox classes", with different predefined but hardcoded options
	per class.  For example:
	 - personal
	   displayed on top of the others, checked more often
	 - sent-mail
	   not displayed by default
	 - archival
		important archived things, as well as spam and viruses; not displayed by
		default, different archival policy
 - Right click pops up a menu
	 - Allow to hide folders from the right-click menu
	    - Add a view/hidden menu item, off by default
		 - When viewing hidden mailboxes, show them in a different style
			(grayed?)
	 - Implement marking rows as "don't hide"
	 - Implement marking rows as "always hide"
	 - Implement setting folder "class" from a list of predefined ones
	 - Invocation of external tools, if found:
		 - archivemail to archive the old and/or read messages
		   (archival strategy depends on folder class)
		 - archivemail to save a mbox file with the given folder
 - Add a type() method to MailFolder to allow to give a description of the type
	in some property or details window
 - View folder class in the list, sortable
 - Allow to "lock" class sorting, and maintain all the other sort orders as
	secondary orders
 - Allow to setup which mail account is used for any specific mailbox (or
	mailbox classes), then pass profile informations to the mailer when invoked

Milestone 3 (more storage formats)
 - Add mbox support
 - Add MH support
 - Automatic folder harvesting
	 - Folder locations can be:
		 - Directory paths to be searched for mbox files and maildir or MH dirs
		 - IMAP servers
	 - If folder location is a directory, first scan it as a maildir or mh, then
		scan its subdirectories
	 - If folder location is a file, scan it as an mbox
	 - Auto-detect mailbox type
 - Do not run an update when adding folder to the list
	(allows to later do updates in separate threads for handling slow-update
	 formats like mailbox or maybe imap)

Milestone 4 (undefined yet)
 - Highlight mailboxes that have changed as bold and allow the user to clear
	the bold flag (e.g.  middle mouse button), similar to what xbuffy does.
 - Remove the Update button
 - Middle click unhighlights the mailbox if highlighted
 - If mairix is installed, enable a "find" menu
 - [madduck] It would be great to have a mode starting with an empty list and then adding
	mailbox lines as they come in. So if I get a message to debian, buffy
	prepends (or appends, should be configurable) a line for the debian mailbox
	to the end. If I get a mail for the university, the uni mailbox appears
	above the debian mailbox. if now another debian mail comes in, debian moves
	to the top again.  This should be configurable.
	[enrico] Here you mean "sort by time of last message arrival"... that's a great
	idea!  Added in TODO-list.  This should be quite easy: it's just a
	matter of adding a new column; maybe I could make a custom cell renderer
	to display friendly representation for the timestamps like "1 min" or
	"1h23m".
 - [madduck] Can the GTK window be skinned to have it take up very little space on the
	desktop, like xbuffy? I think this would combine great with point 2.
	[enrico] I need help on this one, as I have no experience on more
	 graphically creative uses of Gtk widgets
 - [madduck] buffy should honour mutt's mailbox settings, as i reported in the
	bug. #269386
 - [madduck] it would be great if maildirs could be scanned recursively for
	other maildirs, and the results presented in a threaded view if possible.
 - Perform threading: show number of (unread?) messages in threads in which the
	user took part


Useful links:
 Maildir format:
   http://cr.yp.to/proto/maildir.html
 Gtk-- documentation:
   file:///usr/share/doc/libgtkmm-2.4-doc/index.html
 Libxml++ documentation:
   file:///usr/share/doc/libxml++1.0-doc/html/index.html
 Standard Template Library documentation:
   file:///usr/share/doc/stl-manual/html/index.html


 * Done in version 0.7

--- 2005-05-09
 + Ported to new libbuffy
 + Save and restore window size and position among invocations


 * Done in version 0.6

 + Move scanning code into libbuffy
 

 * Done in version 0.5

--- 2004-10-29
 + Add mbox support


 * Done in version 0.4

--- 2004-09-22
 + Add a "view important-only mailboxes", to view mailboxes which have no
	unread messages but have old messages marked important


 * Done in version 0.3

--- 2004-08-22
 + Format XML when saving config file
 + Configure Mail Program command in Preferences
	 + Make a MailProgram class with editor data and able to run an editor
	 + Make Config read and return a vector of MailProgram
	 + Add the MailProgram class as an hidden list column
	 + Add a dialog to edit mail programs
	 + Implement add and remove mail program
	 + Implement enact and reset on mail program config
 + Ignore "." and ".." in Maildir scan
 + Actually use the configured mail program
 + Running editors leaves them zombies: catch them, and emit a signal to allow
	a mailbox update after they terminate
	 = Make a handler for sigchld that writes to a pipe read my the Gtk I/O
		functions: when Gtk reads something, it calls wait, catches all dead
		children and fires an update
    + Use Glib::Dispatcher
 + Polish debian packaging and upload to sid

--- 2004-08-21
 + Add a "Settings" menu
	 * Scanning
		 + Update interval
		 + List of folder locations

--- 2004-08-20
 + Cache scan results in MailFolder and add an update() method without
	parameters to update the values


 * Done in version 0.2

--- 2004-08-19
 + Implement saving options
 + Save view empty
 + Save view read
 * Automatic folder harvesting
	 + implement at least the structure, so that is easy to create patches to
	   extend it
	 + Also scan /var/mail/$USER
	 + Save a list of "folder locations" where folders are stored


 * Done in version 0.1

--- 2004-08-18
 + Compute stats for Maildir folders
 + Enumerate folders
 + Display results in a TreeView
 + Display also total messages
 + Periodically update the display
 + Double click starts a command
 + Make FolderList sortable
 + Allow to hide folders that are empty
 + Allow to hide folders without unread messages
 + Show the count of flagged ('F') messages

 vim:set ts=3 sw=3:
