### CHANGES - v0.2.b2, 05-MAY-2008

fix: general bug fixes
imp: improved functionality
new: newly added functionality
doc: documentation changes
inf: informational only

v0.2.b2, 05-MAY-2008:

- fix: automatically save favorites list & play history on exit only if they are not empty
- imp: completed Polish translation of options template (Julian Sikorski)
- imp: SDLMAME options template updated to 0.125 (new option maximize, changed default for bios)
- imp: confirm clearing of favorites list & play history
- new: French translation by Vincent Bousquet
- new: improved template reader for emulator options (using QXmlStreamReader)
- new: template syntax changed to a new format to allow for easier translation (note that this format is NOT compatible with older versions of QMC2!)
- new: game's short name (game ID) now also included in gamelist, plus added sorting by game name
- new: optional direct GUI control via a joystick (requires SDL) - WORK IN PROGRESS (disabled for now)
- inf: SDLMESS can only be used when compiled against the MAME target, of course :)

v0.2.b1, 26-MAR-2008:

- fix: replace "~" with "$HOME" in path options when exporting ini's or checking ROMs
- fix: corrected removal of entries in emulator control
- imp: build: replaced make option MAME with EMULATOR (to prepare for multi-emulator support)
- imp: SDLMAME options-template updated to 0.124a, cleaned up XML syntax to be well-formed
- imp: don't disable import / export buttons when the gamelist is reloaded
- imp: clean support for plural translation in natural language (includes a translation of the native language "us")
- imp: fallback to the native description if the template doesn't contain a translation for an option
- imp: build: improved make rules for the creation of binary translations with lrelease
- imp: game context menus of search, favorites and history lists now also include ROM check & analyzer entries
- imp: reduced memory consumption when cached XML data is used (white space stripped)
- imp: action & shortcut reservations for (planned) arcade mode added
- new: Qt 4.3+ required
- new: XMAME support dropped (the XMAME project is inactive since MAME 0.106, so it isn't worth the hassle)
- new: support for multiple ini-paths added to import & export functions
- new: added new setting ToolbarState to save/restore the toolbar position
- new: added a built-in ROMAlyzer to deeply analyze a game's individual ROMs and CHDs
- new: Polish translation by Julian Sikorski (template translation yet incomplete)
- inf: treating QMC2 as a multi-emulator frontend from now on
- inf: SDLMESS has been successfully tested to be supported as well, WolfMAME should also work fine

v0.1, 05-FEB-2008:

- imp: SDLMAME options-template updated to 0.123
- inf: SVN revision 431 released as QMC2 0.1 final

v0.1.b12, 04-FEB-2008:

- fix: fixed a serious bug when QMC2 needs to (re)parse the gamelist data due to MAME version changes which caused crashes and undefined behavior (the cause was just a minimal slip, though :)
- fix: don't try to analyze data if an incompatible executable was selected
- fix: corrected several time measurements to be more precise
- fix: force initialization of customized shortcuts & GUI control keys at early startup
- fix: corrected preview check for previews in game sub-dirs below PreviewDirectory (gamename/XXXX.png)
- imp: SDLMAME options-template updated to 0.122u8
- imp: greatly improved about dialog, including system information summary
- imp: improved key event filter to better handle complex & varying event-sequence patterns
- imp: log a warning if the template version could not be determined (for whatever reason)
- imp: save/restore widget positions of doc-browser and about-dialog during runtime
- imp: avoid UI setup of welcome dialog if QMC2 configuration check is okay
- imp: allow gamelist widget updates while pre-caching icons (looks better on slow machines)
- new: QMC2 logo, application icon colorified accordingly
- new: XML gamelist data cache to speed up loading of -listxml output from MAME
- new: option ListXMLCache added (default: ~/.qmc2/mame.lxc)
- new: added Home, End & Esc to the list of remappable GUI control keys
- new: icons for detail/hierarchy switch (actions) added
- new: options ZipTool (default: zip) and ZipToolRemovalArguments (default: $ARCHIVE$ -d $FILELIST$) added
- new: options FileRemovalTool (default: rm) and FileRemovalToolArguments (default: -f -v $FILELIST$) added
- new: support to remove obsolete samples & image files (previews, flyers and icons) either from directories or ZIP archives - uses external tools to remove files (rm) or ZIP entries (zip)
- new: simple tool executor dialog added (see toolexec.*)
- new: option ProgressTexts added to optionally show short descriptions of current processing in progress bar (default: false, current behavior)

v0.1.b11, 24-DEC-2007:

- fix: long timeout on exit for Qt 4.3+ fixed
- fix: fixed processing of BIOS ROMs due to changes to the XML output since MAME 0.117u2 (older MAME releases are still supported)
- fix: save & clear current game's MAME configuration on gamelist reload (if open)
- fix: reset horizontal scrollbars on log-updates (minor bug)
- fix: don't freeze GUI if MAME executable is specified incorrectly
- fix: correctly update ROM statistics for an individual ROM check (thanks to Christopher Stone for reporting this bug)
- fix: correctly honor custom color palettes for GUI styles (which can be setup with qtconfig)
- fix: minor translation fixes
- fix: corrected (hidden) selection of filtered games
- fix: worked around a Qt bug when POS1/Home is pressed and the first item in the gamelist is hidden due to ROM state filtering; QMC2 now selects the first VISIBLE entry instead
- fix: fixed several item selection bugs when changing between lists (gamelist, search results, favorites and play history) - note that this fix is only effective, if Qt 4.3+ is used
- fix: when switching back to the (full-detail) gamelist view, the next item selection issued by a mouse-click wasn't correctly recognized
- fix: corrected unwanted double paint-event when selecting games through the parent/clone hierarchy view
- fix: make MAME executable setting unchangeable during gamelist reload
- fix: avoid temporary game reselection when adding a game to the play history (at game start)
- fix: corrected focus issues when switching between lists
- fix: when the ROM state filter was setup to hide ALL states, QMC2 crashed under certain circumstances
- fix: corrected save/restore of game selection in the case that ALL ROM states are filtered
- fix: corrected build issues due to type-ambiguity on certain 32-bit platforms (like Win32)
- imp: SDLMAME options-template updated to 0.122 (several new settings, some removed or replaced)
- imp: added Qt version, selected MAME target and language code to greeting string (see frontend log)
- imp: removed some useless/annoying tool tips
- imp: build: alphabetical output for make help and make config
- imp: ghost image scaled down by 50% (faster)
- imp: several layout improvements for configuration dialog
- imp: delay search by 250ms so it doesn't hamper the user when he/she is quickly typing a pattern
- imp: speed up for ROM state filter by iterating over the internal gamelist item map instead of the QTreeWidget itself
- imp: exchanged QAction::activated() with QAction::triggered()
- imp: code cleanup / macro consolidation (see macros.h)
- imp: faster game selection by search, favorites and history lists
- imp: delay game preview/flyer/config updates by a configurable amount of milliseconds to better sync to item selection in all lists
- imp: change to gamelist tab if F5 or F6 is pressed
- new: import/export from/to mame.ini/gamename.ini (SDLMAME) and xmamerc/gamenamerc (XMAME)
- new: added ROMAlyzer script from Carsten Engel (see scripts/romalyzer.pl) - WORK IN PROGRESS
- new: BIOS ROMs are now also supported (but obviously cannot be run); the ROM status icon will contain a white "B" to indicate that this is a BIOS (when using the classic image set)
- new: determination of MAME and configuration template version (see frontend log)
- new: added gamelist cache to speed up reload process; the cache will be automagically recreated if the MAME version changes or QMC2 thinks the cache is invalid / out-of-date
- new: added optional sample-path setup to welcome dialog
- new: added new setting RetryLoadingImages: if unset, QMC2 will cache the ghost image where no images were found (default: true, current behavior)
- new: added new setting StandardColorPalette: if unset, QMC2 will use the custom palette which may have been setup with qtconfig (default: true, current behavior)
- new: image set support - select at compile time with new IMGSET variable (default "classic", alternative image sets "crazy" and "crazy-black" by Armin Schmidhuber)
- new: added new setting AutoTriggerROMCheck: if set, QMC2 will automatically trigger a ROM check if neccessary (default: false, current behavior)
- new: reload gamelist automatically if MAME executable changes
- new: added new setting UpdateDelay; controls the delay in milliseconds between a game's selection and the update of its preview, flyer or MAME configuration
- new: if Qt 4.3+ is used, QMC2 will now save & restore the header states of all tree-widgets, except the game specific MAME configuration widget which is too temporary to be valuable for save/restore
- new: added remap function for shortcuts & GUI control keys
- doc: todo: define missing features for 0.1 final, add planned features for 0.2 series

v0.1.b10, 20-JUL-2007:

- fix: raise visible widgets when starting up
- fix: reselect current item after applying ROM state filter
- fix: fixed a serious bug in MAME options handling which showed up for Qt 4.3.0
- fix: corrected online flyer directory/file switching (didn't open/close ZIP if changed)
- fix: earlier restoration of gamelist view to avoid flicker when starting up
- fix: use showNormal() if options widget is requested but currently minimized
- fix: build: corrected snapshot creation (same timestamp for tar.gz and tar.bz2 archives)
- fix: avoid processing of subsequent QCloseEvent's for main widget
- fix: auto-adjust size of welcome widget
- fix: requests for a context menu on an empty part of the gamelist or parent/clone view resulted in a segmentation fault
- imp: color enhancement for "mostly correct"-indicator (sphere image)
- imp: build: make option SDLMAME=(0|1) replaced with MAME=(SDLMAME|XMAME)
- imp: code cleanup in many places
- imp: better GUI responsiveness when determining the total number of supported games (early phase of gamelist reload)
- imp: some GUI icons replaced, actions in toolbar reorderd, tool-tips corrected
- imp: build: new OS detection mechanism for distribution-specific configuration, see new make options DISTCFG, OSCFG and arch/os-detect.sh
- imp: build: added new make targets os-detect, help and config
- imp: build: changed name of make option TIMECMD to TIME
- imp: SDLMAME options-template updated to 0.117 (several new settings, some removed)
- imp: header texts of gamelist and parent/clone view now left-aligned
- imp: build: cleaner make output
- imp: application-wide shortcuts
- imp: better calculation of icon sizes
- imp: major layout improvements for options-widget
- new: Qt 4.3 support
- new: support for PNG game icons (stored in a ZIP archive or a single directory)
- new: added menu items for flyer and icon check
- new: sort by year or manufacturer, additional columns for gamelist and parent/clone view
- new: options: IconDirectory, IconFile, UseIconFile, GamelistColumnWidths, HierarchyColumnWidths, Toolbar and new settings for check dialogs
- new: restore column widths of gamelist and parent/clone view
- new: image check dialog (includes preview-, flyer- and icon-checks)
- new: sample check dialog
- new: individual ROM state check added
- doc: added section about action shortcuts to readme.html
- doc: added several FAQs

v0.1.b9, 30-MAR-2007:

- fix: avoid applying ROM state filter while other processing is active
- fix: reset parser interruption flag before applying ROM state filter
- fix: avoid copy of SVN-directories for 'make install' (only relevant for SVN source)
- fix: build: added colrm script to fix qmake check on SunOS
- fix: install: change ownership of installed files to uid/gid of installer (normally root)
- fix: don't show game context menu when gamelist data is not yet available
- fix: start cursor movement at current game when switching lists/views
- imp: more time measures, straighter logging
- imp: change Makefile to support multiple pre-defined ini-paths per MAME option (thanks to Christopher Stone)
- imp: easier specification of search pattern (thanks to Christopher Stone)
- imp: improved quality of ghost image ("no image" indicator)
- imp: use PNGs only, also for docs
- imp: removed annoying tool-tips for obvious gamelists
- imp: options: browse tool-buttons improved (icons)
- new: application icon (data/img/mame.png)
- new: added support for preview and flyer compression based upon minizip-1.01e
- new: settings FlyerFile, UseFlyerFile, PreviewFile, UsePreviewFile and GamelistView added
- new: added hierarchical parent/clone view, plus corresponding switch, menu items and shortcuts
- doc: several new FAQs, credits revised

v0.1.b8, 23-FEB-2007:

- fix: missing line-feed for "last message repeated N time(s)" message
- fix: incorrect position restoration for options-widget under certain circumstances
- fix: restoration of selected game failed if treewidget received focus during gamelist reload
- fix: build: "make DEBUG=2" failed for welcome.cpp
- fix: replace all occurances of "~" with "$HOME" before passing the argument strings to MAME (thanks to Christoper Stone who found the bug and its solution)
- fix: install: add flyer directory to install target
- fix: clear flyer image on gamelist reload
- imp: more changes to allow for easier package-creation - thanks to Christopher Stone for his input on this matter
- imp: removed informational log message for missing previews
- imp: removed obsolete setting MAME/FilesAndDirectories/ROMPath, using MAME/Configuration/Global/rompath instead
- imp: build: clean creation of debugging code (see DEBUG make option in Makefile)
- imp: avoid multiple processing of MAME options within game-subtree
- imp: performance of ROM state verification improved
- new: Qt 4.2.0+ required for all MAME targets (Qt 4.1 support dropped!)
- new: support for game flyer images, new setting Frontend/FilesAndDirectories/FlyerDirectory
- new: settings can now be reset to their system-wide default values (all at once); if no system-wide default configuration exists, the built-in default for the respective setting will be used
- new: search function for MAME options (enter an alphanumeric string while the MAME options widget has focus)
- new: built-in style support, new setting Frontend/GUI/Style (Default = system default / specify on command line)
- new: ROM state filter, new settings Frontend/Gamelist/Show[CMINU]
- new: previews can now also be stored as PreviewDirectory/gamename/xxxx.png (PreviewDirectory/gamename.png has prescedence, if it doesn't exist, the highest existing value of xxxx will be used)

v0.1.b7, 12-DEC-2006:

- fix: weird layout problem in setup-wizard (welcome.ui)
- imp: updated Qt language file (from Qt 4.2.2)
- imp: ROM verification enhancements to support SDLMAME 0.111+ (which changed the way it reports missing ROMs)
- new: install target for make
- new: many changes to support system-scope (/etc/qmc2/qmc2.ini) and user-sope (~/.qmc2/qmc2.ini) configuration
- new: build: SDLMAME support is now the new default (use "make SDLMAME=0" for XMAME support)!
- new: icons now embedded into application (see resource file qmc2.qrc)
- new: added optional ROM path setting to setup-wizard (welcome.*)

v0.1.b6, 29-NOV-2006:

- fix: widgets disabled during gamelist reload not re-enabled if parser prematurely stopped
- fix: ROMs with attribute runnable="no" removed from gamelist (caused incorrect counters)
- fix: total game count determination didn't cleanly return in case of an error
- fix: build: check qmake version for ALL targets
- fix: ROM check: don't rely on full lines from sub-process, buffered output might be truncated
- imp: some code-cleanups
- imp: removed log entry for loading of preview images
- new: selectable criteria and order for gamelist sort (case insensitive) - note that Qt 4.2.0+ performs much better due to the new "stable sort" for QTreeWidget (and other item views)
- new: when emulators are still running when QMC2 is about to exit, the user can decide to kill them or keep them alive
- new: options Frontend/Gamelist/SortCriteria, .../SortOrder, Frontend/GUI/KillEmulatorsOnExit and MAME/FilesAndDirectories/ROMPath added
- new: SDLMAME-support, including new options template (use "make SDLMAME=1" to enable support for SDLMAME, default is XMAME!)
- new: setup-wizard: checks valid configuration and asks for MAME executable if neccessary
- new: added ROM state M(ostly correct) for verification result "best available" (indicated by a yellow-green sphere)

v0.1.b5, 10-OCT-2006:

- fix: build: check qmake version before qmake run
- fix: add missing tooltip for gamelist reload action
- fix: serious memory leak for reload of the entire gamelist (missing buffer clear)
- fix: re-initialize ROM verification counter on every ROM check, making it non-static
- fix: several fixes regarding empty settings (no configuration file on first start)
- fix: Makefile changes to support Qt 4.2.0+
- fix: crash when parser prematurely stopped upon user request
- fix: restoration of widget position for options dialog fixed
- imp: some code optimizations for references to the ROM state cache
- imp: GUI speed-ups at start
- imp: more phrase translations for gamelist
- imp: scroll auto-selected items to top
- new: options VerifyROMs and CatalogFile removed (no longer needed)
- new: options Version, Responsiveness, HistoryFile and FavoritesFile added
- new: log a warning if the ROM state cache appears not to be up to date
- new: preview images can optionally be scaled "smoothly" (nicer, but slower)
- new: processing play history and favorite games
- new: additional (context menu) actions and icons for game favorites, play history and emulator control
- new: settings changed to ini-format / user-scope ($HOME/.config/qmc2.ini)
- new: Qt message handler (Qt messages are logged to the frontend log)
- doc: some additions and corrections to readme.html and faq.html
- doc: html-formatting changed to better support Qt 4.2.0+

v0.1.b4, 01-SEP-2006:

- fix: parse also ROMs marked as "runnable=no" (BIOSes)
- imp: error message for missing previews changed to informational
- imp: changed OS-dependant configuration file to arch/`uname`.cfg
- imp: code cleanup
- imp: improved game-reselection / auto-scrolling in gamelist to circumvent a Qt 4 "misbehavior"
- new: rudimentary about dialog added
- new: browser for online documentation added
- new: ROM check / ROM state cache
- new: option ROMStateCacheFile added
- doc: major additions to data/doc/html/us/readme.html, unneccessary sym-links removed
- inf: options-template (data/opt/template.xml) updated for xmame 0.106

v0.1.b3, 27-AUG-2006:

- fix: tab-position west appears buggy since Qt 4.1.4 (shows no text); changed to tab-position north
- fix: adopted xmame command line parameter changes since 0.104 (tested with xmame 0.106)
- imp: Makefile and documentation changes to reflect that a system-wide installation is not neccessary (nor recommended)
- new: “make snap” (snapshot) target added to Makefile (same as “make dist”, plus date- & timestamp)
- doc: many additions to readme.html

v0.1.b2, 01-APR-2006:

- fix: browse button for template file must be disabled during gamelist reload
- fix: added missing tool- and status-tips for game preview and MAME options
- fix: first focus widget should be the gamelist
- fix: fixed layout restoration bug for options widget
- fix: corrected a bunch of MAME configuration related bugs
- fix: clear background before scaling a (potentionally transparent) image
- imp: moved template file option to MAME tab where it belongs
- imp: improved phrases and translations
- new: added options template for SDL display-target (see data/opt/...)
- new: save/restore of game selection at exit/start and gamelist reload
- new: improved game selection scheme (games can now also be selected in the search result widget)
- new: context menu added for search result
- new: preview scaling now optional, original image size if disabled
- new: using QPixmapCache for preview image cache'ing (LRU-cache)
- new: customizable image cache size (1-1024 MB, default 64 MB)
- new: ghost icon shown in gamelist's value column if no preview was found
- new: preview check routine added
- new: many action icons and ROM status images added
- new: colored sphere icons displayed in front of each game description indicating the ROM status

v0.1.b1, 03-MAR-2006:

- initial version