Fix window-key separator mismatch in Workspace/SystemSetting controllers

Table of Contents

This page is a capture in the next bucket of the product backlog — a pre-sprint idea, not yet pulled into a sprint as a story.

What

WorkspaceController.cpp (~line 508) and SystemSettingController.cpp (~line 331) both check key.startsWith("details:")=/ =key.startsWith("history:") before propagating a NATS staleness notification to an open detail/history dialog. But EntityController::build_window_key() joins the window type and identifier with a dot, not a colon (QString("%1.%2")), so tracked keys look like "details.<id>", never "details:<id>". The colon check is always false, so markAsStale() never fires on these two controllers' open dialogs when a change notification arrives — dead code, no functional impact beyond a missed UI refresh (data is still correct on reload).

Why

The identical bug was found by PR review on #1460 (Land NATS notification-wiring capability in qt-profile controller) in CurrencyController.cpp and in the newly-generalised codegen template; both were fixed there. WorkspaceController.cpp and SystemSettingController.cpp are unrelated components (not part of the Commission: currency story), so fixing them was scoped out of that PR — same one-line fix (":"".") applies to both.

References

  • PR #1460: https://github.com/OreStudio/OreStudio/pull/1460
  • projects/ores.qt/workspace/src/WorkspaceController.cpp (~line 508)
  • projects/ores.qt/admin/src/SystemSettingController.cpp (~line 331)
  • projects/ores.qt/api/src/EntityController.cppbuild_window_key()

See also

Emacs 29.3 (Org mode 9.6.15)