QxOrm 1.4.4 and QxEntityEditor 1.2.2 released : boost dependency fully removed (replaced by C++11 features)



  • Hello,

    QxOrm library 1.4.4 and QxEntityEditor application 1.2.2 just released !

    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 !

    QxOrm library 1.4.4 changes log :

    • 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 :

    • 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

    alt text

    You can download latest version of QxOrm library and QxEntityEditor application on QxOrm website.


Log in to reply