The Zuble core QML extension plugin is a shared library written in C++ that provides a set of low-level QML objects designed to support Zuble's QML stack. The plugin provides a number of application services including:
Zuble plugins can be used independently of the zbl runtime host and QML stack. It allows custom Qt applications to use the Zuble plugins. This feature also supports Zuble QML extension object unit testing. Be advised that the plugin exposes a number of QML and XML attack surfaces which are magnified when used outside the SNAP application environment and thus care must be taken in plugin deployment.
The Zbl object is the primary QML API to the core plugin. It is present in the global scope of QML documents that include the Zuble core plugin module. The Zbl object is a thread-based singleton, meaning there exists a separate, individual Zbl object in each Zuble script thread's global scope as well as in the main application GUI thread's global scope.
Zuble replaces the standard Qt application log handler with a custom designed handler that allows output in optional JSON format which can be read by Zuble's log reader application. The core plugin uses log categories to separate log output from individual QML extension objects for filtering purposes.
[link to logger page]
Zuble provides a set of QML wrappers to several of Qt's low-level I/O classes so that QML programs can use them to perform I/O operations, and a custom data model (ZTableModel) for passing data to visual objects and between threads. I/O operations should only be performed in background script threads since they can block, which interrupts user interaction with the application if performed in the main GUI thread.
ZTableModel is a thread-safe data model that can be utilized to pass data between Zuble's background script threads and visual objects of the QML scene in the main GUI thread. It's used by Zuble's log manager and the log reader application.
Zuble documentation copyright © 2019 Bob Dinitto. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Zuble is a derivative work of Qt version 5. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.