<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BobinkQtOpcUa, branch master</title>
<subtitle>High-level C++/QML library for making OPC UA applications with Qt Quick</subtitle>
<id>http://git.tvcloud.fr/cgit.cgi/BobinkQtOpcUa/atom?h=master</id>
<link rel='self' href='http://git.tvcloud.fr/cgit.cgi/BobinkQtOpcUa/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkQtOpcUa/'/>
<updated>2026-04-01T09:54:12Z</updated>
<entry>
<title>Check all unchecked return values and guard error paths</title>
<updated>2026-04-01T09:54:12Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-04-01T09:54:12Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkQtOpcUa/commit/?id=ed9025f03aa6fcbf720f4e022f3594c85de0a385'/>
<id>urn:sha1:ed9025f03aa6fcbf720f4e022f3594c85de0a385</id>
<content type='text'>
</content>
</entry>
<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/cgit.cgi/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>Suppress duplicate valueChanged after writeValue</title>
<updated>2026-03-24T15:14:11Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-03-24T15:14:11Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkQtOpcUa/commit/?id=6816fc573608cf9a5783caeabd47b8dbe1ac5ac5'/>
<id>urn:sha1:6816fc573608cf9a5783caeabd47b8dbe1ac5ac5</id>
<content type='text'>
Add m_pendingWrite flag to skip the write-path valueAttributeUpdated
emission and let only the monitored item deliver the authoritative
server value. Mirrors the existing m_pendingRangeWrite pattern.
</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/cgit.cgi/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>Fix auto-accept certificate blocking for 30s on event loop timeout</title>
<updated>2026-03-09T10:16:56Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-03-09T10:16:56Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkQtOpcUa/commit/?id=47096b375797c38b5b1e79f1366f1152cc292875'/>
<id>urn:sha1:47096b375797c38b5b1e79f1366f1152cc292875</id>
<content type='text'>
When acceptCertificate() was called synchronously from the
certificateTrustRequested signal handler, m_certLoop was still nullptr
so the quit() call was a no-op. The event loop then blocked for the
full 30-second timeout. Skip the event loop when m_certAccepted is
already set by a synchronous handler.
</content>
</entry>
<entry>
<title>Update README.md</title>
<updated>2026-03-06T14:51:16Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-03-06T14:51:16Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkQtOpcUa/commit/?id=e35f8dd0deca155353f7e0ba2477ec6eda764acb'/>
<id>urn:sha1:e35f8dd0deca155353f7e0ba2477ec6eda764acb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix implicitWidth binding loop in certificate trust dialog</title>
<updated>2026-03-06T14:13:06Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-03-06T14:13:06Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkQtOpcUa/commit/?id=1c934401dae122a063890fee1d6f39b94d2afeeb'/>
<id>urn:sha1:1c934401dae122a063890fee1d6f39b94d2afeeb</id>
<content type='text'>
Set explicit implicitWidth on the Dialog to prevent the Fusion style
binding loop warning, and add text wrapping for certificate info.
</content>
</entry>
<entry>
<title>Fix all qmllint warnings in demo QML files</title>
<updated>2026-02-26T12:56:43Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-26T12:56:43Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkQtOpcUa/commit/?id=d2e8cebe210d558d4abba31eebfb83155e7e5009'/>
<id>urn:sha1:d2e8cebe210d558d4abba31eebfb83155e7e5009</id>
<content type='text'>
- Add pragma ComponentBehavior: Bound to both QML files
- Qualify unqualified property accesses with component id
- Replace var logFunction property with logRequested signal
- Fix layout-managed Rectangle to use implicitHeight
- Register OpcUaNodeInfo gadget as QML_VALUE_TYPE
</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/cgit.cgi/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>Add README and QML usage guide for UI designers</title>
<updated>2026-02-25T14:14:24Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-25T14:14:24Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/cgit.cgi/BobinkQtOpcUa/commit/?id=9507f9779809bd077705d1ad54384f714b41c122'/>
<id>urn:sha1:9507f9779809bd077705d1ad54384f714b41c122</id>
<content type='text'>
</content>
</entry>
</feed>
