View Full Version : [ANN] QxOrm 1.4.4 and QxEntityEditor 1.2.2 released : boost dependency fully removed

7th June 2017, 19:36

QxOrm library 1.4.4 (Qt ORM) and QxEntityEditor application 1.2.2 just released ! (http://www.qxorm.com/)

QxOrm library doesn't depend on boost framework anymore (the boost dependency has been fully removed, replaced by some C++11 features).
So QxOrm library is now a pure Qt library which depends only on QtCore and QtSql by default.
For backward compatibility, QxOrm library still supports some boost classes (boost smart-pointers, unordered containers, boost::optional, etc...) : you have to define _QX_ENABLE_BOOST compilation option to enable these features.

Main advantages are :

QxOrm becomes a much lighter library
easier to install (because you don't have to deal with boost anymore)
reduce compilation times
reduce output binary size

Thx also to Jimmy Taker for several improvments and new features in QxModelView module (https://www.qxorm.com/qxorm_en/manual.html#manual_90) !

QxOrm library 1.4.4 changes log : (https://www.qxorm.com/qxorm_en/manual.html)

QxOrm library now requires a C++11 compiler (please note that QxOrm doesn't require a full compliant C++11 compiler : for example, QxOrm can be built and used with MSVC 2012, GCC 4.5 or Clang 3.2)
Implement PIMPL idiom for some QxOrm classes to reduce compilation times and output binary size
New class named qx::any to replace boost::any (basic implementation of boost::any written by Kevlin Henney)
qx_shared_ptr alias doesn't exist anymore : it is replaced everywhere by std::shared_ptr
QxModelView module : all models based on qx::IxModel class can now be sorted (on all columns), please note that you can also use QSortFilterProxyModel Qt class to sort your model
QxModelView module - qx::QxModel<T> : fix setData() with e_auto_update_on_field_change option when an error occurred saving data in database, now previous value is restored if an error occurred
QxModelView module - qx::IxModel : fix setHeaderData() using it with default role (Qt::EditRole) changes the header in a header view (role Qt::DisplayRole)
QxModelView module - qx::IxModel : if a description is registered in QxOrm context, then it is displayed in header for each property
QxModelView module : new feature available to add automatically an empty row at the end of the table to insert quickly new items (setShowEmptyLine() method)
QxModelView module : possibility to define an intermediate base class between qx::IxModel and qx::QxModel<T> to provide your own model features, for example imagine you develop a drag&drop feature in a class named IxModelDragDrop, you can now create a QxOrm model like this (see the second template parameter) : qx::IxModel * pModel = new qx::QxModel<MyPersistantClass, IxModelDragDrop>();
QxOrm.pro : fix DESTDIR parameter on Windows
QxOrm.pri and QxOrm.cmake : add a section to enable QT_USE_QSTRINGBUILDER to optimize QString operations
QxOrm library is now tested with MSVC 2015 compiler (support all MSVC versions from 2012)
Fix a bug in QxSqlError.h file with a qPrintable() call on a temporary object
Provide more details in logs after executing a SQL query : time to execute query in database + time to fetch C++ instances
Support std::optional<T> (if your compiler supports C++17 features) to manage NULL database value : new header available named <QxExtras/QxStdOptional.h> to include just after <QxOrm.h> header file (ideally in a precompiled header)

QxEntityEditor application 1.2.2 changes log : (https://www.qxorm.com/qxorm_en/manual_qxee.html)

Fix an issue after importing a project (from database or JSON file) which forced user to refresh or reload current project
Improve performance (fetching less data from database) when loading relationships from generated persistent classes (bLoadFromDatabase parameter)
Change model/view export plugin to take into account some improvments available in the new version of QxOrm library
Support changes of new QxOrm version : remove boost dependency by default and enable C++11 features
Improve Javascript engine to customize exports : add 3 functions available in js script to get all QxEntityEditor settings (at global level, project level and plugin level)
Check entities schema before exporting to C++ project : if a design error is detected, then display a message to user
Fix SQL type field in property settings : now you can put parenthesis (for example VARCHAR(255) is now allowed)
DDL export for MySQL (and MariaDB) : add ` character to escape column name and table name
Add full path to project in recent projects list and main window title bar
Now it is easier to select a relationship from entities diagram with a simple click on it


You can download latest version of QxOrm library and QxEntityEditor application on QxOrm website (http://www.qxorm.com/).