Skip to content

feat(sdk): parser dialog injection with config persistence#30

Merged
pabloinigoblasco merged 1 commit into
developmentfrom
feat/parser-dialog-config-persistence
Apr 4, 2026
Merged

feat(sdk): parser dialog injection with config persistence#30
pabloinigoblasco merged 1 commit into
developmentfrom
feat/parser-dialog-config-persistence

Conversation

@pabloinigoblasco
Copy link
Copy Markdown
Collaborator

Summary

Adds support for injecting parser-specific option dialogs into data source dialogs (MQTT, ZMQ) via a pj_parser_slot widget. When the encoding combo changes, the DialogEngine queries the parser_dialog_provider callback and dynamically loads the parser's UI into the slot.

Changes

SDK extensions:

  • WidgetData: setPlainText(), setFolderPicker()
  • WidgetDataView: plainText(), isFolderPicker(), folderPickerTitle()
  • WidgetEvent: folderSelected()
  • DialogPluginTyped: onFolderSelected() virtual dispatch
  • widget_binding: QPlainTextEdit support

DialogEngine:

  • QueryParserDialogFn callback to resolve parser dialog vtables
  • initial_parser_config for restoring parser dialog state
  • parserConfig() accessor for retrieving parser config after accept
  • Folder picker support via QFileDialog::getExistingDirectory

Proto app:

  • Parser config persistence in QSettings (ParserConfig/{source})
  • setParserConfig() on DataSourceSession for delegated ingest
  • Error propagation from parser in rhPushRawMessage

Test Plan

  • MQTT + JSON with embedded timestamp field
  • MQTT + Protobuf with .proto file selection
  • ZMQ + Protobuf
  • Parser config persists across dialog re-opens

Adds support for injecting parser-specific option dialogs into data source
dialogs (MQTT, ZMQ) via a pj_parser_slot widget. When the encoding combo
changes, the DialogEngine queries the parser_dialog_provider callback and
dynamically loads the parser's UI into the slot.

SDK extensions:
- WidgetData: setPlainText(), setFolderPicker()
- WidgetDataView: plainText(), isFolderPicker(), folderPickerTitle()
- WidgetEvent: folderSelected()
- DialogPluginTyped: onFolderSelected() virtual dispatch
- widget_binding: QPlainTextEdit support

DialogEngine:
- QueryParserDialogFn callback to resolve parser dialog vtables
- initial_parser_config for restoring parser dialog state
- parserConfig() accessor for retrieving parser config after accept
- Folder picker support via QFileDialog::getExistingDirectory

Proto app:
- Parser config persistence in QSettings (ParserConfig/{source})
- setParserConfig() on DataSourceSession for delegated ingest
- Error propagation from parser in rhPushRawMessage
@pabloinigoblasco pabloinigoblasco force-pushed the feat/parser-dialog-config-persistence branch from dbc4e19 to 3694f05 Compare April 4, 2026 10:49
@pabloinigoblasco pabloinigoblasco merged commit ed5aa74 into development Apr 4, 2026
2 checks passed
@pabloinigoblasco pabloinigoblasco deleted the feat/parser-dialog-config-persistence branch May 4, 2026 12:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant