Variables: make consistent across editors

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/16180
This commit is contained in:
Mike Williams 2023-11-29 09:55:17 -05:00
parent 188b9f4dd5
commit f993e45325
4 changed files with 45 additions and 2 deletions

View File

@ -102,6 +102,8 @@ void DS_DRAW_ITEM_LIST::GetTextVars( wxArrayString* aVars )
aVars->push_back( wxT( "SHEETNAME" ) ); aVars->push_back( wxT( "SHEETNAME" ) );
aVars->push_back( wxT( "SHEETPATH" ) ); aVars->push_back( wxT( "SHEETPATH" ) );
aVars->push_back( wxT( "FILENAME" ) ); aVars->push_back( wxT( "FILENAME" ) );
aVars->push_back( wxT( "FILEPATH" ) );
aVars->push_back( wxT( "PROJECTNAME" ) );
aVars->push_back( wxT( "PAPER" ) ); aVars->push_back( wxT( "PAPER" ) );
aVars->push_back( wxT( "LAYER" ) ); aVars->push_back( wxT( "LAYER" ) );
TITLE_BLOCK::GetContextualTextVars( aVars ); TITLE_BLOCK::GetContextualTextVars( aVars );
@ -154,6 +156,17 @@ wxString DS_DRAW_ITEM_LIST::BuildFullText( const wxString& aTextbase )
*token = fn.GetFullName(); *token = fn.GetFullName();
tokenUpdated = true; tokenUpdated = true;
} }
else if( token->IsSameAs( wxT( "FILEPATH" ) ) )
{
wxFileName fn( m_fileName );
*token = fn.GetFullPath();
return true;
}
else if( token->IsSameAs( wxT( "PROJECTNAME" ) ) && m_project )
{
*token = m_project->GetProjectName();
return true;
}
else if( token->IsSameAs( wxT( "PAPER" ) ) ) else if( token->IsSameAs( wxT( "PAPER" ) ) )
{ {
*token = m_paperFormat; *token = m_paperFormat;

View File

@ -1248,6 +1248,8 @@ void SCH_ALTIUM_PLUGIN::ParseLabel( const std::map<wxString, wxString>& aPropert
{ "CURRENTDATE", "CURRENT_DATE" }, { "CURRENTDATE", "CURRENT_DATE" },
{ "COMPANYNAME", "COMPANY" }, { "COMPANYNAME", "COMPANY" },
{ "DOCUMENTNAME", "FILENAME" }, { "DOCUMENTNAME", "FILENAME" },
{ "DOCUMENTFULLPATHANDNAME",
"FILEPATH" },
{ "PROJECTNAME", "PROJECTNAME" }, { "PROJECTNAME", "PROJECTNAME" },
}; };
@ -4176,4 +4178,4 @@ LIB_SYMBOL* SCH_ALTIUM_PLUGIN::LoadSymbol( const wxString& aLibraryPath,
} }
return nullptr; return nullptr;
} }

View File

@ -143,6 +143,7 @@ void SCHEMATIC::GetContextualTextVars( wxArrayString* aVars ) const
add( wxT( "SHEETPATH" ) ); add( wxT( "SHEETPATH" ) );
add( wxT( "SHEETNAME" ) ); add( wxT( "SHEETNAME" ) );
add( wxT( "FILENAME" ) ); add( wxT( "FILENAME" ) );
add( wxT( "FILEPATH" ) );
add( wxT( "PROJECTNAME" ) ); add( wxT( "PROJECTNAME" ) );
if( !CurrentSheet().empty() ) if( !CurrentSheet().empty() )
@ -184,6 +185,12 @@ bool SCHEMATIC::ResolveTextVar( const SCH_SHEET_PATH* aSheetPath, wxString* toke
*token = fn.GetFullName(); *token = fn.GetFullName();
return true; return true;
} }
else if( token->IsSameAs( wxT( "FILEPATH" ) ) )
{
wxFileName fn( GetFileName() );
*token = fn.GetFullPath();
return true;
}
else if( token->IsSameAs( wxT( "PROJECTNAME" ) ) ) else if( token->IsSameAs( wxT( "PROJECTNAME" ) ) )
{ {
*token = Prj().GetProjectName(); *token = Prj().GetProjectName();

View File

@ -376,6 +376,9 @@ void BOARD::GetContextualTextVars( wxArrayString* aVars ) const
}; };
add( wxT( "LAYER" ) ); add( wxT( "LAYER" ) );
add( wxT( "FILENAME" ) );
add( wxT( "FILEPATH" ) );
add( wxT( "PROJECTNAME" ) );
GetTitleBlock().GetContextualTextVars( aVars ); GetTitleBlock().GetContextualTextVars( aVars );
@ -407,6 +410,24 @@ bool BOARD::ResolveTextVar( wxString* token, int aDepth ) const
} }
} }
if( token->IsSameAs( wxT( "FILENAME" ) ) )
{
wxFileName fn( GetFileName() );
*token = fn.GetFullName();
return true;
}
else if( token->IsSameAs( wxT( "FILEPATH" ) ) )
{
wxFileName fn( GetFileName() );
*token = fn.GetFullPath();
return true;
}
else if( token->IsSameAs( wxT( "PROJECTNAME" ) ) && GetProject() )
{
*token = GetProject()->GetProjectName();
return true;
}
wxString var = *token; wxString var = *token;
if( GetTitleBlock().TextVarResolver( token, m_project ) ) if( GetTitleBlock().TextVarResolver( token, m_project ) )
@ -2664,4 +2685,4 @@ bool BOARD::operator==( const BOARD_ITEM& aItem ) const
return false; return false;
return true; return true;
} }