ores.qt.headless
Table of Contents
Summary
Everything in this component uses only Qt6::Core=/=Qt6::Gui value
types (QString, QRegularExpression, QFont, QStandardItemModel,
QProcess, QDir) — never Qt6::Widgets, never a QApplication or
display. That single property is why it exists as its own component
rather than living inside ores.qt.api (which does require Widgets/a
display): it lets its logic be exercised directly by unit tests
without a display environment, and lets ores.qt.api (and the
per-domain plugins built on it) consume it as an ordinary shared
library dependency. It was split out after a Windows-only build
failure (MSVC's /WX treating "dllimport on a definition", C4273, as
fatal) traced back to some of these files being compiled a second
time directly into the ores.qt.api test binary to dodge the display
requirement — the real problem was architectural, not a missing
compiler flag: Widgets-free logic had been living inside a
Widgets-requiring component.
Inputs
- Parsed
ores.orgmodedocuments (forOrgDocRenderer). - Trade/instrument domain objects from
ores.trading.api(forparse_trade_instrument=/=IInstrumentFormPopulator). - Filesystem paths (
EnvironmentMetadata,RepoFileFinder,TestScenarioResultsWriter).
Outputs
- Rendered HTML fragments (
OrgDocRenderer) for display in aQTextBrowser. - A
QStandardItemModeltree (HierarchyModelBuilder) for display in aQTreeView. - Rewritten
test_scenarioorg docs (TestScenarioResultsWriter). - Resolved monospace font family (
FontUtils).
Entry points
render_org_doc_to_html=/=render_heading_to_html=/=render_body_lines_to_html(OrgDocRenderer.hpp)write_scenario_results(TestScenarioResultsWriter.hpp)capture_environment_metadata(EnvironmentMetadata.hpp)HierarchyModelBuilder::build(HierarchyModelBuilder.hpp)find_repo_file(RepoFileFinder.hpp)FontUtils::resolvedMonospaceFamily=/=applicationFont(header-only)parse_trade_instrument(parse_trade_instrument.hpp)
Dependencies
ores.orgmode.lib(parsed document domain types)ores.trading.api.lib(trade/instrument domain types)ores.logging.lib,ores.utility.libQt6::Core,Qt6::Gui— deliberately notQt6::Widgets
See also
- ores.qt.api — the Widgets-requiring shared framework that links this
component
PUBLICand re-exports it transitively to every domain plugin built on it.
