Netclass directive and label conversion improvements.
1) Copy label fields when converting. 2) Don't assume netclass directive should be net name -- this is very unlikely. 3) Don't show font controls in Netclass Directive Properties dialog -- there's no basic text associated witha Directive Label.
This commit is contained in:
parent
c44e54756a
commit
fc10db25ba
|
@ -28,13 +28,10 @@
|
|||
#include <widgets/color_swatch.h>
|
||||
#include <settings/color_settings.h>
|
||||
#include <sch_edit_frame.h>
|
||||
#include <base_units.h>
|
||||
#include <sch_validators.h>
|
||||
#include <tool/tool_manager.h>
|
||||
#include <general.h>
|
||||
#include <gr_text.h>
|
||||
#include <confirm.h>
|
||||
#include <sch_reference_list.h>
|
||||
#include <schematic.h>
|
||||
#include <dialogs/html_message_box.h>
|
||||
#include <dialog_label_properties.h>
|
||||
|
@ -170,10 +167,21 @@ DIALOG_LABEL_PROPERTIES::DIALOG_LABEL_PROPERTIES( SCH_EDIT_FRAME* aParent, SCH_L
|
|||
m_triState->Hide();
|
||||
m_passive->Hide();
|
||||
|
||||
m_fontLabel->SetLabel( _( "Orientation:" ) );
|
||||
m_fontCtrl->Hide();
|
||||
m_separator1->Hide();
|
||||
m_bold->Hide();
|
||||
m_italic->Hide();
|
||||
m_separator2->Hide();
|
||||
m_spin0->SetBitmap( KiBitmap( BITMAPS::pinorient_down ) );
|
||||
m_spin1->SetBitmap( KiBitmap( BITMAPS::pinorient_up ) );
|
||||
m_spin2->SetBitmap( KiBitmap( BITMAPS::pinorient_right ) );
|
||||
m_spin3->SetBitmap( KiBitmap( BITMAPS::pinorient_left ) );
|
||||
m_separator3->Hide();
|
||||
|
||||
m_formattingGB->Detach( m_fontCtrl );
|
||||
m_formattingGB->Detach( m_iconBar );
|
||||
m_formattingGB->Add( m_iconBar, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxEXPAND|wxRIGHT, 5 );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -211,7 +219,7 @@ DIALOG_LABEL_PROPERTIES::DIALOG_LABEL_PROPERTIES( SCH_EDIT_FRAME* aParent, SCH_L
|
|||
|
||||
DIALOG_LABEL_PROPERTIES::~DIALOG_LABEL_PROPERTIES()
|
||||
{
|
||||
auto cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
|
||||
EESCHEMA_SETTINGS* cfg = dynamic_cast<EESCHEMA_SETTINGS*>( Kiface().KifaceSettings() );
|
||||
wxASSERT( cfg );
|
||||
|
||||
if( cfg )
|
||||
|
@ -350,8 +358,7 @@ void DIALOG_LABEL_PROPERTIES::OnValueCharHook( wxKeyEvent& aEvent )
|
|||
{
|
||||
m_textSizeCtrl->SetFocusFromKbd();
|
||||
}
|
||||
else
|
||||
if( !m_fields->empty() )
|
||||
else if( !m_fields->empty() )
|
||||
{
|
||||
m_grid->SetFocusFromKbd();
|
||||
m_grid->MakeCellVisible( 0, 0 );
|
||||
|
@ -371,19 +378,10 @@ void DIALOG_LABEL_PROPERTIES::OnValueCharHook( wxKeyEvent& aEvent )
|
|||
|
||||
static bool positioningChanged( const SCH_FIELD& a, const SCH_FIELD& b )
|
||||
{
|
||||
if( a.GetPosition() != b.GetPosition() )
|
||||
return true;
|
||||
|
||||
if( a.GetHorizJustify() != b.GetHorizJustify() )
|
||||
return true;
|
||||
|
||||
if( a.GetVertJustify() != b.GetVertJustify() )
|
||||
return true;
|
||||
|
||||
if( a.GetTextAngle() != b.GetTextAngle() )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
return a.GetPosition() != b.GetPosition()
|
||||
|| a.GetHorizJustify() != b.GetHorizJustify()
|
||||
|| a.GetVertJustify() != b.GetVertJustify()
|
||||
|| a.GetTextAngle() != b.GetTextAngle();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -79,5 +79,4 @@ private:
|
|||
};
|
||||
|
||||
|
||||
|
||||
#endif // DIALOG_LABEL_PROPERTIES_H
|
||||
|
|
|
@ -181,70 +181,68 @@ DIALOG_LABEL_PROPERTIES_BASE::DIALOG_LABEL_PROPERTIES_BASE( wxWindow* parent, wx
|
|||
wxStaticBoxSizer* formatting;
|
||||
formatting = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Formatting") ), wxVERTICAL );
|
||||
|
||||
wxGridBagSizer* gbSizer1;
|
||||
gbSizer1 = new wxGridBagSizer( 3, 0 );
|
||||
gbSizer1->SetFlexibleDirection( wxBOTH );
|
||||
gbSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
m_formattingGB = new wxGridBagSizer( 3, 0 );
|
||||
m_formattingGB->SetFlexibleDirection( wxBOTH );
|
||||
m_formattingGB->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
m_fontLabel = new wxStaticText( formatting->GetStaticBox(), wxID_ANY, _("Font:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_fontLabel->Wrap( -1 );
|
||||
gbSizer1->Add( m_fontLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_formattingGB->Add( m_fontLabel, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
wxString m_fontCtrlChoices[] = { _("Default Font"), _("KiCad Font") };
|
||||
int m_fontCtrlNChoices = sizeof( m_fontCtrlChoices ) / sizeof( wxString );
|
||||
m_fontCtrl = new FONT_CHOICE( formatting->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_fontCtrlNChoices, m_fontCtrlChoices, 0 );
|
||||
m_fontCtrl->SetSelection( 0 );
|
||||
gbSizer1->Add( m_fontCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 2 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
|
||||
m_formattingGB->Add( m_fontCtrl, wxGBPosition( 0, 1 ), wxGBSpan( 1, 2 ), wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* formattingSizer;
|
||||
formattingSizer = new wxBoxSizer( wxHORIZONTAL );
|
||||
m_iconBar = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_separator1 = new BITMAP_BUTTON( formatting->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 21,21 ), wxBU_AUTODRAW|wxBORDER_NONE );
|
||||
m_separator1->Enable( false );
|
||||
|
||||
formattingSizer->Add( m_separator1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
|
||||
m_iconBar->Add( m_separator1, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
|
||||
|
||||
m_bold = new BITMAP_BUTTON( formatting->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 21,21 ), wxBU_AUTODRAW|wxBORDER_NONE );
|
||||
m_bold->SetToolTip( _("Bold") );
|
||||
|
||||
formattingSizer->Add( m_bold, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_iconBar->Add( m_bold, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_italic = new BITMAP_BUTTON( formatting->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 21,21 ), wxBU_AUTODRAW|wxBORDER_NONE );
|
||||
m_italic->SetToolTip( _("Italic") );
|
||||
|
||||
formattingSizer->Add( m_italic, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_iconBar->Add( m_italic, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_separator2 = new BITMAP_BUTTON( formatting->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 21,21 ), wxBU_AUTODRAW|wxBORDER_NONE );
|
||||
m_separator2->Enable( false );
|
||||
|
||||
formattingSizer->Add( m_separator2, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_iconBar->Add( m_separator2, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_spin0 = new BITMAP_BUTTON( formatting->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 21,21 ), wxBU_AUTODRAW|wxBORDER_NONE );
|
||||
formattingSizer->Add( m_spin0, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_iconBar->Add( m_spin0, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_spin1 = new BITMAP_BUTTON( formatting->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 21,21 ), wxBU_AUTODRAW|wxBORDER_NONE );
|
||||
formattingSizer->Add( m_spin1, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_iconBar->Add( m_spin1, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_spin2 = new BITMAP_BUTTON( formatting->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 21,21 ), wxBU_AUTODRAW|wxBORDER_NONE );
|
||||
formattingSizer->Add( m_spin2, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_iconBar->Add( m_spin2, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_spin3 = new BITMAP_BUTTON( formatting->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 21,21 ), wxBU_AUTODRAW|wxBORDER_NONE );
|
||||
formattingSizer->Add( m_spin3, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_iconBar->Add( m_spin3, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
m_autoRotate = new wxCheckBox( formatting->GetStaticBox(), wxID_ANY, _("Auto"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
formattingSizer->Add( m_autoRotate, 0, wxALL, 5 );
|
||||
m_iconBar->Add( m_autoRotate, 0, wxALL, 5 );
|
||||
|
||||
m_separator3 = new BITMAP_BUTTON( formatting->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxSize( 21,21 ), wxBU_AUTODRAW|wxBORDER_NONE );
|
||||
m_separator3->Enable( false );
|
||||
|
||||
formattingSizer->Add( m_separator3, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
m_iconBar->Add( m_separator3, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
|
||||
gbSizer1->Add( formattingSizer, wxGBPosition( 0, 3 ), wxGBSpan( 1, 1 ), wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||
m_formattingGB->Add( m_iconBar, wxGBPosition( 0, 3 ), wxGBSpan( 1, 1 ), wxEXPAND|wxRIGHT|wxLEFT, 5 );
|
||||
|
||||
m_textSizeLabel = new wxStaticText( formatting->GetStaticBox(), wxID_ANY, _("Text size:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
m_textSizeLabel->Wrap( -1 );
|
||||
gbSizer1->Add( m_textSizeLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
|
||||
m_formattingGB->Add( m_textSizeLabel, wxGBPosition( 1, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
|
||||
|
||||
wxBoxSizer* bSizer71;
|
||||
bSizer71 = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
@ -277,10 +275,10 @@ DIALOG_LABEL_PROPERTIES_BASE::DIALOG_LABEL_PROPERTIES_BASE( wxWindow* parent, wx
|
|||
bSizer71->Add( m_panelBorderColor1, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||
|
||||
|
||||
gbSizer1->Add( bSizer71, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
|
||||
m_formattingGB->Add( bSizer71, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
|
||||
|
||||
|
||||
formatting->Add( gbSizer1, 1, wxEXPAND, 5 );
|
||||
formatting->Add( m_formattingGB, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
optionsSizer->Add( formatting, 1, wxEXPAND|wxTOP, 5 );
|
||||
|
|
|
@ -1451,9 +1451,9 @@
|
|||
<property name="growablerows"></property>
|
||||
<property name="hgap">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">gbSizer1</property>
|
||||
<property name="name">m_formattingGB</property>
|
||||
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
||||
<property name="permission">none</property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="vgap">3</property>
|
||||
<object class="gbsizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
|
@ -1595,9 +1595,9 @@
|
|||
<property name="rowspan">1</property>
|
||||
<object class="wxBoxSizer" expanded="0">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">formattingSizer</property>
|
||||
<property name="name">m_iconBar</property>
|
||||
<property name="orient">wxHORIZONTAL</property>
|
||||
<property name="permission">none</property>
|
||||
<property name="permission">protected</property>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_CENTER_VERTICAL|wxLEFT</property>
|
||||
|
|
|
@ -76,8 +76,10 @@ class DIALOG_LABEL_PROPERTIES_BASE : public DIALOG_SHIM
|
|||
wxRadioButton* m_circle;
|
||||
wxRadioButton* m_diamond;
|
||||
wxRadioButton* m_rectangle;
|
||||
wxGridBagSizer* m_formattingGB;
|
||||
wxStaticText* m_fontLabel;
|
||||
FONT_CHOICE* m_fontCtrl;
|
||||
wxBoxSizer* m_iconBar;
|
||||
BITMAP_BUTTON* m_separator1;
|
||||
BITMAP_BUTTON* m_bold;
|
||||
BITMAP_BUTTON* m_italic;
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include <ee_actions.h>
|
||||
#include <sch_edit_frame.h>
|
||||
#include <project.h>
|
||||
#include <id.h>
|
||||
#include <pgm_base.h>
|
||||
#include <eeschema_id.h>
|
||||
#include <confirm.h>
|
||||
#include <view/view_controls.h>
|
||||
|
@ -54,8 +54,6 @@
|
|||
#include <string_utils.h>
|
||||
#include <wildcards_and_files_ext.h>
|
||||
#include <wx/filedlg.h>
|
||||
#include <sch_shape.h>
|
||||
#include "pgm_base.h"
|
||||
|
||||
SCH_DRAWING_TOOLS::SCH_DRAWING_TOOLS() :
|
||||
EE_TOOL_BASE<SCH_EDIT_FRAME>( "eeschema.InteractiveDrawing" ),
|
||||
|
@ -65,7 +63,6 @@ SCH_DRAWING_TOOLS::SCH_DRAWING_TOOLS() :
|
|||
m_lastTextOrientation( TEXT_SPIN_STYLE::RIGHT ),
|
||||
m_lastTextBold( false ),
|
||||
m_lastTextItalic( false ),
|
||||
m_lastNetClassDirectiveItalic( true ),
|
||||
m_lastTextAngle( ANGLE_0 ),
|
||||
m_lastTextJust( GR_TEXT_H_ALIGN_LEFT ),
|
||||
m_lastFillStyle( FILL_T::NO_FILL ),
|
||||
|
@ -988,12 +985,12 @@ SCH_TEXT* SCH_DRAWING_TOOLS::createNewText( const VECTOR2I& aPosition, int aType
|
|||
}
|
||||
|
||||
textItem->SetParent( schematic );
|
||||
textItem->SetBold( m_lastTextBold );
|
||||
|
||||
if( aType == LAYER_NETCLASS_REFS )
|
||||
textItem->SetItalic( m_lastNetClassDirectiveItalic );
|
||||
else
|
||||
if( aType != LAYER_NETCLASS_REFS )
|
||||
{
|
||||
textItem->SetBold( m_lastTextBold );
|
||||
textItem->SetItalic( m_lastTextItalic );
|
||||
}
|
||||
|
||||
textItem->SetTextSpinStyle( m_lastTextOrientation );
|
||||
textItem->SetTextSize( wxSize( settings.m_DefaultTextSize, settings.m_DefaultTextSize ) );
|
||||
|
@ -1030,12 +1027,11 @@ SCH_TEXT* SCH_DRAWING_TOOLS::createNewText( const VECTOR2I& aPosition, int aType
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
m_lastTextBold = textItem->IsBold();
|
||||
|
||||
if( aType == LAYER_NETCLASS_REFS )
|
||||
m_lastNetClassDirectiveItalic = textItem->IsItalic();
|
||||
else
|
||||
if( aType != LAYER_NETCLASS_REFS )
|
||||
{
|
||||
m_lastTextBold = textItem->IsBold();
|
||||
m_lastTextItalic = textItem->IsItalic();
|
||||
}
|
||||
|
||||
m_lastTextOrientation = textItem->GetTextSpinStyle();
|
||||
|
||||
|
|
|
@ -82,7 +82,6 @@ private:
|
|||
TEXT_SPIN_STYLE m_lastTextOrientation;
|
||||
bool m_lastTextBold;
|
||||
bool m_lastTextItalic;
|
||||
bool m_lastNetClassDirectiveItalic;
|
||||
EDA_ANGLE m_lastTextAngle;
|
||||
GR_TEXT_H_ALIGN_T m_lastTextJust;
|
||||
FILL_T m_lastFillStyle;
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
#include <tools/sch_line_wire_bus_tool.h>
|
||||
#include <tools/sch_move_tool.h>
|
||||
#include <tools/sch_drawing_tools.h>
|
||||
#include <widgets/infobar.h>
|
||||
#include <ee_actions.h>
|
||||
#include <bitmaps.h>
|
||||
#include <confirm.h>
|
||||
|
@ -51,7 +50,6 @@
|
|||
#include <schematic.h>
|
||||
#include <drawing_sheet/ds_proxy_view_item.h>
|
||||
#include <eeschema_id.h>
|
||||
#include <wx/gdicmn.h>
|
||||
#include <dialogs/dialog_change_symbols.h>
|
||||
#include <dialogs/dialog_image_properties.h>
|
||||
#include <dialogs/dialog_line_properties.h>
|
||||
|
@ -63,7 +61,6 @@
|
|||
#include <dialogs/dialog_shape_properties.h>
|
||||
#include <dialogs/dialog_label_properties.h>
|
||||
#include <dialogs/dialog_text_properties.h>
|
||||
#include <math/util.h> // for KiROUND
|
||||
#include <pgm_base.h>
|
||||
#include <settings/settings_manager.h>
|
||||
#include <symbol_editor_settings.h>
|
||||
|
@ -158,21 +155,10 @@ bool SCH_EDIT_TOOL::Init()
|
|||
auto sheetHasUndefinedPins =
|
||||
[]( const SELECTION& aSel )
|
||||
{
|
||||
if( aSel.Size() != 1 )
|
||||
return false;
|
||||
if( aSel.Size() == 1 && aSel.Front()->Type() == SCH_SHEET_T )
|
||||
return static_cast<SCH_SHEET*>( aSel.Front() )->HasUndefinedPins();
|
||||
|
||||
if( !aSel.HasType( SCH_SHEET_T ) )
|
||||
return false;
|
||||
|
||||
SCH_ITEM* item = dynamic_cast<SCH_ITEM*>( aSel.Front() );
|
||||
|
||||
wxCHECK( item, false );
|
||||
|
||||
SCH_SHEET* sheet = dynamic_cast<SCH_SHEET*>( item );
|
||||
|
||||
wxCHECK( sheet, false );
|
||||
|
||||
return sheet->HasUndefinedPins();
|
||||
return false;
|
||||
};
|
||||
|
||||
auto sheetSelection = E_C::Count( 1 ) && E_C::OnlyTypes( { SCH_SHEET_T } );
|
||||
|
@ -1908,12 +1894,8 @@ int SCH_EDIT_TOOL::ChangeTextType( const TOOL_EVENT& aEvent )
|
|||
{
|
||||
SCH_DIRECTIVE_LABEL* dirlabel = static_cast<SCH_DIRECTIVE_LABEL*>( item );
|
||||
|
||||
// a SCH_DIRECTIVE_LABEL has no text, but it usually has at least one field
|
||||
// containing the net class name
|
||||
if( dirlabel->GetFields().empty() )
|
||||
txt = _( "<empty>" );
|
||||
else
|
||||
txt = dirlabel->GetFields()[0].GetText();
|
||||
// a SCH_DIRECTIVE_LABEL has no text
|
||||
txt = _( "<empty>" );
|
||||
|
||||
orientation = dirlabel->GetTextSpinStyle();
|
||||
href = dirlabel->GetHyperlink();
|
||||
|
@ -1997,7 +1979,12 @@ int SCH_EDIT_TOOL::ChangeTextType( const TOOL_EVENT& aEvent )
|
|||
local_txt.Replace( " ", "_" );
|
||||
|
||||
// label strings are "escaped" i.e. a '/' is replaced by "{slash}"
|
||||
return EscapeString( local_txt, CTX_NETNAME );
|
||||
local_txt = EscapeString( local_txt, CTX_NETNAME );
|
||||
|
||||
if( local_txt.IsEmpty() )
|
||||
return _( "<empty>" );
|
||||
else
|
||||
return local_txt;
|
||||
};
|
||||
|
||||
switch( convertTo )
|
||||
|
@ -2039,12 +2026,17 @@ int SCH_EDIT_TOOL::ChangeTextType( const TOOL_EVENT& aEvent )
|
|||
{
|
||||
SCH_LABEL_BASE* new_label = new SCH_DIRECTIVE_LABEL( position );
|
||||
|
||||
// a SCH_DIRECTIVE_LABEL usually has at least one field containing the net class
|
||||
// name
|
||||
SCH_FIELD netclass( position, 0, new_label, wxT( "Netclass" ) );
|
||||
netclass.SetText( txt );
|
||||
netclass.SetVisible( true );
|
||||
new_label->GetFields().push_back( netclass );
|
||||
// A SCH_DIRECTIVE_LABEL usually has at least one field containing the net class
|
||||
// name. If we're copying from a text object assume the text is the netclass
|
||||
// name. Otherwise, we'll just copy the fields which will either have a netclass
|
||||
// or not.
|
||||
if( !dynamic_cast<SCH_LABEL_BASE*>( item ) )
|
||||
{
|
||||
SCH_FIELD netclass( position, 0, new_label, wxT( "Netclass" ) );
|
||||
netclass.SetText( txt );
|
||||
netclass.SetVisible( true );
|
||||
new_label->GetFields().push_back( netclass );
|
||||
}
|
||||
|
||||
new_label->SetShape( LABEL_FLAG_SHAPE::F_ROUND );
|
||||
new_label->SetTextSpinStyle( orientation );
|
||||
|
@ -2135,6 +2127,12 @@ int SCH_EDIT_TOOL::ChangeTextType( const TOOL_EVENT& aEvent )
|
|||
|
||||
newtext->AutoplaceFields( m_frame->GetScreen(), false );
|
||||
|
||||
SCH_LABEL_BASE* label = dynamic_cast<SCH_LABEL_BASE*>( item );
|
||||
SCH_LABEL_BASE* new_label = dynamic_cast<SCH_LABEL_BASE*>( newtext );
|
||||
|
||||
if( label && new_label )
|
||||
new_label->SetFields( label->GetFields() );
|
||||
|
||||
if( selected )
|
||||
m_toolMgr->RunAction( EE_ACTIONS::removeItemFromSel, true, item );
|
||||
|
||||
|
|
Loading…
Reference in New Issue