fixed: deleting objects would trigger a crash

more minor changes

style corrections

i'm dumb

also removed the if() case mentioned in the prior commit from addObjectDialog.cpp. :P

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.

- migrated selection from ForgeWindow to individual LDFiles. Should've done this long ago.

changeProperty(): don't change the property if the value would not change, this should save some procecssing..

initialize GLRenderer::m_hoverpos to (0, 0, 0)

cosmetic fixes

fixed: the file loader would skip every 300th line. And I thought I was going nuts when my quads kept disappearing...

Made the config dialog use a list widget for navigation over a tab widget.

- added LDSharedVertex class for holding copy-on-write vertices. Will need this for future features..

now displays build type in the window title (unless a release build of a release), fixed some macro shenanigans

made messagelog handle messages with newlines

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().

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?

fixed a small memory leak

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.

- added debug/release build configuration. Debug builds are really useful things!

removed some custom functions in favor of Qt implementations

reworked the ring finder algorithm greatly, tries harder to find the optimal solution

Added last-resort ring draw with quads

Ring draw: maintain separate polygons for the ring circles and draw them separately of the ring fill to prevent artifact lines from being drawn

Removed the List -> QList alias, use QList directly

removed the List class in favor of QList

removed debug prints from the ring finder

ring finder integrated! it lives!

(0) -300 -100 -50 -28 +28 +50 +100 +300 tip

mercurial