Pcbnew: PCB_TEXT: save the Locked flag in file.
Previously, one could lock a graphic text on a board, but the lock state was not saved.
This commit is contained in:
parent
bafd8ac9d5
commit
b6aa5bd1ed
|
@ -2698,7 +2698,7 @@ PCB_SHAPE* PCB_PARSER::parsePCB_SHAPE()
|
||||||
}
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Expecting( "gr_arc, gr_circle, gr_curve, gr_line, gr_poly, or gp_rect" );
|
Expecting( "gr_arc, gr_circle, gr_curve, gr_line, gr_poly, or gr_rect" );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool foundFill = false;
|
bool foundFill = false;
|
||||||
|
@ -2834,11 +2834,19 @@ PCB_TEXT* PCB_PARSER::parsePCB_TEXT()
|
||||||
wxCHECK_MSG( CurTok() == T_gr_text, nullptr,
|
wxCHECK_MSG( CurTok() == T_gr_text, nullptr,
|
||||||
wxT( "Cannot parse " ) + GetTokenString( CurTok() ) + wxT( " as PCB_TEXT." ) );
|
wxT( "Cannot parse " ) + GetTokenString( CurTok() ) + wxT( " as PCB_TEXT." ) );
|
||||||
|
|
||||||
T token;
|
|
||||||
|
|
||||||
std::unique_ptr<PCB_TEXT> text = std::make_unique<PCB_TEXT>( m_board );
|
std::unique_ptr<PCB_TEXT> text = std::make_unique<PCB_TEXT>( m_board );
|
||||||
|
|
||||||
NeedSYMBOLorNUMBER();
|
T token = NextTok();
|
||||||
|
|
||||||
|
if( token == T_locked )
|
||||||
|
{
|
||||||
|
text->SetLocked( true );
|
||||||
|
token = NextTok();
|
||||||
|
}
|
||||||
|
|
||||||
|
if( !IsSymbol( token ) && (int) token != DSN_NUMBER )
|
||||||
|
Expecting( "text value" );
|
||||||
|
|
||||||
text->SetText( FromUTF8() );
|
text->SetText( FromUTF8() );
|
||||||
|
|
||||||
NeedLEFT();
|
NeedLEFT();
|
||||||
|
@ -2906,7 +2914,7 @@ PCB_TEXT* PCB_PARSER::parsePCB_TEXT()
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Expecting( "layer, effects, render_cache or tstamp" );
|
Expecting( "layer, effects, locked, render_cache or tstamp" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1722,10 +1722,16 @@ void PCB_PLUGIN::format( const PAD* aPad, int aNestLevel ) const
|
||||||
|
|
||||||
void PCB_PLUGIN::format( const PCB_TEXT* aText, int aNestLevel ) const
|
void PCB_PLUGIN::format( const PCB_TEXT* aText, int aNestLevel ) const
|
||||||
{
|
{
|
||||||
m_out->Print( aNestLevel, "(gr_text %s (at %s",
|
m_out->Print( aNestLevel, "(gr_text" );
|
||||||
|
|
||||||
|
if( aText->IsLocked() )
|
||||||
|
m_out->Print( 0, " locked" );
|
||||||
|
|
||||||
|
m_out->Print( 0, " %s (at %s",
|
||||||
m_out->Quotew( aText->GetText() ).c_str(),
|
m_out->Quotew( aText->GetText() ).c_str(),
|
||||||
FormatInternalUnits( aText->GetTextPos() ).c_str() );
|
FormatInternalUnits( aText->GetTextPos() ).c_str() );
|
||||||
|
|
||||||
|
|
||||||
if( !aText->GetTextAngle().IsZero() )
|
if( !aText->GetTextAngle().IsZero() )
|
||||||
m_out->Print( 0, " %s", FormatAngle( aText->GetTextAngle() ).c_str() );
|
m_out->Print( 0, " %s", FormatAngle( aText->GetTextAngle() ).c_str() );
|
||||||
|
|
||||||
|
|
|
@ -118,7 +118,7 @@ class SHAPE_LINE_CHAIN;
|
||||||
//#define SEXPR_BOARD_FILE_VERSION 20220131 // Textboxes
|
//#define SEXPR_BOARD_FILE_VERSION 20220131 // Textboxes
|
||||||
//#define SEXPR_BOARD_FILE_VERSION 20220211 // End support for V5 zone fill strategy
|
//#define SEXPR_BOARD_FILE_VERSION 20220211 // End support for V5 zone fill strategy
|
||||||
//#define SEXPR_BOARD_FILE_VERSION 20220225 // Remove TEDIT
|
//#define SEXPR_BOARD_FILE_VERSION 20220225 // Remove TEDIT
|
||||||
#define SEXPR_BOARD_FILE_VERSION 20220308 // Knockout text
|
#define SEXPR_BOARD_FILE_VERSION 20220308 // Knockout text and Locked graphic text property saved
|
||||||
|
|
||||||
#define BOARD_FILE_HOST_VERSION 20200825 ///< Earlier files than this include the host tag
|
#define BOARD_FILE_HOST_VERSION 20200825 ///< Earlier files than this include the host tag
|
||||||
#define LEGACY_ARC_FORMATTING 20210925 ///< These were the last to use old arc formatting
|
#define LEGACY_ARC_FORMATTING 20210925 ///< These were the last to use old arc formatting
|
||||||
|
|
Loading…
Reference in New Issue