2007-11-06  Matthew Barnes  <mbarnes@redhat.com>

	Remember the previous filename used to save audit results, and
	suggest that again next time.

	* data/gnome-video-arcade.glade:
	Increase the height of the audit results windows.

	* data/gnome-video-arcade.schemas:
	Add error-file key.

	* src/gva-common.h:
	Add GVA_GCONF_ERROR_FILE_KEY.

	* src/gva-audit.c (audit_run_save_dialog):
	Move the save dialog logic here from action_save_errors_cb().
	It was getting too complicated for an action handler.

	* src/gva-audit.c (gva_audit_save_error):
	Remove the filename argument; it's all self-contained now.

	* src/gva-tree-view.c (gva_tree_view_run_query):
	Reset the tree view search column each time a new model is loaded.
	Fixes a common crash when using the interactive search.

	* src/gva-ui.c (action_save_errors_cb):
	Move all the save dialog logic to audit_run_save_dialog().
	Just call gva_audit_save_error() now.

2007-11-05  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	* src/gva-audit.c:
	* src/gva-audit.h:
	Finish implementing the audit results dialog.

	* src/main.c (main):
	Call gva_audit_init().

	* src/gva-ui.h:
	* src/gva-ui.c:
	Define WIDGET macros for audit window.
	Add GVA_ACTION_SAVE_ERRORS, which displays a "Save As" dialog and
	calls gva_audit_save_errors().

2007-11-05  Matthew Barnes  <mbarnes@redhat.com>

	* src/Makefile.am:
	Add gva-audit.[ch].

	* src/gva-audit.h:
	* src/gva-audit.c:
	New source files for auditing ROM and sample sets.

	* src/gva-main.c (gva_main_build_database):
	Call gva_audit_roms() and gva_audit_samples().

	* src/gva-db.c (gva_db_verify_romsets), (gva_db_verify_samplesets),
	(db_verify_read), (db_verify_foreach), (db_verify_exit),
	(db_verify_string_free):
	* src/gva-mame-common.c (mame_verify_read), (mame_verify_exit):
	Move these functions to gva-audit.c.

	* src/gva-game-store.h:
	* src/gva-game-store.c:
	Inherit from GtkTreeStore instead of GtkListStore.

	* src/gva-play-back.c: Adapt.
	* src/gva-ui.c: Adapt.

	* data/gnome-video-arcade.glade:
	Early prototype for an audit results dialog.

	* docs/reference:
	Update developer documentation.

2007-10-27  Matthew Barnes  <mbarnes@redhat.com>

	* src/gconf-bridge.c:
	Use dashes instead of underscores in GConf key names.

2007-10-27  Matthew Barnes  <mbarnes@redhat.com>

	* configure.ac: Post-release version bump.

2007-10-25  Matthew Barnes  <mbarnes@redhat.com>

	NEWS: Update for 0.5.1

	These changes fix a deadlock condition that occurred when running
	--verifyroms on sdlmame versions 0.114 and earlier, which printed
	progress messages on stderr.  The GvaProcess read logic would get
	stuck reading these progress messages, causing the stdout pipe to
	overflow.  The child process would then block in a write() call
	to stdout, and we would be blocked in a read() call to stderr.

	* src/gva-mame-common.c (gva_mame_verify_roms),
	(gva_mame_verify_samples):
	Bump the prioritiy to G_PRIORITY_DEFAULT_IDLE, since these
	tasks no longer run in the background during XML parsing.

	* src/gva-process.c (process_read_line):
	New function reads a line from the GIOChannel and appends it to the
	input queue.  Replaces process_data_ready().

	* src/gva-process.c (process_stdout_ready):
	Call process_read_line() for as long as the G_IO_IN condition is set.
	The looping is a performance enhancement for XML parsing.

	* src/gva-process.c (process_stderr_ready):
	Call process_read_line() once if the G_IO_IN condition is set.

2007-10-20  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-columns.c (columns_favorite_clicked_cb):
	Use gtk_tree_view_column_get_tree_view(), if available.

	* src/gva-ui.c (action_about_cb):
	Fix the program name when using GTK+ 2.12.

2007-10-17  Matthew Barnes  <mbarnes@redhat.com>

	* NEWS: Update for 0.5.0

	* README:
	Talk about new package requirements.
	Reword some parts now that we have a user manual.

	* configure.ac:
	Add a --with-gnome option.

	* Makefile.am:
	Don't distribute the m4 directory.

	* docs/reference/Makefile.am:
	Add flags for linking to libgnomeui.

	* help/C/gnome-video-arcade.xml:
	Fix some validation errors.

	* src/Makefile.am:
	Add flags for linking to libgnomeui.

	* src/main.c (main):
	Call gnome_program_init() if we are linking to GNOME libraries,
	otherwise call gtk_init_with_args().

	* src/gva-main.c (gva_main_init):
	Desensitize GVA_ACTION_CONTENTS if we are NOT linking to GNOME
	libraries.

	* src/gva-ui.c (action_contents_cb):
	Call gnome_help_display() if we are linking to GNOME libraries,
	otherwise do nothing (should be desensitized anyway).

2007-10-16  Matthew Barnes  <mbarnes@redhat.com>

	* help/C/figures/gva_recorded_games.png:
	* help/C/figures/gva_search_window.png:
	* help/C/gnome-video-arcade.xml:
	* help/C/Makefile.am:
	Finish the user documentation (first draft, anyway).

2007-10-15  Matthew Barnes  <mbarnes@redhat.com>

	* help/C/gnome-video-arcade.xml:
	Start on the "Usage" section of the user documentation.

2007-10-14  Matthew Barnes  <mbarnes@redhat.com>

	* help/C/figures/gva_building_database.png
	* help/C/figures/gva_main_window.png
	* help/C/gnome-video-arcade.xml
	* help/Makefile.am:
	Finish the "Getting Started" section of the user documentation.

2007-10-13  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-history.c (gva_history_lookup):
	Recent revisions of history.dat have added lines containing an
	"Edit this entry at Arcade-History.com" HTML link between the $info
	and $bio lines.  These new lines also start with '$', so modify the
	parsing logic to ignore any lines starting with '$' that are not
	$info or $end markers.  (Previously we were just checking for $bio
	markers, so the raw HTML code got displayed in the UI.)

	Perhaps in a future version we could actually display these links
	as clickable widgets or text.

2007-10-13  Matthew Barnes  <mbarnes@redhat.com>

	* AUTHORS: Add myself.

	* src/gva-cell-renderer-pixbuf.h:
	* src/gva-column-manager.h:
	* src/gva-db.h:
	* src/gva-game-store.h:
	* src/gva-mame-process.h:
	* src/gva-mame.h:
	* src/gva-process.h:
	Finish developer documentation (100% coverage).

2007-10-13  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-db.c:
	* docs/reference:
	Add more developer documentation (94% coverage).

	* configure.ac:
	* Makefile.am:
	* help/C/gnome-video-arcade.xml:
	* help/C/legal.xml:
	* help/gnome-video-arcade.omf.in:
	Set up a gnome-doc-utils framework and begin writing user
	documentation for Yelp.

	* src/gva-columns (gva_columns_load):
	Fall back to the default columns if the visible column list in
	GConf is empty to ensure that *something* gets displayed at startup.

	* src/main.c:
	* src/gva-common.h:
	* docs/gnome-video-arcade.1:
	Add --inspect=NAME command-line option.
	Prints the value of the given MAME configuration key and exits.

	* src/gva-main.c (gva_main_init):
	Desensitize GVA_ACTION_CONTENTS for now.  Making this work is going
	to require linking against libgnome, which is unfortunate.  I plan to
	make it optional by providing a --without-help configure option, which
	would desensitize GVA_ACTION_CONTENTS as I'm doing now.

2007-10-10  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-error.h:
	* src/gva-game-store.c:
	* src/gva-mame-common.c:
	* src/gva-mame-common.h:
	* src/gva-mame.h:
	* src/gva-search.c:
	* src/gva-tree-view.c:
	* src/gva-util.c:
	Add more developer documentation (88% coverage).

2007-10-10  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-game-store.c:
	* src/gva-mame-process.c:
	* src/gva-process.c:
	* src/gva-util.c:
	* docs/reference:
	Add more developer documentation (79% coverage).

2007-10-08  Matthew Barnes  <mbarnes@redhat.com>

	Revert the previous changes.  I ran into too many complications
	trying to get cursor movement from the Properties window to work
	right.  Maybe try again at some later date.

	* docs/Makefile.am:
	* docs/gnome-video-arcade.1:
	Add a manual page.

2007-10-07  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	Add a new check button in the Preferences window for grouping
	cloned games underneath the original game in the main window.
	Doesn't do anything quite yet.

	* data/gnome-video-arcade.schemas:
	Add group-clones key.

	* docs/reference:
	Add docs for new symbols.

	* src/gva-common.h:
	Add GVA_GCONF_GROUP_CLONES_KEY.

	* src/gva-columns.c:
	Add a "Clone Of" column.

	* src/gva-preferences.c (gva_preferences_init):
	Wire up the "group-clones" action, widget, and GConf key.

	* src/gva-preferences.c (gva_preferences_get_group_clones),
	(gva_preferences_set_group_clones):
	New functions for getting and setting the "group-clones" user
	preference.

	* src/gva-ui.h:
	Add GVA_ACTION_GROUP_CLONES and GVA_WIDGET_PREFERENCES_GROUP_CLONES.

	* src/gva-ui.c:
	Define a GtkToggleAction named "group-clones".

2007-09-28  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	Some minor UI tweaks.

2007-09-21  Matthew Barnes  <mbarnes@redhat.com>

	* src/Makefile.am:
	Replace -Werror with -Wall (SF bug #1799564).

	* src/main.c:
	* src/gva-columns.c:
	* src/gva-db.c:
	* src/gva-game-store.c:
	* src/gva-main.c:
	* src/gva-mame-common.c:
	* src/gva-properties.c:
	* src/gva-tree-view.c:
	* src/gva-ui.c:
	* src/gva-util.c:
	Fix a bunch of compiler warnings caught by -Wall.  Most of them
	were just unused variables or missing #includes.

2007-09-20  Matthew Barnes  <mbarnes@redhat.com>

	* NEWS: Update for 0.4.5.1

	* src/gva-columns.c (columns_driver_status_set_properties):
	Use "emblem-default" for working games (status == "good").

2007-09-20  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-db.c (db_parser_start_element):
	Parse <input> elements to make the Players column work again.

2007-09-20  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-ui.c:
	Make Ctrl-P an accelerator for Properties.

2007-09-20  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-db.c (db_parser_start_element):
	Parse <driver> elements to make the Status column work again.

2007-09-18  Matthew Barnes  <mbarnes@redhat.com>

	* NEWS: Update for 0.4.5

	* docs/reference:
	Add docs for new functions.

	* src/main.c (start):
	Adapt to new gva_main_build_database() behavior.

	* src/gva-db.c (gva_db_verify_romsets), (gva_db_verify_samplesets):
	New functions separate the verification phase of the game database
	construction from the XML parsing phase so they can be serialized.

	* src/gva-db.c (db_parser_start_element), (gva_db_parser_end_element):
	Skip over unused elements to speed up XML parsing.

	* src/gva-db.c (db_parser_end_element_game):
	Call gva_process_inc_progress() instead of gva_process_set_progress()
	so that we don't have to maintain our own progress counter.

	* src/gva-process.c (gva_process_inc_progress):
	New function increments the progress property.

	* src/gva-main (gva_main_build_database):
	This is now a *synchronous* function that more accurately reports
	database construction progress.  Construction is now broken into
	two separate phases -- XML parsing and ROM verification -- and the
	status and progress bars are updated accordingly for each phase.

2007-09-18  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-columns.c:
	Add a "Status" column showing a warning or error symbol as
	described below.  Putting an icon next to the game title is
	too distracting, but at least now there's infrastructure for
	doing fancy things like that.

2007-09-18  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-search.c:
	Allow an empty search entry to clear the Search Results view.

2007-09-18  Matthew Barnes  <mbarnes@redhat.com>

	* docs/reference:
	Add docs for gva_columns_get_names_full().

	* src/gva-columns.c:
	Add an icon next to the game title indicating if emulation of the
	game has known issues.  Use a warning symbol for minor issues and
	an error symbol for major issues.

	* src/gva-columns.c (gva_columns_get_names_full):
	New function returns a list of tree view column names from the
	given GtkTreeView, plus any additional column names from the game
	database necessary to render the tree view cells.

	* src/gva-tree-view.c (gva_tree_view_run_query):
	Call gva_columns_get_names_full().

2007-09-18  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-tree-view.c (gva_tree_view_init):
	Make searching work again; this broke at some point.

	* src/gva-tree-view.c (gva_tree_view_update):
	Tinker with the search query, add 'sourcefile' field.

2007-09-18  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-columns.c:
	Add a "Driver" column.

	* src/gva-game-store.c (game_store_compare):
	General-purpose sort function for any column.
	Falls back to default sort column if values are equal.

	* src/gva-game-store.c (game_store_description_compare),
	(game_store_time_compare): Removed.

	* src/gva-game-store.c (game_store_constructor):
	Register a sort function for all columns.

2007-09-16  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-mame-common.c (gva_mame_playback_game):
	Make playback work with SDLMAME.

2007-09-15  Matthew Barnes  <mbarnes@redhat.com>

	* NEWS: Update for 0.4.4

	* data/gnome-video-arcade.glade:
	Simplify the search window for basic searching.

	* data/gnome-video-arcade.schemas:
	Add search key.

	* docs/reference/gnome-video-arcade-docs.sgml:
	* docs/reference/gnome-video-arcade-sections.txt:
	Add search documentation.

	* src/Makefile.am:
	Add gva-search.[ch].

	* src/main.c (main):
	Call gva_search_init().

	* src/gva-common.h:
	Add GVA_GCONF_SEARCH_KEY.

	* src/gva-search.[ch]:
	New source files implement the search window.

	* src/gva-tree-view.c (gva_tree_view_update):
	Build a query for the "Search Results" view.

	* src/gva-ui.h:
	Add GVA_WIDGET_SEARCH_ENTRY and GVA_WIDGET_SEARCH_FIND_BUTTON.

2007-09-15  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-columns.c:
	Add a "Players" column.

2007-09-01  Matthew Barnes  <mbarnes@redhat.com>

	* NEWS: Update for 0.4.3

	* src/main.c:
	* src/gva-common.h:
	Add --version command-line option.
	Prints the program version and exits.

2007-09-01  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-tree-view.c (gva_tree_view_run_query):
	Resize the columns after setting a new tree model.

2007-09-01  Matthew Barnes  <mbarnes@redhat.com>

	* Add some more developer documentation.

2007-08-31  Matthew Barnes  <mbarnes@redhat.com>

	* src/main.c (start):
	Bind to "selected-view" GConf key after database is built.

	* src/gva-main (gva_main_init):
	Move "selected-view" GConf key binding to start().

2007-08-30  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-tree-view.c (gva_tree_view_run_query):
	Leave the tree view insensitive if the query comes back empty.

2007-08-30  Matthew Barnes  <mbarnes@redhat.com>

	* intltool-extract.in:
	* intltool-update.in:
	Upgrade to intltool 0.36.

	* docs/reference/Makefile.am:
	Add gconf-bridge.o to GTKDOC_LIBS.

	* docs/reference/gnome-video-arcade-sections.txt:
	Add symbols from gnome-video-arcade-unused.txt.

	* src/gva-main.c (gva_main_init):
	Bind to "selected-view" GConf key after main window is realized.

	* src/gva-tree-view.c (gva_tree_view_init):
	Move "selected-view" GConf key binding to gva_main_init().

2007-08-22  Matthew Barnes  <mbarnes@redhat.com>

	* Embed gconf-bridge into GNOME Video Arcade rather than
	  requiring it as an external dependency.  Some GNU/Linux
	  distros (e.g. Fedora) do not provide libgconf-bridge.

	* configure.ac:
	Revert previous changes.

	* data/gnome-video-arcade.glade:
	Hide the main window until we've initialized it.

	* data/gnome-video-arcade.schemas:
	Fix some typos.

	* docs/reference/Makefile.am:
	Revert previous changes and ignore gconf-bridge.h.

	* src/Makefile.am:
	Revert previous changes and add gconf-bridge.[ch] to SOURCES.

	* src/gconf-bridge.[ch]:
	New source files ripped from libgconf-bridge.

	* src/gva-main.c (gva_main_init):
	Show the window after initialization is complete.

2007-08-22  Matthew Barnes  <mbarnes@redhat.com>

	* configure.ac:
	Check for libgconf-bridge.

	* data/gnome-video-arcade.glade:
	Prototype a search window; not yet working.

	* data/gnome-video-arcade.schemas:
	Add window-height, window-maximized, and window-width keys.

	* src/Makefile.am:
	* docs/reference/Makefile.am:
	Add @GCONF_BRIDGE_CFLAGS@ and @GCONF_BRIDGE_LIBS@.

	* src/main.c (start):
	Simplify the "force a tree view update" logic.

	* src/gva-common.h:
	#include <libgconf-bridge/gconf-bridge.h>
	Add GVA_GCONF_WINDOW_PREFIX.

	* src/gva-main.c (gva_main):
	Use GConfBridge to remember main window size.

	* src/gva-preferences.c (gva_preferences_init):
	Use GConfBridge to sync GConf keys with toggle actions.

	* src/gva-preferences.c (gva_preferences_get_auto_save),
	(gva_preferences_set_auto_save), (gva_preferences_get_full_screen),
	(gva_preferences_set_full_screen):
	Just get/set the toggle action's checked state.
	Changes will get propagated to GConf automatically.

	* src/gva-tree-view.c (gva_tree_view_init):
	Use GConfBridge to sync GConf "selected-view" key with radio action.

	* src/gva-tree-view.c (gva_tree_view_get_last_selected_view),
	(gva_tree_view_set_last_selected_view):
	Remove these functions; GConfBridge does the work for us.

	* src/gva-ui.c (action_auto_save_cb), (action_full_screen_cb):
	Remove these callbacks; nothing for them to do now.

	* src/gva-ui.h:
	Add GVA_ACTION_SEARCH and GVA_WIDGET_SEARCH_WINDOW.

	* src/gva-ui.c (action_search_cb):
	Show a prototype, non-working search window.

2007-08-13  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-db.c:
	Parse the rest of the XML elements.

2007-08-07  Matthew Barnes  <mbarnes@redhat.com>

	* configure.ac:
	Don't need to check for pkg-config.

	* maint/Makefile.am:
	Install a widget icon for Glade.
	Use $(PKG_CONFIG) instead of $(PKGCONFIG).

	* maint/widget-gva-column-manager.png:
	GvaColumnManager widget icon for Glade.

2007-08-02  Matthew Barnes  <mbarnes@redhat.com>

	* NEWS: Update for 0.4.2

	* README: Mention --enable-gtk-doc.

	* Makefile.am:
	Distcheck should enable Gtk-Doc.

	* src/gva-error.[ch]:
	* src/gva-tree-view.c:
	Document this stuff.

2007-08-02  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	Connect to some of the tree view signals.

	* docs/references/gnome-video-arcade-sections.txt:
	* src/gva-tree-view.h:
	Add tree view signal handlers to Gtk-Doc output.

	* src/gva-columns.c (gva_columns_load):
	Block "columns-changed" signals while loading columns.

	* src/gva-columns.c (gva_columns_save):
	Abort the save if the tree view is being destroyed.

	* src/gva-tree-view.c:
	Fix a crash when pressing the context menu _keyboard_ button.
	Expose signal handlers so Glade can auto-connect them.
	Document some of the public functions.

2007-08-01  Matthew Barnes  <mbarnes@redhat.com>

	* INSTALL:
	Updated instructions from automake 1.10.

	* configure.ac:
	* Makefile.am:
	Activate the new "maint" directory when in maintainer mode.

	* data/gnome-video-arcade.glade:
	* src/gva-preferences.c:
	Load the GvaColumnManager directly from the Glade XML file.

	* src/gva-column-manager.c:
	Allow the "managed-view" property to be set at any time.

	* src/gva-ui.h:
	No longer need access to "preferences-columns-inner-vbox".

	* src/gva-ui.c (gva_ui_init):
	Register custom widgets with libglade.
	Let libglade know that we provide the "gva" library.

	* maint/Makefile.am:
	Installs a Glade widget plugin for GNOME Video Arcade.
	Only builds in maintainer mode.

	* maint/gva.xml:
	Glade catalog file for custom GNOME Video Arcade widgets.

2007-07-31  Matthew Barnes  <mbarnes@redhat.com>

	* docs/references/gnome-video-arcade-sections.txt:
	Don't list GVA_WIDGET_* symbols in the Reference Manual.

	* src/gva-ui.c:
	Document the actions.

2007-07-30  Matthew Barnes  <mbarnes@redhat.com>

	* configure.ac:
	Bump libglade requirement from 2.0.0 to 2.6.0.

	* data/gnome-video-arcade.glade:
	Specify signal handlers for various widgets.

	* src/Makefile.am:
	Add linker flag -export-dynamic so that libglade can find
	the signal handler functions when it auto-connects signals.

	* src/gva-ui (gva_ui_init):
	Call glade_xml_signal_autoconnect().

	* src/gva-main.c (gva_main_init):
	* src/gva-play-back.c (gva_play_back_init):
	* src/gva-preferences.c (gva_preferences_init):
	* src/gva-properties.c (gva_properties_init):
	Remove explicit connection of (most) signals and let libglade
	auto-connect them at startup.
	Document the new public signal handler functions.

2007-07-30  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-db.c (db_parser_exit):
	Commit the transaction *after* verify results are inserted.

	* src/gva-process.c:
	Add a "priority" property (default: G_PRIORITY_DEFAULT_IDLE).
	Add I/O watches at the requested priority.

	* src/gva-process.c (gva_process_new), (gva_process_spawn):
	* src/gva-mame-process.c (gva_mame_process_spawn):
	Add a "priority" parameter.

	* src/gva-mame-common (gva_mame_command), (gva_mame_list_xml):
	Spawn the MAME process at G_PRIORITY_DEFAULT_IDLE.

	* src/gva-mame-common (gva_mame_verify_roms),
	(gva_mame_verify_samples), (gva_mame_run_game),
	(gva_mame_record_game), (gva_mame_playback_game):
	Spawn the MAME process at G_PRIORITY_LOW.

2007-07-29  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-db.c (gva_db_build):
	Start a database transaction.

	* src/gva-db.c (db_parser_exit):
	Commit the transaction if no error occurred, otherwise rollback.

	* src/gva-db.c (gva_db_transaction_begin),
	(gva_db_transaction_commit), (gva_db_transaction_rollback):
	New functions are pretty self-explanatory.

	* src/gva-process.c (process_data_ready):
	Keep on reading if there's more to be read.

	* src/main.c (main):
	Invoke start() by way of gtk_init_add() instead of g_idle_add().

2007-07-29  Matthew Barnes  <mbarnes@redhat.com>

	* Add some more developer documentation.
	* Move section documentation to header files.

	* src/gva-db.c (gva_db_get_filename):
	Call gva_get_user_data_dir().
	Move SQLite database file to
	${user_data_dir}/applications/${package}/games.db.

	* src/gva-util.c (gva_get_user_data_dir):
	New function returns the user-specific data directory for this
	application.

2007-07-26  Matthew Barnes  <mbarnes@redhat.com>

	* configure.ac:
	* Makefile.am:
	* docs/*:
	Skeletal developer documentation generated by GTK-Doc.

	* src/main.c:
	Move command-line option variables to gva-util.c.

2007-07-24  Matthew Barnes  <mbarnes@redhat.com>

	* NEWS: Update for 0.4.1

	* data/gnome-video-arcade.glade:
	Placeholder labels don't need to be translated.

	* src/main.c (main):
	Fix gettext initialization.

	* src/gva-ui.c (gva_ui_init):
	Set translation domain on the GtkActionGroup.

2007-07-23  Matthew Barnes  <mbarnes@redhat.com>

	* NEWS: Update for 0.4

	* data/gnome-video-arcade.schema:
	Fix default value for "sort-column" key.

	* src/main.c:
	* src/gva-common.h:
	Add --which-emulator command-line option.
	Prints the emulator pathname (a.k.a. MAME_PROGRAM) and exits.

	* src/gva-column-manager.c (column_manager_row_deleted_cb):
	Select the moved row after drag-and-drop.

	* src/gva-column-manager.c (column_manager_selection_changed_cb):
	Don't desensitize the buttons if nothing is selected; it screws up
	the widget state of the "Move Up" / "Move Down" buttons.

	* src/gva-columns.c (columns_sampleset_set_properties):
	Check for both NULL and empty sampleset strings.

	* src/gva-columns.c (gva_columns_load):
	Improve the migration logic.

	* src/gva-columns.c (gva_columns_get_selected):
	Remove this function.

	* src/gva-game-store.c (gva_game_store_new_from_query):
	Check for NULL result from sqlite3_column_text().

	* src/gva-tree-view.c (gva_tree_view_run_query):
	Refactor to not use gva_columns_get_selected().

2007-07-23  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	* src/gva-preferences.c:
	Use a GvaColumnManager widget for selecting columns.
	Unfortunately this widget can't be directly loaded with glade.

	* data/gnome-video-arcade.schemas:
	Add "all-columns" key.

	* src/Makefile.am:
	Add gva-column-manager.[ch].

	* src/gva-common.h:
	Add GVA_GCONF_ALL_COLUMNS_KEY.

	* src/gva-column-manager.[ch]:
	New source files implement a GtkTreeViewColumn chooser widget.
	Allows columns to be rearranged and their visiblity toggled.

	* src/gva-columns.c:
	Add columns for "manufacturer", "name", and "year".

	* src/gva-columns.c (gva_columns_load), (gva_columns_save):
	Rewrite the logic to utilize the new GConf key.

	* src/gva-columns.c (gva_columns_get_names):
	New function extracts column names from a GtkTreeView.

	* src/gva-ui.h:
	Remove widgets we no longer need direct access to.

2007-07-21  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	* src/gva-preferences.c:
	Add a new "columns" page to the Preferences window that allows
	you to customize the order and visibility of columns in the main
	window.  Visibility is not yet saved in GConf.

	* src/gva-game-store.c:
	Remove unused signals.

	* src/gva-process.c (process_set_property),
	(gva_process_get_progress), (gva_process_set_progress):
	Give the get/set functions direct access to the progress value.
	Call gva_process_set_progress() when setting the "progress" property.

	* src/gva-properties.c (gva_properties_init):
	* src/gva-tree-view.c (tree_view_selection_changed_cb):
	* src/gva-ui.[ch]:
	Rename the "go-back" and "go-forward" actions to "previous-game"
	and "next-game" (respectively).

	* src/gva-tree-view.c (tree_view_columns_changed_cb):
	Stop the signal emission if the tree view is being destroyed.

	* src/gva-ui.h:
	Ditch the "GW" macro; widget names are getting too long.

2007-07-20  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-db.c:
	Add CHECK constraints to the table definitions.

	* src/gva-db.c (db_parser_bind_text):
	Take a sqlite3_stmt argument instead of ParserData.

	* src/gva-db.c (db_parser_read):
	Kill the process if an error occurs.

	* src/gva-mame-process.c (mame_process_check_for_error):
	Duplicate the string on the stack.

	* src/gva-properties.c (properties_update_header):
	Show the manufacturer and year the way MAME does.

	* src/gva-ui.c (action_about_cb):
	Monkey with the About dialog comment again.

2007-07-19  Matthew Barnes  <mbarnes@redhat.com>

	* configure.ac:
	Locate the MAME program and choose the appropriate backend.

	* src/Makefile.am:
	Distribute both MAME backends but only compile one.

	* src/gva-columns.c:
	* src/gva-db.c:
	* src/gva-game-store.[ch]:
	Recent MAME versions have changed the format of display and
	control-related XML data.  Just drop those columns from the
	database for now, until I can sort this out.

	* src/gva-error.h:
	Rename GVA_ERROR_XMAME to GVA_ERROR_MAME.

	* src/gva-main.c (main_build_database_process_cb):
	Clamp the fraction value between 0.0 and 1.0.

	* src/gva-preference.c (gva_preference_init):
	Check for both -fullscreen and -window options.

	* src/gva-mame-common.c (gva_mame_has_config_value):
	Suppress warnings about unknown configuration keys.

	* src/gva-mame-common.c (mame_verify_read):
	Simpler implementation using strtok().

	* src/gva-mame-common.c (gva_mame_verify_roms):
	Renamed function now invokes "-verifyroms".  Support for
	"-verifyromsets" was dropped in recent MAME versions.

	* src/gva-mame-common.c (gva_mame_verify_samples):
	Renamed function now invokes "-verifysamples".  Support for
	"-verifysamplesets" was dropped in recent MAME versions.

	* src/gva-mame-common.c (gva_mame_run_game), (gva_mame_record_game),
	(gva_mame_playback_game):
	Test for both -fullscreen and -window options.

	* src/gva-mame-common.c (gva_mame_get_save_state_file):
	New function tries to find the save state file for a game.
	The location of these files changed in recent MAME versions.

	* src/gva-mame-process.c (gva_mame_process_get_executable):
	Remove this function; use MAME_PROGRAM from config.h instead.

	* src/gva-mame-sdlmame.c:
	New source file implements the sdlmame backend.

	* src/gva-mame-xmame.c:
	Move all functions except gva_mame_get_version() and
	gva_mame_get_total_supported() into gva-mame-common.c.

	* src/gva-mame-xmame.c (gva_mame_get_version):
	* src/gva-mame-xmame.c (gva_mame_get_total_supported):
	Simpler implementation.

	* src/gva-tree-view.c (gva_tree_view_run_query):
	Only select "good" or "best available" romsets.

	* src/gva-ui.c (action_about_cb):
	Change comment to "MAME Front-End" (not just XMAME).

2007-07-18  Matthew Barnes  <mbarnes@redhat.com>

	** Make preparations for adding multiple MAME backends.

	* src/Makefile.am:
	Add gva-mame-common.[ch].
	Rename gva-xmame.h to gva-mame.h.
	Rename gva-xmame.c to gva-mame-xmame.c.

	* src/main.c:
	* src/gva-db.c:
	* src/gva-play-back.c:
	* src/gva-preferences.c:
	* src/gva-main.c:
	* src/gva-mame-xmame.c:
	* src/gva-ui.c:
	* src/gva-util.c:
	Change "xmame" prefixes to "mame".

	* src/gva-mame-common.[ch]:
	New source files implement functions common to all MAME backends.

2007-07-18  Matthew Barnes  <mbarnes@redhat.com>

	* README: First draft.

2007-07-17  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-ui.c (action_about_cb):
	Add a License button to the About dialog.

2007-07-14  Matthew Barnes  <mbarnes@redhat.com>

	* NEWS: Update for 0.3.0

	* src/main.c (start):
	Use gtk_main_iteration() instead of g_main_context_iteration()
	to check whether we've quit the main loop.  This can happen if
	an impatient user quits the application while the database is
	building.

	* src/gva-process.c (gva_process_kill):
	New function sends SIGKILL to the given process.

	* src/gva-process.c (gva_process_kill_all):
	New function kills all active child processes.

	* src/gva-main.c (gva_main_init):
	Desensitive the "view" actions.  Eliminates an opportunity to
	change views before a database build begins.

	* src/gva-ui.c (action_quit_cb):
	Call gva_process_kill_all().

2007-07-13  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.schemas:
	Add "sort-column" key.

	* src/Makefile.am:
	Remove gva-game-db.[ch].

	* src/main.c:
	Disable the "view" actions while building the database.
	Force a tree view update after the database is built.

	* src/gva-columns.c (gva_columns_lookup_name):
	New function returns the name of the given given column ID.

	* src/gva-common.h:
	Add GVA_GCONF_SORT_COLUMN_KEY.

	* src/gva-db.c:
	Verify ROM sets and sample sets while parsing XML data.
	Merge the results into the database when XML parsing is done.
	Register an isfavorite() function in the database.

	* src/gva-game-db.[ch]:
	Remove these files.

	* src/gva-main.c (gva_main_init):
	Disable some actions until we're up and running.

	* src/gva-game-store.c (game_store_constructor):
	Register a default sort function (sorts on description).

	* src/gva-play-back.c:
	Prefer "name" over "romname".
	Adapt to gva-game-db.c going away.

	* src/gva-properties.c (properties_selection_changed_cb):
	Query the database for the needed game information.

	* src/gva-tree-view.c:
	Prefer "name" over "romname".
	Remember sort column and order across sessions.
	Switching views is now a database query; swap out the old
	tree model for a fresh one.  No need to pile filter and sort
	models on to our game store.  Clean and elegant.

	* src/gva-ui.c:
	Prefer "name" over "romname".

	* src/gva-xmame.c:
	Prefer "name" over "romname".
	Remove some obsolete functions.

2007-07-12  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-game-store.c (gva_game_store_new_from_query):
	Fix a couple bugs.  It seems to be working!

2007-07-12  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.schemas:
	Add "version" key.

	* src/main.c:
	Support a --build-database command-line option.

	* src/main.c (start):
	New function kicks off the party when the main loop starts.
	It currently just starts a database rebuild as needed.

	* src/gva-common.h:
	Expose command-line option values.

	* src/gva-db.c (db_parser_end_element_game):
	Report parsing progress to the GvaProcess.

	* src/gva-db.c (gva_db_build):
	Clear all tables before building the database.

	* src/gva-db.c (gva_db_needs_rebuilt):
	New functions runs a series of tests to figure out whether the
	database needs to be rebuilt.  It also states its rationale for
	recommending a rebuild to stdout.

	* src/gva-favorites.c:
	Prefer "name" over "romname".

	* src/gva-game-store.c (gva_game_store_new_from_query):
	Always populate the game store with favorites, since favorites
	are stored in GConf and not the database.

	* src/gva-main.c (gva_main_build_database):
	New function initiates a database rebuild and reports progress
	to a progress bar widget.

	* src/gva-process.c:
	Make the progress property an unsigned integer.

	* src/gva-tree-view.c (tree_view_load_data):
	Remove the call to gva_db_build().
	This breaks the "properties" action for now.

	* src/gva-util.c (gva_get_last_version):
	New function returns what version of GVA we ran last time.

	* src/gva-xmame.c (gva_xmame_get_total_supported):
	Return an _unsigned_ integer, and zero on error.

2007-07-12  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	Changed my mind; remove the search button from the main window.
	Edit -> Search menu item still remains.

	* src/gva-columns.c (gva_columns_load):
	Call gva_columns_get_selected().

	* src/gva-columns.c (gva_columns_get_selected):
	New function returns visible column names as a string array.

	* src/gva-process.c (gva_process_get_time_elapsed):
	Call gva_get_time_elapsed().

	* src/gva-util.c (gva_get_time_elapsed):
	New function return the time elapsed since a start time.

2007-07-11  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	* data/gnome-video-arcade.ui:
	* src/gva-ui.c:
	Add hooks for a search window.

2007-07-11  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-game-store.c (gva_game_store_new_from_query):
	New UNTESTED function creates a GvaGameStore from an SQL query.

	* src/gva-game-store.c (gva_game_store_populate):
	Remove this function; superseded by gva_game_store_new_from_query().

	* src/gva-columns.c (gva_columns_lookup_id):
	New function returns the ID of the given column name.

	* src/gva-error.h:
	Add GVA_ERROR_QUERY.

	* src/gva-tree-view.c (tree_view_data_added):
	Remove the call to gva_game_store_populate().

2007-07-11  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-db.c (db_parser_bind_text):
	Convert the text to UTF-8 and stop quoting it.
	Be more error tolerant.

	* src/gva-columns.c (gva_columns_load):
	Fall back to the default columns if the GConf list is empty.
	Fix a memory leak.

2007-07-11  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.schemas:
	Add "columns" key.

	* src/Makefile.am:
	Add gva-columns.[ch].

	* src/main.c (main):
	Call g_thread_init() to silence a runtime warning.

	* src/gva-common.h:
	Add GVA_GCONF_COLUMNS_KEY.

	* src/gva-game-db.c (game_db_add_sample):
	Put status in the "SAMPLESET" column.

	* src/gva-game-store.[ch]:
	Remove "USES_SAMPLES" and "HAVE_SAMPLES" columns.

	* src/gva-columns.[ch]:
	New source files construct and manage tree view columns.

	* src/gva-tree-view.c (tree_view_columns_changed_cb):
	Call gva_columns_save() when not in destruction.

	* src/gva-tree-view.c:
	Move the column construction functions to gva-columns.c.
	Now we simply call gva_columns_load() from gva_tree_view_init().

2007-07-10  Matthew Barnes  <mbarnes@redhat.com>

	* Relicense the code under the terms of the GNU GPL v3.

	* Add a copyright notice and copying permission statement
	  to each of the source code files.

2007-07-09  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	Add an invisible progress bar next to the status bar.

	* src/Makefile.am:
	Add gva-history.[ch].
	Remove gva-parser.[ch].

	* src/main.c:
	Add database_needs_rebuilt(), which is not yet used.
	Only initialize the history module if HISTORY_FILE is defined.

	* src/gva-db.[ch]:
	Merge the XML parser into the database module.
	Add gva_db_build() to initiate the parsing process.
	Other small improvements to the parsing logic.

	* src/gva-game-db.[ch]:
	Split arcade history API into a separate module.

	* src/gva-game-store.[ch]:
	Add columns to match the "game" table in the SQLite database.
	Initial cut at populating the GvaGameStore via an SQL query.
	Still much more work to be done here...

	* src/gva-parser.[ch]:
	Remove these files; parser merged into database module.

	* src/gva-process.[ch]:
	Remove the "exited" and "status" properties.
	Add a "progress" property and API for getting and setting.

	* src/gva-process.c (process_data_ready):
	Simplify the logic to read one line per call.
	Takes longer to parse the XML data but is less CPU intensive.
	Not sure about this yet, I might revert it.

	* src/gva-process.c (process_class_init):
	Fix typos in "exited" signal registration.

	* src/gva-ui.h:
	Add GVA_WIDGET_MAIN_PROGRESSBAR.

	* src/gva-properties.c:
	* src/gva-tree-view.c:
	Adapt to API changes.

2007-07-06  Matthew Barnes  <mbarnes@redhat.com>

	** Phase one of adding an SQLite games database.

	* configure.ac:
	Add check for sqlite3 package.

	* src/Makefile.am:
	Add gva-db.[ch].
	Add flags for linking to libsqlite3.

	* src/gva-common.h:
	#include <sqlite3.h>

	* src/gva-db.[ch]:
	New source files provide an interface to the sqlite3 database.

	* src/gva-error.[ch]:
	Add GVA_SQLITE_ERROR.

	* src/gva-parser.c:
	Populate the sqlite3 database instead of the GtkTreeModel.
	This makes the Properties window less useful for now, but the
	next phase will populate the GtkTreeModel by way of a database
	query.  The resulting database is currently under 2 MB, but does
	not include BIOS, ROM, disk, chip, or dipswitch information yet.

	* src/gva-xmame.c (gva_xmame_get_total_supported):
	New function returns the total number of supported games.
	Useful for reporting progress while building the database.

2007-07-04  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-main.c:
	Add a more convenient statusbar API.

	* src/main.c:
	* src/gva-main.c:
	* src/gva-tree-view.c:
	Use the new statusbar API.

2007-07-04  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	Properties window tweaks.

	* src/gva-properties.c (gva_properties_init):
	Display arcade history in monospaced font.

	* src/gva-util.c (gva_get_monospace_font_name):
	New function retrieves preferred monospace font name.

2007-07-03  Matthew Barnes  <mbarnes@redhat.com>

	* configure.ac:
	Drop support for --with-mameinfo-file.
	Users aren't going to care about that information.

	* src/gva-error.h:
	Add GVA_ERROR_CONFIG.

	* src/gva-parser.c:
	Don't rely on MAME for arcade history.
	Recent versions have dropped support for it.

	* src/gva-properties.c (properties_update_history):
	Fetch history information from gva_game_db_get_history().
	Try looking up "cloneof" field if "name" field comes up empty.

	* src/gva-game-db.c (gva_game_db_init):
	Build an index of the arcade history file.

	* src/gva-game-db.c (gva_game_db_get_history):
	New function reads an entry from the arcade history file.

2007-07-03  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-parser.c:
	For attribute names, it turns out that just comparing the strings
	directly is faster than lookup up the canonical representation of
	each attribute name on every pass.

2007-07-02  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-process.c (process_set_property):
	Set the watch priorities of the stdout and stderr streams to low
	so the UI remains responsive while game properties are loading.

	* src/gva-parser.c:
	Maintain our own stack of interned element names.
	Shaves a couple more seconds off the parsing time.

2007-07-02  Matthew Barnes  <mbarnes@redhat.com>

	* configure.ac:
	Add --with-history-file and --with-mameinfo-file options.
	These options don't do anything but they will be used to parse
	the history.dat and mameinfo.dat files ourselves, since recent
	MAME releases no longer use them.

	* src/gva-parser.c:
	Refactor the logic a bit.

2007-07-02  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-parser.c:
	Compare canonical representations of element and attribute names.
	Shaves a few seconds off the parsing time, down to ~11s for me.

	* src/gva-game-db.c (gva_game_db_update_data):
	Remove this function; it just calls gva_game_db_update_data().

	* src/gva-tree-view.c:
	While game properties are being loaded:
	  - Display a statusbar message to that effect.
	  - Disable the "properties" action.
	Emit a GtkTreeSelection "changed" signal when done.

2007-07-02  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-process.c (gva_process_get_time_elapsed):
	New function returns approximate time elapsed since process started.

	* src/gva-parser.c (parser_exit):
	Print time elapsed, to help me measure and tune performance.

	* src/gva-parser.c (parser_start_element_game):
	Forgot to lookup the "cloneof" attribute.

2007-07-01  Matthew Barnes  <mbarnes@redhat.com>

	* src/Makefile.am:
	Add gva-parser.[ch].

	* src/gva-game-store.c:
	* src/gva-game-store.h:
	Add a bunch more columns to the tree model.
	Rename TITLE column to DESCRIPTION.
	Rename ROMNAME column to NAME.

	* src/gva-game-db.c: Adapt.

	* src/gva-play-back.c: Adapt.

	* src/gva-properties.c: Adapt.

	* src/gva-tree-view.c: Adapt.

	* src/gva-ui.c: Adapt.

	* src/gva-process.c:
	* src/gva-process.h:
	* src/gva-mame-process.c:
	Remove the unused "peek" methods from GvaProcessClass.

	* src/gva-game-db (gva_game_db_update_data):
	Call gva_parse_game_data().

	* src/gva-parser.c:
	* src/gva-parser.h:
	New source files parse MAME's -listxml output.

	* src/gva-properties.c (properties_update_header):
	Display manufacturer and year in smaller font.

	* src/gva-properties.c (properties_update_history):
	New function shows history information for the selected game.

	* src/gva-xmame.c (gva_xmame_list_xml):
	New function invokes MAME's -listxml feature.

2007-07-01  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	Rework the forward and back buttons.

	* src/gva-ui.c:
	Reword the tooltips for "go-back" and "go-forward" actions.

2007-07-01  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	Design a skeletal Properties window.

	* src/Makefile.am:
	Add gva-properties.[ch].

	* src/main.c (main):
	Call gva_properties_init().

	* src/gva-properties.c:
	* src/gva-properties.h:
	New source files implement the properties window.

	* src/gva-tree-view.c (tree_view_selection_changed_cb):
	Update sensitivity of the "go-back" and "go-forward" actions.

	* src/gva-ui.h:
	Add "go-back" and "go-forward" action macros.
	Add various "properties" widget macros.

	* src/gva-ui.c:
	Add "go-back" and "go-forward" actions, which move the tree view
	cursor back or forward (respectively) one row.

	* src/gva-ui.c (action_properties_cb):
	Show the Properties window.

2007-06-26  Matthew Barnes  <mbarnes@redhat.com>

	* configure.ac:
	Add version checks for GLib and GTK+. (Gianni Moschini)

	* src/Makefile.am:
	Add GLIB_CFLAGS, GLIB_GLIBS, GTK_CFLAGS, and GTK_LIBS.

2007-06-21  Matthew Barnes  <mbarnes@redhat.com>

	* NEWS: Update for 0.2.0

	* data/gnome-video-arcade.glade:
	* src/gva-ui.c:
	Revert previous change; not all icon themes represent
	"gnome-joystick" as a joystick.  Too bad.

2007-06-19  Matthew Barnes  <mbarnes@redhat.com>

	* src/main.c (main):
	Use gtk_init_with_args() to initialize GTK+.

	* data/gnome-video-arcade.glade:
	* src/gva-ui.c:
	Use "gnome-joystick" for the start game icon.

2007-06-19  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-game-store.c (gva_game_store_clear):
	New function clears both the list store and the index.

	* src/gva-play-back.c (gva_play_back_show):
	New function refreshes the recorded game list, selects the given
	input file name (if given), and shows the Recorded Games window.

	* src/gva-ui.c (record_game_exited), (action_show_play_back_cb):
	Call gva_play_back_show() instead of gtk_widget_show().

2007-06-19  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-game-store.c:
	* src/gva-game-store.h:
	Embed an index (hash table) of tree row references.
	Provide an API for adding to and querying the index.

	* src/gva-play-back.c (play_back_add_input_file):
	Build a game store index of input file names.

	* src/gva-game-db.c:
	Use GvaGameStore's new embedded index.

	* src/gva-game-db.c (gva_game_db_get_model):
	The game database now lives here.

2007-06-18  Matthew Barnes  <mbarnes@redhat.com>

	* src/Makefile.am:
	Add gva-error.[ch] and gva-mame-process.[ch].

	* src/gva-favorites.c:
	* src/gva-play-back.c:
	* src/gva-preferences.c:
	* src/gva-tree-view.c:
	* src/gva-ui.c:
	* src/gva-util.c:
	* src/gva-xmame.c:
	Pass GErrors to gva_error_handle().

	* src/gva-process.c:
	* src/gva-process.h:
	Add a GError to the GvaProcess structure.
	Add a private pointer to the GvaProcess structure.
	Check for termination due to signal on process exit.
	Include status value in "exited" signal.
	Convert peek/read line functions to class methods.

	* src/gva-process.c (gva_process_spawn):
	New function spawns a GvaProcess with the given command line.

	* src/gva-mame-process.c:
	* src/gva-mame-process.h:
	New source files subclass GvaProcess.
	Check for errors when reading or peeking at lines.

	* src/gva-game-db.c:
	Load available romnames synchronously.
	Load game titles and sample information asynchronously.

	* src/gva-tree-view.c (tree_view_load_data):
	Kick off multiple processes that load data asynchronously.
	Keep the tree view widget insensitive until titles are loaded.

	* src/gva-xmame.c:
	* src/gva-xmame.h:
	Move error detection routines to GvaProcess or GvaMameProcess.
	Make the API more asynchronous by spawning a GvaMameProcess.

	* src/gva-ui.c: Adapt.

2007-06-14  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-tree-view.c (gva_tree_view_set_selected_game):
	Fix a memory leak.

2007-06-08  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-xmame.c (xmame_scan_for_error):
	Fix a double free.

2007-06-08  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-process.[ch]:
	Implement a more line-oriented API.

	* src/gva-xmame.c: Adapt and simplify.

2007-06-07  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-process.[ch]:
	Make GvaProcess a GObject with signals and properties.

	* src/gva-xmame.c: Adapt.

	* src/gva-xmame.c (gva_xmame_verify_rom_sets):
	Experiment with making this function asynchronous.

2007-06-05  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-game-db.c (gva_game_db_init):
	Call gva_xmame_get_rompath() instead of gva_xmame_get_config_value().

	* src/gva-xmame.[ch]: (gva_xmame_get_rompath):
	New function calls gva_xmame_get_config_value("rompath", ...).

	* src/gva-xmame.[ch]: (gva_xmame_verify_rom_sets):
	New function invokes xmame to quickly verify ROM sets.
	Similar to gva_xmame_verify_sample_sets().

2007-06-04  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-tree-view.c (tree_view_filter_visible),
	(gva_tree_view_set_selected_game):
	Fix a couple memory leaks.

2007-06-02  Matthew Barnes  <mbarnes@redhat.com>

	* NEWS: Update for 0.1.4.

	* src/gva-xmame.c:
	* src/gva-xmame.h:
	Rename gva_xmame_has_xxx() to gva_xmame_supports_xxx().

	* src/gva-xmame.c (gva_xmame_run_game), (gva_xmame_record_game),
	(gva_xmame_playback_game):
	Build the argument list with a GString and only use "-[no]autosave"
	and "-[no]fullscreen" options if they're supported.

	* src/gva-preferences.c (gva_preferences_init): Adapt.

	* src/gva-process.c (gva_process_new):
	Set the encoding of all three channels to NULL.

2007-06-02  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-preferences.c (gva_preferences_init):
	Make the "auto-save" and "full-screen" actions insensitive if
	xmame does not support the corresponding options.

	* src/gva-xmame.c (gva_xmame_has_config_value):
	New function returns TRUE if xmame supports the given option name.

	* src/gva-xmame.c (gva_xmame_has_auto_save),
	(gva_xmame_has_full_screen):
	New functions use gva_xmame_has_config_value() to test for xmame's
	capabilities.

2007-05-30  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	Restructure the preferences window.

	* data/gnome-video-arcade.schemas:
	Add schemas for "auto-save" and "full-screen" keys.

	* src/gva-common.h:
	#include <glib/gstdio.h>

	* src/main.c (main):
	Set a default icon for transient windows.

	* src/gva-preferences.c:
	* src/gva-preferences.h:
	Connect preference widgets to actions.
	Provide read/write access to preferences.

	* src/gva-ui.c:
	Add "auto-save" and "full-screen" toggle actions.

	* src/gva-ui.h:
	Add macros for new actions and their proxy widgets.

	* src/gva-xmame.c (gva_xmame_run_game), (gva_xmame_record_game),
	(gva_xmame_playback_game):
	Honor preferences when invoking xmame.

	* src/gva-xmame.c (gva_xmame_clear_state):
	New function deletes a game's state file.

2007-05-29  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	Initial design of a preferences window.

	* data/gnome-video-arcade.ui:
	Add Edit menu with a Preferences item.

	* src/Makefile.am:
	Add gva-preferences.[ch].

	* src/gva-common.h:
	Add key names for preferences.

	* src/gva-preferences.c:
	* src/gva-preferences.h:
	New source files implement the preferences window.
	Preferences don't work yet.

	* src/main.c (main):
	Call gva_preferences_init().

	* src/gva-ui.h:
	Add macros for some preferences widgets.

	* src/gva-ui.c:
	Add "edit-menu" and "preferences" actions.

	* src/gva-xmame.c (xmame_post_game_analysis):
	Don't refer to self by name in error messages.

2007-05-28  Matthew Barnes  <mbarnes@redhat.com>

	* data/Makefile.am:
	Fix up schema installation rules.

	* data/gnome-video-arcade.schema:
	Add missing schema for "selected-view" key.

2007-05-28  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-process.h:
	* src/gva-process.c:
	Combine callback typedefs into one (GvaProcessNotify).

	* src/gva-process.c (gva_process_new):
	Make stdout and stderr buffers non-blocking.
	Add a GError parameter.

	* src/gva-process.c (process_data_ready):
	Read data into a 4K buffer instead of one line at a time.

	* src/gva-xmame.c:
	* src/gva-xmame.h:
	Adapt.

2007-05-28  Matthew Barnes  <mbarnes@redhat.com>

	* src/Makefile.am:
	Add gva-process.[ch].

	* src/gva-process.c:
	* src/gva-process.h:
	New source files provide a simple process abstraction.

	* src/gva-xmame.c:
	* src/gva-xmame.h:
	Reimplement the API using GvaProcess.
	Add gva_xmame_async_command() for asynchronous commands.
	Make functions that run/record/playback games asynchronous.

2007-05-26  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-main.c:
	* src/gva-main.h:
	* src/gva-ui.c:
	Move menu item tooltip handling to gva-main.c.

	* data/gnome-video-arcade.glade
	* src/gva-ui.c:
	Make menu and button tooltips consistent.

2007-05-25  Matthew Barnes  <mbarnes@redhat.com>

	* NEWS: Update for 0.1.3.

	* src/gva-ui.c:
	Make accelerator keys work.
	Add more tooltips to actions.
	Show menu item tooltips in the statusbar.

2007-05-25  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.ui:
	Add menu items for adding or removing from favorites list.

	* src/gva-tree-view.c (tree_view_selected_changed_cb):
	Update visibility of "favorite" actions.

	* src/gva-tree-view.c (tree_view_favorite_clicked_cb):
	Activate "insert-favorite" or "remove-favorite" action.

	* src/gva-ui.c:
	* src/gva-ui.h:
	Add "insert-favorite" and "remove-favorite" actions.
	Rename gva_ui_get_glade_widget() to gva_ui_get_widget().

2007-05-25  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-common.h:
	* src/gva-xmame.c:
	* src/gva-xmame.h:
	Minor fixes.

2007-05-24  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-tree-view.c (tree_view_button_press_cb):
	Don't assume gtk_tree_view_get_path_at_pos() will succeed.
	User may right-click on blank area of the tree view.

	* src/gva-tree-view.c (tree_view_selected_changed_cb):
	Desensitize the "record" action when nothing is selected.

	* src/gva-tree-view.c (gva_tree_view_update):
	Check the return value of gva_tree_view_get_last_selected_game()
	for NULL, which can occur the first time the program is run.

	* src/gva-tree-view.c (gva_tree_view_get_last_selected_game):
	Don't assume GConf will give us a non-empty string.

2007-05-23  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade (play-back-scrolled-window):
	Set both horizontal and vertical scrollbar policies to automatic.

	* src/gva-play-back.c (gva_play_back_init):
	Put the text renderer in PANGO_ELLIPSIZE_END mode.

2007-05-23  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-tree-view.c (tree_view_column_new_title):
	Put the text renderer in PANGO_ELLIPSIZE_END mode.

	* src/gva-tree-view.c (gva_tree_view_set_selected_game):
	Don't assume the GtkTreeModelSort path is valid.

2007-05-23  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-common.h:
	Put all GConf key definitions here.

	* src/gva-main.c:
	* src/gva-tree-view.c:
	* src/gva-ui.c:
	* data/gnome-video-arcade.glade:
	* data/gnome-video-arcade.ui:
	Use a single model/filter/view stack and use different filtering
	criteria for each application view (Available / Favorites / Results).

	* src/gva-tree-view.c:
	Make columns reorderable.
	Distinguish between getting/setting the selected or last selected
	game or view.  "Last selected" refers to what's stored in GConf.

	* src/gva-ui.c (action_about_cb):
	Load the logo ourselves so we can dictate the size.

2007-05-20  Matthew Barnes  <mbarnes@redhat.com>

	* src/gva-game-db.c:
	* src/gva-game-db.h:
	* src/gva-game-store.c:
	* src/gva-game-store.h:
	* src/main.c:
	Add a samples column.

	* src/gva-tree-view.c:
	Add a samples column.
	Use smaller icons in columns.

	* src/gva-xmame.c:
	* src/gva-xmame.h:
	Support "xmame -verifysamplesets" command.

2007-05-19  Matthew Barnes  <mbarnes@redhat.com>

	* data/gnome-video-arcade.glade:
	Use custom icon instead of "gnome-joystick".

	* data/gnome-video-arcade.desktop.in:
	Use custom icon instead of "gnome-joystick".
	Change name to "Video Arcade" (drop the "GNOME").

	* data/Makefile.am:
	Install icon into $(datadir)/icons/hicolor/scalable/apps.

	* src/gva-game-store.c (game_store_constructor):
	* src/gva-game-store.h:
	Define columns for "year", "manufacturer", and "clone-of".

	* src/gva-ui.c (action_about_cb):
	Add translator credits.

2007-05-01  Matthew Barnes  <mbarnes@redhat.com>

	* Initial commit.
