SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
actioncatalog.h File Reference
#include <iterator>
Include dependency graph for actioncatalog.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openswmmvis::ui::ActionCatalogEntry
 

Namespaces

namespace  openswmmvis
 
namespace  openswmmvis::ui
 

Enumerations

enum  openswmmvis::ui::ActionTag : unsigned {
  openswmmvis::ui::NoTags = 0u ,
  openswmmvis::ui::RequiresProject = 1u << 0 ,
  openswmmvis::ui::RequiresEditSession = 1u << 1 ,
  openswmmvis::ui::Contextual2D = 1u << 2
}
 

Variables

constexpr ActionCatalogEntry openswmmvis::ui::kActionCatalog []
 
constexpr std::size_t openswmmvis::ui::kActionCatalogSize = std::size(kActionCatalog)
 
constexpr const char * openswmmvis::ui::kActionCatalogTabs []
 Known compact-toolbar tab ids ("" = menu-only entry).
 

Detailed Description

UI redesign P1 — the action catalog: one data table describing every main-window capability. Follows the swmmvis_hydration_audit.h idiom: a pure constexpr table with zero widget dependencies so headless tests can audit it, while ActionRegistry consumes it at runtime to adopt the existing QAction objects (never re-creating them — object identity, objectName-keyed tool sync, and saved window state all keep working).

Field semantics:

  • id: stable dotted identifier ("file.new"). QSettings shortcut overrides and the command palette key off this, so ids are append-only; never repurpose one.
  • objectName: the QAction objectName the registry adopts. Every entry names an action that exists by the end of the SWMMVis constructor.
  • category: human grouping for the palette / shortcut editor.
  • defaultShortcut: "" = none; "std:Name" = QKeySequence::StandardKey (platform-correct bindings); anything else is a portable QKeySequence string (Ctrl maps to Cmd on macOS at runtime).
  • icon: ":/swmmvis/<alias>" qrc alias (without the prefix) rendered through the theme-aware IconFactory; "" = the action keeps whatever icon it already has.
  • tab: compact-toolbar tab id ("" = menu-only). Consumed by the tabbed-toolbar phase; audited before then.
  • menuPath: canonical menu location (documentation + menubar audit; "/" separates submenu levels).
  • tags: behavior bits, see ActionTag.