Commit 94479d87 authored by jean-pierre charras's avatar jean-pierre charras

eeschema: fix minor Bug #1446779 (repeat parameters not initialized until a project config is read)

Now these parameters are stored in user config, not project config ( they are not really related to a given project, they are just a setup during an edition),
and the schematic editor and the component editor have now separate parameters, because they are separate editors with different constraints.
component editor: repeat pin enhancement (from and idea of Edward Johns)
parent 584f35e6
...@@ -443,10 +443,10 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC ) ...@@ -443,10 +443,10 @@ void SCH_EDIT_FRAME::RepeatDrawItem( wxDC* DC )
} }
else else
{ {
my_clone->Move( wxPoint( g_RepeatStep.GetWidth(), g_RepeatStep.GetHeight() ) ); my_clone->Move( GetRepeatStep() );
if( my_clone->CanIncrementLabel() ) if( my_clone->CanIncrementLabel() )
( (SCH_TEXT*) my_clone )->IncrementLabel(); ( (SCH_TEXT*) my_clone )->IncrementLabel( GetRepeatDeltaLabel() );
GetScreen()->Append( my_clone ); GetScreen()->Append( my_clone );
GetScreen()->TestDanglingEnds(); GetScreen()->TestDanglingEnds();
......
...@@ -134,7 +134,7 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx ...@@ -134,7 +134,7 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
m_staticText16->Wrap( -1 ); m_staticText16->Wrap( -1 );
fgSizer1->Add( m_staticText16, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 ); fgSizer1->Add( m_staticText16, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
m_spinRepeatLabel = new wxSpinCtrl( m_panel1, wxID_ANY, wxT("1"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_WRAP, 0, 10, 1 ); m_spinRepeatLabel = new wxSpinCtrl( m_panel1, wxID_ANY, wxT("1"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_WRAP, -10, 10, 1 );
fgSizer1->Add( m_spinRepeatLabel, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 ); fgSizer1->Add( m_spinRepeatLabel, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
...@@ -213,7 +213,7 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx ...@@ -213,7 +213,7 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
m_panel1->SetSizer( p1mainSizer ); m_panel1->SetSizer( p1mainSizer );
m_panel1->Layout(); m_panel1->Layout();
p1mainSizer->Fit( m_panel1 ); p1mainSizer->Fit( m_panel1 );
m_notebook->AddPage( m_panel1, _("General Options"), false ); m_notebook->AddPage( m_panel1, _("General Options"), true );
m_panel2 = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel2 = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
m_panel2->SetToolTip( _("User defined field names for schematic components. ") ); m_panel2->SetToolTip( _("User defined field names for schematic components. ") );
...@@ -258,7 +258,7 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx ...@@ -258,7 +258,7 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
m_panel2->SetSizer( bSizer6 ); m_panel2->SetSizer( bSizer6 );
m_panel2->Layout(); m_panel2->Layout();
bSizer6->Fit( m_panel2 ); bSizer6->Fit( m_panel2 );
m_notebook->AddPage( m_panel2, _("Template Field Names"), true ); m_notebook->AddPage( m_panel2, _("Template Field Names"), false );
bOptionsSizer->Add( m_notebook, 1, wxALL|wxEXPAND, 5 ); bOptionsSizer->Add( m_notebook, 1, wxALL|wxEXPAND, 5 );
......
...@@ -187,7 +187,7 @@ ...@@ -187,7 +187,7 @@
<object class="notebookpage" expanded="1"> <object class="notebookpage" expanded="1">
<property name="bitmap"></property> <property name="bitmap"></property>
<property name="label">General Options</property> <property name="label">General Options</property>
<property name="select">0</property> <property name="select">1</property>
<object class="wxPanel" expanded="1"> <object class="wxPanel" expanded="1">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
...@@ -2117,7 +2117,7 @@ ...@@ -2117,7 +2117,7 @@
<property name="max_size"></property> <property name="max_size"></property>
<property name="maximize_button">0</property> <property name="maximize_button">0</property>
<property name="maximum_size"></property> <property name="maximum_size"></property>
<property name="min">0</property> <property name="min">-10</property>
<property name="min_size"></property> <property name="min_size"></property>
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
...@@ -3419,7 +3419,7 @@ ...@@ -3419,7 +3419,7 @@
<object class="notebookpage" expanded="1"> <object class="notebookpage" expanded="1">
<property name="bitmap"></property> <property name="bitmap"></property>
<property name="label">Template Field Names</property> <property name="label">Template Field Names</property>
<property name="select">1</property> <property name="select">0</property>
<object class="wxPanel" expanded="1"> <object class="wxPanel" expanded="1">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
......
...@@ -31,12 +31,17 @@ ...@@ -31,12 +31,17 @@
#include <class_base_screen.h> #include <class_base_screen.h>
#include <dialog_libedit_options.h> #include <dialog_libedit_options.h>
#include <libeditframe.h>
DIALOG_LIBEDIT_OPTIONS::DIALOG_LIBEDIT_OPTIONS( wxWindow* parent ) : DIALOG_LIBEDIT_OPTIONS::DIALOG_LIBEDIT_OPTIONS( LIB_EDIT_FRAME* parent ) :
DIALOG_LIBEDIT_OPTIONS_BASE( parent ) DIALOG_LIBEDIT_OPTIONS_BASE( parent )
{ {
m_sdbSizer1OK->SetDefault(); m_sdbSizerOK->SetDefault();
SetRepeatLabelInc( Parent()->GetRepeatDeltaLabel() );
SetItemRepeatStep( Parent()->GetRepeatStep() );
SetPinRepeatStep( Parent()->GetRepeatPinStep() );
} }
void DIALOG_LIBEDIT_OPTIONS::SetGridSizes( const GRIDS& grid_sizes, int grid_id ) void DIALOG_LIBEDIT_OPTIONS::SetGridSizes( const GRIDS& grid_sizes, int grid_id )
......
...@@ -33,10 +33,14 @@ ...@@ -33,10 +33,14 @@
#include <dialog_libedit_options_base.h> #include <dialog_libedit_options_base.h>
class LIB_EDIT_FRAME;
class DIALOG_LIBEDIT_OPTIONS : public DIALOG_LIBEDIT_OPTIONS_BASE class DIALOG_LIBEDIT_OPTIONS : public DIALOG_LIBEDIT_OPTIONS_BASE
{ {
public: public:
DIALOG_LIBEDIT_OPTIONS( wxWindow* parent ); DIALOG_LIBEDIT_OPTIONS( LIB_EDIT_FRAME* parent );
LIB_EDIT_FRAME* Parent() { return (LIB_EDIT_FRAME*) GetParent(); }
void SetGridSelection( int select ) { m_choiceGridSize->SetSelection( select ); } void SetGridSelection( int select ) { m_choiceGridSize->SetSelection( select ); }
int GetGridSelection( void ) { return m_choiceGridSize->GetSelection(); } int GetGridSelection( void ) { return m_choiceGridSize->GetSelection(); }
...@@ -56,6 +60,31 @@ public: ...@@ -56,6 +60,31 @@ public:
void SetPinNameSize( int text_size ) { m_spinPinNameSize->SetValue( text_size ); } void SetPinNameSize( int text_size ) { m_spinPinNameSize->SetValue( text_size ); }
int GetPinNameSize( void ) { return m_spinPinNameSize->GetValue(); } int GetPinNameSize( void ) { return m_spinPinNameSize->GetValue(); }
void SetPinRepeatStep( int aValue ) { m_choicePinDisplacement->SetSelection( aValue == 50 ? 1 : 0 ); }
int GetPinRepeatStep( void )
{
return m_choicePinDisplacement->GetSelection() == 1 ? 50 : 100;
}
void SetItemRepeatStep( wxPoint aValue )
{
m_spinRepeatHorizontal->SetValue( aValue.x );
m_spinRepeatVertical->SetValue( aValue.y );
}
wxPoint GetItemRepeatStep( void )
{
wxPoint step;
step.x = m_spinRepeatHorizontal->GetValue();
step.y = m_spinRepeatVertical->GetValue();
return step;
}
void SetRepeatLabelInc( int aValue ) { m_spinRepeatLabel->SetValue( aValue ); }
int GetRepeatLabelInc( void )
{
return m_spinRepeatLabel->GetValue();
}
}; };
#endif // __DIALOG_LIBEDIT_OPTIONS__ #endif // __DIALOG_LIBEDIT_OPTIONS__
...@@ -50,7 +50,7 @@ DIALOG_LIBEDIT_OPTIONS_BASE::DIALOG_LIBEDIT_OPTIONS_BASE( wxWindow* parent, wxWi ...@@ -50,7 +50,7 @@ DIALOG_LIBEDIT_OPTIONS_BASE::DIALOG_LIBEDIT_OPTIONS_BASE( wxWindow* parent, wxWi
m_staticText5->Wrap( -1 ); m_staticText5->Wrap( -1 );
fgSizer->Add( m_staticText5, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 ); fgSizer->Add( m_staticText5, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
m_spinLineWidth = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_WRAP, 1, 100, 1 ); m_spinLineWidth = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxSP_WRAP, 1, 100, 6 );
fgSizer->Add( m_spinLineWidth, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 ); fgSizer->Add( m_spinLineWidth, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 3 );
m_staticLineWidthUnits = new wxStaticText( this, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticLineWidthUnits = new wxStaticText( this, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 );
...@@ -90,6 +90,52 @@ DIALOG_LIBEDIT_OPTIONS_BASE::DIALOG_LIBEDIT_OPTIONS_BASE( wxWindow* parent, wxWi ...@@ -90,6 +90,52 @@ DIALOG_LIBEDIT_OPTIONS_BASE::DIALOG_LIBEDIT_OPTIONS_BASE( wxWindow* parent, wxWi
m_staticRepeatXUnits->Wrap( -1 ); m_staticRepeatXUnits->Wrap( -1 );
fgSizer->Add( m_staticRepeatXUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 ); fgSizer->Add( m_staticRepeatXUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
m_staticText11 = new wxStaticText( this, wxID_ANY, _("Repeat draw item &horizontal displacement:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText11->Wrap( -1 );
fgSizer->Add( m_staticText11, 0, wxALL, 5 );
m_spinRepeatHorizontal = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, -1000, 1000, 0 );
fgSizer->Add( m_spinRepeatHorizontal, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );
m_staticText12 = new wxStaticText( this, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText12->Wrap( -1 );
fgSizer->Add( m_staticText12, 0, wxALL, 5 );
m_staticText13 = new wxStaticText( this, wxID_ANY, _("Repeat draw item &vertical displacement:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText13->Wrap( -1 );
fgSizer->Add( m_staticText13, 0, wxALL, 5 );
m_spinRepeatVertical = new wxSpinCtrl( this, wxID_ANY, wxT("100"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, -1000, 1000, 0 );
fgSizer->Add( m_spinRepeatVertical, 0, wxALL|wxEXPAND, 5 );
m_staticText14 = new wxStaticText( this, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText14->Wrap( -1 );
fgSizer->Add( m_staticText14, 0, wxALL, 5 );
m_staticText15 = new wxStaticText( this, wxID_ANY, _("Repeat pin displacement"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText15->Wrap( -1 );
fgSizer->Add( m_staticText15, 0, wxALL, 5 );
wxString m_choicePinDisplacementChoices[] = { _("100"), _("50") };
int m_choicePinDisplacementNChoices = sizeof( m_choicePinDisplacementChoices ) / sizeof( wxString );
m_choicePinDisplacement = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choicePinDisplacementNChoices, m_choicePinDisplacementChoices, 0 );
m_choicePinDisplacement->SetSelection( 0 );
fgSizer->Add( m_choicePinDisplacement, 0, wxALL|wxEXPAND, 5 );
m_staticText16 = new wxStaticText( this, wxID_ANY, _("mils"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText16->Wrap( -1 );
fgSizer->Add( m_staticText16, 0, wxALL, 5 );
m_staticText17 = new wxStaticText( this, wxID_ANY, _("&Repeat label increment:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText17->Wrap( -1 );
fgSizer->Add( m_staticText17, 0, wxALL, 5 );
m_spinRepeatLabel = new wxSpinCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, -10, 10, 1 );
fgSizer->Add( m_spinRepeatLabel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );
fgSizer->Add( 0, 0, 0, 0, 5 );
bSizer3->Add( fgSizer, 0, wxALIGN_CENTER|wxEXPAND, 0 ); bSizer3->Add( fgSizer, 0, wxALIGN_CENTER|wxEXPAND, 0 );
...@@ -114,14 +160,14 @@ DIALOG_LIBEDIT_OPTIONS_BASE::DIALOG_LIBEDIT_OPTIONS_BASE( wxWindow* parent, wxWi ...@@ -114,14 +160,14 @@ DIALOG_LIBEDIT_OPTIONS_BASE::DIALOG_LIBEDIT_OPTIONS_BASE( wxWindow* parent, wxWi
m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
bOptionsSizer->Add( m_staticline2, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); bOptionsSizer->Add( m_staticline2, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
m_sdbSizer1 = new wxStdDialogButtonSizer(); m_sdbSizer = new wxStdDialogButtonSizer();
m_sdbSizer1OK = new wxButton( this, wxID_OK ); m_sdbSizerOK = new wxButton( this, wxID_OK );
m_sdbSizer1->AddButton( m_sdbSizer1OK ); m_sdbSizer->AddButton( m_sdbSizerOK );
m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); m_sdbSizer->AddButton( m_sdbSizerCancel );
m_sdbSizer1->Realize(); m_sdbSizer->Realize();
bOptionsSizer->Add( m_sdbSizer1, 0, wxALL|wxEXPAND, 6 ); bOptionsSizer->Add( m_sdbSizer, 0, wxALL|wxEXPAND, 6 );
mainSizer->Add( bOptionsSizer, 1, wxEXPAND, 12 ); mainSizer->Add( bOptionsSizer, 1, wxEXPAND, 12 );
......
...@@ -54,16 +54,27 @@ class DIALOG_LIBEDIT_OPTIONS_BASE : public DIALOG_SHIM ...@@ -54,16 +54,27 @@ class DIALOG_LIBEDIT_OPTIONS_BASE : public DIALOG_SHIM
wxStaticText* m_staticText9; wxStaticText* m_staticText9;
wxSpinCtrl* m_spinPinNameSize; wxSpinCtrl* m_spinPinNameSize;
wxStaticText* m_staticRepeatXUnits; wxStaticText* m_staticRepeatXUnits;
wxStaticText* m_staticText11;
wxSpinCtrl* m_spinRepeatHorizontal;
wxStaticText* m_staticText12;
wxStaticText* m_staticText13;
wxSpinCtrl* m_spinRepeatVertical;
wxStaticText* m_staticText14;
wxStaticText* m_staticText15;
wxChoice* m_choicePinDisplacement;
wxStaticText* m_staticText16;
wxStaticText* m_staticText17;
wxSpinCtrl* m_spinRepeatLabel;
wxStaticLine* m_staticline3; wxStaticLine* m_staticline3;
wxCheckBox* m_checkShowGrid; wxCheckBox* m_checkShowGrid;
wxStaticLine* m_staticline2; wxStaticLine* m_staticline2;
wxStdDialogButtonSizer* m_sdbSizer1; wxStdDialogButtonSizer* m_sdbSizer;
wxButton* m_sdbSizer1OK; wxButton* m_sdbSizerOK;
wxButton* m_sdbSizer1Cancel; wxButton* m_sdbSizerCancel;
public: public:
DIALOG_LIBEDIT_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Library Editor Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 492,244 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); DIALOG_LIBEDIT_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Library Editor Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 492,403 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_LIBEDIT_OPTIONS_BASE(); ~DIALOG_LIBEDIT_OPTIONS_BASE();
}; };
......
...@@ -292,9 +292,9 @@ void SCH_EDIT_FRAME::OnConvertTextType( wxCommandEvent& aEvent ) ...@@ -292,9 +292,9 @@ void SCH_EDIT_FRAME::OnConvertTextType( wxCommandEvent& aEvent )
/* Function to increment bus label members numbers, /* Function to increment bus label members numbers,
* i.e. when a text is ending with a number, adds * i.e. when a text is ending with a number, adds
* <RepeatDeltaLabel> to this number * aIncrement to this number
*/ */
void IncrementLabelMember( wxString& name ) void IncrementLabelMember( wxString& name, int aIncrement )
{ {
int ii, nn; int ii, nn;
long number = 0; long number = 0;
...@@ -314,7 +314,7 @@ void IncrementLabelMember( wxString& name ) ...@@ -314,7 +314,7 @@ void IncrementLabelMember( wxString& name )
if( litt_number.ToLong( &number ) ) if( litt_number.ToLong( &number ) )
{ {
number += g_RepeatDeltaLabel; number += aIncrement;
name.Remove( ii ); name << number; name.Remove( ii ); name << number;
} }
} }
...@@ -48,13 +48,10 @@ ...@@ -48,13 +48,10 @@
#include <kiway.h> #include <kiway.h>
// The main sheet of the project
// Global variables
wxSize g_RepeatStep;
int g_RepeatDeltaLabel;
int g_DefaultBusWidth;
SCH_SHEET* g_RootSheet = NULL; SCH_SHEET* g_RootSheet = NULL;
// a transform matrix, to display components in lib editor
TRANSFORM DefaultTransform = TRANSFORM( 1, 0, 0, -1 ); TRANSFORM DefaultTransform = TRANSFORM( 1, 0, 0, -1 );
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
#define FR_HISTORY_LIST_CNT 10 ///< Maximum number of find and replace strings. #define FR_HISTORY_LIST_CNT 10 ///< Maximum number of find and replace strings.
static int s_defaultBusThickness = 15; static int s_defaultBusThickness = DEFAULTBUSTHICKNESS;
int GetDefaultBusThickness() int GetDefaultBusThickness()
{ {
...@@ -93,7 +93,7 @@ void SetDefaultTextSize( int aTextSize ) ...@@ -93,7 +93,7 @@ void SetDefaultTextSize( int aTextSize )
* Default line (in Eeschema units) thickness used to draw/plot items having a * Default line (in Eeschema units) thickness used to draw/plot items having a
* default thickness line value (i.e. = 0 ). * default thickness line value (i.e. = 0 ).
*/ */
static int s_drawDefaultLineThickness; static int s_drawDefaultLineThickness = DEFAULTDRAWLINETHICKNESS;
int GetDefaultLineThickness() int GetDefaultLineThickness()
...@@ -320,9 +320,9 @@ void SCH_EDIT_FRAME::OnPreferencesOptions( wxCommandEvent& event ) ...@@ -320,9 +320,9 @@ void SCH_EDIT_FRAME::OnPreferencesOptions( wxCommandEvent& event )
dlg.SetBusWidth( GetDefaultBusThickness() ); dlg.SetBusWidth( GetDefaultBusThickness() );
dlg.SetLineWidth( GetDefaultLineThickness() ); dlg.SetLineWidth( GetDefaultLineThickness() );
dlg.SetTextSize( GetDefaultTextSize() ); dlg.SetTextSize( GetDefaultTextSize() );
dlg.SetRepeatHorizontal( g_RepeatStep.x ); dlg.SetRepeatHorizontal( GetRepeatStep().x );
dlg.SetRepeatVertical( g_RepeatStep.y ); dlg.SetRepeatVertical( GetRepeatStep().y );
dlg.SetRepeatLabel( g_RepeatDeltaLabel ); dlg.SetRepeatLabel( GetRepeatDeltaLabel() );
dlg.SetAutoSaveInterval( GetAutoSaveInterval() / 60 ); dlg.SetAutoSaveInterval( GetAutoSaveInterval() / 60 );
dlg.SetRefIdSeparator( LIB_PART::GetSubpartIdSeparator(), dlg.SetRefIdSeparator( LIB_PART::GetSubpartIdSeparator(),
LIB_PART::GetSubpartFirstId() ); LIB_PART::GetSubpartFirstId() );
...@@ -367,15 +367,11 @@ void SCH_EDIT_FRAME::OnPreferencesOptions( wxCommandEvent& event ) ...@@ -367,15 +367,11 @@ void SCH_EDIT_FRAME::OnPreferencesOptions( wxCommandEvent& event )
saveProjectConfig = true; saveProjectConfig = true;
} }
if( g_RepeatStep.x != dlg.GetRepeatHorizontal() || wxPoint step;
g_RepeatStep.y != dlg.GetRepeatVertical() || step.x = dlg.GetRepeatHorizontal();
g_RepeatDeltaLabel != dlg.GetRepeatLabel() ) step.y = dlg.GetRepeatVertical();
{ SetRepeatStep( step );
g_RepeatStep.x = dlg.GetRepeatHorizontal(); SetRepeatDeltaLabel( dlg.GetRepeatLabel() );
g_RepeatStep.y = dlg.GetRepeatVertical();
g_RepeatDeltaLabel = dlg.GetRepeatLabel();
saveProjectConfig = true;
}
SetAutoSaveInterval( dlg.GetAutoSaveInterval() * 60 ); SetAutoSaveInterval( dlg.GetAutoSaveInterval() * 60 );
SetGridVisibility( dlg.GetShowGrid() ); SetGridVisibility( dlg.GetShowGrid() );
...@@ -441,15 +437,6 @@ PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetProjectFileParametersList() ...@@ -441,15 +437,6 @@ PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetProjectFileParametersList()
m_projectFileParams.push_back( new PARAM_CFG_BOOL( wxT( "SpiceUseNetNumbers" ), m_projectFileParams.push_back( new PARAM_CFG_BOOL( wxT( "SpiceUseNetNumbers" ),
&m_spiceNetlistUseNetcodeAsNetname, false ) ); &m_spiceNetlistUseNetcodeAsNetname, false ) );
m_projectFileParams.push_back( new PARAM_CFG_INT( wxT( "RptD_X" ),
&g_RepeatStep.x,
0, -1000, +1000 ) );
m_projectFileParams.push_back( new PARAM_CFG_INT( wxT( "RptD_Y" ),
&g_RepeatStep.y,
100, -1000, +1000 ) );
m_projectFileParams.push_back( new PARAM_CFG_INT( wxT( "RptLab" ),
&g_RepeatDeltaLabel,
1, -10, +10 ) );
m_projectFileParams.push_back( new PARAM_CFG_INT( wxT( "LabSize" ), m_projectFileParams.push_back( new PARAM_CFG_INT( wxT( "LabSize" ),
&s_defaultTextSize, &s_defaultTextSize,
DEFAULT_SIZE_TEXT, 5, DEFAULT_SIZE_TEXT, 5,
...@@ -545,6 +532,10 @@ static const wxChar lastLibImportPathEntry[] = wxT( "LastLibraryImportPath" ...@@ -545,6 +532,10 @@ static const wxChar lastLibImportPathEntry[] = wxT( "LastLibraryImportPath"
static const wxChar defaultPinNumSizeEntry[] = wxT( "LibeditPinNumSize" ); static const wxChar defaultPinNumSizeEntry[] = wxT( "LibeditPinNumSize" );
static const wxChar defaultPinNameSizeEntry[] = wxT( "LibeditPinNameSize" ); static const wxChar defaultPinNameSizeEntry[] = wxT( "LibeditPinNameSize" );
static const wxChar DefaultPinLengthEntry[] = wxT( "DefaultPinLength" ); static const wxChar DefaultPinLengthEntry[] = wxT( "DefaultPinLength" );
static const wxChar repeatLibLabelIncEntry[] = wxT( "LibeditRepeatLabelInc" );
static const wxChar pinRepeatStepEntry[] = wxT( "LibeditPinRepeatStep" );
static const wxChar repeatLibStepXEntry[] = wxT( "LibeditRepeatStepX" );
static const wxChar repeatLibStepYEntry[] = wxT( "LibeditRepeatStepY" );
PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetConfigurationSettings() PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetConfigurationSettings()
...@@ -562,6 +553,19 @@ PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetConfigurationSettings() ...@@ -562,6 +553,19 @@ PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetConfigurationSettings()
m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "PrintSheetReferenceAndTitleBlock" ), m_configSettings.push_back( new PARAM_CFG_BOOL( true, wxT( "PrintSheetReferenceAndTitleBlock" ),
&m_printSheetReference, true ) ); &m_printSheetReference, true ) );
m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "RepeatStepX" ),
&m_repeatStep.x,
DEFAULT_REPEAT_OFFSET_X,
-REPEAT_OFFSET_MAX,
REPEAT_OFFSET_MAX ) );
m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "RepeatStepY" ),
&m_repeatStep.y,
DEFAULT_REPEAT_OFFSET_Y,
-REPEAT_OFFSET_MAX,
REPEAT_OFFSET_MAX ) );
m_configSettings.push_back( new PARAM_CFG_INT( true, wxT( "RepeatLabelIncrement" ),
&m_repeatDeltaLabel,
DEFAULT_REPEAT_LABEL_INC, -10, +10 ) );
return m_configSettings; return m_configSettings;
} }
...@@ -746,6 +750,12 @@ void LIB_EDIT_FRAME::LoadSettings( wxConfigBase* aCfg ) ...@@ -746,6 +750,12 @@ void LIB_EDIT_FRAME::LoadSettings( wxConfigBase* aCfg )
SetDefaultPinLength( aCfg->Read( DefaultPinLengthEntry, DEFAULTPINLENGTH ) ); SetDefaultPinLength( aCfg->Read( DefaultPinLengthEntry, DEFAULTPINLENGTH ) );
m_textPinNumDefaultSize = aCfg->Read( defaultPinNumSizeEntry, DEFAULTPINNUMSIZE ); m_textPinNumDefaultSize = aCfg->Read( defaultPinNumSizeEntry, DEFAULTPINNUMSIZE );
m_textPinNameDefaultSize = aCfg->Read( defaultPinNameSizeEntry, DEFAULTPINNAMESIZE ); m_textPinNameDefaultSize = aCfg->Read( defaultPinNameSizeEntry, DEFAULTPINNAMESIZE );
SetRepeatDeltaLabel( aCfg->Read( repeatLibLabelIncEntry, DEFAULT_REPEAT_LABEL_INC ) );
SetRepeatPinStep( aCfg->Read( pinRepeatStepEntry, DEFAULT_REPEAT_OFFSET_PIN ) );
wxPoint step;
step.x = aCfg->Read( repeatLibStepXEntry, (long)DEFAULT_REPEAT_OFFSET_X );
step.y = aCfg->Read( repeatLibStepYEntry, (long)DEFAULT_REPEAT_OFFSET_Y );
SetRepeatStep( step );
} }
...@@ -758,10 +768,15 @@ void LIB_EDIT_FRAME::SaveSettings( wxConfigBase* aCfg ) ...@@ -758,10 +768,15 @@ void LIB_EDIT_FRAME::SaveSettings( wxConfigBase* aCfg )
aCfg->Write( lastLibExportPathEntry, m_lastLibExportPath ); aCfg->Write( lastLibExportPathEntry, m_lastLibExportPath );
aCfg->Write( lastLibImportPathEntry, m_lastLibImportPath ); aCfg->Write( lastLibImportPathEntry, m_lastLibImportPath );
aCfg->Write( DefaultPinLengthEntry, (long) GetDefaultPinLength() ); aCfg->Write( DefaultPinLengthEntry, (long) GetDefaultPinLength() );
aCfg->Write( defaultPinNumSizeEntry, (long) m_textPinNumDefaultSize ); aCfg->Write( defaultPinNumSizeEntry, (long) GetPinNumDefaultSize() );
aCfg->Write( defaultPinNameSizeEntry, (long) m_textPinNameDefaultSize ); aCfg->Write( defaultPinNameSizeEntry, (long) GetPinNameDefaultSize() );
aCfg->Write( repeatLibLabelIncEntry, (long) GetRepeatDeltaLabel() );
aCfg->Write( pinRepeatStepEntry, (long) GetRepeatPinStep() );
aCfg->Write( repeatLibStepXEntry, (long) GetRepeatStep().x );
aCfg->Write( repeatLibStepYEntry, (long) GetRepeatStep().y );
} }
void LIB_EDIT_FRAME::OnPreferencesOptions( wxCommandEvent& event ) void LIB_EDIT_FRAME::OnPreferencesOptions( wxCommandEvent& event )
{ {
wxArrayString units; wxArrayString units;
...@@ -790,6 +805,9 @@ void LIB_EDIT_FRAME::OnPreferencesOptions( wxCommandEvent& event ) ...@@ -790,6 +805,9 @@ void LIB_EDIT_FRAME::OnPreferencesOptions( wxCommandEvent& event )
m_textPinNumDefaultSize = dlg.GetPinNumSize(); m_textPinNumDefaultSize = dlg.GetPinNumSize();
m_textPinNameDefaultSize = dlg.GetPinNameSize(); m_textPinNameDefaultSize = dlg.GetPinNameSize();
SetGridVisibility( dlg.GetShowGrid() ); SetGridVisibility( dlg.GetShowGrid() );
SetRepeatPinStep( dlg.GetPinRepeatStep() );
SetRepeatStep( dlg.GetItemRepeatStep() );
SetRepeatDeltaLabel( dlg.GetRepeatLabelInc() );
SaveSettings( config() ); // save values shared by eeschema applications. SaveSettings( config() ); // save values shared by eeschema applications.
......
...@@ -40,8 +40,16 @@ class SCH_SHEET; ...@@ -40,8 +40,16 @@ class SCH_SHEET;
#define TXTMARGE 10 // Offset in mils for placement of labels and pin numbers #define TXTMARGE 10 // Offset in mils for placement of labels and pin numbers
#define DANGLING_SYMBOL_SIZE 12 #define DANGLING_SYMBOL_SIZE 12
#define DEFAULT_REPEAT_OFFSET_X 0 ///< the default X value (overwritten by the eeschema config)
#define DEFAULT_REPEAT_OFFSET_Y 100 ///< the default Y value (overwritten by the eeschema config)
#define REPEAT_OFFSET_MAX 1000 ///< the max value of repeat offset value
#define DEFAULT_REPEAT_LABEL_INC 1 ///< the default value (overwritten by the eeschema config)
#define DEFAULT_REPEAT_OFFSET_PIN 100 ///< the default value (overwritten by the eeschema config)
///< when repeating a pin
///< The thickness to draw busses that do not have a specific width ///< The thickness to draw busses that do not have a specific width
//</ (can be changed in preference menu) ///< (can be changed in preference menu)
#define DEFAULTBUSTHICKNESS 12 #define DEFAULTBUSTHICKNESS 12
///< The thickness to draw lines that thickness is set to 0 (default thickness) ///< The thickness to draw lines that thickness is set to 0 (default thickness)
...@@ -103,14 +111,11 @@ inline LAYERSCH_ID operator++( LAYERSCH_ID& a ) ...@@ -103,14 +111,11 @@ inline LAYERSCH_ID operator++( LAYERSCH_ID& a )
/* Rotation, mirror of graphic items in components bodies are handled by a /* Rotation, mirror of graphic items in components bodies are handled by a
* transform matrix. The default matrix is useful to draw lib entries with * transform matrix. The default matrix is useful to draw lib entries with
* using this default matrix ( no rotation, no mirror but Y axis is bottom to top, and * using this default matrix ( no rotation, no mirror but Y axis is bottom to top, and
* Y draw axis is to to bottom so we must have a default matix that reverses * Y draw axis is to to bottom so we must have a default matrix that reverses
* the Y coordinate and keeps the X coordiate * the Y coordinate and keeps the X coordiate
*/ */
extern TRANSFORM DefaultTransform; extern TRANSFORM DefaultTransform;
extern wxSize g_RepeatStep;
extern int g_RepeatDeltaLabel;
/* First and main (root) screen */ /* First and main (root) screen */
extern SCH_SHEET* g_RootSheet; extern SCH_SHEET* g_RootSheet;
......
...@@ -194,6 +194,7 @@ LIB_EDIT_FRAME::LIB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) : ...@@ -194,6 +194,7 @@ LIB_EDIT_FRAME::LIB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
m_drawSpecificUnit = false; m_drawSpecificUnit = false;
m_HotkeysZoomAndGridList = g_Libedit_Hokeys_Descr; m_HotkeysZoomAndGridList = g_Libedit_Hokeys_Descr;
m_editPinsPerPartOrConvert = false; m_editPinsPerPartOrConvert = false;
m_repeatPinStep = DEFAULT_REPEAT_OFFSET_PIN;
// Delayed initialization // Delayed initialization
if( m_textSize == -1 ) if( m_textSize == -1 )
......
...@@ -119,6 +119,9 @@ class LIB_EDIT_FRAME : public SCH_BASE_FRAME ...@@ -119,6 +119,9 @@ class LIB_EDIT_FRAME : public SCH_BASE_FRAME
/// Default pin length /// Default pin length
static int m_defaultPinLength; static int m_defaultPinLength;
/// Default repeat offset for pins in repeat place pin
int m_repeatPinStep;
static wxSize m_clientSize; static wxSize m_clientSize;
friend class DIALOG_LIB_EDIT_TEXT; friend class DIALOG_LIB_EDIT_TEXT;
...@@ -174,6 +177,19 @@ public: ...@@ -174,6 +177,19 @@ public:
*/ */
static void SetDefaultPinLength( int aLength ) { m_defaultPinLength = aLength; } static void SetDefaultPinLength( int aLength ) { m_defaultPinLength = aLength; }
/**
* @return the increment value of the position of a pin
* for the pin repeat command
*/
int GetRepeatPinStep() const { return m_repeatPinStep; }
/**
* Sets the repeat step value for pins repeat command
* @param aStep the increment value of the position of an item
* for the repeat command
*/
void SetRepeatPinStep( int aStep) { m_repeatPinStep = aStep; }
void ReCreateMenuBar(); void ReCreateMenuBar();
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
#include <dialog_lib_edit_pin.h> #include <dialog_lib_edit_pin.h>
extern void IncrementLabelMember( wxString& name ); extern void IncrementLabelMember( wxString& name, int aIncrement );
static void AbortPinMove( EDA_DRAW_PANEL* Panel, wxDC* DC ); static void AbortPinMove( EDA_DRAW_PANEL* Panel, wxDC* DC );
...@@ -572,13 +572,34 @@ void LIB_EDIT_FRAME::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin ) ...@@ -572,13 +572,34 @@ void LIB_EDIT_FRAME::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin )
pin->ClearFlags(); pin->ClearFlags();
pin->SetFlags( IS_NEW ); pin->SetFlags( IS_NEW );
pin->Move( pin->GetPosition() + wxPoint( g_RepeatStep.x, -g_RepeatStep.y ) ); wxPoint step;
switch( pin->GetOrientation() )
{
case PIN_UP:
step.x = GetRepeatPinStep();
break;
case PIN_DOWN:
step.x = GetRepeatPinStep();
break;
case PIN_LEFT:
step.y = - GetRepeatPinStep();
break;
case PIN_RIGHT:
step.y = - GetRepeatPinStep();
break;
}
pin->Move( pin->GetPosition() + step );
wxString nextName = pin->GetName(); wxString nextName = pin->GetName();
IncrementLabelMember( nextName ); IncrementLabelMember( nextName, GetRepeatDeltaLabel() );
pin->SetName( nextName ); pin->SetName( nextName );
pin->PinStringNum( msg ); pin->PinStringNum( msg );
IncrementLabelMember( msg ); IncrementLabelMember( msg, GetRepeatDeltaLabel() );
pin->SetPinNumFromString( msg ); pin->SetPinNumFromString( msg );
m_drawItem = pin; m_drawItem = pin;
......
...@@ -28,6 +28,9 @@ ...@@ -28,6 +28,9 @@
#include <base_units.h> #include <base_units.h>
#include <kiway.h> #include <kiway.h>
// Sttaic members:
SCH_BASE_FRAME::SCH_BASE_FRAME( KIWAY* aKiway, wxWindow* aParent, SCH_BASE_FRAME::SCH_BASE_FRAME( KIWAY* aKiway, wxWindow* aParent,
FRAME_T aWindowType, const wxString& aTitle, FRAME_T aWindowType, const wxString& aTitle,
const wxPoint& aPosition, const wxSize& aSize, long aStyle, const wxPoint& aPosition, const wxSize& aSize, long aStyle,
...@@ -39,6 +42,8 @@ SCH_BASE_FRAME::SCH_BASE_FRAME( KIWAY* aKiway, wxWindow* aParent, ...@@ -39,6 +42,8 @@ SCH_BASE_FRAME::SCH_BASE_FRAME( KIWAY* aKiway, wxWindow* aParent,
// when the screen shows a 1:1 image // when the screen shows a 1:1 image
// obviously depends on the monitor, // obviously depends on the monitor,
// but this is an acceptable value // but this is an acceptable value
m_repeatStep = wxPoint( DEFAULT_REPEAT_OFFSET_X, DEFAULT_REPEAT_OFFSET_Y );
m_repeatDeltaLabel = DEFAULT_REPEAT_LABEL_INC;
} }
......
...@@ -47,6 +47,13 @@ class SCHLIB_FILTER; ...@@ -47,6 +47,13 @@ class SCHLIB_FILTER;
*/ */
class SCH_BASE_FRAME : public EDA_DRAW_FRAME class SCH_BASE_FRAME : public EDA_DRAW_FRAME
{ {
protected:
wxPoint m_repeatStep; ///< the increment value of the position of an item
///< when it is repeated
int m_repeatDeltaLabel; ///< the increment value of labels like bus members
///< when they are repeated
public: public:
SCH_BASE_FRAME( KIWAY* aKiway, wxWindow* aParent, SCH_BASE_FRAME( KIWAY* aKiway, wxWindow* aParent,
FRAME_T aWindowType, FRAME_T aWindowType,
...@@ -56,6 +63,33 @@ public: ...@@ -56,6 +63,33 @@ public:
SCH_SCREEN* GetScreen() const; // overload EDA_DRAW_FRAME SCH_SCREEN* GetScreen() const; // overload EDA_DRAW_FRAME
/**
* @return the increment value of the position of an item
* for the repeat command
*/
const wxPoint GetRepeatStep() const { return m_repeatStep; }
/**
* Sets the repeat step value for repeat command
* @param aStep the increment value of the position of an item
* for the repeat command
*/
void SetRepeatStep( const wxPoint& aStep) { m_repeatStep = aStep; }
/**
* @return the increment value of labels like bus members
* for the repeat command
*/
int GetRepeatDeltaLabel() const { return m_repeatDeltaLabel; }
/**
* Sets the repeat delta label value for repeat command
* @param aDelta the increment value of labels like bus members
* for the repeat command
*/
void SetRepeatDeltaLabel( int aDelta ) { m_repeatDeltaLabel = aDelta; }
/** /**
* Function GetZoomLevelIndicator * Function GetZoomLevelIndicator
* returns a human readable value which can be displayed as zoom * returns a human readable value which can be displayed as zoom
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
#include <class_netlist_object.h> #include <class_netlist_object.h>
extern void IncrementLabelMember( wxString& name ); extern void IncrementLabelMember( wxString& name, int aIncrement );
/* Names of sheet label types. */ /* Names of sheet label types. */
...@@ -131,9 +131,9 @@ EDA_ITEM* SCH_TEXT::Clone() const ...@@ -131,9 +131,9 @@ EDA_ITEM* SCH_TEXT::Clone() const
} }
void SCH_TEXT::IncrementLabel() void SCH_TEXT::IncrementLabel( int aIncrement )
{ {
IncrementLabelMember( m_Text ); IncrementLabelMember( m_Text, aIncrement );
} }
......
...@@ -98,9 +98,11 @@ public: ...@@ -98,9 +98,11 @@ public:
/** /**
* Function IncrementLabel * Function IncrementLabel
* increments the label text. * increments the label text, if it ends with a number.
* @param aIncrement = the increment value to add to the number
* ending the text
*/ */
void IncrementLabel(); void IncrementLabel( int aIncrement );
/** /**
* Function SetOrientation * Function SetOrientation
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment