minor cleanup

- added build_shared to .gitignore

- Improved coordinate rounding, replaced the hack with a proper implementation, now rounds properly and works on subfiles as well

- Renamed common.h to main.h, split the PROPERTY macro and supporting macros to property.h

- Changed the callback parm of PROPERTY to a stock/custom write method argument.

- upgraded the PROPERTY macro, resulting in a major code refactor

- ensured header files' guards start with LDFORGE_

removed old and unused src.pro file

renamed the version to 0.3-alpha in the changelog

changelog entry

Made rotation/pan/zoom values camera-dependant (so now there's 7 sets of them instead of 1)

updated .gitignore

removed the legacy dir

forgot the new icons

- Added new actions "Hide" and "Reveal" which allow direct setting of objects' visibility setting instead of toggling it.

added a configuration option for line anti-aliasing

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!

Finally got the ringfinder working! Working on integrating it to ring drawing...

Ring drawing: previewing complete

further cleansing - removed most uses of unsigned ints, removed list reversers

a bit more cleanup

nuked "container_cast"

When drawing circles, draw the radius in the middle

further cleanup

last code reformatting i swear

Added a new editing mode for drawing circles.

it's LDForge's 1st birthday!

Stuff

Further work on VAO rendering

VAO rendering works now! woo!

Merge branch 'master' into gl, reworked stuff

For some reason, of all changesets, 4fb5763 made compiling subfiles extremely slow. WTF? Reverted the change to restore compilation speed.

down with cmake!

made LDFile interfacing a bit clearer

removed unused LabeledWidget

redirect the user to configuration if the download path is not given

err

rework quick color code a tad

rename RadioBox to RadioGroup

bit of a clarification

fixed: couldn't open larger files because of a type mismatch in moc method calling, leading into runtime problems

fixed: front and back camera wouldn't render anything

Apparently CMake requires the moc files to be compiled separately.. qt4_wrap_cpp does nothing if I don't include the results in the executable... why?

add .kdev_include_paths to gitignore

Changed build system from qmake to CMake.

merged aboutDialog.cpp to dialogs.cpp

stuff

Fixed crash with closing: since logoed studs are now loaded, the first file in g_loadedFiles is not explicit anymore. the closing code assumed this

more changes. Spawn the config prompt on first start, on the profile tab. gl_colorbfc and gl_blackedges now default to false.

woo smallification!

Added ListConfig type, using it in recent files now

minor cleanup

removed broken config type check

added profile data auto-filling

ensure that all Configs are polymorphic

bit more cleanup

- added "Go to line" action, renamed the config classes to proper camelcase

Cut the Object-suffix from LDObject types, it doesn't help things at all

Use QFlags for the inlining flags, type-safety++

Rewrote stud logo support, restructuring inlining stuff in the process. Logoed studs must only be used for rendering scenes, otherwise they will for instance get inlined in and that's not desired, or the vertex snapper will catch onto the logo's coordinates.

added support for logoed studs

more cleanup

Code formatting: use same separators everywhere, remove extra spaces from license headers, simplified message manager api a bit

ask the user for isecalc's path if adding edges to intersector output and no path is defined

added missing UI file

ask the user for ext prog paths instead of telling to go to configuration if no path is defined

minor change

made config dialog default to the correct tab again

made downloaded files be stored into recent files

Use a busy cursor while compiling all

Use brighter text color with dark backgrounds for the message manager

::getIndex() should never return -1 if ::file() is not null so no check needed there..

fixed: LDObject's various methods still assumed that the current file wouldn't change

Added action "add history line" for adding new history entries

rework

Picking now works with the VAO setup

BIG COMMIT -- Moving from display lists to VAOs.

camera icons now draw real tooltips instead of faking them

fixed crashing with inlining

updates to recent files menu

corrected problems with the version string

Converted configuration code to use QSettings.

Merged PartDownloader into the prompt and renamed the prompt to PartDownloader

now with changelog entry

Moved the alias macro to common.h

finalized downloading

stability to downloading

added config option, refined logic and regexps. This behaves coherently now. :)

More work on downloading

handle errors

now actually downloads parts

added missing files

Begin groundwork on downloading from ldraw.org

Create README.md

Angles need to be reset when changing the current file too

Fixed crash on opening a file

style cleanup - it should be all unified now

chglog

If the vertex snapper finds a vertex closer than 4 pixels, it likely is the vertex being looked for and the algorithm can terminate early, hopefully this will save a few cycles on large parts.

added support for BFC CLIP/NOCLIP

Added an option for listing implicit files

Added an action for creating a new, blank file, improved multi-file stability

No need to test whether it's safe to close all when creating a new part anymore, since it no longer closes anything.

some further little optimization

Don't recompile everything when using quick colors, this speeds things up a little

more cleanup

cleanup

Include the moc files in the source cpp files to reduce compile time

Renamed LDOpenFile to LDFile

- fixed: checking the hi-res option would not allow segment values over 16.

primitive generator: added support for multiple spaces before primitive numbers, add "Hi-Res" to the names of 48/ primitives

Separated LDConfig.ldr-specific stuff to ldconfig.cpp/h

commentary++

cosmetics

Made File::iterator private - it's used only for range-for loops so it should not be used by anything else than File itself.

Renamed vector to List, changed it to wrap around std::deque.

Use repaint() instead of update() when redrawing the scene after a pick so that the new scene is repainted immediately.

Fixed crashing when closing all

stuff

restyle

Apply the proper edge color in the color sector too

restyle colorselectdialog.cpp

Further restructure, removed GUI toolbar icon size slider (always 22x22 now)

fixed: the list view couldn't select multiple items anymore

some rework with closing files, not right there, seems

change camera to top if switching to draw mode in free camera

Finalized multi-file behavior. The future is here! :P

behavior update

Added actions for saving all files, closing and closing all files

Multiple file support works now! woo!

moved ext program action definitions to extprogs.cpp rather than proxying it through gui_editactions.cpp

fixed config dialog crashing

Shortcuts are now properly loaded again

updates on file list

File list is populated now..

Converted ForgeWindow to Designer UI(!)

restructure; removed g_BBox

Moved the bbox class to types

Made the pointer to current file a private member of an anonymous shell class, thus getting accessors

more formatting

Appended 'Object' to the names of all LDObject derivatives so even though the LD prefix isn't reserved for just LDObjects anymore, these classes remain distinct

Reformatting..

Bump version to 0.2.999-intern now that 0.2-alpha is out.

Tag 0.2 alpha

Fixed compilation under windows/qt5

added missing openprogress.ui

make aborting work in the new setup

make file loading be done properly as just a QObject rather than multi-threaded..

handle empty lines better

Use system clipboard rather than an internal one

apply the c++11 'override' keyword to overriding virtual functions

fixed: history is supposed to be closed by default

further work on primitive cond-lines. I think I got it now.

Renamed the color class to LDColor for clarity

primitive generator: add conditional lines to cylinders; improved bad color handling

Added history functionality for swapping

fixed: double-clicking an object and editing it that way would not register to history

when inlining (as an action), reinterpret the inlinees so that there's not any pointer mess-ups

more restyle/refactor

restyle..

Removed the two string arrays containing object types and icon names, moved these as LDObjects' virtual functions

Cleaned up the toolbars, removed clutter by removing most of the not-so-often-used items

removed the history dialog, it doesn't fit in with the new history system

Fixed: color selector prompt would crash if no default was given

dded an action to quickly toggle BFC red/green view.

(0) -192 +192 tip

mercurial