• OctoMY API
  • OctoMY API Reference
  • C++ Classes
  • libconfigui
  • ConfigTreeView
  • config::ui::ConfigTreeView Class

    class config::ui::ConfigTreeView

    The settings table: a QTreeView that paints a section row across every column. More...

    Header: #include <ConfigTreeView>
    Inherits: QTreeView

    Detailed Description

    The view never calls setFirstColumnSpanned(). Qt stores each span as a persistent index, a proxy removal makes it invalid, and Qt never removes an invalid one until a reset, so one span per section per filter pass would grow without a limit. drawRow() paints a section row across the whole width instead (config-ui §CFGV-6).

    uniformRowHeights is set: without it QTreeView finds a row by a linear walk. The view never calls setRowHidden() and never calls expandRecursively(), which store a persistent index per row.

    A change to a row the table does not show is not passed to QTreeView. QTreeView finds a changed row by a walk of its laid-out rows (QTreeViewPrivate::viewIndex), so an import that changes K settings far from the screen costs K walks of N rows. The row paints its new value when it scrolls in. This is the path config-ui §CFGT-4 names, and testConfigViewScale holds it.

    A Custom cell is a persistent editor while its row is visible, and is closed when the row scrolls away (config-ui §CFGV-5d). Qt walks every open editor on each scroll, so the cost of a scroll follows the visible rows, not the schema.