
The Grantlee Template System
============================

Version History
---------------

-- Version 5.3   --
-------------------
* Use C++11 nullptr where appropriate
* Use QRandomGenerator instead of deprecated qRand
* Increase compatibility with Qt 6 APIs
* Add CMake option to build with Qt 6 - GRANTLEE_BUILD_WITH_QT6
* Support enum introspection on Q_GADGET
* filesizeformat implementation as well as localized filesize
* Make enums comparable with more operations
* Add "truncatechars" filter
* Fix concatenation of string lists


-- Version 5.2   --
-------------------
* Increase CMake requirement to version 3.5
* Port scriptable extensions to QJSEngine provided by QtQml
* Support reading properties from Q_GADGETS
* Remove TestCocoon integration
* Clean up documentation to clarify introspection requirements
* Fix mixing of {% include %} and {% extends %} tags
* Fix various bugs discovered by fuzzing
* Remove use of TR1 library features from unit tests
* Remove obsolete build options
* Document that loading templates from Qt Resources is possible


-- Version 5.1   --
-------------------
* Implement advanced operators for the {% if %} tag
* Use 'd' postfix for plugins built in debug mode
* Use 'd' postfix for libraries built in debug mode by Visual Studio
* Make it possible to build without QtScript and QtLinguistTools
* Bump Grantlee CMake requirement to 3.1.
* Bump Grantlee Qt requirement to 5.3.

-- Version 5.0.0 --
-------------------
* Drop Qt 4 build. Make Qt 5 a hard requirement.
* Add a porting guide for users of old versions of Grantlee.
* Drop custom handling of QObjects and containers in QVariant.
* Drop old names 'grantlee_core' and 'grantlee_gui' in favor of 'Templates' and 'Textdocument' respectively.
* Rely on modern CMake features such as IMPORTED targets and usage requirements.
* Bump Grantlee CMake requirement to 2.8.12.
* Make the virtual Grantlee::Node::render method const.
* Merge LocalizedFilesystemTemplateLoader into FilesystemTemplateLoader.
* Remove typedefs for QSharedPointers from APIs.

-- Version 0.5.1 --
-------------------
* Make the coverage target work with Qt 5.
* Make the examples build with Qt 5.
* Drop the Qt 5 requirement to 5.2.0 from 5.3.0.
* Don't unload plugins when no longer used.

-- Version 0.5.0 --
-------------------
* Bump Grantlee CMake requirement to 2.8.11.
* Fix parsing of filter expressions in the extends tag.
* Export CMake targets for grantlee plugins.
* Add a way to build Grantlee with Qt 5.

-- Version 0.4.0 --
-------------------
* Bump Grantlee CMake requirement to 2.8.9.
* Use the CMAKE_AUTOMOC feature in Grantlee.
* Clean up all CMake code.
* Fix memory leak when deleting a localized template loader.
* Clean up C++ code in preparation for Qt 5.
* Update jQuery version used in example to the latest release.
* Add API for resolving variables to strings in QtScript.
* Fix tests on ARM and other platforms which use float for qreal.

-- Version 0.3.0 --
-------------------
* Implement dictsort filter.
* Implement convenience to get the size and count from a container.
* Add many unit tests to improve coverage.
* Remove some dead code reported by coverage analysis
* Add roman numerals as list item output format.

-- Version 0.2.0 --
-------------------
* Escape separator in the join tag
* Fix build on solaris and similar buildsystems.
* Fix build on OSX
* Pass unit tests if run before installation
* Add a testcocoon target for generating coverage data.
* Run tests in alternative locale as part of release process.


-- Version 0.1.9 --
-------------------
* Port the lexer to a state machine based string parser
* Add feature to trim insignificant whitespace
* Build with stricter Qt flags QT_NO_KEYWORDS and QT_NO_CAST_FROM_BYTEARRAY
* Add example application for a html based templated application framework
* Add documentation and convenience functions for QObject and Q_PROPERTY introspection
* Modernise the CMake build system including creation of EXPORT targets and fixing of various cross-platform issues.
* Add a componentized CPack packaging system for binary tarballs and windows install wizards.
* Ability to use COMPONENTS argument to find_package with Grantlee.
* Add a build target for generating code coverage information.
* Platform fixes for MIPS, ARM and MinGW
* Add more documentation for example applications shipped with the Grantlee source.
* Add the changelog for prior versions of Grantlee

-- Version 0.1.8 --
-------------------
* Add support for internationalization and localization features.
* A new contacts/address book application
* Support for outputting QDate and QTime objects.
* Automatic loading of QtScript based plugins

-- Version 0.1.7 --
-------------------
* Ability to iterate or introspect any type in a QVariant.
* License compliance update in header sections
* Documentation of remaining API
* Updates to build and release scripts.

-- Version 0.1.6 --
-------------------
* Fix crash on Windows in release mode
* Fix multiple memory leaks when QtScript based plugins are used.
* Several maintenance patches
* Some new unit tests

-- Version 0.1.5 --
-------------------
* Make it possible to implement template tags in a re-entrant way.
* Make compiled Template objects cacheable
* Make it possible for the scripted filters to inject QObjects and arrays to
scripts.
* More code maintainability improvements.
* Build Grantlee properly in release mode on Windows
* Make Grantlee build against Qt 4.5 (regression since v0.1.4)
* Several release system improvements

-- Version 0.1.4 --
-------------------
* Use explicit latin1 encoding for literals internally in Grantlee
* Make it possible to compile Grantlee against a Qt built with
QT_NO_CAST_FROM_ASCII
* Support for accessing more QObject properties such as children() and
objectName()
* Add the {% title %} tag to the default plugin library
* Minor features, bugfixes and tests ported from Django version 1.2
* Built-in support for finding default plugins from the installed location

-- Version 0.1.3 --
-------------------
* Fix parsing of literal string arguments in template tags
* Support QStringList as an input argument.
* Add ruby output support to the code generator example

-- Version 0.1.2 --
-------------------
* Find templates in multiple directories specified in setTemplatePaths.
* Support the use of enumerations in templates

-- Version 0.1.1 --
-------------------
* Workaround applications segfaulting on close when using scriptable tags with Qt 4.7
    (https://bugs.webkit.org/show_bug.cgi?id=38193)
    Script support now compiled directly into the core library.
* Add a 'make test' target for running tests.
* Images sometimes not found in template paths.

-- Version 0.1.0 --
-------------------
Initial release. Features:
* Core library based on Django 1.1
* Gui library for handling QTextDocument
* Loader tags library
* Default tags library
* Default filters library
* Scriptable plugin library
* Unit tests
* Example applications
* Documentation

