<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BobinkQtOpcUa/demo/CMakeLists.txt, branch master</title>
<subtitle>High-level C++/QML library for making OPC UA applications with Qt Quick</subtitle>
<id>http://git.tvcloud.fr/BobinkQtOpcUa/atom/demo/CMakeLists.txt?h=master</id>
<link rel='self' href='http://git.tvcloud.fr/BobinkQtOpcUa/atom/demo/CMakeLists.txt?h=master'/>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/'/>
<updated>2026-03-31T15:44:35Z</updated>
<entry>
<title>Add passphrase-protected private key support</title>
<updated>2026-03-31T15:44:35Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-03-31T15:44:35Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=f3beb1624c24012c246d17a40c4e10c1c6b3b5b5'/>
<id>urn:sha1:f3beb1624c24012c246d17a40c4e10c1c6b3b5b5</id>
<content type='text'>
Wire up QOpcUaClient::passwordForPrivateKeyRequired to a QML dialog,
mirroring the existing certificate trust flow (local QEventLoop + 30s
timeout).
</content>
</entry>
<entry>
<title>Refactor Main.qml into separate components and add comments</title>
<updated>2026-03-23T13:55:32Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-03-23T13:55:32Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=5ff9705937ffc1647587e1b228effd30c8a0e309'/>
<id>urn:sha1:5ff9705937ffc1647587e1b228effd30c8a0e309</id>
<content type='text'>
Extract ConnectionPage, CertTrustDialog, and DebugConsole from Main.qml
into their own QML files. Add inline comments to
OpcUaMonitoredNode::handleValueUpdated explaining the range write guard,
value store, and timestamp update.
</content>
</entry>
<entry>
<title>Add .qmlformat.ini, qmlls support, and format QML files</title>
<updated>2026-02-25T17:08:28Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-25T15:11:53Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=7bb49eabdf8d86567660c8825892eb323fa6e674'/>
<id>urn:sha1:7bb49eabdf8d86567660c8825892eb323fa6e674</id>
<content type='text'>
- Enable QT_QML_GENERATE_QMLLS_INI for QML Language Server support
- Add IMPORT_PATH to demo's qt_add_qml_module so .qmlls.ini includes
  the local build QML directory alongside the Qt system path
- Add editor setup section to README with qmlls and qmlformat guidance
- Add QML formatting section to French guide
- Reformat demo QML files with .qmlformat.ini (line wrapping at 80 cols)
</content>
</entry>
<entry>
<title>Make build system usable as a git submodule</title>
<updated>2026-02-24T17:18:31Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-24T16:41:35Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=3e8111aaee070dc9b5d51cab3fd44ff88841f63e'/>
<id>urn:sha1:3e8111aaee070dc9b5d51cab3fd44ff88841f63e</id>
<content type='text'>
Replace CMAKE_SOURCE_DIR/CMAKE_BINARY_DIR with PROJECT_SOURCE_DIR/
PROJECT_BINARY_DIR so paths resolve correctly from add_subdirectory().
Guard global settings (CMAKE_CXX_STANDARD, CMAKE_BUILD_RPATH,
qt_standard_project_setup, demo) behind PROJECT_IS_TOP_LEVEL.
Export OPEN62541_INSTALL_DIR and QTOPCUA_INSTALL_DIR as CACHE INTERNAL
so parent projects can set up RPATH and plugin paths.
</content>
</entry>
<entry>
<title>Install QtOpcUa to local prefix instead of system Qt directory</title>
<updated>2026-02-19T21:25:47Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-19T21:25:47Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=5fe029fd127dd70079a01eb6dfbd347954bba9de'/>
<id>urn:sha1:5fe029fd127dd70079a01eb6dfbd347954bba9de</id>
<content type='text'>
Add QTOPCUA_INSTALL_DIR and CMAKE_INSTALL_PREFIX so QtOpcUa installs
to build/deps/qtopcua-install/ rather than polluting ~/Qt/6.10.2/.
Use QT_ADDITIONAL_PACKAGES_PREFIX_PATH so Qt's find_package resolves
OpcUa from the local install.
</content>
</entry>
<entry>
<title>Rename QML singleton to Bobink and simplify singleton lifecycle</title>
<updated>2026-02-19T17:00:52Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-19T17:00:52Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=e73fe498e86dbb20d74f8d6ca13b541642676b82'/>
<id>urn:sha1:e73fe498e86dbb20d74f8d6ca13b541642676b82</id>
<content type='text'>
Replace QML_ELEMENT with QML_NAMED_ELEMENT(Bobink) so QML references
use `Bobink` instead of `BobinkClient`. Remove instance()/create()
factory in favor of inline s_instance set in the constructor. Import
BobinkPlugin statically in demo, link demo to BobinkQtOpcUaplugin,
and make library link dependencies PUBLIC. Add .qtcreator to gitignore.
</content>
</entry>
<entry>
<title>Add BobinkNode QML type and two-page demo for node monitoring</title>
<updated>2026-02-19T05:18:29Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-19T05:18:29Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=0c1df583acba434e2d7f6905a30fdefe288d0f9d'/>
<id>urn:sha1:0c1df583acba434e2d7f6905a30fdefe288d0f9d</id>
<content type='text'>
BobinkNode (QQuickItem) monitors a single OPC UA node with
automatic lifecycle: monitoring starts/stops based on item
visibility (StackView page switches, Loader, etc.).

Properties: nodeId, value (r/w), status, sourceTimestamp,
serverTimestamp. On-demand readAttribute() for metadata.
writeError signal for failed writes.

Demo restructured with StackView: connection page → two node
pages demonstrating the visibility-based monitoring lifecycle.
</content>
</entry>
<entry>
<title>Rename targets, route messages to debug console, clean up</title>
<updated>2026-02-19T04:38:24Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-19T04:13:42Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=a0c7f2a7ef04dbe2e7491eabf828e26423d1bd10'/>
<id>urn:sha1:a0c7f2a7ef04dbe2e7491eabf828e26423d1bd10</id>
<content type='text'>
- Rename CMake project and library target to BobinkQtOpcUa (URI stays Bobink)
- Rename demo target to BobinkDemo, output binary to build/bin/
- Route all QML status/error messages to the in-app debug console
- Remove discoveryInterval QML property, default to 30s internally
- Add errorChanged handler, PKI file validation in applyPki()
</content>
</entry>
<entry>
<title>Initial Bobink library: BobinkAuth, BobinkClient, and demo app</title>
<updated>2026-02-17T22:58:08Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-17T22:58:08Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=343169dff6b062074fd3c4a5e240b449ffc4a449'/>
<id>urn:sha1:343169dff6b062074fd3c4a5e240b449ffc4a449</id>
<content type='text'>
Implements the core OPC UA wrapper library with:
- Build system with automatic dep building (open62541, QtOpcUa)
- BobinkAuth: QML auth component (anonymous/userpass/certificate)
- BobinkClient: QML singleton managing connection, LDS discovery,
  PKI configuration, endpoint selection, and certificate trust flow
- Demo app for manual testing of the full connection flow
</content>
</entry>
</feed>
