Don't allow updates to shown_text outside of cacheShownText().
But also don't use cacheShownText() in c'tors, as it will not call the subclass's version.
This commit is contained in:
parent
feb887fe8f
commit
7b71e55ab9
|
@ -95,7 +95,17 @@ EDA_TEXT::EDA_TEXT( const EDA_IU_SCALE& aIuScale, const wxString& aText ) :
|
|||
{
|
||||
SetTextSize( VECTOR2I( EDA_UNIT_UTILS::Mils2IU( m_IuScale, DEFAULT_SIZE_TEXT ),
|
||||
EDA_UNIT_UTILS::Mils2IU( m_IuScale, DEFAULT_SIZE_TEXT ) ) );
|
||||
cacheShownText();
|
||||
|
||||
if( m_text.IsEmpty() )
|
||||
{
|
||||
m_shown_text = wxEmptyString;
|
||||
m_shown_text_has_text_var_refs = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_shown_text = UnescapeString( m_text );
|
||||
m_shown_text_has_text_var_refs = m_shown_text.Contains( wxT( "${" ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -170,22 +180,14 @@ EDA_TEXT& EDA_TEXT::operator=( const EDA_TEXT& aText )
|
|||
void EDA_TEXT::SetText( const wxString& aText )
|
||||
{
|
||||
m_text = aText;
|
||||
|
||||
cacheShownText();
|
||||
|
||||
ClearRenderCache();
|
||||
m_bounding_box_cache_valid = false;
|
||||
}
|
||||
|
||||
|
||||
void EDA_TEXT::CopyText( const EDA_TEXT& aSrc )
|
||||
{
|
||||
m_text = aSrc.m_text;
|
||||
m_shown_text = aSrc.m_shown_text;
|
||||
m_shown_text_has_text_var_refs = aSrc.m_shown_text_has_text_var_refs;
|
||||
|
||||
ClearRenderCache();
|
||||
m_bounding_box_cache_valid = false;
|
||||
cacheShownText();
|
||||
}
|
||||
|
||||
|
||||
|
@ -280,11 +282,7 @@ void EDA_TEXT::SetAttributes( const EDA_TEXT& aSrc )
|
|||
void EDA_TEXT::SwapText( EDA_TEXT& aTradingPartner )
|
||||
{
|
||||
std::swap( m_text, aTradingPartner.m_text );
|
||||
std::swap( m_shown_text, aTradingPartner.m_shown_text );
|
||||
std::swap( m_shown_text_has_text_var_refs, aTradingPartner.m_shown_text_has_text_var_refs );
|
||||
|
||||
ClearRenderCache();
|
||||
m_bounding_box_cache_valid = false;
|
||||
cacheShownText();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -161,7 +161,10 @@ SCH_LABEL_BASE::SCH_LABEL_BASE( const VECTOR2I& aPos, const wxString& aText, KIC
|
|||
m_lastResolvedColor( COLOR4D::UNSPECIFIED )
|
||||
{
|
||||
SetMultilineAllowed( false );
|
||||
ClearFieldsAutoplaced(); // fiels are not yet autoplaced.
|
||||
ClearFieldsAutoplaced(); // fields are not yet autoplaced.
|
||||
|
||||
if( !HasTextVars() )
|
||||
m_cached_driver_name = EscapeString( EDA_TEXT::GetShownText( true, 0 ), CTX_NETNAME );
|
||||
}
|
||||
|
||||
|
||||
|
@ -170,7 +173,8 @@ SCH_LABEL_BASE::SCH_LABEL_BASE( const SCH_LABEL_BASE& aLabel ) :
|
|||
m_shape( aLabel.m_shape ),
|
||||
m_connectionType( aLabel.m_connectionType ),
|
||||
m_isDangling( aLabel.m_isDangling ),
|
||||
m_lastResolvedColor( aLabel.m_lastResolvedColor )
|
||||
m_lastResolvedColor( aLabel.m_lastResolvedColor ),
|
||||
m_cached_driver_name( aLabel.m_cached_driver_name )
|
||||
{
|
||||
SetMultilineAllowed( false );
|
||||
|
||||
|
@ -181,6 +185,16 @@ SCH_LABEL_BASE::SCH_LABEL_BASE( const SCH_LABEL_BASE& aLabel ) :
|
|||
}
|
||||
|
||||
|
||||
SCH_LABEL_BASE& SCH_LABEL_BASE::operator=( const SCH_LABEL_BASE& aLabel )
|
||||
{
|
||||
SCH_TEXT::operator=( aLabel );
|
||||
|
||||
m_cached_driver_name = aLabel.m_cached_driver_name;
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
const wxString SCH_LABEL_BASE::GetDefaultFieldName( const wxString& aName, bool aUseDefaultName )
|
||||
{
|
||||
if( aName == wxT( "Intersheetrefs" ) )
|
||||
|
|
|
@ -38,6 +38,8 @@ public:
|
|||
|
||||
SCH_LABEL_BASE( const SCH_LABEL_BASE& aLabel );
|
||||
|
||||
SCH_LABEL_BASE& operator=( const SCH_LABEL_BASE& aLabel );
|
||||
|
||||
// Abstract class
|
||||
virtual wxString GetClass() const override = 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue