Handle string escaping for Find/Replace in labels.

Fixes https://gitlab.com/kicad/code/kicad/issues/12789
This commit is contained in:
Jeff Young 2022-11-04 00:26:30 +00:00
parent de21eb5268
commit ae9405a4d3
2 changed files with 19 additions and 0 deletions

View File

@ -599,6 +599,22 @@ void SCH_LABEL_BASE::RunOnChildren( const std::function<void( SCH_ITEM* )>& aFun
}
bool SCH_LABEL_BASE::Matches( const EDA_SEARCH_DATA& aSearchData, void* aAuxData ) const
{
return SCH_ITEM::Matches( UnescapeString( GetText() ), aSearchData );
}
bool SCH_LABEL_BASE::Replace( const EDA_SEARCH_DATA& aSearchData, void* aAuxData )
{
EDA_SEARCH_DATA localSearchData( aSearchData );
localSearchData.findString = EscapeString( aSearchData.findString, CTX_NETNAME );
localSearchData.replaceString = EscapeString( aSearchData.replaceString, CTX_NETNAME );
return EDA_TEXT::Replace( localSearchData );
}
INSPECT_RESULT SCH_LABEL_BASE::Visit( INSPECTOR aInspector, void* testData,
const std::vector<KICAD_T>& aScanTypes )
{

View File

@ -135,6 +135,9 @@ public:
INSPECT_RESULT Visit( INSPECTOR inspector, void* testData,
const std::vector<KICAD_T>& scanTypes ) override;
bool Matches( const EDA_SEARCH_DATA& aSearchData, void* aAuxData ) const override;
bool Replace( const EDA_SEARCH_DATA& aSearchData, void* aAuxData ) override;
VECTOR2I GetSchematicTextOffset( const RENDER_SETTINGS* aSettings ) const override;
/**