- use QML type names if available
- do not expand lists and maps in sub-objects to keep the output short
- do not explicitly list superclasses - just collect all properties
- shorten output for objects with no properties
Also added code to detect recursions.
Closes: #885
This was done for 2023.11.2 to decouple the cookie saving from the
Config mechanism, but this ended up backfiring:
Both the 'Cache' and 'AppData' standard paths were affected by that
change (as in, there's an additional sub-directory named "BrickStore").
The Cache part is easy, as we can just go back to the old
cache directory (it's just a cache after all). For the AppData, we
need to make sure that people haven't copied and later modified
their extensions.
- updated the main license from GPLv2 to GPLv3. This was necessary
because newer Qt modules (like Quick3D) are not available under
the GPLv2 anymore.
- replaced the verbose per-file license headers with SPDX headers.
- license headers were missing in most QML files and scripts.
- simplified the license section of the "About" dialog.
By defining QT_USE_QSTRINGBUILDER globally, we can get rid of all the
individual #include <QStringBuilder> and the weird looking operator%
based concatenations.
Also cleaned up the Exception implementation while at it.