2008-05-25 Matthew Barnes * NEWS: Update for 0.6.1.1 * src/gva-main.c (gva_main_get_last_selected_match): Fix a crash reported by Damion Manuel and Taylor Easum in the SF.net Help forum. I didn't take into account the fact that the GConf key may not be set, in which case the string values will remain NULL. Rewrote the logic to handle that case. Unfortunately the bug is pretty severe and requires a new release. 2008-05-21 Matthew Barnes * configure.ac: Post-release version bump. * src/gva-db.c (db_parser_start_element_game): * src/gva-process.c (gva_process_spawn): Fix a couple memory leaks. 2008-05-17 Matthew Barnes * NEWS: Update for 0.6.1 * docs/references/gnome-video-arcade-sections.txt: Add new symbols to the developer documentation. * src/main.c (start): Remove the status bar logic. * src/gva-tree-view.c (gva_tree_view_update_status_bar): New function shows the MAME version and game count in the status bar of the main window. * src/gva-tree-view.c (gva_tree_view_init), (gva_tree_view_run_query): Call gva_tree_view_update_status_bar(). 2008-05-17 Matthew Barnes * src/gva-tree-view.c (tree_view_show_popup_menu): * src/gva-ui.c (gva_ui_add_column_actions): The add/remove column menu items look better without quotes. 2008-05-17 Matthew Barnes * data/gnome-video-arcade.ui: Add an "add-column" placeholder and a "remove-column" menu item to the popup menu. * docs/references/gnome-video-arcade-sections.txt: Add new symbols to the developer documentation. * src/gva-column-manager.c (column_manager_hide_selected), (column_manager_show_selected): Just set the column visbility. Signal callbacks will take care of updating the show/hide buttons and the toggle cell renderer. * src/gva-column-manager.c (column_manager_row_changed_cb): New "row-changed" signal handler updates the show/hide button sensitivity when the selected tree model row changes. * src/gva-column-manager.c (column_manager_notify_visible_cb): New "notify::visible" signal handler emits a "row-changed" signal when a game list column's visibility changes. * src/gva-column-manager.c (column_manager_update_view): Connect the new signal handlers mentioned above. * src/gva-tree-view.c (tree_view_show_popup_menu): Embed the selected game list column in the main tree view widget under the "popup-menu-column" key. Update the "remove-column" action's label and tooltip to reflect the selected game list column. * src/gva-tree-view.c (gva_tree_view_init): Call gva_ui_add_column_actions() after loading the columns. * src/gva-tree-view.c (gva_tree_view_button_press_event_cb), (gva_tree_view_popup_menu_cb): Pass the selected game list column to tree_view_show_popup_menu(). * src/gva-ui.c (action_add_column_cb): Callback for any of the "add-column-xxx" actions. Extracts the selected game list column via the "popup-menu-column" key in the tree view, moves the desired column after the selected column, and makes the desired column visible. * src/gva-ui.c (action_remove_column_cb): Callback for the "remove-column" action. Extracts the selected game list column via the "popup-menu-column" key in the tree view, and makes the selected column invisible. * src/gva-ui.c (gva_ui_add_column_actions): Adds an "add-column-xxx" action for each of the columns in the given tree view, whether visible or invisible (where "xxx" is the column's name). This is called during initialization of the main tree view, after the columns are loaded. 2008-05-11 Matthew Barnes * src/gva-game-store.c (gva_game_store_new_from_query): Use gtk_tree_store_set_valuesv() to cut model construction time almost in half. On my machine, construction of the Available Games model (6255 rows) dropped from ~5 seconds to ~2.75 seconds. 2008-04-28 Matthew Barnes * configure.ac: Post-release version bump. * data/gnome-video-arcade.schemas: Add selected-match key. * docs/reference/gnome-video-arcade-sections.txt: Add new symbols to the developer documentation and alphabetize the sections. Yes, I'm that anal. * src/gva-common.h: Add GVA_GCONF_SELECTED_MATCH_KEY. * src/gva-main.c (gva_main_init_search_completion): Add a "column name" column to the completion model. Always use enum values when referring to columns. * src/gva-main.c (gva_main_execute_search): New function handles all the high-level details of executing a search in the main window. Note this function does not interact directly with the games database. The actual database search is triggered by simply switching to or forcing a refresh on the Search Results view. * src/gva-main.c (gva_main_get_last_selected_match), (gva_main_set_last_selected_match): New functions get/set the new "selected-match" GConf key. The get function also validates the strings (somewhat) before returning them. * src/gva-main.c (gva_main_search_entry_activate_cb): Most of the logic here has been outsourced. The function now just calls gva_main_set_last_selected_match(NULL, NULL) and gva_main_execute_search(). * src/gva-main.c (main_entry_completion_match_selected_cb): Instead of copying the completion match to the search entry and activating it, save the matched text and associated column name to the new "selected-match" GConf key and execute a search. * src/gva-main.c (gva_main_get_last_search): Rename the function to gva_main_get_last_search_text(). * src/gva-tree-view.c (tree_view_add_search_expression): New function adds an SQL "where" expression to a GString. This used to reside inside gva_tree_view_update() but the logic is a bit more complicated now so it deserves its own function.