2004-03-15  Larry Ewing  <lewing@ximian.com>

	* src/makefile.am: Use the sqlite wrapper that is now part of
	Mono.  Closes bug #134770 based on a patch from Graham Orr.

	* src/PhotoStore.cs: extend the comparison stuff a little.
	
	* MAINTAINERS: update.

	* AUTHORS: update a little.

	* src/MainWindow.cs: handle the delete_event signal properly.
	Fixes bug #134783 and is based on a patch by Graham Orr.

	* src/f-spot.glade: add a delete_event handler.
	
2004-03-10  Larry Ewing  <lewing@ximian.com>

	* src/GalleryRemote.cs: Fix Album::Parent so that it actually
	works and add a quick hack to parse the reference number when
	building the Album.  It might be safe to just assume the position
	is the reference number, but the docs aren't clear on that so
	better safe than sorry.
	
	* src/ExportCommand.cs: always setup the option menu even if we
	don't have values in the fields.

	* src/f-spot.glade: make the pasword text invisible.
	
	* src/makefile.am (F_SPOT_CSFILES): add ExportCommand.cs

	* src/f-spot.glade: add export dialog.
	
	* src/MainWindow.cs: remove old gallery export hack, hook to the
	new dialog hack.

	* src/ExportCommand.cs: add a really broken dialog for the gallery
	export command.

2004-03-07  Larry Ewing  <lewing@ximian.com>

	* src/FormClient.cs: misc formatting cleanups.

	* src/SlideView.cs: reset the timer before we show the image to
	even out the display time and bump the transition timer to 75
	milisecond.

2004-03-05  Larry Ewing  <lewing@ximian.com>

	* src/PhotoQuery.cs: use Array.Sort to preserve the order of the
	photos.

	* src/PhotoStore.cs: implement a basic IComparable on Photo so
	that we can sort the array when needed.sr

2004-03-04  Larry Ewing  <lewing@ximian.com>

	* src/f-spot.glade: add export menu item.
	
	* src/MainWindow.cs: add hardcoded export handler.

	* src/FormClient.cs: added, basic HTTP Post implementation for
	form sumbmission and file Upload.
	
	* src/GalleryRemote.cs: new file with beginnings of GalleryRemote
	protocol implementation.
	
	* src/makefile.am (F_SPOT_CSFILES): add FormClient.cs and
	GalleryRemote.cs

2004-03-01  Larry Ewing  <lewing@ximian.com>

	* configure.in: require gtk-sharp >= 0.17.

2004-02-28  Larry Ewing  <lewing@ximian.com>

	* src/IconView.cs: fixup for gtk-sharp 0.17.

	* src/TagSelectionWidget.cs: more gtk# fixups.

	* src/TimelineSelectorWidget.cs: more gtk# fixups.

	* src/PhotoView.cs: more gtk# fixups.

	* src/MainWindow.cs: more gtk# fixups.

	* src/SlideView.cs: more gtk# fixups.

2004-02-27  Larry Ewing  <lewing@ximian.com>

	* src/f-spot.glade: add menu item for set as background.
	
	* src/MainWindow.cs: add set as background handler and hook up the
	menu item.

2004-02-25  Larry Ewing  <lewing@ximian.com>

	* src/SlideView.cs: Refactor the Forward back logic more, add
	next_idx logic.
	
	* src/SlideView.cs: Add the begginings of the flipping code.	

2004-02-12  Larry Ewing  <lewing@ximian.com>

	* src/MainWindow.cs: Queue a redraw of the icon view now that
	we've changed the tags.  This needs a better solution.

	* src/PhotoStore.cs: be sure to commit the tag changes.

	* src/MainWindow.cs: remove the old ifdefed code it was confusing.

	* src/IconView.cs: Use UnselectAllCells() to clear the selection,
	we were missing notification before.
	
	* src/MainWindow.cs: make UpdateMenus handle more of the menu
	items.  Hook UpdateMenus to the tag selection widget.

	* src/f-spot.glade: fix a couple of the menu item widget names now
	that we are using them.

2004-02-11  Larry Ewing  <lewing@ximian.com>

	* src/f-spot.glade: remove toolbar that crept in somehow.
	
	* src/MainWindow.cs: hook up select/unselect.
	
	* src/IconView.cs: make unselectall public add selectall.

2004-02-10  Larry Ewing  <lewing@ximian.com>

	* src/PhotoStore.cs: add a remove method for tags that removes the
	tag from all the photos that refer to it and the removes it from
	the tag store.

	* src/TagStore.cs: make sure we clear the category so that our
	parent category doesn't try to keep us around.

	* src/MainWindow.cs: add remove tag handler logic.

2004-02-06  Larry Ewing  <lewing@ximian.com>

	* src/IconView.cs: Fix speed issue with selecting large ranges
	of cells.

	* src/makefile.am (CLEANFILES): add makefile to CLEANFILES.

	* src/IconView.cs: Clear selection when the query changes.
	
	* src/RotateCommand.cs: reformat slightly.

	* src/SlideView.cs: remove uneeded break that mcs complains about
	now.

	* src/makefile.am (F_SPOT_CSFILES): add ThumbnailCommand.cs.  Fix
	f-spot rule.

	* src/f-spot.glade: add new menu items.

	* src/MainWindow.cs: Add handler for deleting selected pictures
	from the catalog and for thumbnailing.  Use new thumbnail command
	for thumbnailing.  Add the start of a print command.

	* src/ThumbnailCommand.cs: add a thumbnailing command.

2004-01-30  Larry Ewing  <lewing@ximian.com>

	* src/SlideView.cs: Add another timer loop for the display
	transitions so that the transtion takes roughly the same amount of
	time for all sizes.  Clean up debug statments and timer names.  

2004-01-30  Larry Ewing  <lewing@ximian.com>

	* src/SlideView.cs: Generate the inbetween frames starting at the
	last frame and working forward because it gives a smoother
	impression if the end is smooth and the beginning is rough.  Use
	Destroyed instead of Destroy event.
	

2004-01-30  Larry Ewing  <lewing@ximian.com>

	* src/SlideView.cs: Generate the inbetween frames in an idle loop
	while showing the current image.  This trades off a lot of memory
	for speed but it make Full screen mode possible and improves
	interactivity.

2004-01-29  Larry Ewing  <lewing@ximian.com>

	* src/SlideView.cs: wrap the transition in a try block in case we
	get destroyed in the middle.

2004-01-28  Larry Ewing  <lewing@ximian.com>

	* src/SlideView.cs: use the allocation size rather than an
	arbitrary size.  Stop allocating a new buffer for each blend
	call.

	* src/MainWindow.cs: set the size request here.

	* src/SlideView.cs: add a quick hack to play with the blending in
	slide show transitions.

	* src/PhotoStore.cs: make AddTag also accept and array of tags,
	should fix the naming here soon.

	* src/MainWindow.cs: Add very basic View->Slide Show handler.
	Pass array directly to AddTag.

	* src/f-spot.glade: Add spelling fix from Kevin Breit
	<mrproper@ximian.com>.  Add View->Slide Show menu item.

	* src/makefile.am (F_SPOT_CSFILES): add SlideView.cs to the build.

	* src/SlideView.cs: add the start of a slideshow widget.  It
	currently only supports flip transitions.

2004-01-24  Larry Ewing  <lewing@ximian.com>

	* src/IconView.cs: add basic keynav and focus handling.  Shift
	selection still isn't right but things are getting better.

2004-01-23  Larry Ewing  <lewing@ximian.com>

	* src/f-spot.glade: Make hide the tabs and sink the scrolled
	window to remove some of the visual noise, the view changing
	buttons will come soon.

	* src/MainWindow.cs: add some temporary handlers for icon view
	resizing work.

	* TagCommands.cs: walk down the parent categories to indent for
	each level.

	* src/PixbufUtils.cs: bind UnsharpMask.

	* libfspot/f-pixbuf-unsharp.c: add a unsharp mask filter to
	libfspot.

	* libfspot/Makefile.am (libfspot_la_SOURCES): add
	f-pixbuf-unsharp.c


2004-01-21  Larry Ewing  <lewing@ximian.com>

	* src/IconView.cs: make InvalidateCell public for now.

	* src/MainWindow.cs: add handlers for new menu items and toolbars,
	reconnect the tag selection widgets SelectionChanged handler.

2004-01-20  Larry Ewing  <lewing@ximian.com>

	* src/TagSelectionWidget.cs: add TagHighlght method to get the
	tree selection.

	* src/f-spot.glade: add toolbar buttons and attach and remove tag
	menu items.

	* src/FileImportBackend.cs: allow multple base paths in an import.

	* src/ImportCommand.cs: allow multiple selections in the file
	selector.

	* src/TagCommands.cs: fix the category option so that it doesn't
	loop forever if a category has a sub category.

2004-01-18  Larry Ewing  <lewing@ximian.com>

	* src/IconView.cs: Add InvalidateCell() method to cut down on
	redraws, use where appropriate.  Add SelectCellRange() to
	implement shift selection.

2003-12-15  Miguel de Icaza  <miguel@ximian.com>

	* src/MainWindow.cs: Moved the main UI to Glade, and bring all the
	functionality from the old version there.

2003-11-29  Ettore Perazzoli  <ettore@ximian.com>

	* libfspot/f-image-view.c (impl_motion_notify_event): Fix memory
	leak.  Also, remove big chunk of "#if 0"ed code.

2003-11-29  Ettore Perazzoli  <ettore@ximian.com>

	* src/IconView.cs (IconView.HandlePixbufLoaded): Use
	InvalidateRect() instead of calling DrawCell() directly.  This
	fixes a redraw problem that occurred with a large enough number of
	pictures.  [I had a comment there saying that it was slower, but
	it doesn't seem to make a difference on my current machine.]

2003-11-29  Ettore Perazzoli  <ettore@ximian.com>

	* src/PixbufLoader.cs: Rename all methods using the conventions
	used in the rest of the code.

2003-11-28  Ettore Perazzoli  <ettore@ximian.com>

	* src/PixbufLoader.cs (PixbufLoader.Cancel): Just check if the
	hash returns null.
	(PixbufLoader.workerThread): If the queue count is zero after
	waiting on the monitor, wait again.
	(PixbufLoader.handleProcessedRequests): Don't remove the requests
	from the hash here, since we are already doing it when processing
	them.

	* src/IconView.cs (IconView.HandleScrollOnIdle): Move the code
	from Scroll() in here.
	(IconView.Scroll): Set an idle handler to scroll instead of just
	scrolling right away.
	(IconView.CancelScroll): New method to cancel a queued scroll.
	(IconView.HandleDestroyEvent): Handler for the widget's destroy
	event; call CancelScroll.
	(IconView.ctor): Connect the destroy event handler.

2003-11-22  Miguel de Icaza  <miguel@ximian.com>

	* src/PhotoSource.cs: Add another overload for GenerateThumbnail
	so we can specify whether to use Exif or not.

	* src/ImportCommand.cs: Thumbnails might not be generated, skip
	over those files.

	* src/f-spot.in (LD_LIBRARY_PATH): Added elite --debug flag to get
	line numbers on stack traces.

	* src/Makefile.am: Add elite -g to the mcs command line, so it
	generates debug info.

	* src/PhotoSource.cs: Add dog-food enabling feature by using Exif.

2003-11-22  Ettore Perazzoli  <ettore@ximian.com>

	* src/TagStore.cs: Pass true for the cache_is_immortal flag to the
	base constructor.

	* src/ImportStore.cs (ImportStore.ctor): Pass false for the
	cache_is_immortal flag to the base constructor.
	* src/PhotoStore.cs (PhotoStore.ctor): Likewise.

	* src/Db.cs (DbStore.cache_is_immortal): New private member.
	(DbStore.ctor): Get a cache_is_immortal arg.
	(DbStore.AddToCache): Add the item if the cache is immortal,
	instead of adding a WeakReference to it.
	(DbStore.LookupInCache): Expect a WeakReference if the cache is
	not immortal, the actual item otherwise.

2003-11-22  Ettore Perazzoli  <ettore@ximian.com>

	* libfspot/Makefile.am (libfspot_la_LIBADD): Add a dep on libeog.

2003-11-17  Ettore Perazzoli  <ettore@ximian.com>

	* src/RotateCommand.cs (RotateCommand.Execute): Only show the
	dialog if we are rotating more than one picture.

	* src/ProgressDialog.cs: Removed timeout stuff, we don't really
	need it.

2003-11-17  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/RotateCommand.cs (RotateCommand.Execute): Add a stoppable
	progress dialog.

	* src/ProgressDialog.cs: New.

2003-11-16  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/makefile.am (RESOURCES): Add f-spot-rotate-90.png and
	f-spot-rotate-270.png.

	* src/StockIcons.cs (StockIcons.Initialize): Add
	"f-spot-rotate-270", "f-spot-rotate-90".

	* src/RotateCommand.cs (RotateCommand.Direction): Renamed from
	RotationType.

	* src/PixbufLoader.cs (PixbufLoader.workerThread): Set the
	current_request to null after processing.

	* src/MainWindow.cs (MainWindow.RotateSelectedPictures):
	Implementation of the command to rotate the current picture if in
	photo view mode, or all the selected pictures in icon view mode.
	(MainWindow.HandleRotate90ToolbarButtonClicked): New event handler
	for the "Rotate 90 degrees" toolbar button.
	(MainWindow.HandleRotate270ToolbarButtonClicked): New event
	handler for the "Rotate 270 degrees" toolbar button.
	(MainWindow.CreateToolbar): New private method to create the
	toolbar.
	(MainWindow.ctor): Add the toolbar.

	* src/IconView.cs (IconView.UpdateThumbnail): Remove the thumbnail
	path, not the photo path.

	* libfspot/Makefile.am (libfspot_la_LIBADD): Add a dependency on
	libfspotjpegtran.

	* src/StockIcons.cs: Add new icons.

	* icons/f-spot-rotate-90.png: New.
	* icons/f-spot-rotate-270.png: New.

2003-11-16  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/RotateCommand.cs: New.

2003-11-16  Ettore Perazzoli  <ettore@perazzoli.org>

	Get some basic Dnd stuff in, although, it doesn't really work and
	I am giving up for now.

	* src/IconView.cs: Set up as a drag destination.  This doesn't
	work but I'll commit anyways since it's a start.

	* src/GtkDnd.cs: New file trying to make up for the broken
	bindings.

2003-11-16  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/MainWindow.cs (MainWindow.OnTagSelectionChanged): Switch to
	icon view mode.

2003-11-15  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/IconView.cs: Don't emit a DoubleClicked event if any
	keyboard modifiers are held.

2003-11-15  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/IconView (IconView.display_tags): New private member
	variable.
	(IconView.DisplayTags): New property.
	(IconView.CELL_BORDER_WIDTH): Reduced to 10 pixels.
	(IconView.SELECTION_THICKNESS): Reduced to 3 pixels.
	(Iconview.TAG_ICON_SIZE): New constant.
	(Iconview.TAG_ICON_HSPACING): New constant.
	(Iconview.TAG_ICON_VSPACING): New constant.
	(iconView.ErrorPixbuf): Use PixbufUtils.LoadFromAssembly().
	(IconView.UpdateLayout): Increase the cell_height to make space
	for the tags if DisplayTags is true.
	(IconView.DrawCell): Draw the category icons for the tags of the
	photo.

	* src/TagStore (TagStore.stock_icon_name): New private member.
	(TagStore.StockIconName): New public property.
	(TagStore.Icon): When this is set, set stock_icon_name to null.
	(TagStore.STOCK_ICON_DB_PREFIX): New constant.
	(TagStore.SetIconFromString): New private helper method.
	(TagStore.LoadAllTags): Add a debugging Console.WriteLine() since
	otherwise things do not seem to work [no idea why!].  Also, use
	SetIconFromString() to get the icon so we properly handle stock
	icons.
	(TagStore.GetIconString): If it's a stock icon, return
	STOCK_ICON_DB_PREFIX plus the icon name instead of the raw base64
	encoding.
	(TagStore.CreateDefaultTags): Set stock icons for the default tags
	instead of raw pixbufs.

	* src/StockIcons.cs (StockIcons.Initialize): Use
	PixbufUtils.LoadFromAssembly().

	* src/PixbufUtils.cs (PixbufUtils.LoadFromStream): New.
	(PixbufUtils.LoadFromAssembly (Assembly, string)): New.
	(PixbufUtils.LoadFromAssembly (string)): New.

2003-11-13  Jakub Steiner <jimmac@ximian.com>

	* icons/f-spot-people.png: use a nicer icon for people

2003-11-12  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/MainWindow.cs: Hmmm set "shrink" to true again for the
	hpaned, otherwise we can have some nasty resizing when selecting
	pictures.  We need to fix this properly by using labels with
	ellipsis.

2003-11-12  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/makefile.am: Add f-spot-people.png, f-spot-places.png to the
	.exe.

	* src/main.cs (Driver.Main): Change the working directory to be
	the user's home directory.

	* src/f-spot.in: DllImport uses LD_LIBRARY_PATH, not MONO_PATH,
	you doofus.

	* src/TagStore.cs (Tag.CompareTo): Reverse the order when using
	SortPriority.
	(TagStore.LoadAllTags): Get the icon from the database.
	(TagStore.CreateDefaultTags): Add "Favorites", "People", "Events"
	and "Other" categories.

	* src/TagSelectionWidget.cs (TagSelectionWidget.Update): Rename
	from Reload().
	(TagSelectionWidget.SetBackground): Private method to set the
	color of the cells depending on whether they are a category or a
	tag.
	(TagSelectionWidget.CheckBoxDataFunc): Use it.
	(TagSelectionWidget.IconDataFunc): Use it.
	(TagSelectionWidget.NameDataFunc): Use it.

	* src/TagCommands.cs: New.

	* src/f-spot.glade: Make "version_name_dialog" not visible (so we
	don't flicker).  New dialog "create_tag_dialog".

	* icons/f-spot-people.png: New icon.
	* icons/f-spot-places.png: New icon.

2003-11-11  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/main.cs (Driver.Main): Change to the home directory at
	start-up.

2003-11-11  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/TagSelectionWidget.cs (TagSelectionWidget.IconDataFunc):
	New.
	(TagSelectionWidget.ctor): Hook it up so we can display the icon
	for the tag.

	* src/TagStore.cs (PixbufSerializer): New temporary class to avoid
	using the broken GTK# bindings for gdk_pixdata_serialize() and
	gdk_pixdata_deserialize().
	(GetIconString): Get the base64 encoded version of the pixbuf.
	(TagStore.LoadAllTags): Get the icons.
	(TagStore.CreateDefaultTags): Set the f-spot-favorite icon for the
	favorites tag.
	(TagStore.Commit): Save the icon.

	* icons/f-spot-favorite.png: New.

2003-11-11  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/PhotoStore.cs (Photo.CreateDefaultModifiedVersion): Start at
	"(2)" for "Modified" versions past the first one, instead of
	"(1)".  [So if you have a "Modified" version now you get "Modified
	(2)" instead of "Modified (1)".]

2003-11-10  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/PhotoStore.cs (PhotoStore.MoveThumbnail): New.
	(PhotoStore.DeleteThumbnail): New.
	(Photo.DeleteVersion): Remove the thumbnail.
	(Photo.RenameVersion): Rename the thumbnail.
	(PhotoStore.Create): Get the id after doing the query, not before!

2003-11-10  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/PhotoView.cs (Photoview.UpdateImageView): Use
	Photo.DefaultVersionPath, not Photo.Path, to get the path for the
	image to display.

2003-11-09  Larry Ewing  <lewing@ximian.com>

	* configure.in: drop libgnome requirement to 2.2 since it doens't
	seem to break anything.

	* src/PixbufLoader.cs (PixbufLoader.processRequest): catch the
	possible Pixbuf exceptions.

	* src/PhotoView.cs (PhotoView.UpdateImageView): catch the possible Pixbuf exception.

	* src/IconView.cs (IconView.ErrorPixbuf): use the question mark icon we ship.

2003-11-10  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/InfoBox.cs (InfoBox.Update): Get the size info from the
	photo's DefaultVersionPath instead of its Path.

2003-11-09  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/MainWindow.cs (MainWindow.ctor): Pass false as the "shrink"
	arg in Paned.Pack1() for the left pane so we don't get sized below
	the InfoBox' size requisition.

2003-11-09  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/MainWindow.cs (MainWindow.HandlePhotoViewButtonPressEvent):
	Button press event handler for the PhotoView, so we can switch to
	icon view mode on double click.
	(MainWindow.ctor): Connect.

	* libfspot/f-image-view.c (impl_button_press_event): Clean up on
	GDK_2BUTTON_PRESS.

2003-11-09  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/ZoomUtils.cs: Import from libfspoteog, not libeog.

2003-11-09  Ettore Perazzoli  <ettore@perazzoli.org>

	* configure.in: Remove gnome-thumbnail.h check, add a Sqlite
	check.

2003-11-09  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/PhotoVersionCommands.cs (PhotoVersionCommands.Create): Pass
	true for create_file to Photo.CreateVersion.

	* src/IconView.cs (IconView.Scroll): Use Photo.DefaultVersionPath
	instead of Photo.Path.
	(IconView.DrawCell): Likewise.
	(UpdateThumbnail): New method to have a thumbnail reloaded.

	* src/MainWindow.cs (MainWindow.ctor): Pass photo store to
	PhotoView.
	(MainWindow.HandleCreateVersionCommand): Update the thumbnail in
	the icon view.
	(MainWindow.HandleDeleteVersionCommand): Likewise.
	(MainWindow.HandleRenameVersionCommand): Likewise.
	(MainWindow.UpdateForVersionIdChange): Likewise.
	(MainWindow.HandlePhotoViewPhotoChanged): New handler for the
	PhotoChanged event on the PhotoView.
	(MainWindow.ctor): Connect.

	* src/PhotoView.cs (PhotoView.HandleCropButtonClicked): New.
	(PhotoView.ctor): Connect to the "Clicked" event on the crop
	button.
	(PhotoView.photo_store): New member to keep a pointer to the photo
	store.
	(PhotoView.ctor): Get a PhotoStore arg, initialize photo_store.
	(PhotoView.PhotoChanged): New public event.
	(PhotoView.UpdateImageView): Use Photo.DefaultVersionPath instead
	of .Path, so that we display the default version.
	(PhotoView.HandleDisplayNextButtonClicked): Emit PhotoChanged.
	(PhotoView.HandleDisplayPreviousButtonClicked): Emit PhotoChanged.

	* src/PhotoStore.cs (Photo.CreateDefaultModifiedVersion): New.
	(Photo.CreateVersion): Get a bool arg specifying whether to create
	a file for the new version or not.
	(Photo.DefaultVersionPath): New public property.

2003-11-09  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/InfoBox.cs (InfoBox.SetupWidgets): Move the version option
	menu up, after the name entry; I think it makes more sense this
	way.

2003-11-09  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/MainWindow.cs (MainWindow.UpdateForVersionIdChange): New.
	(MainWindow.HandleVersionIdChanged): Use it.
	(MainWindow.HandleInfoBoxVersionIdChanged): New.
	(MainWindow.ctor): Hook to the VersionIdChanged event on the
	InfoBox.

	* src/InfoBox.cs (InfoBox.VersionIdChanged): New public event.
	(InfoBox.HandleVersionIdChanged): Handler for the PhotoVersionMenu
	version id changes, emits VersionIdChanged.
	(InfoBox.Update): Make it use PhotoVersionMenu.
	(InfoBox.PopulateVersionOptionMenu): Remove.
	(InfoBox.HandleVersionOptionMenuActivated): Remove.

2003-11-09  Ettore Perazzoli  <ettore@perazzoli.org>

	* configure.in: Require Gnome 2.4 libs.

2003-11-09  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/PhotoVersionCommands.cs
	(PhotoVersionCommands.VersionNameRequest): Change so that it gets
	a request type and sets prompt and title depending on it.  Also,
	don't give a "this name already exists" warning if it's a rename
	request and the user typed the same name as the current version
	and return ResponseType.Cancel in that case even if the user
	clicked "Ok".
	(PhotoVersionCommands.Create): Update accordingly.
	(PhotoVersionCommands.Rename): Update accordingly.
	(PhotoVersionCommands.Update): New.
	(PhotoVersionCommands.VersionNameRequest.HandleVersionNameEntryChanged):
	Use it.
	(PhotoVersionCommands.VersionNameRequest.Run): Likewise.

2003-11-09  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/PhotoVersionCommands.cs
	(PhotoVersionCommands.Delete.Execute): Implement.
	(PhotoVersionCommands.VersionNameRequest): New private class for
	generic version name requests.
	(PhotoVersionCommands.Create): Use this class.
	(PhotoVersionCommands.Rename): Implement.

	* src/f-spot.glade: Rename "create_new_version_dialog" to
	"version_name_dialog", give a name to the prompt label, remove all
	text.

	* src/MainWindow.cs (MainWindow.HandleVersionIdChanged): Call
	UpdateMenus().
	(MainWindow.HandleRenameVersionCommand): Implement.
	(MainWindow.UpdateMenus): Make the "rename version" menu item
	insensitive when the original version is selected.

	* src/PhotoStore.cs (Photo.GetVersionPath): Use GetVersionName().
	(Photo.DeleteVersion): Delete the version file.  Also, if we are
	deleting the DefaultVersion, re-set it to be the most recent of
	the versions before this one.
	(Photo.RenameVersion): Get a uint version_id, not an int, also use
	the proper name.

2003-11-09  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/makefile.am: Include f-spot.glade as a resource into
	f-spot.exe.

	* src/f-spot.glade: New file, right now containing only the
	"Create New Version" dialog box.

	* src/ThumbnailCache.cs (ThumbnailCache.MaybeExpunge): Renamed
	from "maybeExpunge" for consistency.

	* src/PhotoView.cs (PhotoView.Update): Made public.

	* src/PhotoVersionMenu.cs: New file implementing a menu to select
	photo versions.

	* src/PhotoVersionCommands.cs: New file implementing version
	management commands.

	* src/PhotoStore.cs (Photo.default_version_id): New private member
	variable.
	(Photo.DefaultVersionId): New property.
	(Photo.VersionNameExists): Made public.
	(Photo.GetVersionPath): Return the appropriate path for the
	OriginalVersionId.
	(Photo.CreateVersion): Make a copy of the base version and
	generate a thumbnail for it.  Make sure that a file with the new
	path doesn't already exist.
	(PhotoStore.thumbnail_factory): Made static.
	(PhotoStore.EnsureThumbnailDirectory): Made static.
	(PhotoStore.GenerateThumbnail): New static method.
	(PhotoStore.Create): Use it.
	(PhotoStore.ctor): Add a default_version_id column to the table.
	(PhotoStore.Create): Set the default_version_id column.
	(PhotoStore.Get): Get the default_version_id column and set
	DefaultVersionId.
	(PhotoStore.Commit): Set the default_version_id column.  Also,
	don't store the OriginalVersionId in the photo_versions table.

	* src/MainWindow.cs: Added a Photo -> Version submenu and
	Create/Delete/Rename Version menu items.
	(MainWindow.CurrentPhoto): New private property to track the
	selected photo.

	* src/InfoBox.cs (InfoBox.Update): Made public.

2003-11-09  Ettore Perazzoli  <ettore@perazzoli.org>

	* configure.in: Don't require libxml.

2003-11-08  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/ImportCommand.cs (ImportCommand.HandleDialogResponse):
	Renamed from "OnResponse" for consistency.

2003-11-08  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/TagStore.cs (Tag.Children): Change from an ArrayList to an
	array.

	* src/TagSelectionWidget.cs (TagSelection): Return an array of
	tags instead of an ArrayList.

	* src/PhotoView.cs: Renamed private member "model" to "query";
	updated for the changes in PhotoQuery.
	(PhotoQuery.Query): Renamed from "Model".

	* src/PhotoStore.cs (Photo.Tags): Change from an ArrayList to an
	array.
	(Photo.Query): Return an array of Photos instead of an ArrayList.

	* src/MainWindow.cs (MainWindow.HandleSelectionChanged): Update
	for the fact that IconView.Selection is now an array.

	* src/InfoBox.cs (InfoBox.PhotoPath): Removed, together with the
	private "photo_path" member.
	(InfoBox.Photo): New property, use this instead.
	(InfoBox.HandleVersionOptionMenuActivated): New.
	(InfoBox.PopulateVersionOptionMenu): New.
	(InfoBox.Update): Call it.
	(InfoBox.SetupWidgets): Add a row with the version option menu.
	(InfoBox.Clear): Make the option menu insensitive.

	* src/IconView.cs (IconView): Rename local member "model" to
	"query"; make it use just a PhotoQuery object.
	(IconView.Selection): Return an array instead of an ArrayList.

	* src/PhotoQuery.cs: Don't derive from PhotoListModel anymore;
	move all the method inherited from PhotoListModel in.
	(PhotoQuery.Tags): Changed from an ArrayList to an array.
	(PhotoQuery.Photos): Return an array.
	(PhotoQuery.GetItem): Removed.

	* src/PhotoListModel.cs: Removed.

	* src/Db.cs (DbStore.AddToCache): Remove an existing item with the
	same ID as the one we are adding.

2003-11-08  Ettore Perazzoli  <ettore@perazzoli.org>

	* src/PhotoView.cs (PhotoView.UpdateImageView): Handle a null
	model or an out of range photo index value gracefully.

	* src/PhotoStore.cs (Photo.ctr): Moved initialization for "tags"
	out of the constructor.  Added version management.
	(Photo.VersionIds): New.
	(Photo.AddVersionUnsafely): New.
	(Photo.GetPathForVersionName): New.
	(Photo.VersionNameExists): New.
	(Photo.GetVersionName): New.
	(Photo.GetVersionPath): New.
	(Photo.DeleteVersion): New.
	(Photo.CreateVersion): New.
	(Photo.RenameVersion): New.
	(Photo.Photo): Made the two constructors use each other to
	avoid duplicated code.  Also, create the default "Original" version.
	(PhotoStore.ctor): Create the "photo_versions" table.
	(PhotoStore.Get): Get the versions from the database.
	(PhotoStore.Remove): Update the "photo_versions" table.
	(PhotoStore.Commit): Likewise.
	(Main): Added testing code for the versioning stuff.

	* src/ImageView.cs (ImageView.Pixbuf): Handle a null value.

2003-11-08  Ettore Perazzoli  <ettore@perazzoli.org>

	* MAINTAINERS: New.
	* Makefile.am (EXTRA_DIST): Add.

2003-11-08  Ettore Perazzoli  <ettore@perazzoli.org>

	* configure.in: Don't use gettext for now, we have no support for
	it anyhow.

