changelog
    
    
    - Thu, 19 Dec 2013 16:01:29 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Thu, 19 Dec 2013 16:01:29 +0200] rev 572
 
    - - code parser no longer complains about scientific notation
 
    - Thu, 19 Dec 2013 13:36:48 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Thu, 19 Dec 2013 13:36:48 +0200] rev 571
 
    - - cleanup closing of unused files is now defered to the event loop using a new InvokationDeferer class. This prevents ldforge from closing unused files when it *really* shouldn't be doing that, instead waiting until everything is done before it begins the cleanup process.
 
    - Thu, 19 Dec 2013 02:37:12 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Thu, 19 Dec 2013 02:37:12 +0200] rev 570
 
    - - fixed minor goofup with for_axis
 
    - Thu, 19 Dec 2013 02:30:36 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Thu, 19 Dec 2013 02:30:36 +0200] rev 569
 
    - - ext programs requiring wine now properly display an error prompt if wine is missing
 
    - Thu, 19 Dec 2013 01:25:50 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Thu, 19 Dec 2013 01:25:50 +0200] rev 568
 
    - - convert overlay images explicitly to ARGB32 format, otherwise they might not be able to be made translucent properly
 
    - Thu, 19 Dec 2013 01:19:42 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Thu, 19 Dec 2013 01:19:42 +0200] rev 567
 
    - - added file headers to crashcatcher.cc and .h
 
    - Thu, 19 Dec 2013 01:18:34 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Thu, 19 Dec 2013 01:18:34 +0200] rev 566
 
    - - removed the version monikers, new version is now just 0.3 instead of 0.3-alpha. BUILD_ID can now only be INTERNAL and RELEASE. It was way too complicated to my tastes.
 
    - Thu, 19 Dec 2013 01:06:34 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Thu, 19 Dec 2013 01:06:34 +0200] rev 565
 
    - - history now works on object list moving as well
 
    - Thu, 19 Dec 2013 00:59:49 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Thu, 19 Dec 2013 00:59:49 +0200] rev 564
 
    - - implicit documents are now auto-closed when rendered unused, in general, a LOT better document closing behavior
- history should now behave properly for real 
    - Wed, 18 Dec 2013 23:38:45 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Wed, 18 Dec 2013 23:38:45 +0200] rev 563
 
    - - made history ignore file loading and undo/redo calls instead of having hard-coded ignore on the actions, this will probably save a lot of hair
 
    - Wed, 18 Dec 2013 20:43:50 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Wed, 18 Dec 2013 20:43:50 +0200] rev 562
 
    - - fixed: LDObject methods still used operator delete directly, causing *a very frustrating* crash to debug
 
    - Wed, 18 Dec 2013 19:39:55 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Wed, 18 Dec 2013 19:39:55 +0200] rev 561
 
    - History should now behave properly..
 
    - Wed, 18 Dec 2013 17:44:31 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Wed, 18 Dec 2013 17:44:31 +0200] rev 560
 
    - - corrected history behavior. LDObject::clone() is now off-limits, createCopy() must be used instead. LDObject::deleteSelf() must be used to delete LDObjects (destructor is protected now)
 
    - Wed, 18 Dec 2013 17:03:35 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Wed, 18 Dec 2013 17:03:35 +0200] rev 559
 
    - - fixed: cones with 3 digit numbers wouldn't go to the "Cones (48)" category properly
 
    - Wed, 18 Dec 2013 14:32:17 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Wed, 18 Dec 2013 14:32:17 +0200] rev 558
 
    - - LDEmpty now overrides getTypeName properly
 
    - Fri, 13 Dec 2013 20:01:49 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 13 Dec 2013 20:01:49 +0200] rev 557
 
    - - changed source file extension from .cpp to .cc
 
    - Fri, 13 Dec 2013 00:39:49 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 13 Dec 2013 00:39:49 +0200] rev 556
 
    - - LDObject::move is no longer virtual
 
    - Fri, 13 Dec 2013 00:31:16 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 13 Dec 2013 00:31:16 +0200] rev 555
 
    - - fixed: LDMatrixObject's position would be an invalid pointer if it was created with the default constructor, causing a crash
 
    - Fri, 13 Dec 2013 00:28:24 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 13 Dec 2013 00:28:24 +0200] rev 554
 
    - - Reworked primitive listing. No longer uses multi-threading.
 
    - Thu, 12 Dec 2013 19:44:09 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Thu, 12 Dec 2013 19:44:09 +0200] rev 553
 
    - - LDFile renamed to LDDocument, file.h -> document.h
- Added the INSTALL document 
    - Sat, 07 Dec 2013 01:18:21 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Sat, 07 Dec 2013 01:18:21 +0200] rev 552
 
    - net_autoclose is now true by default
 
    - Sat, 07 Dec 2013 01:08:52 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Sat, 07 Dec 2013 01:08:52 +0200] rev 551
 
    - renamed LDCndLine to LDCondLine
 
    - Sat, 07 Dec 2013 01:03:17 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Sat, 07 Dec 2013 01:03:17 +0200] rev 550
 
    - more stuff
 
    - Sat, 07 Dec 2013 00:01:20 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Sat, 07 Dec 2013 00:01:20 +0200] rev 549
 
    - Cleaned up download.cpp/.h, used PROPERTY. Added LIST_OPS to PROPERTY
 
    - Fri, 06 Dec 2013 21:30:58 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 06 Dec 2013 21:30:58 +0200] rev 548
 
    - minor cleanup
 
    - Fri, 06 Dec 2013 21:25:49 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 06 Dec 2013 21:25:49 +0200] rev 547
 
    - Renamed "quick colors" in the configuration to "color toolbar"
 
    - Fri, 06 Dec 2013 21:13:01 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 06 Dec 2013 21:13:01 +0200] rev 546
 
    - - re-added the external programs to the toolbar
 
    - Fri, 06 Dec 2013 21:09:23 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 06 Dec 2013 21:09:23 +0200] rev 545
 
    - updated README.md with a mention of the ring drawing
 
    - Fri, 06 Dec 2013 21:06:48 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 06 Dec 2013 21:06:48 +0200] rev 544
 
    - minor cleanup
 
    - Fri, 06 Dec 2013 20:54:34 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 06 Dec 2013 20:54:34 +0200] rev 543
 
    - - added build_shared to .gitignore
 
    - Fri, 06 Dec 2013 20:53:36 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 06 Dec 2013 20:53:36 +0200] rev 542
 
    - - Improved coordinate rounding, replaced the hack with a proper implementation, now rounds properly and works on subfiles as well
 
    - Fri, 06 Dec 2013 00:29:44 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 06 Dec 2013 00:29:44 +0200] rev 541
 
    - - Renamed common.h to main.h, split the PROPERTY macro and supporting macros to property.h
 
    - Thu, 05 Dec 2013 23:42:39 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Thu, 05 Dec 2013 23:42:39 +0200] rev 540
 
    - - Changed the callback parm of PROPERTY to a stock/custom write method argument.
 
    - Thu, 05 Dec 2013 23:20:50 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Thu, 05 Dec 2013 23:20:50 +0200] rev 539
 
    - - upgraded the PROPERTY macro, resulting in a major code refactor
 
    - Thu, 05 Dec 2013 13:51:52 +0200
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Thu, 05 Dec 2013 13:51:52 +0200] rev 538
 
    - - ensured header files' guards start with LDFORGE_
- removed typedef "qchar" (use QChar instead), removed use of short, long and size_t (use int instead)
- use C++11-using syntax instead of typedefs in types.h 
    - Tue, 22 Oct 2013 22:14:32 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 22:14:32 +0300] rev 537
 
    - removed old and unused src.pro file
 
    - Tue, 22 Oct 2013 22:11:57 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 22:11:57 +0300] rev 536
 
    - renamed the version to 0.3-alpha in the changelog
 
    - Tue, 22 Oct 2013 22:11:32 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 22:11:32 +0300] rev 535
 
    - changelog entry
 
    - Tue, 22 Oct 2013 22:09:53 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 22:09:53 +0300] rev 534
 
    - Made rotation/pan/zoom values camera-dependant (so now there's 7 sets of them instead of 1)
 
    - Tue, 22 Oct 2013 21:42:20 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 21:42:20 +0300] rev 533
 
    - updated .gitignore
 
    - Tue, 22 Oct 2013 21:41:05 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 21:41:05 +0300] rev 532
 
    - removed the legacy dir
 
    - Tue, 22 Oct 2013 21:40:01 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 21:40:01 +0300] rev 531
 
    - forgot the new icons
 
    - Tue, 22 Oct 2013 21:39:20 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 21:39:20 +0300] rev 530
 
    - - Added new actions "Hide" and "Reveal" which allow direct setting of objects' visibility setting instead of toggling it.
 
    - Tue, 22 Oct 2013 21:03:57 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 21:03:57 +0300] rev 529
 
    - added a configuration option for line anti-aliasing
 
    - Tue, 22 Oct 2013 19:33:41 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 19:33:41 +0300] rev 528
 
    - fixed: deleting objects would trigger a crash
 
    - Tue, 22 Oct 2013 19:28:45 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 19:28:45 +0300] rev 527
 
    - more minor changes
 
    - Tue, 22 Oct 2013 19:22:15 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 19:22:15 +0300] rev 526
 
    - style corrections
 
    - Tue, 22 Oct 2013 13:53:24 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 13:53:24 +0300] rev 525
 
    - i'm dumb
 
    - Tue, 22 Oct 2013 13:49:55 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 13:49:55 +0300] rev 524
 
    - also removed the if() case mentioned in the prior commit from addObjectDialog.cpp. :P
 
    - Tue, 22 Oct 2013 13:47:41 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 13:47:41 +0300] rev 523
 
    - enclosed the assert replacement in braces. In release mode, the assert is replaced with nothing and there's a little bit of code in addObjectDialog which uses it as a statement in an one-line if(). With the assert disappearing in release builds this triggered a GCC warning, as the if would be left without a body.
 
    - Tue, 22 Oct 2013 13:40:16 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Tue, 22 Oct 2013 13:40:16 +0300] rev 522
 
    - - migrated selection from ForgeWindow to individual LDFiles. Should've done this long ago.
- added an operator== for matrix to make stuff actually compile 
    - Sat, 19 Oct 2013 02:33:08 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Sat, 19 Oct 2013 02:33:08 +0300] rev 521
 
    - changeProperty(): don't change the property if the value would not change, this should save some procecssing..
 
    - Sat, 19 Oct 2013 01:22:11 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Sat, 19 Oct 2013 01:22:11 +0300] rev 520
 
    - initialize GLRenderer::m_hoverpos to (0, 0, 0)
 
    - Sat, 19 Oct 2013 01:15:57 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Sat, 19 Oct 2013 01:15:57 +0300] rev 519
 
    - cosmetic fixes
 
    - Sat, 19 Oct 2013 01:11:26 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Sat, 19 Oct 2013 01:11:26 +0300] rev 518
 
    - fixed: the file loader would skip every 300th line. And I thought I was going nuts when my quads kept disappearing...
 
    - Sat, 19 Oct 2013 00:39:09 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Sat, 19 Oct 2013 00:39:09 +0300] rev 517
 
    - Made the config dialog use a list widget for navigation over a tab widget.
 
    - Fri, 18 Oct 2013 23:49:55 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 18 Oct 2013 23:49:55 +0300] rev 516
 
    - - added LDSharedVertex class for holding copy-on-write vertices. Will need this for future features..
- fixed zoomToFit() crashes for real this time 
    - Fri, 18 Oct 2013 22:30:08 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 18 Oct 2013 22:30:08 +0300] rev 515
 
    - now displays build type in the window title (unless a release build of a release), fixed some macro shenanigans
 
    - Fri, 18 Oct 2013 22:07:26 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 18 Oct 2013 22:07:26 +0300] rev 514
 
    - made messagelog handle messages with newlines
 
    - Fri, 18 Oct 2013 21:52:09 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 18 Oct 2013 21:52:09 +0300] rev 513
 
    - Added a crash catcher which trigger under Linux. It calls GDB and tries to get a backtrace. Also integrated assertion failure handling to this new system. Removed the print() function in the process (because the new bomb box uses a text edit and QTextDocuments's print method clashes with the macro and I figured it was a good idea to rid it anyway) and replaced all calls with log().
 
    - Fri, 18 Oct 2013 18:16:54 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 18 Oct 2013 18:16:54 +0300] rev 512
 
    - fixed: LDForge would crash if message log got full - the older lines would be removed with ::erase, which now expects an iterator because of the recent transition to QList. Why does QList::iterator allow 0 to be passed?
 
    - Fri, 18 Oct 2013 18:12:23 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 18 Oct 2013 18:12:23 +0300] rev 511
 
    - fixed a small memory leak
 
    - Fri, 18 Oct 2013 17:57:42 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 18 Oct 2013 17:57:42 +0300] rev 510
 
    - Fixed: LDForge would sometimes crash over unitialized data in the GL renderer. This crash sure eluded me for a while. Turned out zoomToFit(), which uses m_width and m_height is called before resizeGL() which initializes these variables. This data is used in an operator new[] call.
 
    - Fri, 18 Oct 2013 17:47:05 +0300
 
    - by Santeri Piippo <crimsondusk64@gmail.com> [Fri, 18 Oct 2013 17:47:05 +0300] rev 509
 
    - - added debug/release build configuration. Debug builds are really useful things!
- fixed an assertion failure with use of QString::operator[]