2003-11-25  Jan Alonzo  <jmalonzo@unpluggable.com>
	* src/lib/MainWindow.py:  added Dutch translator

2003-11-25  Jan Alonzo  <jmalonzo@unpluggable.com>

	* data/straw.schemas, src/lib/Config.py, src/lib/MainWindow.py:
	store feed_info_visible in gconf; fixes in item view; schema update;

	* Makefile: install gconf schemas properly

	* src/lib/httplib_async.py: fix typo

	* src/lib/URLFetch.py: added args

2003-11-24  Jan Alonzo  <jmalonzo@unpluggable.com>
	* straw.desktop:  norwegian translation.
	* po/no.po: Applied Terje Rosten's updates.
	* src/lib/utils.py: Applied Joe Marcus Clarke's patch (c/o mezz), ref: bug #6619.
	* test/LookupTests.py:  Use singletonized LookupManager

2003-11-23  Juri Pakaste  <juri@iki.fi>

	* src/lib/Feed.py: emit feedstatuschanged instead of feedschanged when error is set

2003-11-22  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py: separate the feed list stuff from the MainWindow class	... and fixes and some more fixes to this

2003-11-17  Juri Pakaste  <juri@iki.fi>

	* po/nl.po: dutch translation, courtesy of Elros Cyriatan

2003-11-14  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py: why do you always notice the bugs right after the release? don't redisplay the feed info thing every time the user switches feeds

2003-11-13  Juri Pakaste  <juri@iki.fi>

	* glade/straw.glade, src/lib/FeedPropertiesDialog.py: make the authentication info stuff more sensible

	* src/lib/MainWindow.py, glade/straw.glade: fix source display and some layout issues, escape xml before displaying in the href widgets

	* src/lib/MainWindow.py: set feed description max size to window height / 4
	
	* src/lib/SummaryParser.py: collapse whitespace in some elements

2003-11-12  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py, glade/straw.glade: new old main window layout, basically what scott did earlier + some modifications and resize logic

2003-11-10  Jan Alonzo <jmalonzo@unpluggable.com>
	* glade/straw.glade, glade/strings.c, po/straw.pot:  smaller note in feed properties; more fixes on restore defaults

2003-11-10  Scott Douglas-Watson  <sdouglaswatson@yahoo.co.uk>
	* src/lib/rssfinder.py: duplicate uris are no longer checked.

2003-11-10  Jan Alonzo  <jmalonzo@unpluggable.com>
	* src/lib/FeedPropertiesDialog.py, src/lib/Main.py, src/lib/__init__.py, glade/straw.glade, glade/strings.c, po/straw.pot:  Feed Properties
	* src/lib/MainWindow.py:  feed properties; escape url-text in feed_info

2003-11-09  Juri Pakaste  <juri@iki.fi>

	* src/lib/PollManager.py, src/lib/Main.py: oops, have to start the polling loop. move that out of the pollmanager constructor into a separate method and call that from main's constructor

	* src/lib/__init__.py, src/lib/PollManager.py, src/lib/MessageManager.py, src/lib/MainWindow.py, src/lib/Main.py (Module): add a new class, messagemanager: it acts as a broker for status area messages, breaking the pollmanager -> main -> mainwindow dependency chain

	* src/lib/__init__.py, src/lib/MainWindow.py, src/lib/Main.py, src/lib/DashboardFrontend.py: singletonize dashboardfrontend

	* src/lib/URLFetch.py, src/lib/PollManager.py: handle gracefully feeds that return no data

2003-11-09  Jan Alonzo <jmalonzo@unpluggable.com>
	* src/lib/Config.py: more fixes in config init
	* src/lib/FeedList.py:  fixed feedlist loading
	* src/lib/Main.py:  readjust indent


2003-11-09  Scott Douglas-Watson  <sdouglaswatson@yahoo.co.uk>
	* src/lib/Config.py: fixed loading without a config file and tweaked default loading.
	* src/lib/Main.py: fixed double add of subscriptions when calling load_data() after default import.
	* src/lib/MainWindow.py: fixed popupmenu delete.

2003-11-08  Juri Pakaste  <juri@iki.fi>

	* src/lib/hig_alert.py, src/lib/__init__.py, src/lib/URLFetch.py, src/lib/PollManager.py, src/lib/MainWindow.py, src/lib/Main.py, src/lib/LookupManager.py, src/lib/Config.py: singletonize both PollManager and LookupManager

	* src/lib/__init__.py, src/lib/SubscribeDialog.py, src/lib/PreferencesDialog.py, src/lib/PollManager.py, src/lib/MainWindow.py, src/lib/Main.py, src/lib/ItemStore.py, src/lib/FindDialog.py, src/lib/FeedList.py, src/lib/ExportSubscriptionsDialog.py, src/lib/Config.py: Move the FeedList instance out of Config, it's now a singleton too, so it should be accessed with straw.FeedList.get_instance() instead of config.feeds. Config no longer depends on FeedList and Feed.

2003-11-08  Scott Douglas-Watson  <sdouglaswatson@yahoo.co.uk>
	* src/lib/hig_alert.py: modified to allow for reuse as confirmation dialog.
	* src/lib/MainWindow.py: popup menu added to the feed_list_view with Poll, Mark as Read and Delete functionality implemented.

2003-11-07  Juri Pakaste  <juri@iki.fi>

	* src/lib/hig_alert.py, src/lib/__init__.py, src/lib/URLFetch.py, src/lib/SubscribeDialog.py, src/lib/PreferencesDialog.py, src/lib/PollManager.py, src/lib/MainWindow.py, src/lib/Main.py, src/lib/ItemStore.py, src/lib/FindDialog.py, src/lib/FeedItems.py, src/lib/Feed.py, src/lib/Config.py, src/lib/ExportSubscriptionsDialog.py: singleton-ize Config and change config saving totally. There will be more work on this.

2003-11-06  Jan Alonzo <jmalonzo@unpluggable.com>
	* src/lib/SubscriptionsMergeDialog, src/lib/FeedDataRouter.py, src/lib/rssparser.py, src/lib/ParsedSummary.py, src/lib/Feed.py: blogchannel support cleanup
	* src/lib/PollManager.py, src/lib/SummaryParser.py, src/lib/SubscribeDialog.py, src/lib/__init__.py: cleanup and fixes
	* src/lib/Main.py, src/lib/utils.py:  add locale functions set_locale/get_encoding
	* src/lib/MainWindow.py:  add es translation maintainer
	* glade/straw.glade, glade/strings.c, po/straw.pot: removed subscriptionsmergedialog
	* README: update
	
2003-11-01  Juri Pakaste  <juri@iki.fi>

	* src/lib/ImageCache.py: handle requestschemeexception and clear up the exception handling

	* src/lib/URLFetch.py: define a new exception type (RequestSchemeException) and throw it if the request scheme is something else than https

	* src/lib/NetworkConstants.py: reduce the interval (now 3000), increase connections (now 20)

	* src/lib/Feed.py: empty default location in create_new_feed

	* src/lib/FeedItems.py: deal with empty guid

	* src/lib/PollManager.py: oops remove traceback output

	* src/lib/URLFetch.py: don't equate no content-length with content-length = 0

	* src/lib/httplib_async.py: try to deal with broken http implementations who think that \n\n is a good separator for the header and body. still break if the crackmonkeys try to use it for chunks too.

2003-10-31  Juri Pakaste  <juri@iki.fi>

	* src/lib/PollManager.py: remove broken empty etag check; it's better to do the check in feeddatarouter and the operator should have been and instead of or anyway

	* src/lib/FeedDataRouter.py: add check for empty but not None etag

	* src/lib/SummaryParser.py: fix broken encoding regexp

	* src/lib/PollManager.py: Remove check for empty feed url: that's caught by the host name lookup

2003-10-30  Jan Alonzo <jmalonzo@unpluggable.com>
	* glade/straw.glade, glade/strings.c:  beautify the main window a bit. remove unneccesary cruft
	* src/lib/SummaryParser.py:  merged
	SummaryParserCommon/SummaryParserMP, better error reporting
	* src/lib/SummaryParserMP.py, src/lib/SummaryParserCommon.py: removed; merged into SummaryParser.py
	* src/lib/SubscribeDialog.py, src/lib/PollManager.py: grab_focus on url entry; parser cleanup
	* src/lib/MainWindow.py:  UI updates
	* src/lib/__init__.py:  parser updates, update to 0.20
	* src/lib/Feed.py, src/lib/FeedDataRouter.py:  remove invalid_rss
	
2003-10-28  Scott Douglas-Watson<sdouglaswatson@yahoo.co.uk>
	* glade/straw.glade: move feed info box and de-uglify the main window a bit

2003-10-28  Juri Pakaste  <juri@iki.fi>

	* src/lib/Feed.py: fix special chars in links

2003-10-28  Juri Pakaste  <juri@iki.fi>
	* glade/straw.glade: HIGify and uglify the main window a bit
	
2003-10-28  Jan Alonzo  <jmalonzo@unpluggable.com>
	* src/lib/Feed.py:  quote characters in the URL
	* src/lib/PollManager.py:  fixes
	* src/lib/MainWindow.py:  change my email, fixes

2003-10-27  Jan Alonzo  <jmalonzo@spaceants.org>
	* src/lib/rssparser.py: remove debug info and add a comma for source url/data combo to distinguish it from other elements
	* src/lib/SummaryParserMP.py:  fixed missing item creator and
	really fix source url; just split "source url" into two. what matters is the first comma
	* src/lib/__init__.py: don't import MessageManager; import utils
	* src/lib/SubscribeDialog.py: applied ScottDW's patch; convert
	entities in title and description; couple of fixes.
	* glade/straw.glade:   Applied ScottDW's 2 patches to SubscribeDialog
	* src/lib/MainWindow.py:  transfer utility funcs in utils.py and fix feed title info
	* src/lib/__init__.py:  import utils
	* src/lib/utils.py:  put utility functions here
	* src/lib/Feed.py:  don't make location optional, fixes bug
	#6181; assign username and password as well
		
	
2003-10-25  Juri Pakaste  <juri@iki.fi>

	* src/lib/SubscribeDialog.py: clean up the code a bit

	* src/lib/__init__.py, src/lib/SubscriptionsMergeDialog.py, src/lib/SubscribeDialog.py, src/lib/PreferencesDialog.py, src/lib/MainWindow.py, src/lib/Main.py, src/lib/Feed.py, src/lib/Config.py: new feed construction functions that should be used instead of the feed constructor

	* src/lib/Feed.py: use config.next_feed_id_seq() instead of the normal accessor that no longer increments

	* src/lib/Config.py: 
	- saner order for config loading / event handling: first load config, then connect to the config changed signal
	- change feed_id_seq accessor to just return the value and add a method that does the increment & return

	* src/lib/ItemStore.py: remove old threading import

	* src/lib/MainWindow.py: strip titles and call read_text to remove markup from them for itemlist

	try to fix problems with the time display: 
	- don't call localtime() on the datetime object, it should be in the localtime already
	- try to use the locale information for converting the output of strftime to unicode
	- don't convert the date to utf-8, we convert the whole thing to utf-8 later

2003-10-24  Juri Pakaste  <juri@iki.fi>

	* src/lib/URLFetch.py: fix checking for failed name lookup

	* src/lib/LookupManager.py: 
	- rearrange things a bit so we use the ascii-ifed version of the hostname only for lookups, not for returning information. seems it was, for whatever reason, messing things up a bit - no more ValueErrors from PollManager
	- don't call the callback if retrying the lookup

2003-10-23  Juri Pakaste  <juri@iki.fi>

	* src/lib/PollManager.py: 
	- no hardcoded initial timeout, use the NetworkConstants one
	- don't poll if poll frequency == 0
	- no Header Capitalization in the message area

2003-10-22  Jan Alonzo  <jmalonzo@spaceants.org>
	* src/lib/rssparser.py:  add "source url' tag/attr
	* src/lib/SummaryParserMP.py:  don't raise an exception on malformed feeds, put it in feed.error instead.
	* src/lib/ImageCache.py:   implement set_failed
	* src/lib/NetworkConstants.py: let's be liberal in max_download_time. lower poll_interval so it doesn't timeout.
	
2003-10-22  Jan Alonzo  <jmalonzo@spaceants.org>
	* Makefile:  fix gconf bit
	* src/lib/Main.py: don't show opml import warning dialog if it's not necessary.
	* src/lib/SubscribeDialog.py: don't allow to go further if no feed has been selected in multiple feeds view

2003-10-21  Jan Alonzo  <jmalonzo@spaceants.org>
	* src/lib/MainWindow.py:  Fixes.
	* src/lib/SummaryParserMP.py:  Added support for RSS modules
	supported by SummaryParser.
	* src/lib/SubscribeDialog.py:  Added support for multiple
	subscriptions and bugfixes.
	* src/lib/PreferencesDialog.py:  Bring back the URL column.
	* src/lib/Feed.py:  fix blogroll and subscriptions stuff
	* src/lib/FeedDataRouter.py:  fix blogroll/subscriptions stuff.
	* src/lib/SummaryItem.py:  Applied ScottDW's patch to match() to
	lowercase text on find.
	* src/lib/rssparser.py:  upgrade to 2.5.3. Added support for RSS
	modules supported by SummaryParser.
	* src/lib/SubscriptionsMergeDialog.py:  Fixes and cleanup due to
	HIGification of UI.
	* src/lib/PollManager.py:  Remove support for SummaryParser,
	moved poll_network from Main to here giving PollManager the
	polling chores.
	* src/lib/NetworkConstants.py:  increase POLL_INTERVAL to 10 secs
	* src/lib/__init__.py:  remove RSSParseException from PollManager
	and rename RSSParser to FeedParser
	* src/lib/Main.py:  display dialog when an OPML file contains
	"type=link". move poll_network in PollManager.
	* glade/straw.glade:  More UI fixes.
	* glade/strings.c:  string updates
	* Makefile: comments and fixes.

2003-10-18  Juri Pakaste  <juri@iki.fi>

	* src/lib/LookupManager.py: added retrying (at the moment max three times) if name lookup fails with adns, happened at least here a lot

	* src/lib/SummaryParserMP.py: now it might work better with the new imagecache

2003-10-16  Juri Pakaste  <juri@iki.fi>

	* src/lib/SummaryParserMP.py, src/lib/SummaryParser.py, src/lib/SummaryItem.py, src/lib/MainWindow.py, src/lib/ItemStore.py, src/lib/ImageCache.py, src/lib/FeedItems.py, src/lib/FeedDataRouter.py, src/lib/Event.py:
	total overhaul of ImageCache and pretty much everything that's related to it. images are no longer kept in memory but read from the db on demand instead. and they no longer depend on the items being in memory, so we can now do the next step of memory usage reduction: dynamic item loading.

	* src/lib/error.py: 
	added one new function, logparam, which really logs local
	variables: it accepts the result of locals() (or something looking
	like it) and a list of variable names and outputs
	those. also reorganized the code a bit - now all the
	logging functions use the same function for actual output

	* src/lib/URLFetch.py: fix nameformatexception handling some more

2003-09-29  Jan Alonzo  <jmalonzo@spaceants.org>
	* src/lib/SubscribeDialog.py:  more fixups
	* src/lib/hig_alert.py:  change dodgy param name and i18n updates
	* glade/straw.glade, glade/strings.c:  more prefs and subscribe druid updates
	* src/lib/Config.py: set default values if gconf is not yet initialized
	* src/lib/MainWindow.py: catch exception if there's no browser set by the user


2003-09-24  Jan Alonzo  <jmalonzo@spaceants.org>
	* src/lib/hig_alert.py: from Seth Nickell's gnome-blog. wrapper for gtk.Dialog, useful for alerts
	* src/lib/FindDialog.py: a bit of cleanup
	* src/lib/Main.py, src/lib/__init__.py: remove subscriptions and offline dialog bits
	* src/lib/SubscriptionsDialog.py, src/lib/OfflineDialog.py: removed
	* src/lib/MainWindow.py: remove next_poll; make itemlist columns resizable/reorderable; GnomeHREF fixes and code cleanup
	* src/lib/PollManager.py: detect if a feed or the feed list has been polled
	* src/lib/PreferencesDialog.py: merged subscriptions bits from SubscriptionsDialog.py
	* src/lib/SubscribeDialog.py:  due to UI changes. It is now a druid/assistant/muppet.
	* glade/straw.glade: HIG updates; merged subscriptions with preferences; new subscribe dialog
	* glade/strings.c: HIG updates; merged subscriptions with preferences; new subscribe dialog

	
2003-09-08  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py, src/lib/SubscribeDialog.py: fix dragging of URLs from browser windows, add a error output when receiving an exception from rssfinder

2003-09-01  Juri Pakaste  <juri@iki.fi>

	* src/lib/URLFetch.py, src/lib/__init__.py: fix NameFormatException usage again

	* src/lib/LookupManager.py: patch by jamesh: if ADNS can't be found, use normal lookups even if it does freeze the UI.

	* glade/straw.glade, glade/strings.c: add padding to the status area, fix some of the toolbar tooltips.
	...aw it looks even more ugly with the padding, remove it

2003-08-27: Jan Alonzo <jmalonzo@spaceants.org>
	* src/lib/Config.py:  Added migration method from old config to
	  gconf config.
	* src/lib/Main.py:  Added subscriptions dialog, changed catch up
	  feed to mark all as read.
	* src/lib/MainWindow.py:  Fixed status_time handling.
	* src/lib/PreferencesDialog.py:  Separated subscriptions stuff.
	* src/lib/SubscriptionsDialog.py:  Initial import to CVS.
	* src/lib/__init__.py:  Added SubscriptionsDialog.	
	* glade/straw.glade:  Preferences dialog split.
	* glade/strings.c:  UI updates
	 
2003-08-22: Jan Alonzo <jmalonzo@spaceants.org>
	* src/lib/PreferencesDialog.py:  Assign magic number 60.
	* src/lib/MainWindow.py:  Rewrote entity converting, fixed next
	  poll status, remove html tags in description, Added
	  straw description in About Box, fixed Rosten's name and added
	  his patch.
	

2003-08-19: Jan Alonzo <jmalonzo@spaceants.org>
	* po/no.po:  Terje Rosten's patch.
	* data/straw.schemas:  boolean fixes  
	* glade/straw.glade:  Added next poll label.
	* src/lib/Config.py:  Emit LastPollChangedSignal in last_poll
	* src/lib/Event.py:  Added LastPollChanged signal
	* src/lib/MainWindow.py:  Integrate Terje's patch, added next_poll
	  time.
	* src/lib/__init__.py:  Added LastPollChanged signal.

2003-08-18: Jan Alonzo  <jmalonzo@spaceants.org>
	* src/lib/__init__.py:  Retag to 0.20cvs.
	* src/lib/MainWindow.py:  Moved back url_re out of is_url. Added
	  myself in credits box.
	* src/lib/Config.py:  Code cleanup.

2003-08-17  Juri Pakaste  <juri@iki.fi>

	* src/lib/OPML.py, src/lib/SummaryParser.py: from James Henstridge: make it work without PyXML, apparently using xml.sax.handlers.ContentHandler from the default python xml packages is just as good as xml.sax.saxutils.DefaultHandler

2003-08-16  Jan Alonzo <jmalonzo@spaceants.org>
	* data/straw.schemas:  Initial import to CVS.
	* README:  Added Minimum Requirements. Formatted a bit.
	* glade/straw.glade:  Added Previous,Next, and Add feed in the
	  toolbar. HIG-fy offline dialog. Added View menu and transferred
	  feed info and blogroll in it.
	* glade/strings.c:  straw.glade changes.
	* src/lib/OfflineDialog.py:  Add handler for ok-button. Removed
	  close-button handler.
	* src/lib/MainWindow.py:  Added Toolbar tooltips, moved status
	  icon to the left, plus couple of fixes.
	* src/lib/PollManager.py:  maybe_poll and poll updates and added
	  handler for 404 and 200 error codes.
	* src/lib/Config.py:  Added gconf support (preliminary)
	* Makefile:  Added gconf section.
 

2003-08-08  Jan Alonzo <jmalonzo@spaceants.org>
	* src/lib/MainWindow.py:  Fixed render_feed to check for empty
	  string in item title/description as well. See comment in code.
	  delete_event fixes.

2003-08-07  Jan Alonzo  <jmalonzo@spaceants.org>
	* glade/straw.glade:  Changed OfflineDialog text. Changed
	  PrefsDialog signal handler, delete event instead of destroy.
	* src/lib/PreferencesDialog.py:  Add handler for delete event.
	  Removed destroy event handler. Plus couple of fixes.
	* src/lib/URLFetch.py:  Fixed bug #4642.
	* glade/strings.c:  String changes to straw.glade.
	* src/lib/FeedList.py:  Put feed type checking in a try statement,
	  not on 'if'.

2003-08-03  Jan Alonzo  <jmalonzo@spaceants.org>
	* src/lib/rssparser.py:  Fixed missing guidislink in RSSParser.
	* src/lib/MainWindow.py:  Fixed entity converting. Couple of fixes.

2003-07-30  Jan Alonzo  <jmalonzo@spaceants.org>
	* src/lib/OfflineDialog.py: Fixed misspelled method on_affline_dia...
	* src/lib/URLFetch.py: Modified zero-length response to 'feed is
	  empty' instead of 'connection closed prematurely'.
	* src/lib/PollManager.py: Added error handling for 410.
	* src/lib/rssparser.py: Updated to 2.52 of Mark Pilgrim.
	* src/lib/MainWindow.py: Modified message in exception box and
	  made it bold. Fixed convert_entities(), added an assert,
	  which makes debugging a bit easier, iso-8859-1 is
	  actually iso8859-1 in python encodings. Plus a couple of fixes.
	* src/lib/SummaryParserMP.py: changed all occurences of iso-8859-1 to iso8859-1.  
	
2003-07-28  Jan Alonzo  <jmalonzo@spaceants.org>

	* src/lib/MainWindow.py: Automatically poll after subscribing to a
	  feed. Fixed the bug which after selecting one of the
	  lower feeds, scrolls to the cell but doesn't  select the
	  selected feed.
	* README: Added a note on setting up a preferred browser in GNOME 2.x.

2003-07-24  Juri Pakaste  <juri@iki.fi>

	* src/lib/error.py: make log write to the stream the calling
	function's name and location

	* src/lib/FeedItems.py: oops, signal_deleted_items instead of
	signal_item_deleted. this was causing quite a bit of breakage when
	polling

	* src/lib/URLFetch.py, src/lib/LookupManager.py: 
	convert the host name to ascii before looking it up, if it fails, raise
	an exception

2003-07-23  Juri Pakaste  <juri@iki.fi>

	* src/lib/FeedItems.py: get rid of the debug messages, update unread count when doing catchup

2003-07-22  Juri Pakaste  <juri@iki.fi>

	* src/lib/Feed.py, src/lib/FeedItems.py, src/lib/MainWindow.py, src/lib/__init__.py:
	Separated item handling functionality of Feed into a helper class, FeedItems. Made number_of_unread a property, and created a new one, number_of_items. After this creating sensible memory management will be easier.

2003-07-22  Jan Alonzo  <jmalonzo@spaceants.org>
	* src/lib/MainWindow.py: set a minimum width for the title_column
		  and max_width for the keep column
	* src/lib/URLFetch.py:  removed import httplib_async - multiple import

2003-07-21  Juri Pakaste  <juri@iki.fi>

	* src/lib/SummaryParser.py: aargh, yet again forgot the debugging
	messages there

	* src/lib/ItemStore.py: remove import pygtk; pygtk.require(), they
	were causing trouble on RH

	* src/lib/Main.py: remove the thread_init call

2003-07-20  Juri Pakaste  <juri@iki.fi>

	* src/lib/SummaryParser.py: drop the rss 1.0 elements namespace,
	it was pointing to the same URL as dublin core? it was breaking
	things when it hit dc:source. also added a KeyError exception
	handler to source element parsing.

	* src/lib/URLFetch.py: skip host name lookup if it's an ip address

	* TODO: uh, xslt? no way we want that, what was i thinking

	* src/lib/Config.py: oops, when restoring config options, set the
	sub pane position to be the sub pane size, not the main pane
	position

	* src/lib/MainWindow.py: remove yet another left-over debug message

	* glade/straw.glade:
	define handlers for the size_allocate signals of the panes. remove
	the unnecessary handler definitions.

	* src/lib/MainWindow.py: 
	deal with size_allocate signals for the panes, save sizes and restore
	them upon startup.
	removed the unnecessary signal handlers.
	cleaned up a bit the main window size change signal handler.

	* src/lib/__init__.py: events for the main window pane size changes

	* src/lib/Event.py:
	events for the main window pane size changes

	* src/lib/Config.py: 
	two new configuration variables for the positions of the main window
	panes

2003-07-19  Juri Pakaste  <juri@iki.fi>

	* src/lib/URLFetch.py: check and set self.finished in http_failed too

	* src/lib/ImageCache.py:
	- fix a problem with image updates, wrong number of arguments in
	function invocation was hidden by an overbroad except: block

	* src/lib/ItemStore.py:
	- add some stuff to make DB debugging easier
	- fix a problem with image updates

	* TODO: add a couple of items

	* src/lib/PollManager.py: oops, forgot some debugging output there

	* src/lib/MainWindow.py: 
	the am/pm flag is redundant in the article time display as we use
	a 24 hour clock anyway

	* src/lib/error.py: add a new function logtb which prints traceback

	* src/lib/URLFetch.py: 
	Remember if ProxyConsumer already finished, so don't call http_results
	twice.

	* src/lib/PollManager.py: 
	Don't start a new poller for a feed that's being already polled

	* src/lib/ItemStore.py (Message):
	Threadless ItemStore. gtk timers are now used instead.
	Plus more fixes to the PRISM thing.
	(Repository): Remove the old commented out ItemStore class declaration

2003-07-18  Juri Pakaste  <juri@iki.fi>

	* src/lib/SummaryItem.py (Repository): oopsie, the last change didn't quite work.

	* src/lib/ItemStore.py, src/lib/MainWindow.py, src/lib/SummaryItem.py, src/lib/SummaryParser.py:
	some preliminary PRISM support

	* src/lib/SummaryParser.py, src/lib/rssfinder.py:
	Jeff Licquia's necho patch

2003-07-17  Jan Alonzo  <jmalonzo@spaceants.org>

	* README: added install how-to for newbies like bug #1707

	* TODO: updated

	* src/lib/MainWindow.py:
	close stream after image has been written. also fixes leaving items causes html-critical messages

2003-07-14  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py:
	no need to print those focus in out messages, it seems to work ok

	* src/lib/StrawURLOpener.py: / version separator in user-agent

	* glade/strings.c, src/lib/ItemStore.py, src/lib/Main.py, src/lib/MainWindow.py, src/lib/OfflineDialog.py, src/lib/PollManager.py, src/lib/SubscribeDialog.py, src/lib/__init__.py, Makefile, glade/straw.glade:
	integrate Jan Alonzo's changes:

	 * "convert url label + "Browse" button combinations to gnome href widgets,
	   needs fixes in libglade, i think" --- Done.[1]

	 * display an offline dialog whenever user tries to poll(or tries to add an
	   item) in 'offline mode'.[1]

	 * fixed maybe_poll() not to poll in 'offline mode'.

	 * fixed localtime to display "user-friendly" date and time.[1]

	 * in makefile, include ICONDIR and LOCALEDIR in the directory creation.

	 * make itemstore.py python2.3 friendly.[2]

2003-07-13  Juri Pakaste  <juri@iki.fi>

	* glade/straw.glade:
	focus in and out events, channel location label selectable

	* src/lib/URLFetch.py:
	the separator between product name and version in user-agent is /, not space

2003-07-10  Juri Pakaste  <juri@iki.fi>

	* src/lib/DashboardFrontend.py: pass rss url as type rss

2003-07-08  Juri Pakaste  <juri@iki.fi>

	* src/lib/DashboardFrontend.py, src/lib/Main.py, src/lib/MainWindow.py, src/lib/__init__.py, src/lib/dashboard.py:
	- Dashboard (http://www.nat.org/dashboard/) support
	- send cluepackets on item and focus changes

	* src/lib/FeedDataRouter.py, src/lib/ParsedSummary.py, src/lib/SummaryParser.py, src/lib/Feed.py:
	- handle dublin core creator in channel
	- plain location accessor in Feed to avoid the stupid access_info

2003-07-06  Juri Pakaste  <juri@iki.fi>

	* glade/straw.glade:
	- make the exception label wrapped and aligned to left
	- add a few events to the main window panes

2003-06-16  Juri Pakaste  <juri@iki.fi>

	* src/lib/URLFetch.py, src/lib/httplib_async.py:
	cope with closing connection

2003-06-14  Juri Pakaste  <juri@iki.fi>

	* src/lib/URLFetch.py:
	move time out checking to connectionmanager so it isn't dependent on something arriving down the wire

	* src/lib/Event.py, src/lib/ImageCache.py:
	ha, squish the bug! no more image problems causing stuck cogwheels all over the place

2003-05-09  Juri Pakaste  <juri@iki.fi>

	* src/lib/Main.py:
	does it make more sense to get the first item of a feed when using go to previous feed? i dunno, let's try it

2003-05-08  Juri Pakaste  <juri@iki.fi>

	* glade/straw.glade, glade/strings.c, src/lib/Main.py, src/lib/MainWindow.py:
	feed navigation support

2003-05-07  Juri Pakaste  <juri@iki.fi>

	* src/lib/PollManager.py, src/lib/URLFetch.py, src/lib/httplib_async.py:
	automatically change feed location on 301

	* src/lib/FindDialog.py: remove overridden delete handler

	* src/lib/SummaryParser.py:
	oops, the last commit didn't really work, did it

2003-04-28  Juri Pakaste  <juri@iki.fi>

	* src/lib/SummaryParser.py:
	Make sure that description is in a RSS namespace or not in a namespace. Move the namespace check to a separate function, isRSSNamespace. Slightly modified (to live with post-0.18.1 changes) version of a patch by Adam James Fitzpatrick

2003-04-09  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py:
	don't add "..." to the end of a title read from description until after we have checked for the title's emptiness

2003-04-08  Juri Pakaste  <juri@iki.fi>

	* src/lib/SummaryParser.py:
	one of these days i'll learn to test my changes before committing. now the rdf:about checking might really work.

	* src/lib/SummaryParser.py:
	oops, use has_key for checking if rdf:about has been specified

2003-04-07  Juri Pakaste  <juri@iki.fi>

	* src/lib/SummaryParser.py:
	recognize the rss 1.0 elements namespace, recognize rdf:about attributes for items (deal with them the same way we do with links), deal with dates containing only the date, not the time

2003-04-04  Juri Pakaste  <juri@iki.fi>

	* src/lib/PollManager.py: don't set process status if we got an error

2003-04-01  Juri Pakaste  <juri@iki.fi>

	* src/lib/PollManager.py: oops, remove left-over debug outputs

	* src/lib/Event.py, src/lib/FeedDataRouter.py, src/lib/ImageCache.py, src/lib/ItemStore.py, src/lib/PollManager.py:
	fixes for the in progress indicator in the feed list, had to change the imageupdatedsignal a bit etc

2003-03-29  Juri Pakaste  <juri@iki.fi>

	* src/lib/ImageCache.py, src/lib/ItemStore.py:
	send out image updated events from image cache if the image fetching failed, so feeddatarouter doesn't think we are trying to fetch them forever. need to check for image.failed in itemstore

	* src/lib/Event.py, src/lib/Feed.py, src/lib/FeedDataRouter.py, src/lib/MainWindow.py, src/lib/PollManager.py, src/lib/SubscribeDialog.py, src/lib/__init__.py:
	Indicate in the UI if there's still stuff being fetched from the network for a feed. When a feed is being polled for RSS, images or OPML files, there's now the stock execute icon in the same slot there's the error icon in the feed list.

	To help with this, FeedDataRouter routes all the data from the network to the feed, and updates a status flag accordingly.

	* src/lib/ImageCache.py:
	remove those old signalemitter things from image which aren't used, add a is_waiting method which tells if the image object is still waiting for data

2003-03-21  Juri Pakaste  <juri@iki.fi>

	* src/lib/SummaryParser.py: ignore image elements

	* src/lib/Feed.py:
	catch exceptions in opml reading, use a real StringIO instead of cStringIO because the latter can't deal with unicode

	* src/lib/URLFetch.py: clean up a bit

2003-03-20  Juri Pakaste  <juri@iki.fi>

	* src/lib/URLFetch.py: make that condition a bit more understandable

	* src/lib/URLFetch.py: oops, missing req.

2003-03-18  Juri Pakaste  <juri@iki.fi>

	* NEWS, src/lib/__init__.py: 0.18.1

2003-03-17  Juri Pakaste  <juri@iki.fi>

	* po/fr.po: updated french translations

	* images/offline.png, images/online.png:
	online/offline images from evolution

2003-03-16  Juri Pakaste  <juri@iki.fi>

	* po/fi.po: translated the new strings into finnish

	* Makefile: more fixes, maybe translate-merge now works

	* Makefile: remove zshism

	* data/default_subscriptions.opml: first version

	* NEWS, TODO, src/lib/__init__.py: 0.18

	* Makefile: translations stuff, default-subscriptions.opml copying

	* po/straw.pot: some new messages

	* src/lib/Config.py, src/lib/ImportSubscriptionsDialog.py, src/lib/Main.py:
	move opml importing to main.py (yeah prolly not the best location, not sure though what would be better), import the contents of default_subscriptions.opml if user didn't have a .straw directory

	* glade/straw.glade, src/lib/Config.py, src/lib/MainWindow.py:
	make main window size remembering really work, i thought this worked already

	* src/lib/Config.py:
	instead of importing gconf at the module level, try importing it in the gconfproxyconfig constructor and handle failure gracefully

	* src/lib/PollManager.py, src/lib/httplib_async.py:
	improved the error reporting a bit more. now it doesn't display the (errno, explanation) tuple with socket.errors, just the explanation

	* glade/straw.glade: offline toggle

	* src/lib/OPMLImport.py:
	what was i smoking when i wrote that function? dictionary keys don't have to be strings

	* src/lib/NetworkConstants.py:
	increase maximum number of connections to 10. dunno really if it makes any difference...

	* src/lib/PollManager.py, src/lib/httplib_async.py:
	- better error reporting: httplib_async won't format an error string, and pollmanager will display a message in the status line in case of failure

2003-03-15  Juri Pakaste  <juri@iki.fi>

	* src/lib/FeedList.py: - sort all if only one row selected

	* src/lib/PollManager.py, src/lib/URLFetch.py, src/lib/__init__.py, src/lib/Config.py, src/lib/Event.py, src/lib/ImageCache.py, src/lib/Main.py, src/lib/MainWindow.py:
	- offline mode
	- urlfetch: cleanups, try to deal with redirects not containing a full uri

	* src/lib/ItemStore.py:
	always specify recover when opening the db - shouldn't break anything, and fix the occasional freezes when starting?

	* src/lib/LookupManager.py:
	fix brain damage, remove two useless imports

	* test/LookupTests.py: lookupmanager unit tests, initial version

2003-03-14  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py, src/lib/SummaryParser.py, src/lib/SummaryParserCommon.py, src/lib/SummaryParserMP.py:
	and move convert_entities back to mainwindow again! maybe i should some time try thinking a bit before doing this stuff. it can't be done at parse time because we decide what to show as the title only at display time (well, i suppose that could be done at parse time, too, but that's another question), if there's no title we show the beginning of the description

	* src/lib/LookupManager.py:
	if we get a cname even though we asked for the a record, try again.

	* src/lib/SummaryParserMP.py:
	call convert_entities on item title, not the channel title

	* src/lib/httplib_async.py, src/lib/Config.py, src/lib/URLFetch.py:
	Support proxies.

	The primary location for reading proxy information is GConf. If the relevant directories aren't found there, use the environment variable http_proxy.

	Also cleaned up URLFetch a bit.

	* src/lib/Event.py, src/lib/__init__.py:
	- insert a node into the event hierarchy between ConfigOptionSignal and all the existing subclasses; now they inherit from LocalConfigOptionSignal, to differentiate from (potential) non-local things ConfigSaver isn't interested in, like stuff kept in GConf

	* src/lib/Main.py: - initialize lookup_manager before config

	* src/lib/LookupManager.py: - lookup's fourth argument is optional

	* src/lib/MainWindow.py, src/lib/SummaryParser.py, src/lib/SummaryParserCommon.py, src/lib/SummaryParserMP.py:
	- move convert_entities to summaryparsercommon, no point in doing it at display time
	- make convert_entities use htmlentitydefs instead of its own dictionary, should now deal with pretty much all the known entities
	- make document encoding reading deal with an empty encoding

2003-03-09  Juri Pakaste  <juri@iki.fi>

	* src/lib/Feed.py, src/lib/PollManager.py:
	Feed can't know when there's been an error, so let's not set the error attribute in there. PollManager knows.

2003-03-01  Juri Pakaste  <juri@iki.fi>

	* NEWS, src/lib/__init__.py:
	initial news about 0.18, set version string to be 0.18 pre 1

	* NEWS: it's 2003, not 2002

	* glade/straw.glade, src/lib/ImportSubscriptionsDialog.py:
	bit more work on opml import, now report errors &c

	* src/lib/__init__.py, glade/straw.glade, glade/strings.c, src/lib/ImportSubscriptionsDialog.py, src/lib/Main.py, src/lib/MainWindow.py:
	import subscriptions from an opml file

	* glade/straw.glade:
	seems the resurrected browse button didn't emit a signal when clicked. fixed that.

	* src/lib/Feed.py, src/lib/PollManager.py, src/lib/SubscriptionsMergeDialog.py:
	blogroll/subscriptions stuff should work again

	* src/lib/httplib_async.py: - self.consumer, not consumer
	- remove the useless hashbang line

2003-02-28  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py:
	call columns_autosize after rendering a feed in itemlist

2003-02-27  Juri Pakaste  <juri@iki.fi>

	* NEWS: 0.17 some more

	* NEWS, TODO, src/lib/__init__.py: 0.17

	* po/fr.po, src/lib/MainWindow.py: french translation by david rousseau

	* glade/straw.glade: headers are now visible in the item list

	* src/lib/FeedList.py, src/lib/PreferencesDialog.py:
	now can also sort a subset of feeds, including a non-contiguous subset

	* src/lib/FeedList.py, src/lib/PreferencesDialog.py:
	multiple feeds can now be selected and moved and deleted in the preferences dialog

2003-02-25  Juri Pakaste  <juri@iki.fi>

	* src/lib/ImageCache.py, src/lib/PollManager.py:
	- send referer headers pointing to the rss file when fetching images

	* src/lib/MainWindow.py:
	one last self._main_window hiding there, must have been blind

	* glade/straw.glade, glade/strings.c, src/lib/PreferencesDialog.py:
	oops, resurrected the browse feed url button that had disappeared somewhere. and removed last traces of blog_url setting

2003-02-24  Juri Pakaste  <juri@iki.fi>

	* glade/straw.glade, glade/strings.c, src/lib/Config.py, src/lib/PollManager.py:
	no more fake referer headers, apparently they are out of fashion

2003-02-23  Juri Pakaste  <juri@iki.fi>

	* src/lib/ExportSubscriptionsDialog.py, src/lib/FindDialog.py, src/lib/Main.py, src/lib/MainWindow.py, src/lib/PreferencesDialog.py, src/lib/SubscribeDialog.py, src/lib/SubscriptionsMergeDialog.py:
	- store the main window instance in the straw name space, as straw.main_window
	- call window.present in all the dialogs when they are displayed
	- make all the dialogs transient for the main window

2003-02-20  Juri Pakaste  <juri@iki.fi>

	* src/lib/Event.py, src/lib/Feed.py, src/lib/ItemStore.py, src/lib/MainWindow.py, src/lib/QueueDict.py, src/lib/SummaryItem.py, src/lib/__init__.py:
	items can be flagged to be sticky

	* src/lib/Config.py, src/lib/Event.py, src/lib/ExportSubscriptionsDialog.py, src/lib/Feed.py, src/lib/FeedList.py, src/lib/FindDialog.py, src/lib/ImageCache.py, src/lib/ItemStore.py, src/lib/LookupManager.py, src/lib/Main.py, src/lib/MainWindow.py, src/lib/NetworkConstants.py, src/lib/OPML.py, src/lib/OPMLExport.py, src/lib/OPMLImport.py, src/lib/ParsedSummary.py, src/lib/PollManager.py, src/lib/PreferencesDialog.py, src/lib/QueueDict.py, src/lib/StrawURLOpener.py, src/lib/SubscribeDialog.py, src/lib/SubscriptionsMergeDialog.py, src/lib/SummaryItem.py, src/lib/SummaryParser.py, src/lib/SummaryParserCommon.py, src/lib/SummaryParserMP.py, src/lib/URLFetch.py, src/lib/__init__.py, src/lib/error.py, src/lib/httplib_async.py, src/lib/rssfinder.py, src/lib/rssparser.py:
	added cvs_ids to every file

	* src/lib/PollManager.py: don't report failure on 304

2003-02-19  Juri Pakaste  <juri@iki.fi>

	* NEWS, TODO: 0.16

	* po/de.po, po/fi.po, po/straw.pot, src/lib/MainWindow.py, src/lib/PollManager.py:
	made strings in pollmanager internationalized, updated Finnish
	translation, added (now a slightly out of date, sorry Martin) German
	translation, added translator credits to the about box

	* src/lib/timeoutsocket.py:
	doesn't seem to work too well with asyncore, let's just remove it - no other place uses async io but subscribe tool, and that'll be fixed

2003-02-18  Juri Pakaste  <juri@iki.fi>

	* src/lib/URLFetch.py: set user-agent

	* src/lib/MainWindow.py:
	about window is now constructed separately each time, so it can be displayed multiple times

2003-02-17  Juri Pakaste  <juri@iki.fi>

	* src/lib/ImageCache.py, src/lib/Main.py, src/lib/MainWindow.py, src/lib/PollManager.py:
	oops, image polling was broken, fix that. and display "waiting" and "broken" images if image isn't there yet/we got an exception

	* images/image-broken.png, images/image-waiting.png: images

	* src/lib/MainWindow.py: COLUMN_ERROR_FLAG, not ERROR_FLAG

2003-02-16  Juri Pakaste  <juri@iki.fi>

	* src/lib/SubscribeDialog.py, src/lib/__init__.py:
	we still need strawurlopener, and use asynchronous polling for the images and stuff in subscribedialog

	* src/lib/PollManager.py:
	separate "extra" data fetching, deal also with subscriptions & blogrolls

	* src/lib/Feed.py:
	store separately blogroll/subscriptions location and blogroll/subscriptions data

	* src/lib/URLFetch.py, src/lib/httplib_async.py:
	in case of 301 or 302, httplib_async now calls the consumer's http_redirect method, which in turn causes a new request to be done

2003-02-15  Juri Pakaste  <juri@iki.fi>

	* src/lib/ImageCache.py, src/lib/ItemStore.py:
	- ImageCache: don't emit ImageUpdated if data is given to Image as a constructor argument
	- Emit the signal from ImageCache, not Image objects
	- ItemStore: deal with the new style Image objects

	* src/lib/Event.py, src/lib/Feed.py, src/lib/MainWindow.py, src/lib/PollManager.py, src/lib/__init__.py:
	Better error reporting, display an error symbol in the feed list.
	- New signal, feedpolled, emitted when polling has happened, regardless of whether or not there were new items or errors or something
	- NewItemsSignal is no longer a subclass of ItemsAddedSignal, so MainWindow can catch the latter and ignore the former: FeedPolledSignal does its job
	- Store errors with the feed information
	- Better user messages from Poller

	* src/lib/httplib_async.py:
	override dispatcher's handle_error so errors are reported to the consumer

	* src/lib/Main.py:
	clean up code, remove stuff that isn't needed anymore

2003-02-14  Juri Pakaste  <juri@iki.fi>

	* src/lib/Config.py, src/lib/ExportSubscriptionsDialog.py, src/lib/Feed.py, src/lib/FindDialog.py, src/lib/ItemStore.py, src/lib/Main.py, src/lib/MainWindow.py, src/lib/PollManager.py, src/lib/PreferencesDialog.py, src/lib/SubscribeDialog.py, src/lib/SubscriptionsMergeDialog.py:
	- and no multiple instances of the configuration either, so let's access that as straw.config everywhere

	* src/lib/Main.py, src/lib/MainWindow.py, src/lib/SubscribeDialog.py, src/lib/SubscriptionsMergeDialog.py:
	- clean up the code a bit: we won't have multiple instances of Main, so no point in passing it around as an argument. it's now straw.main, assigned in Main's constructor.
	- async stuff in SubscribeDialog

	* src/lib/Main.py, src/lib/MainWindow.py, src/lib/__init__.py:
	all that async jazz

	* src/lib/ItemStore.py: s/sender/signal/ in image_update

	* src/lib/ImageCache.py:
	fetch images asynchronously, return a stub object on retrieve if it has to be fetched. don't signal it's arrival before it's really there

	* src/lib/Feed.py:
	previous_etag is now a property, there's an error attribute, blogroll stuff returns none until changed to work with async

	* src/lib/FeedPoller.py: the old networking thread has to go

	* src/lib/LookupManager.py, src/lib/NetworkConstants.py, src/lib/PollManager.py, src/lib/URLFetch.py, src/lib/httplib_async.py:
	new modules for asynchronous networking

2003-02-09  Juri Pakaste  <juri@iki.fi>

	* src/lib/Main.py: clean up

2003-02-08  Juri Pakaste  <juri@iki.fi>

	* src/lib/FindDialog.py, src/lib/SummaryItem.py:
	move item matching logic to summaryitem, also match against freshmeat fields and creator

2003-01-09  Juri Pakaste  <juri@iki.fi>

	* src/lib/Config.py, src/lib/Event.py, src/lib/Main.py, src/lib/MainWindow.py, src/lib/__init__.py:
	save and load main window size

2003-01-08  Juri Pakaste  <juri@iki.fi>

	* Makefile:
	oops, thought i committed this already - set a default prefix of /usr/local if there's no pkg-config, and create applicationsdir too

2003-01-06  Juri Pakaste  <juri@iki.fi>

	* src/lib/Main.py: workaround for broken gettext in python <2.2.2(?)

2003-01-05  Juri Pakaste  <juri@iki.fi>

	* po/fi.po, po/straw.pot, NEWS, src/lib/__init__.py: 0.15

	* src/lib/SummaryParser.py:
	only set an item's license to be the channel's if there were no licenses specified in the item

2003-01-03  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py:
	call columns_autosize after rendering the feed list

	* src/lib/SummaryParser.py, src/lib/SummaryParserCommon.py, src/lib/SummaryParserMP.py:
	move ItemDescriptionHandler to SummaryParserCommon; filter out font tags (not their contents, though)

2003-01-02  Juri Pakaste  <juri@iki.fi>

	* src/lib/SummaryItem.py, src/lib/SummaryParser.py: cc license stuff

	* src/lib/MainWindow.py: display cc license

	* src/lib/ItemStore.py: save freshmeat data, dc creator, license urls

	* src/lib/FeedPoller.py, src/lib/SubscribeDialog.py: error reporting

2002-12-31  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py: - better entity handling

	* src/lib/MainWindow.py: - fix handling of numeric entities

	* src/lib/FeedPoller.py, src/lib/ImageCache.py, src/lib/ItemStore.py, src/lib/MainWindow.py, src/lib/SubscribeDialog.py, src/lib/SummaryParser.py, src/lib/SummaryParserMP.py, src/lib/error.py:
	- error.log() outputs data to sys.stderr
	- clean up error reporting: remove superfluous spew, make the rest use error.log()

	* src/lib/ItemStore.py:
	catch a ValueError from pickle.loads, no idea what's causing it though

	* src/lib/Main.py:
	- previous/next now wrap around the feed list if needed

	* src/lib/Main.py:
	- use lowercased "straw" as the name with gnome.init, should fix problem with sessions

	* src/lib/MainWindow.py:
	- convert/strip entities in item titles for the list view
	- use gettext on listview column name
	- remove the unused date column crud

	* src/lib/Feed.py:
	initialize previous_etag to None instead of "", fixes a problem with web servers which don't support if-none-match

2002-12-22  Juri Pakaste  <juri@iki.fi>

	* Makefile:
	add a missing semicolon, set the mode of installed translation files

2002-12-20  Juri Pakaste  <juri@iki.fi>

	* NEWS: more 0.14

	* TODO: - i18n, new stuff in

	* glade/straw.gladep: capitalize program name

	* NEWS: more 0.14

	* NEWS, src/lib/__init__.py: 0.14

	* glade/straw.glade, glade/strings.c, po/fi.po, po/straw.pot:
	- modify menu items to be capitalized in accordance to the HIG: header capitalization instead of sentence capitalization
	- update translations to reflect that
	- add shortcuts to the finnish translation's menu items

	* po/fi.po, po/straw.pot:
	all the translatable strings in straw.pot now i think, updated the finnish translation

	* glade/straw.gladep, glade/strings.c:
	- export glade strings to strings.c for translation

	* src/lib/PreferencesDialog.py, src/lib/SubscribeDialog.py, src/lib/SubscriptionsMergeDialog.py:
	- i18n attack

	* src/lib/Main.py: - fix gettext domain binding

2002-12-16  Juri Pakaste  <juri@iki.fi>

	* src/lib/FindDialog.py:
	make the input field grab focus on display. if we get None as a result from a search, give MainWindow an empty list

	* glade/straw.glade, src/lib/FindDialog.py:
	the find dialog is now a gtkdialog which pops up at mouse location

2002-12-12  Juri Pakaste  <juri@iki.fi>

	* glade/straw.glade, src/lib/MainWindow.py:
	remove the extra frame from around the vbox containing the htmlview,
	source frame and exception view, eliminating the ugly indent

2002-12-08  Juri Pakaste  <juri@iki.fi>

	* Makefile, po/fi.po, po/straw.pot, src/lib/Main.py, src/lib/MainWindow.py, src/lib/__init__.py:
	starting i18n + l10n: call gettext, mark some of the messages translatable. fi.po contains translations in Finnish for those

2002-12-03  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py: - if given None, read_text returns ""

	* src/lib/Feed.py, src/lib/MainWindow.py:
	do the url stripping in mainwindow rather than in feed

	* src/lib/Feed.py: strip url in complete_url

2002-11-23  Juri Pakaste  <juri@iki.fi>

	* src/lib/__init__.py: remove extra slash from straw-ref url

	* NEWS, src/lib/__init__.py: 0.13.2

	* src/lib/PreferencesDialog.py, glade/straw.glade:
	- use focus out events on the spins instead of value_changed

2002-11-22  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py:
	- disable/enable subscriptions dialog in the other possible place too

	* src/lib/Feed.py:
	- catch ioerror when trying to fetch subscriptions/blogroll

	* src/lib/Feed.py, src/lib/FeedPoller.py, src/lib/ImageCache.py, src/lib/StrawURLOpener.py, src/lib/rssfinder.py:
	- use gzip if the server supports it, use the new method everywhere

	* src/lib/SummaryParserMP.py:
	- don't try to strip item.link if it's None

	* src/lib/SummaryParser.py:
	- and we don't need that exception printing here

	* src/lib/SummaryParser.py:
	- oops, description subelement checking wasn't really working

	* src/lib/SummaryParser.py:
	- raise an exception if there are elements in description

	* src/lib/SummaryParser.py:
	recognize RSS 0.9 namespace. fixes a few valid feeds we couldn't deal with before, at least the mail-archive stuff

2002-11-10  Juri Pakaste  <juri@iki.fi>

	* NEWS: 0.13.1

	* src/lib/SummaryParserMP.py:
	- oops, let's not try to call strip on None

	* NEWS, TODO, src/lib/__init__.py: - 0.13

	* glade/straw.glade: - drag_data_received events on main window
	- feed info link label is now in a hbox

	* src/lib/MainWindow.py, src/lib/SummaryParser.py, src/lib/SummaryParserMP.py:
	- move all the field stripping to to summaryparser*

	* src/lib/MainWindow.py:
	add bit of css to item display, now q elements are shown in italic

2002-11-09  Juri Pakaste  <juri@iki.fi>

	* src/lib/Main.py, src/lib/MainWindow.py, src/lib/SubscribeDialog.py, src/lib/SubscriptionsMergeDialog.py:
	- subscribedialog.show now accepts an optional url argument, as does main.show_subscribe_dialog, this will cause it to look for a feed in that url
	- remove the pointer to subscribedialog in subscriptionsmergedialog, use main.show_subscribe_dialog instead
	- accept dragged urls in main window and use subscribedialog on them

	* glade/straw.glade, src/lib/SubscribeDialog.py, src/lib/rssfinder.py:
	- just use a single text field for site/rss location, no more is needed

	* src/lib/ItemStore.py:
	- checkpoint the database once a minute and remove unneeded log files

2002-11-01  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py:
	disable the subscriptions / blogrolls menuitem if neither of them is specified

2002-10-29  Juri Pakaste  <juri@iki.fi>

	* src/lib/ItemStore.py, src/lib/OPML.py, src/lib/OPMLExport.py, src/lib/ParsedSummary.py, src/lib/SummaryItem.py, src/lib/SummaryParser.py, src/lib/SummaryParserMP.py:
	everything is handled internally as unicode, no need to save encoding information for parsedsummary or feed. export as utf-8.

2002-10-25  Juri Pakaste  <juri@iki.fi>

	* NEWS, src/lib/__init__.py: 0.12

	* src/lib/SummaryParserMP.py, src/lib/rssparser.py:
	- upgrade to a (again modified) version of rssparser 2.0.2
	- deal with content:encoded in SummaryParserMP

	* src/lib/ExportSubscriptionsDialog.py, src/lib/OPMLExport.py, src/lib/__init__.py:
	- maybe the opml export now about works

	* src/lib/MainWindow.py: - fix(?) character set problems

	* glade/straw.glade: export dialog

	* src/lib/MainWindow.py:
	- in the item list, store item pointer instead of item ids

	* src/lib/MainWindow.py:
	- in the find results list, store item pointer instead of item and feed ids

	* src/lib/MainWindow.py: - oops, search was broken

	* src/lib/ExportSubscriptionsDialog.py, src/lib/OPMLExport.py:
	- move opml generation and file access into different module
	- use gnome vfs for opml file access

2002-10-24  Juri Pakaste  <juri@iki.fi>

	* src/lib/FeedPoller.py:
	- oops, re-raise the exception thrown by strawurlopener if it wasn't a 304

2002-10-23  Juri Pakaste  <juri@iki.fi>

	* src/lib/Feed.py, src/lib/FeedPoller.py:
	- etag/if-none-match/304 support

	* src/lib/SummaryParser.py:
	- look for images in whatever ended up as being item.description, not just the description element
	- don't insist on the xml declaration being there

2002-10-17  Juri Pakaste  <juri@iki.fi>

	* src/lib/FeedPoller.py:
	- catch all exceptions in the poller, print stack trace and continue

	* src/lib/ExportSubscriptionsDialog.py, src/lib/Main.py, src/lib/MainWindow.py, src/lib/OPML.py, src/lib/__init__.py:
	- new version of OPML.py
	- export subscriptions in opml

	* src/lib/MainWindow.py:
	- rename "merge subscriptions" to "subscriptions and blogroll", only make it active on feeds that have one of them

	* Makefile:
	- use =? instead of =, so they should be settable by environment variables?

2002-10-13  Juri Pakaste  <juri@iki.fi>

	* Makefile, NEWS: - new installation dir, install .desktop and icon

	* straw.desktop: initial version

	* src/lib/Main.py, src/lib/MainWindow.py: - show icon in about

	* src/lib/__init__.py: - bump version, subscriptionsmergedialog, opml

	* src/lib/SummaryParser.py:
	- all versions of rss are now handled with a single content handler with better support for namespaces

	* src/lib/SummaryItem.py: - freshmeat stuff

	* src/lib/SubscribeDialog.py:
	- make find_site callable from the outside
	- save the parsedsummary of a found feed and put its items into the feed, plus the channel data

	* src/lib/PreferencesDialog.py: - new button was broken, fix it

	* src/lib/OPML.py, src/lib/OPMLImport.py, src/lib/SubscriptionsMergeDialog.py:
	Initial imports.

	OPML.py is a module for reading and writing OPML format. OPMLImport
	reads the datastructures generated by OPML.py and finds
	blogroll/subscriptions list elements. SubscriptionsMergeDialog is a
	dialog for browsing subscriptions and blogrolls.

	* src/lib/MainWindow.py: - feed list is now accessed directly
	- convert utf-8 entities
	- don't show empty items
	- freshmeat elements are displayed

	* src/lib/Main.py:
	- remove feed list access functions, add subscriptions merge dialog

	* src/lib/FeedPoller.py: - set blogChannel stuff in Feed

	* src/lib/FeedList.py:
	- get_feed_with_id function, part of moving code around a bit (no more feed list access functions in Main)

	* src/lib/Feed.py: - blogChannel stuff

	* glade/pixmaps/straw.png, images/straw.png: - icon

	* glade/straw.glade: - stuff, icon

	* README:
	- made url point to the correct location, documented the installation a bit

2002-09-25  Juri Pakaste  <juri@iki.fi>

	* NEWS, src/lib/QueueDict.py, src/lib/__init__.py:
	- 0.10.2: fix orderedkeydict's two methods to work right

2002-09-24  Juri Pakaste  <juri@iki.fi>

	* NEWS, src/lib/__init__.py: - 0.10.1

	* glade/straw.glade:
	- issue delete_events in finddialog and subscribedialog

2002-09-23  Juri Pakaste  <juri@iki.fi>

	* src/lib/SubscribeDialog.py:
	- handle the delete signal to the window. oh yeah, did that in finddialog too

	* src/lib/Event.py, src/lib/FindDialog.py, src/lib/MainWindow.py, src/lib/__init__.py:
	- interrupt find result rendering with a FindInterruptSignal when text is added to or deleted from the find text entry, and do a new search and render the results of that instead

	* src/lib/ParsedSummary.py, src/lib/SummaryParser.py:
	- rss 2.0: blogchannel stuff
	- rss 1.0: content:encoded

	* src/lib/ItemStore.py: - deal with empty items caused by bugs

	* src/lib/FindDialog.py: - more fixes to is_subset
	- some reformatting

2002-09-20  Juri Pakaste  <juri@iki.fi>

	* glade/straw.glade, src/lib/MainWindow.py: - toolbar find button

	* src/lib/FindDialog.py:
	- smarter is_subset: use find instead of length comparison
	- use lowercased input string

	* TODO: - woo, search done(?)

	* glade/straw.glade, src/lib/FindDialog.py, src/lib/Main.py, src/lib/MainWindow.py, src/lib/SummaryItem.py:
	- find dialog
	- use a default pubdate, initialized to current time, in items

	* NEWS, src/lib/__init__.py: - version 0.10
	- change in the straw homepage location, again: now it resides on www.nongnu.org

2002-09-19  Juri Pakaste  <juri@iki.fi>

	* src/lib/MainWindow.py: - show number of unread in title bar
	- clean up the code a bit

	* src/lib/SubscribeDialog.py: - remove forgotten debug outputs

	* src/lib/PreferencesDialog.py, src/lib/MainWindow.py, src/lib/FeedList.py:
	- sort for feeds

2002-09-16  Juri Pakaste  <juri@iki.fi>

	* src/lib/Feed.py: - once more, with feeling

	* src/lib/Feed.py: - don't do max() on an empty sequence

	* NEWS: - document version 0.9.4

	* src/lib/Feed.py, src/lib/ItemStore.py, src/lib/QueueDict.py, src/lib/__init__.py:
	- ItemStore: fixed a delete operation being done without transaction
	- Feed, QueueDict: revamped the addition of items, now it should be more sensible
	- bumped version to 0.9.4

2002-09-15  Juri Pakaste  <juri@iki.fi>

	* glade/straw.glade:
	- added shadows to the scrolledwindows containing treeviews
	- increased the size of the treeviews in the main window, also increased the window size

	* src/lib/MainWindow.py:
	- use start of description as title if the title element is empty
	- use minimal scrolling with item_list, dunno when that was switched off

2002-09-12  Juri Pakaste  <juri@iki.fi>

	* NEWS, src/lib/Feed.py, src/lib/__init__.py:
	- fix another problem in add_item with duplicate guids: don't signal the creation of an item which has already been deleted
	- bump version to 0.9.3

2002-09-11  Juri Pakaste  <juri@iki.fi>

	* NEWS, src/lib/__init__.py: - fix straw url

	* LICENSE, Makefile, NEWS, README, TODO, glade/straw.glade, glade/straw.gladep, images/face-happy.png, images/face-sad.png, src/lib/Config.py, src/lib/Event.py, src/lib/Feed.py, src/lib/FeedList.py, src/lib/FeedPoller.py, src/lib/ImageCache.py, src/lib/ItemStore.py, src/lib/Main.py, src/lib/MainWindow.py, src/lib/ParsedSummary.py, src/lib/PreferencesDialog.py, src/lib/QueueDict.py, src/lib/StrawURLOpener.py, src/lib/SubscribeDialog.py, src/lib/SummaryItem.py, src/lib/SummaryParser.py, src/lib/SummaryParserCommon.py, src/lib/SummaryParserMP.py, src/lib/__init__.py, src/lib/rssfinder.py, src/lib/rssparser.py, src/lib/timeoutsocket.py, src/straw:
	- initial imports, corresponding to the (yet unreleased) version 0.9.2

