<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BobinkQtOpcUa/demo/Main.qml, 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/Main.qml?h=master</id>
<link rel='self' href='http://git.tvcloud.fr/BobinkQtOpcUa/atom/demo/Main.qml?h=master'/>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/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/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/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>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/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/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/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>Improve demo UI: server info page, page descriptions, layout polish</title>
<updated>2026-02-20T15:40:42Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-20T15:40:42Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=547f2830beb89c4c5152959fe9f852e5237f79ad'/>
<id>urn:sha1:547f2830beb89c4c5152959fe9f852e5237f79ad</id>
<content type='text'>
Add Server Info as the landing page after connection (CurrentTime,
StartTime, State, ProductName, SoftwareVersion). Add Non-Existent
Nodes test page. Add descriptions to all pages.

Show displayName in identifier column, format ServerState enum as
human-readable string. Improve server list layout (name + URI stacked).
Show scrollbar when list overflows, make PKI Configure a regular button.
</content>
</entry>
<entry>
<title>Rename classes to OpcUa* prefix, replace BobinkNode with OpcUaMonitoredNode boilerplate</title>
<updated>2026-02-20T09:41:09Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-20T09:41:09Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=0012cb312e92c33f5263478d318eb82da22ee879'/>
<id>urn:sha1:0012cb312e92c33f5263478d318eb82da22ee879</id>
<content type='text'>
Rename BobinkAuth → OpcUaAuth, BobinkClient → OpcUaClient (C++ class
names only; QML module URI and singleton name stay as Bobink).
Remove BobinkNode (QQuickItem-based) and add OpcUaMonitoredNode
skeleton using QObject + QQmlParserStatus, following Qt convention
for non-visual QML types.
</content>
</entry>
<entry>
<title>Refactor BobinkClient and clean up comments</title>
<updated>2026-02-19T21:59:08Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-19T21:59:08Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=f4da422087f77ce9a549ff73250910e5ae217ff0'/>
<id>urn:sha1:f4da422087f77ce9a549ff73250910e5ae217ff0</id>
<content type='text'>
- Format BobinkAuth.cpp to match GNU style used elsewhere
- Replace brittle error name array with QMetaEnum in BobinkClient
- Move QOpcUaPkiConfiguration include from header to .cpp
- Replace m_discoveryInterval member with file-scope constant
- Add doc comments to SecurityMode and SecurityPolicy enums
- Comment endpoint selection strategy in handleEndpointsReceived
- Add missing QML ids to connectionPage and serverListView
</content>
</entry>
<entry>
<title>Reorganize BobinkClient by domain and make s_instance private</title>
<updated>2026-02-19T21:31:16Z</updated>
<author>
<name>Thomas Vanbesien</name>
<email>tvanbesi@proton.me</email>
</author>
<published>2026-02-19T21:31:16Z</published>
<link rel='alternate' type='text/html' href='http://git.tvcloud.fr/BobinkQtOpcUa/commit/?id=364430e417600c68133673254b58b4d35608777a'/>
<id>urn:sha1:364430e417600c68133673254b58b4d35608777a</id>
<content type='text'>
Group header and source by domain (Connection, Discovery, PKI) so
properties, methods, and signal handlers live together. Move enums
before constructor, move s_instance to private, and add a public
instance() accessor used by BobinkNode.
</content>
</entry>
</feed>
