Schematic Sheet Variables: more SCH_SHEET_PATH plumbing
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/14239
This commit is contained in:
parent
bb27717dda
commit
ade29c8577
|
@ -234,7 +234,7 @@ void SCH_SHEET::GetContextualTextVars( wxArrayString* aVars ) const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool SCH_SHEET::ResolveTextVar( wxString* token, int aDepth ) const
|
bool SCH_SHEET::ResolveTextVar( const SCH_SHEET_PATH* aPath, wxString* token, int aDepth ) const
|
||||||
{
|
{
|
||||||
if( !Schematic() )
|
if( !Schematic() )
|
||||||
return false;
|
return false;
|
||||||
|
@ -291,13 +291,13 @@ bool SCH_SHEET::ResolveTextVar( wxString* token, int aDepth ) const
|
||||||
|
|
||||||
// See if parent can resolve it (these will recurse to ancestors)
|
// See if parent can resolve it (these will recurse to ancestors)
|
||||||
|
|
||||||
SCH_SHEET_PATH sheetPath = findSelf();
|
SCH_SHEET_PATH sheetPath = aPath ? *aPath : findSelf();
|
||||||
|
|
||||||
if( sheetPath.size() >= 2 )
|
if( sheetPath.size() >= 2 )
|
||||||
{
|
{
|
||||||
sheetPath.pop_back();
|
sheetPath.pop_back();
|
||||||
|
|
||||||
if( sheetPath.Last()->ResolveTextVar( token, aDepth + 1 ) )
|
if( sheetPath.Last()->ResolveTextVar( aPath, token, aDepth + 1 ) )
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -153,7 +153,11 @@ public:
|
||||||
*
|
*
|
||||||
* @param aDepth is a counter to limit recursion and circular references.
|
* @param aDepth is a counter to limit recursion and circular references.
|
||||||
*/
|
*/
|
||||||
bool ResolveTextVar( wxString* token, int aDepth = 0 ) const;
|
bool ResolveTextVar( const SCH_SHEET_PATH* aPath, wxString* token, int aDepth = 0 ) const;
|
||||||
|
bool ResolveTextVar( wxString* token, int aDepth = 0 )
|
||||||
|
{
|
||||||
|
return ResolveTextVar( nullptr, token, aDepth );
|
||||||
|
}
|
||||||
|
|
||||||
void GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_ITEM>& aList ) override;
|
void GetMsgPanelInfo( EDA_DRAW_FRAME* aFrame, std::vector<MSG_PANEL_ITEM>& aList ) override;
|
||||||
|
|
||||||
|
|
|
@ -1313,7 +1313,7 @@ bool SCH_SYMBOL::ResolveTextVar( wxString* token, int aDepth, const SCH_SHEET_PA
|
||||||
|
|
||||||
if( sheet )
|
if( sheet )
|
||||||
{
|
{
|
||||||
if( sheet->ResolveTextVar( token, aDepth + 1 ) )
|
if( sheet->ResolveTextVar( aPath, token, aDepth + 1 ) )
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -353,7 +353,7 @@ wxString SCH_TEXT::GetShownText( const SCH_SHEET_PATH* aPath, int aDepth, bool a
|
||||||
{
|
{
|
||||||
if( sheet )
|
if( sheet )
|
||||||
{
|
{
|
||||||
if( sheet->ResolveTextVar( token, aDepth + 1 ) )
|
if( sheet->ResolveTextVar( aPath, token, aDepth + 1 ) )
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue