========================================================================= This is the ChangeLog for the QUB (Q Universal Boardgame) project. Contact: The QUB Dev Team - qub-devel@lists.sourceforge.net http://qub.sourceforge.net This file only contains stuff for QUB 0.5.0 and later. QUB 0.4.x and earlier are listed in ChangeLog-0.4.x, if for some reason you want a fairly comprehensive history. ************************************************************************* PUH-LEASE READ! PUH-LEASE READ! PUH-LEASE READ! PUH-LEASE READ! BUH-ITTE LESEN! BUH-ITTE LESEN! BUH-ITTE LESEN! BUH-ITTE LESEN! (funny how those just happened to line up like that, eh?) See http://qub.sourceforge.net, or the source distribution (doc/usersguide/QUB_UsersGuide.html), for full instructions on how to use QUB. ************************************************************************* Newest versions are listed at the top... ========================================================================= 0.7.0 (01 Feb 2003) (Codename: "Mo Beta", though something commemorating the space shuttle Columbia would probably be in order.) ======================================================================== This version requires Qt 3.1. If you have Qt 3.1, use this version of QUB. If you have Qt 2.3.x use QUB 0.6.8. Qt 3.0 is not yet supported, and it is unlikely to happen soon (or ever, for that matter). Compiling against Qt 3.0.x *might* work - it's completely untested. New features/fixes: - Compiles with both gcc 2.95.x and gcc 3.2 (and maybe even other compilers). Tested on Suse Linux 8.0 and 8.1. - You can now "dock" [what was previously known as] the "left-side tabs" whereever you like. This is a major improvement in usability. Oh, i've got uses for this :). - Boards have a basic "mini map" view. Use their popup menu to launch it. This view has a few bugs/limitations/missing features, but it is useful for getting a visual overview of large boards. Drop pieces onto it to move them around the board. Clicking the mini view to move around does not yet work. - Added more intelligent window sizing when using gcomlauncher or launching gcoms in SDI (external) windows. - You can enable QUB desktop scrollbars by setting the config option QUB.desktop.scrollbars to true. You must restart QUB for this to take effect. This is off by default because i find it slightly annoying. - You can disable gzip compression framework-wide, or set the compression level, by running any of gcomlauncher, gcommaker or qub with the command line option: --zip-level N Where N: 0-9 is a compression level. -1 means default level. This setting will stick until you reset it later. This can be useful when working with the XML files via other tools, since they probably don't support gzipped xml directly. For those cases you can turn of compression. Here's an example of file size differences for differnet compression levels where the input was a 2800-piece game board: zlvl : file size 0 : 2703170 3 : 60110 6 : 35473 9 : 29315 For small gcoms the difference is less drastic but still noticable. - i finally figured out how to get xemacs to indent c++ code how i like, so i've been more productive. ;) Known problems: - gcom apps sometimes segfault at shutdown, but i cannot consistently reproduce it. It happens after they save their state, apparently, so it's not a big deal at the moment. - Intermittently the last QUB session won't be automatically loaded. To get it back simply double-click the file QUBDesktopAutosave.qub, which should be in your gameroot. - Undocking to an external window doesn't always work: the object is sometimes lost, invisible. - Uses too much memory while reading very large gcoms (hundreds-thousands of child gcoms) from files. This is not a mem leak, just a huge temporary buffer (max 6MB). This is not a problem for most gcoms, however. - Pasting gcoms' XML into the Notes tab no longer works due to a change in Qt's text editor class. :( i'm probably the only person who ever did this, anyway, so i won't lose any sleep over it. - Miniview does not update it's view correctly when it is the direct child of a top-level window (i.e., if you undocked it, for example). This one is a complete mystery. - Serialization of BoardMiniView does not work: this means no dragging/dropping it is possible. - Dropping multiple selected gcoms onto the miniview does mysterious things. Don't do it. - Some rather obscure file types (.Vemu, .DungeonMaker, probably some others) may not load when double-clicked. To be fixed later... - Locks up occasionally when loading .gif or .bmp images. Using jpeg/png/xpm seems to be fine. This has been an ongoing thing for ages now, so i probably won't mention it again. ;) - QUB hangs *sometimes* during shutdown. ========================================================================= 0.6.8 (22 June 2002) (Codename: World Cup) ======================================================================== This is a maintenance release, fixing a couple things i inadvertently broke in 0.6.7. - RustyDieGCom now deserializes correctly (i.e., the dice value is now correct after a copy/paste or save/load). It is also draggable by default now. - Click-to-raise on game pieces works again. ========================================================================= 0.6.7 (16 June 2002) (Codename: Auto My Ass) ======================================================================== It's been a long time since the last release, thus this release has a long list of changes... - Despite what i said in 0.6.6, this version is for Qt2, not Qt3. Qt 2.3.2 has been tested. It may work with 2.3.1, but i don't think it'll run on anything older (YMMV). - Distribution tarballs are back to using gzip because the latest versions of tar changed the command-line option for bzip2, causing much confusion and grief on my part. - All saved data is now compressed using zlib compression (the standard compression library used in Unix software). In many cases the files are under 2.5% of their uncompressed sizes. This applies to _all_ saved data except for images. - z-ordering has been removed because it causes strange duplicate objects during saving and copying. (Sorry, Tom!) - Shift-middle-click now deletes pieces (GComBasicPiece objects). - Multi-select support. Use shift-click to de/select gcoms. Drag/drop and copy/paste operations apply to all selected gcoms in the same parent object. Other menu options operate only on the selected object (this is arguable behaviour, though). - New configuration options: gcom.selection_color = gcom.selection_width = These control the color and size of the border drawn around selected (shift-clicked) gcoms. (Add/edit these options using the Edit Setting button in QUB's toolbar.) - Computer's hostname is now shown in the title bar. - Finally added ability to add/remove background images to/from gcoms. See the popup menu. - All children added to a GComBasicTray will now be made draggable by default. - GComs will now toggle their covered state on a double-click if they are not multi-sided (in which case they flip over, as always). - The default tray will now save/load itself when you exist/start (but it's a kludge, not a proper solution). - Config editor works again. i dunno how it ever worked, to be honest. - "The Desktop" is now persistant, saving it's background color and gcoms when you quit. - Desktop save/load works again. Use the popup-menu for quicksave/load and the toolbar Save buttons to save to a named file. Load non-quicksaved files using the browser tree. - A number of other desktop improvements, like the ability to paste multiple items at once. - Added a toggle for the desktop popup menu to preview gcoms in the menu. This is slow, but looks nice. When this is off (default), only the gcom icons show up in the menu. When it is on, a mini-screenshot is shown. - Shift-click to remove GComBasicPieces is removed because of experimental multi-select support. Many of the Alt/Ctrl/Shift & Mouse combinations are already taken up by KDE, so we can't reliably use many combinations in QUB. - internal organization changes - the installation process is different (more standard), the way DLLs are loaded is completely different, etc. - Layout changes in the main UI: the Black Hole has been removed (it's pretty obsolete) and the default tray has been made really big. The default tray also saves it's contents at shutdown-time now. - Removed the dialogs which warned you before QUB created directories for you. They weren't anything more than informational and could cause crashes if they appeared during application shutdown. - Build process is now more multi-task friendly, not (always) dying while finalizing the binary in the ./client subdir. Run your build with 'make -j2' to run it in two paralell processes (if your machine/setup supports it). If you have access to a network of Linux boxes i MUST recomment installing Trolltech's Teambuilder cross-network build tool. It's available without cost at http://www.trolltech.com, it's EASY to install and use and it works GREAT! (Shameless plug.) Teambuilder-based builds have been tested with up to 3 PCs using 4 processors, and such a config cuts build time down considerably. Blatantly Broken: - Loading of BMP and GIF graphics _sometimes_ hangs the app in the Qt libs. Avoid them if possible. - toolbar-based templates. (note to self: all have the name 'unnamed') - GComGroupPiece (or whatever it's called now). - goms launched in external windows sometimes lose their scrollbars. Very strange. ========================================================================= 0.6.6 (4 November 2001) (Codename: Punchcard) ======================================================================== This will probably be the last Qt2-based release. Future work will go towards Qt3, which is not completely code-compatible with Qt2. - Z-ordering appears to work in most cases. (thanks, Tom!) - "Desktop area" can now have objects pasted into it. - Right-clicking in the "desktop" area now pops up the same menu as is available via the "Windows" menu. - DungeonCrawler dll: increased square size by 50%. i would swear i had done this Ages ago, but apparently didn't. - Window List preview graphics have been temporarily disabled. You will see an icon instead of a preview of the window. They will come back with a toggle. Recently-broken things. Dunno 100% yet why: - Saving of desktop area (toolbar's Save button) is broken. Use the Save popup menu option instead. Will be fixed in next release. - Dragging between different application instances is broken. - Pasting between different application instances sometimes hangs one of the instances. (???) ========================================================================= 0.6.5 (4 Oktober 2001) (Codename: Oktoberfest) ======================================================================== - Removed default tooltip from boards. The What's This help says the same thing, and the tooltips get in the way of game play. - Changed number of templates to 10, as most of them were unused. This frees up screen space, too. Also gave it a bigger border to make it easier to manipulate via the popup menu. - Fixed a couple build problems. Auctoconf 2.5x should work now. Systems complaining about unknown function exit() in main_pixslicer.cpp should now have have no problem. - Added utility 'gcomlauncher' to launch gcom files in their own windows, without the use of QUB. Use this to quick-start a game: gcomlauncher my_saved_file.board or use this to launch an object by it's class name: gcomlauncher -class It also works with file types associated with gcoms, like HTML and README: gcomlauncher myfile.html launches a TextBrowserGCom - gmaker can now read in gcom creation arguments from stdin, which means a HUGE decrease in gameset build time. The Dryad set (unreleased) took approximately 104 seconds to build before this change, and takes only 10 seconds since this change. ========================================================================= 0.6.4 (27 Aug 2001) (Codename: Damn Skippy!) ======================================================================== - Fixed horrible memory leak caused by launching external windows (feature added in 0.6.3). - Believed fixed: build problems related to using Autoconf 2.5x. Thanks VERY much to Akim Demaille for his help in this, via the autoconf mailing list! ========================================================================= 0.6.3 (19 Aug 2001) (Codename: Gettin' Beta) ========================================================================= - You can now open a gcom into it's own window. See the right-click menu. - Cleanups and major changes to the installation process. PUH-LEASE(!!!) see the User's Guide (location is listed at the top of this doc). - Fixed crash caused when opening a file dialog. The side-effect is that you now no longer get QUB-specific icons in your file dialogs. I _suspect_ this happens only in Qt 2.3, but could very well be wrong. - Fixed a crash caused under strange circumstances in the PropertyList. - Fixed bug which caused a graphics file opened by double-clicking it to become it's own icon in the tree view. For large graphics this was a usability problem, to say the least. - Increased the size of the dungeon squares in DungeonCrawler by 50%. Now you can actually use these dungeons with the Nethack set, or even the GenericSciFiGroundCombat set, if you really feel so inclined (hey, it could be a scenario depicting a raid into an underground military installation, right?). - Took away those camera-looking buttons from the things in the Tools tab. They've been useless since the Scratchpad was moved into it's own tab. The Tools tab now has a draggable splitter. - Changed rotation to center off of the pixmap's size, not the widget's. This means no change for 99% of things, and an as-yet-unknown change for the other 1% ;). - A number of minor tooltip & What's This text changes. - Added UI Preference to GCom editor editor. You generally shouldn't muck with this unless you know what you're doing, however. It's an advanced customization feature for GCom designers/developers. - Added capability for GComs to remove all objects of a specific class. So, for example, a board can have an option to remove all pieces, while leaving trays and such untouched. ========================================================================= 0.6.2 (02 June 2001) (Codename: Bunny Rabbit) (PS: I swear to Gawd it's just a coincidence that the version number is the almost the release date, reversed.) ========================================================================= - Added copy/cut/paste. :) You can now copy/cut/paste most game components into and out of each other. Use the popup menu to get at these options. - Fixed a crash caused by certain (icon-less) gcom classes being placed into a tab. - Added util/bin/pixslicer for hacking up files from grid-based gameset formats (like V_MAP) into single images. Can also be used to chop up electronically-distributed counter sheets, like Cisco's Ogre(tm) counters: http://cisco.rootonfire.org - Created V_MAP -> QUB gameset conversion script. This is not included in the distribution yet, but is available by request. Converted sets will not be distributed (legalities) - but we'll tell you how to convert yours quickly and painlessly. - GComs with background graphics no longer have a Background Color menu option, since it just hoses their graphics. This eliminates the possibility of boards with transparent-background images, but it fixes an ugly bug (if you changed the bg color, you lost your pixmap and couldn't get it back without saving it and then loading it again). - Now only gcoms which are specifically programmed to, get the Rotate popup menu option. This is because it only works correctly with certain types right now, and just causes grief with others. Currently only GComBasicPiece and it's subclasses have this by default. - Cleaned up the popup menu's extendability considerably. GCom subclasses can now do whatever they want with it much more easily. Non-subclasses can now edit a gcom's menu very easily as well, as long as they stick with standard menu options (custom menu items currently require subclassing). (This whole thing may sound odd, actually, until you learn that there is only _one_, shared popup menu in QUB, for memory reasons. This is not a requirement, just the default implementation.) - Internal and build-tree re-orgs. Moved several of the DLLs into the static library, because they are used by so many things. In doing this, GroupPiece went away, and is replaced by the TrayPiece (exactly the same code - the only effect is to break serialization: you can no longer load games which have GroupPieces in them (in your saved files, replace GroupPiece with TrayPiece and it will work again). ========================================================================= 0.6.1 (13 May 2001) (Codename: Stuttgart) ========================================================================= - Cleaned up the user installation process a bit. Your gameroot is now automatically created, and you should no longer see any dialogs or error messages about missing files. - Improved icons support. Arbitrary files can now be given an icon by copying a picture file (png or xpm) to /lib/icons, and call it EXT.{xpm,png}, where EXT is the extension of the file type. If the file type has no extension (like README or ChangeLog), then name it after the file. So, for example, the icon for *.myfile would be: /lib/icons/myfile.xpm (or myfile.png) Not all icons are changable this way yet, but that will slowly be phased in, allowing you to theme QUB. - Added file extension handlers support, so objects can register an interest in being created when files of a specific type are opened. This applies to any arbitrary files, based on extension (or whole filename, for files with no extension, like README). - New DLL: DungeonCrawler. Can read and render dungeon files generated by DungeonMaker, a command-line tool available from http://dungeonmaker.sourceforge.net. I am working on the DungeonMaker project now, and we're reorganizing DM to allow it to produce pure-random-dungeons, without requiring user input as it now does. Once that's done QUB can also take advantage of that and will offer an endless supply of random dungeons. See the Nethack gameset for over 800 pieces which go well with DungeonCrawler. You can also download a set of over 100 pre-created dungeons from the QUB downloads home page. Double-click on *.dungeonmaker or *.DungeonCrawler files to load these. - Moved templates to the file-selection tab. Much simpler to use that way. - Added basic drag/scroll support for large objects in scrollviews - drag in them to move around inside them. To disable this behaviour, right-click the object and uncheck it's Draggable toggle. Note that dragging forces it to try to center where the mouse is; it's not real drag/move. Remember: middle-clicking on a board will center the view on that point. Sorry, but scrolling them by dragging _other_ objects around inside them still doesn't work. - Sorry, location of persistant data for templates and TheMultiplier have changed. You'll have to reconfigure them. Default ones now install with QUB, anyway, so you won't _have_ to reconfigure everything. - You can drag game components from your boards onto your KDE desktop, where they will be saved as XML. This is a side-effect of using Qt. - Directories can now have their own icons. Simply place a file called diricon.{xpm,png} in the directory, and QUB will show that in the browsing tree. - Added a drag-copyable note to the toolbar. Drag it to your playing area to use it. - GComs can now be sent to ostreams via <<. (my first operator overload :) - Relative paths in pixmap names (as can easily be the case when using gmaker to make pieces en masse) should be handled correctly now. - Switched to bz2 compression for distribution, as QUB is getting so fat. New Bug: An optimization made in 0.6.0's pixmap loading broke preview mode in the tree browser. I know the fix, but I'm looking for a better solution. ========================================================================= 0.6.0 (10 Apr 2001) ========================================================================= IMPORTANT: Build and Install instructions have changed a bit. PLEASE see the user's guide (http://qub.sourceforge.net/usersguide/) for full details, and INSTALL for the short version: With *normal user account*: ./configure && make switch to *root*: make install Switch back to *normal user*: make userinst ALSO IMPORTANT: Objects saved in 0.5.3 and earlier will NOT load with this version, and are likely to cause crashes! This includes ALL saved objects, even those created with the gmaker which shipped with 0.5.3. This is the first version since 0.4.9 which I consider to be stable enough and feature-rich enough to be usable. 0.5 was a 100% complete rewrite from the 0.4.x architecture, and has brought with it new bugs. But it's much cooler and it's a thousand times more flexible than earlier versions. =============== Crashes Fixed: - Crash caused by dropping a template onto itself when in drag/move mode. - Apparently fixed crash caused by a miniscule pixmap cache size. The crash happened way down in QPixmapCache. (This crash was elusive and funny because it would only happen during a timed event, when the cache would flush itself, and always not during user interaction.) - Worked around a crash somewhere deep in the Qt event handler, which often happened when closing large games (like 200+ pieces). This crash can still happen, but see a workaround below, in New Bugs. =============== Other bugs/annoyances fixed: - The object/DLL/class selection list is now correctly saved/load in/from the config object. It does not save from the combo-box, though (sorry!), but from the configuration value for QUB.default_piece_class. - Pieces which have no parent to come into play to will go to the default piece tray now, instead of bitching about it and going nowhere. - I dunno what happened, but the color dialog is working correctly again. - Moved the scratchpad back into it's own tab. It wasn't big enough where it was. - Property lists and config files and such won't have duplicate keys any more. - Finally: clicking the window manager's close button will close gracefully. - Fixed resizing futz-uppedness in MDI windows. They should no longer resize outside of the min/max bounds set by the content widget. =============== The Glaringly Obvious new bugs: - GroupPieces with pixmaps incorrectly size themselves after deserializing (being dropped or after loading from an XML file). Double-clicking them twice will work around this, restoring their size. - When removing lots (hundreds) of pieces from a board at once it will sometimes crash in Qt's event handler with a null pointer. Don't know a way around this completely. If you have _lots_ of pieces to remove (the most tested so far is 2833), closing the top-level object (e.g., the board) will not (in my experience) cause a crash, but using the "remove contents" popup menu may very well cause one deep down in Qt. - When browsing HTML files, clicking a link to something in that same page causes the page to disappear. This appears to be specific to certain Qt versions, and is certainly a Qt bug (sorry!). =============== New Features: - New DLLs: * CalculatorGCom - 100% stolen from the Qt/Palmtop Edition code. Gawd Bless Open Source. * TheMultiplier - Drop game components on this thing to create N copies of them. Use the spinbox to set the number of clones to make. Set config option QUB.toolbar="TheMultiplier" to get this in your toolbar on startup. Click the Rebuild Toolbox button to recreate the toolbar to include your changes without restarting QUB. - SAVE button no longer saves the current object, but the whole MDI desktop. Double-clicking a ".GComWorkspace" file will restored the desktop. You will be asked if you want to close all windows before restoring. - More toggles added to the gcom editor. - Rotation is back. Use the popup menu to set the angle. It only rotates the background image, and not child components inside the rotated component. It is not available for GComs which let Qt do their drawing for them (e.g. GComBasicBoard, GComBasicTray...). - Can now autoload GComs (even from dlls) into a separate toolbar. Set the configuration key QUB.toolboxbar to something like "TheMultiplier" and restart QUB to see it in action (will only work if your dlls got installed correctly). The toolbar starts out with some objects already in it. - Added a classloader selection to the new toolbar. Took the load button away from the dir view's list, as it was just confusing (I thought). - You can no drop templates onto each other, though their usage is opposite that of their normal usage: drop a template onto another, and the dropped template will force it's appearance on the other. (This reversal is a side-effect of the drag/drop implementation). - New configuration keys which do cool things: * QUB.autoload = List of classes which will automatically be instantiated and added into play. Classes specified here can still go to the toolbar if QUB.prefer_toolbar is set on that gcom. * QUB.toolboxbar = List of classes specifically for the new toolbar, which is set aside just for toolbar-sized game components. - Now looks for certain properties in all new objects and does the following: * QUB.prefer_tab = If true, this object is loaded into a tab. * QUB.prefer_toolbar = If true, this object is loaded into the toolbar. This should obviously only be set for small gcoms, but will actually work for a CalculatorGCom, too. If none of these are set then the normal actions are taken for determining where to add the object. - Added partial save on exit support to the base game components. Any object which toggles this on will be saved to: /lib//. Calling GCom::load() will try to load the object's state from a file with that name. It doesn't completely work yet, but some classes make use of it so to provide persistant data across QUB sessions. - New core GComs: * GComWidgetWrapper - not really visible, but is used to wrap up widgets for sticking them into places where normally only GComs go (like the GComWorkspace). Note that this object is currently only lightly tested, and may still have significant bugs. - Added -stdout option to gmaker to output the XML data to stdout. This is now the default behaviour if -o is not specified. - Added gamesets/Template/, a really easy way to make full-featured gamesets quickly out of lists of files. This template will be the base for all official gamesets released with QUB. See gamesets/Template/src/README for full instructions. - If you have the file /QUB/QUB_UsersGuide.html, QUB will automatically load it on startup. ========================================================================= 0.5.3 (22 Mar 2001) ========================================================================= Note that objects saved with 0.5.3 and earlier will possibly be incompatible with those from later released because of serialization changes which are planned for the next release. First off: 0.5.3 appears to be much more stable than 0.5.2. I haven't seen a crash since 0.5.2, apparently because of this first fix: - I think I fixed huge memory leak regarding GCom::remove(). All GComs appear to be properly deleted now. I can't promise that much for the pixmaps, though. - Added lots of things to the game component Editor dialog: * Toggles for almost all states of a gcom. * Property and notes editors. * Size and position editor (finally!). * View of the component's XML data (mostly for debugging). The only thing really missing right is an image list editor, but that last one will wait until after a rewrite of the way gcoms' images are dealt with (next release). - Usage of the default template is now togglable. It's often not desired when loading prefab pieces from XML files. - Default object class selection list added. You no longer need to set it in the config. You can type your own names if you have a DLL you want to use. This class is used when loading pieces from images. Pieces loaded from XML will specify their own class. - UI layout changes too numerous to list here. - Finally fixed the icons for the MDI windows. - Finally fixed up most of the spaghetti-mess #includes in gcom/*.h. Build time of classes dependent on lib/gcom should be reduced somewhat. - If a components is a child of another game component, it can now be moved around with the keyboard. Use the Up/Down/Left/Right cursor keys to move 5 pixels. Shift speeds it up by 10x and Ctrl by 5x. Shift & Ctrl are cumulative, use Ctrl-Shift-Right to move the piece 250 pixels right. A pieces moved this way will not move past it's parents' boundaries. Use Page Up, Page Down, Home and End keys for diagonal movement. This will not work for gcoms housed in non-gcom widgets. - Fixed tooltip from sticking at "Covered" after uncovering a piece. - Moved scratchpad into the Tools tab. The contents are now saved when QUB is closed. ==========> - Added DLL support. You can now load arbitrary GCom dlls by name. They aren't hard to use, but PLEASE PLEASE PLEASE save yourself some trouble and see the User's Guide for full instructions. New DLLs: NoteGCom* - a small, dragaround editor for adding notes onto your board. Double-click it to show or hide the note. GroupPiece* - A piece you can expand to reveal a small tray. Double-click it to expand or shrink it. They behave just like any other piece aside from that. This adds a nice feature as a roleplaying aid: drop your character's inventory, or the contents of the chest, etc., right in to the piece, then double-click it to remove it from view. * Note that these object will not be serialization-compatible with those objects which will ship in 0.5.4 because of fundamental serialization changes I am planning. More DLLs are on the way. - Added gc::addLibArgs() to allow passing of arguments to libGCom before it is actually initialized, so it's behaviour can be customized somewhat. Implemented these init flags: -libgcom-nosave : It disables saving of the config file. -libgcom-basicinit : Does only a bare-bones un/initialization, saving lots of time when building gamesets using gmaker. Config file is not saved. These are intented for use with gmaker, which uses -libgcom-basicinit by default. Any flags go right into the config object, so they can be used from anywhere. QUB does not yet add args to libGCom, but needs to. - Added DLL support to gmaker. It's now "future ready" for your own game component subclasses :). Use the [-class ClassName] option to specify the classname, by the way. - HTML copy of user's guide is now online and actively updated: http://qub.sourceforge.net/usersguide/ Found new bug: Color selection dialog: previous color is returned in gc::selectColor() if Cancel is selected. Per the API docs (and older Qt versions), the returned color could be !isValid(). This shows up starting in Qt 2.2.2, I think, and is caused by behaviour in QColorDialog which violates the QColorDialog API docs. Anyway, this breaks the behaviour of any usage of the color selection dialog, which relies on correct behaviour from QColorDialog. ========================================================================= 0.5.2 (11 Mar 2001) Just to reiterate: 0.5.x is not yet as stable as 0.4.x was. Stick with 0.4.9 if you want a known-stable interface. 0.5.x is, however, much cooler, at least internally ;). Versions 0.5.0+ are not in any way backwards-compatible with 0.4.x and earlier. - Finally re-added the Edit note/name/properties capability. Use the Edit item in a component's popup menu to edit these. - You can now choose what text you want for a tooltip for each component. You can select from name, notes or blank, and more options will be around someday. - Changed the layout of the tools tab. You can now toggle the tools you want on and off. - Spruced up the popup menus a bit. Hopefully it's more ergonomic now. Some options only appear now if they make sense, too. For example, the Flip option is only available if a component has more than one side. - util/gmaker/gmaker is now a useful tool, with all kinds of (documented) options for making game components from the command line. Run it with no parameters to see the list of options. See the source code in util/gmaker/main.cpp for several examples of how to use it. Complete gamesets, including pre-laid-out boards, can be created with this tool. - Most game components now allow you to toggle whether they are draggable or not. This is useful for making fixed-place pieces, or turning on dragging of components which don't normally prefer to be dragged. Warning: some components are not designed to be moved by dragging (like the default templates and such) and will drag in copy mode. If they are somehow forced to drag in move move, you will very possibly end up with a crash. ========================================================================= 0.5.1 (09 Feb 2001) Just to reiterate: 0.5.x is not yet as stable as 0.4.x was. Stick with 0.4.9 if you want a known-stable interface. - Re-added copy mode. Hold Ctrl while dragging a piece to copy it. - Added scratchpad tab, for taking notes during play. There's no saving support for it yet. - Configuration editor is now simpler to use, without a clumsy dialog to deal with. The configuration is now also saved when you click Apply, instead of just when we exit. - Popup menus now only show "remove objects" option if the component has any objects. - Default template now takes on appearance of whatever template you click. Merged the Trays and Templates tabs into one Tools tab. Changed the template layout to be much more friendly, with 4 rows by 4 cols. - Black Hole is now a holding area until The Button is pressed. (Copy mode was crashing because of the older behaviour of insta-nuke). - 'make install' (from the top of the source tree) now installs a config file (~/.libGCom.conf), or merges new settings into your existing file (keeping your preferences over the defaults). Since make install is normally done by root, you can (as any user) run 'make configfile' to create (or update) your config file from the default one in the source tree (lib/gcom/.libGCom.conf). - Added gcom preview mode in the tree view. It's as slow as hell, but it looks cool. Set the boolean gcom.treeview.preview_gcoms in your config. - Added simple support for a generic approach to "static initialization" of all GCom subclasses create with lib/gcom/makeGComSubclass. - The default GCom subclass which will be used for loading pieces can now be set during play (so if you've got a piece subclass you'd rather use, set it in the config options). This is an advanced configuration option, and it's default should generally not be changed. -------- Known Bugs: - GComs which don't prefer a scroller, but end up as top-level windows, have screwed-up initial sizes. - Sometimes crashes (apparently) after loading lots of images. I haven't yet found exactly why. It starts, normally, with an error about not being able to load a graphic which it loaded just fine a minute before. It has something to do with the caching, I'm sure, but I don't yet know where it's going on. I haven't seen it in several days, either. ========================================================================= 0.5.0 (28 Jan 2001) Ported to a completely new architecture, using the GCom (Game Component) library. It allows heirarchical layouts of any types of game pieces within each other, and they can interact in ways which weren't possible under the older model. If you want a usable game, please stick with version 0.4.9. The 0.5.x series is bound to be filled with new bugs. Not counting the not-yet-ported-from-0.4.9 features, here's what's new in 0.5.0: - MDI: Multiple Document Interface. QUB now uses MDI by default. An option to switch between MDI and a tabbed interface (technically still MDI, but looks more like SDI) will be added later. Starting with 0.5 you can have multiple games open at once. This is likely to cause some confusion about where loaded files should go (added to the current board or loaded as a new one). Please email me if you find it confusing to use, or does things in a way you wouldn't expect, and I'll work on that. Ease of use is a primary design goal, after all. - Drag/drop between different games. You can move pieces from any game window to another with drag and drop. Drag/drop has been significanty improved, in any case, to allow all kinds of game components to be dropped into all other kinds. This allows very flexible usage of dnd within the game. - Piece trays. Places you can stick pieces which you don't specifically want to use at the time. - A tool (lib/gcom/makeGComSubclass) which will create a ready-to-compile GCom subclass for you, allowing easy creation of GCom subclasses. It builds the subclass from GCom.h, so it'll generate a subclass based off of the current API. - Templates. You can store commonly-used piece looks, and assign those to any pieces during play by using drag/drop. - Saving "screenshots" of arbitrary widget. - Persistant data is now stored under [gameroot]/lib. - Optional inline saving of games. This drastically increases the size of savegames, but allows things like whole games packaged in one file very easily. For static games, like chess, checkers and backgammon, this is a simple way to distribute them. This is quite buggy, and not officially supported yet.