KiCad PCB EDA Suite
Loading...
Searching...
No Matches
BOARD_TEXT_VAR_ADAPTER Class Reference

Bridges BOARD's listener stream into the generic TEXT_VAR_TRACKER. More...

#include <board_text_var_adapter.h>

Inheritance diagram for BOARD_TEXT_VAR_ADAPTER:
BOARD_LISTENER

Public Member Functions

 BOARD_TEXT_VAR_ADAPTER (BOARD &aBoard)
 
 ~BOARD_TEXT_VAR_ADAPTER () override=default
 
TEXT_VAR_TRACKER & Tracker ()
 
const TEXT_VAR_TRACKER & Tracker () const
 
void OnBoardItemAdded (BOARD &aBoard, BOARD_ITEM *aItem) override
 
void OnBoardItemsAdded (BOARD &aBoard, std::vector< BOARD_ITEM * > &aItems) override
 
void OnBoardItemRemoved (BOARD &aBoard, BOARD_ITEM *aItem) override
 
void OnBoardItemsRemoved (BOARD &aBoard, std::vector< BOARD_ITEM * > &aItems) override
 
void OnBoardItemChanged (BOARD &aBoard, BOARD_ITEM *aItem) override
 
void OnBoardItemsChanged (BOARD &aBoard, std::vector< BOARD_ITEM * > &aItems) override
 
void OnBoardCompositeUpdate (BOARD &aBoard, std::vector< BOARD_ITEM * > &aAdded, std::vector< BOARD_ITEM * > &aRemoved, std::vector< BOARD_ITEM * > &aChanged) override
 
void RebuildIndex ()
 Scan the whole board and register every text-bearing item.
 
std::vector< TEXT_VAR_REF_KEY > ExtractSourceKeys (EDA_ITEM *aItem) const
 Return the keys aItem could source as a cross-reference target.
 
virtual void OnBoardNetSettingsChanged (BOARD &aBoard)
 
virtual void OnBoardSelectionChanged (BOARD &aBoard)
 
virtual void OnBoardHighlightNetChanged (BOARD &aBoard)
 
virtual void OnBoardRatsnestChanged (BOARD &aBoard)
 

Private Member Functions

std::vector< TEXT_VAR_REF_KEY > collectKeys (BOARD_ITEM *aItem)
 
void registerItem (BOARD_ITEM *aItem)
 
void unregisterItem (BOARD_ITEM *aItem)
 

Private Attributes

BOARD & m_board
 
TEXT_VAR_TRACKER m_tracker
 

Detailed Description

Bridges BOARD's listener stream into the generic TEXT_VAR_TRACKER.

Responsibilities:

  • Register any EDA_TEXT-bearing item added to the BOARD so its ${...} references become graph edges.
  • On composite updates, re-register changed text items (their source text may have been edited) and fan out invalidations for cross-refs that changed FOOTPRINTs could source (${REFDES:FIELD}).
  • Unregister removed items.

The adapter is owned by BOARD and added to its listener list in the BOARD ctor. Lifetime is tied to the BOARD, so no explicit remove is needed on destruction — BOARD's listener vector is torn down by its own destructor.

Definition at line 44 of file board_text_var_adapter.h.

Constructor & Destructor Documentation

◆ BOARD_TEXT_VAR_ADAPTER()

BOARD_TEXT_VAR_ADAPTER::BOARD_TEXT_VAR_ADAPTER ( BOARD & aBoard)
explicit

Definition at line 30 of file board_text_var_adapter.cpp.

References ExtractSourceKeys(), m_board, and m_tracker.

◆ ~BOARD_TEXT_VAR_ADAPTER()

BOARD_TEXT_VAR_ADAPTER::~BOARD_TEXT_VAR_ADAPTER ( )
overridedefault

Member Function Documentation

◆ collectKeys()

std::vector< TEXT_VAR_REF_KEY > BOARD_TEXT_VAR_ADAPTER::collectKeys ( BOARD_ITEM * aItem)
private

◆ ExtractSourceKeys()

std::vector< TEXT_VAR_REF_KEY > BOARD_TEXT_VAR_ADAPTER::ExtractSourceKeys ( EDA_ITEM * aItem) const

Return the keys aItem could source as a cross-reference target.

For a FOOTPRINT, this is the single ${REFDES:*} key.

Definition at line 171 of file board_text_var_adapter.cpp.

References KIID::AsString(), TEXT_VAR_REF_KEY::CROSS_REF, BOARD_ITEM::GetParentFootprint(), FOOTPRINT::GetReference(), TEXT_VAR_REF_KEY::kind, EDA_ITEM::m_Uuid, and TEXT_VAR_REF_KEY::primary.

Referenced by BOARD_TEXT_VAR_ADAPTER().

◆ OnBoardCompositeUpdate()

void BOARD_TEXT_VAR_ADAPTER::OnBoardCompositeUpdate ( BOARD & aBoard,
std::vector< BOARD_ITEM * > & aAdded,
std::vector< BOARD_ITEM * > & aRemoved,
std::vector< BOARD_ITEM * > & aChanged )
overridevirtual

Reimplemented from BOARD_LISTENER.

Definition at line 140 of file board_text_var_adapter.cpp.

References OnBoardItemAdded(), OnBoardItemChanged(), and OnBoardItemRemoved().

◆ OnBoardHighlightNetChanged()

virtual void BOARD_LISTENER::OnBoardHighlightNetChanged ( BOARD & aBoard)
inlinevirtualinherited

Reimplemented in PCB_NET_INSPECTOR_PANEL, and PCB_SEARCH_PANE.

Definition at line 383 of file board.h.

Referenced by BOARD::HighLightON(), BOARD::ResetNetHighLight(), and BOARD::SetHighLightNet().

◆ OnBoardItemAdded()

void BOARD_TEXT_VAR_ADAPTER::OnBoardItemAdded ( BOARD & aBoard,
BOARD_ITEM * aItem )
overridevirtual

Reimplemented from BOARD_LISTENER.

Definition at line 93 of file board_text_var_adapter.cpp.

References collectKeys(), and m_tracker.

Referenced by OnBoardCompositeUpdate(), and OnBoardItemsAdded().

◆ OnBoardItemChanged()

void BOARD_TEXT_VAR_ADAPTER::OnBoardItemChanged ( BOARD & aBoard,
BOARD_ITEM * aItem )
overridevirtual

Reimplemented from BOARD_LISTENER.

Definition at line 125 of file board_text_var_adapter.cpp.

References collectKeys(), and m_tracker.

Referenced by OnBoardCompositeUpdate(), and OnBoardItemsChanged().

◆ OnBoardItemRemoved()

void BOARD_TEXT_VAR_ADAPTER::OnBoardItemRemoved ( BOARD & aBoard,
BOARD_ITEM * aItem )
overridevirtual

Reimplemented from BOARD_LISTENER.

Definition at line 110 of file board_text_var_adapter.cpp.

References collectKeys(), m_tracker, and unregisterItem().

Referenced by OnBoardCompositeUpdate(), and OnBoardItemsRemoved().

◆ OnBoardItemsAdded()

void BOARD_TEXT_VAR_ADAPTER::OnBoardItemsAdded ( BOARD & aBoard,
std::vector< BOARD_ITEM * > & aItems )
overridevirtual

Reimplemented from BOARD_LISTENER.

Definition at line 103 of file board_text_var_adapter.cpp.

References OnBoardItemAdded().

◆ OnBoardItemsChanged()

void BOARD_TEXT_VAR_ADAPTER::OnBoardItemsChanged ( BOARD & aBoard,
std::vector< BOARD_ITEM * > & aItems )
overridevirtual

Reimplemented from BOARD_LISTENER.

Definition at line 133 of file board_text_var_adapter.cpp.

References OnBoardItemChanged().

◆ OnBoardItemsRemoved()

void BOARD_TEXT_VAR_ADAPTER::OnBoardItemsRemoved ( BOARD & aBoard,
std::vector< BOARD_ITEM * > & aItems )
overridevirtual

Reimplemented from BOARD_LISTENER.

Definition at line 118 of file board_text_var_adapter.cpp.

References OnBoardItemRemoved().

◆ OnBoardNetSettingsChanged()

virtual void BOARD_LISTENER::OnBoardNetSettingsChanged ( BOARD & aBoard)
inlinevirtualinherited

Reimplemented in APPEARANCE_CONTROLS, PCB_NET_INSPECTOR_PANEL, and PCB_SEARCH_PANE.

Definition at line 379 of file board.h.

Referenced by BOARD::SynchronizeNetsAndNetClasses().

◆ OnBoardRatsnestChanged()

virtual void BOARD_LISTENER::OnBoardRatsnestChanged ( BOARD & aBoard)
inlinevirtualinherited

Reimplemented in PCB_SEARCH_PANE.

Definition at line 384 of file board.h.

Referenced by BOARD::OnRatsnestChanged().

◆ OnBoardSelectionChanged()

virtual void BOARD_LISTENER::OnBoardSelectionChanged ( BOARD & aBoard)
inlinevirtualinherited

Reimplemented in DIALOG_FOOTPRINT_FIELDS_TABLE.

Definition at line 382 of file board.h.

Referenced by BOARD::OnBoardSelectionChanged().

◆ RebuildIndex()

void BOARD_TEXT_VAR_ADAPTER::RebuildIndex ( )

Scan the whole board and register every text-bearing item.

Called from the BOARD ctor so dependencies are correct from the start, and exposed for use after bulk loads (board open, import) that bypass per-item listener callbacks.

Definition at line 159 of file board_text_var_adapter.cpp.

References m_board, m_tracker, and registerItem().

◆ registerItem()

void BOARD_TEXT_VAR_ADAPTER::registerItem ( BOARD_ITEM * aItem)
private

Definition at line 79 of file board_text_var_adapter.cpp.

References collectKeys(), and m_tracker.

Referenced by RebuildIndex().

◆ Tracker() [1/2]

◆ Tracker() [2/2]

const TEXT_VAR_TRACKER & BOARD_TEXT_VAR_ADAPTER::Tracker ( ) const
inline

Definition at line 51 of file board_text_var_adapter.h.

References m_tracker.

◆ unregisterItem()

void BOARD_TEXT_VAR_ADAPTER::unregisterItem ( BOARD_ITEM * aItem)
private

Definition at line 86 of file board_text_var_adapter.cpp.

References m_tracker.

Referenced by OnBoardItemRemoved().

Member Data Documentation

◆ m_board

BOARD& BOARD_TEXT_VAR_ADAPTER::m_board
private

Definition at line 84 of file board_text_var_adapter.h.

Referenced by BOARD_TEXT_VAR_ADAPTER(), and RebuildIndex().

◆ m_tracker


The documentation for this class was generated from the following files: