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

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.