Simplify default format for exporting netlist.

It's now just remembers the last-shown tab.

Fixes https://gitlab.com/kicad/code/kicad/issues/7618
This commit is contained in:
Jeff Young 2021-02-26 00:35:07 +00:00
parent f73039cb18
commit 808ab92834
1 changed files with 5 additions and 72 deletions

View File

@ -70,7 +70,6 @@ class NETLIST_PAGE_DIALOG : public wxPanel
{ {
public: public:
NETLIST_TYPE_ID m_IdNetType; NETLIST_TYPE_ID m_IdNetType;
wxCheckBox* m_IsCurrentFormat;
// opt to reformat passive component values (e.g. 1M -> 1Meg): // opt to reformat passive component values (e.g. 1M -> 1Meg):
wxCheckBox* m_AdjustPassiveValues; wxCheckBox* m_AdjustPassiveValues;
wxTextCtrl* m_CommandStringCtrl; wxTextCtrl* m_CommandStringCtrl;
@ -113,9 +112,6 @@ public:
wxString m_DefaultNetFmtName; wxString m_DefaultNetFmtName;
NETLIST_PAGE_DIALOG* m_PanelNetType[4 + CUSTOMPANEL_COUNTMAX]; NETLIST_PAGE_DIALOG* m_PanelNetType[4 + CUSTOMPANEL_COUNTMAX];
protected:
bool m_asFormatSelected;
public: public:
// Constructor and destructor // Constructor and destructor
NETLIST_DIALOG( SCH_EDIT_FRAME* parent ); NETLIST_DIALOG( SCH_EDIT_FRAME* parent );
@ -133,9 +129,6 @@ private:
// Called when changing the notebook page (and therefore the current netlist format) // Called when changing the notebook page (and therefore the current netlist format)
void OnNetlistTypeSelection( wxNotebookEvent& event ) override; void OnNetlistTypeSelection( wxNotebookEvent& event ) override;
// called when checking the "Default format" wxCheckBox in the current page of the notbook
void SelectDefaultNetlistType( wxCommandEvent& event );
/** /**
* Function OnAddGenerator * Function OnAddGenerator
* Add a new panel for a new netlist plugin * Add a new panel for a new netlist plugin
@ -208,15 +201,12 @@ private:
/* Event id for notebook page buttons: */ /* Event id for notebook page buttons: */
enum id_netlist { enum id_netlist {
ID_CREATE_NETLIST = ID_END_EESCHEMA_ID_LIST + 1, ID_CREATE_NETLIST = ID_END_EESCHEMA_ID_LIST + 1,
ID_CURRENT_FORMAT_IS_DEFAULT,
ID_ADD_SUBCIRCUIT_PREFIX,
ID_USE_NETCODE_AS_NETNAME, ID_USE_NETCODE_AS_NETNAME,
ID_RUN_SIMULATOR ID_RUN_SIMULATOR
}; };
BEGIN_EVENT_TABLE( NETLIST_DIALOG, NETLIST_DIALOG_BASE ) BEGIN_EVENT_TABLE( NETLIST_DIALOG, NETLIST_DIALOG_BASE )
EVT_CHECKBOX( ID_CURRENT_FORMAT_IS_DEFAULT, NETLIST_DIALOG::SelectDefaultNetlistType )
EVT_BUTTON( ID_RUN_SIMULATOR, NETLIST_DIALOG::OnRunExternSpiceCommand ) EVT_BUTTON( ID_RUN_SIMULATOR, NETLIST_DIALOG::OnRunExternSpiceCommand )
EVT_UPDATE_UI( ID_RUN_SIMULATOR, NETLIST_DIALOG::OnRunSpiceButtUI ) EVT_UPDATE_UI( ID_RUN_SIMULATOR, NETLIST_DIALOG::OnRunSpiceButtUI )
END_EVENT_TABLE() END_EVENT_TABLE()
@ -231,7 +221,6 @@ NETLIST_PAGE_DIALOG::NETLIST_PAGE_DIALOG( wxNotebook* parent, const wxString& ti
m_pageNetFmtName = title; m_pageNetFmtName = title;
m_CommandStringCtrl = NULL; m_CommandStringCtrl = NULL;
m_TitleStringCtrl = NULL; m_TitleStringCtrl = NULL;
m_IsCurrentFormat = NULL;
m_AdjustPassiveValues = NULL; m_AdjustPassiveValues = NULL;
wxString netfmtName = static_cast<NETLIST_DIALOG*>( parent->GetParent() )->m_DefaultNetFmtName; wxString netfmtName = static_cast<NETLIST_DIALOG*>( parent->GetParent() )->m_DefaultNetFmtName;
@ -253,16 +242,6 @@ NETLIST_PAGE_DIALOG::NETLIST_PAGE_DIALOG( wxNotebook* parent, const wxString& ti
UpperBoxSizer->Add( m_LeftBoxSizer, 0, wxGROW | wxALL, 5 ); UpperBoxSizer->Add( m_LeftBoxSizer, 0, wxGROW | wxALL, 5 );
UpperBoxSizer->Add( m_RightBoxSizer, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); UpperBoxSizer->Add( m_RightBoxSizer, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
UpperBoxSizer->Add( m_RightOptionsBoxSizer, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); UpperBoxSizer->Add( m_RightOptionsBoxSizer, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 );
wxStaticText* text = new wxStaticText( this, -1, _( "Options:" ) );
m_LeftBoxSizer->Add( text, 0, wxGROW | wxBOTTOM | wxRIGHT, 5 );
m_IsCurrentFormat = new wxCheckBox( this, ID_CURRENT_FORMAT_IS_DEFAULT, _( "Default format" ) );
m_LeftBoxSizer->Add( m_IsCurrentFormat, 0, wxGROW | wxBOTTOM | wxRIGHT, 5 );
m_IsCurrentFormat->SetValue( selected );
if( selected )
( (NETLIST_DIALOG*)parent->GetParent() )->m_asFormatSelected = true;
} }
@ -280,9 +259,7 @@ NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) :
page = NULL; page = NULL;
// Add notebook pages: // Add notebook pages:
m_asFormatSelected = false; // Will be set to true, if a format is selected m_PanelNetType[PANELPCBNEW] = new NETLIST_PAGE_DIALOG( m_NoteBook, wxT( "KiCad" ),
m_PanelNetType[PANELPCBNEW] = new NETLIST_PAGE_DIALOG( m_NoteBook, wxT( "Pcbnew" ),
NET_TYPE_PCBNEW ); NET_TYPE_PCBNEW );
m_PanelNetType[PANELORCADPCB2] = new NETLIST_PAGE_DIALOG( m_NoteBook, wxT( "OrcadPCB2" ), m_PanelNetType[PANELORCADPCB2] = new NETLIST_PAGE_DIALOG( m_NoteBook, wxT( "OrcadPCB2" ),
@ -294,18 +271,6 @@ NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) :
InstallPageSpice(); InstallPageSpice();
InstallCustomPages(); InstallCustomPages();
// Ensure a netlist format is selected:
if( !m_asFormatSelected )
{
m_PanelNetType[PANELPCBNEW]->m_IsCurrentFormat->SetValue( true );
m_NoteBook->SetSelection( PANELPCBNEW );
m_DefaultNetFmtName = m_PanelNetType[PANELPCBNEW]->GetPageNetFmtName();
// call OnNetlistTypeSelection to update some widgets.
// SetSelection() do nothing if the current page is already PANELPCBNEW
wxNotebookEvent event;
OnNetlistTypeSelection( event );
}
// We use a sdbSizer here to get the order right, which is platform-dependent // We use a sdbSizer here to get the order right, which is platform-dependent
m_sdbSizer2OK->SetLabel( _( "Export Netlist" ) ); m_sdbSizer2OK->SetLabel( _( "Export Netlist" ) );
m_sdbSizer2Cancel->SetLabel( _( "Close" ) ); m_sdbSizer2Cancel->SetLabel( _( "Close" ) );
@ -448,27 +413,6 @@ NETLIST_PAGE_DIALOG* NETLIST_DIALOG::AddOneCustomPage( const wxString & aTitle,
} }
void NETLIST_DIALOG::SelectDefaultNetlistType( wxCommandEvent& event )
{
for( NETLIST_PAGE_DIALOG*& page : m_PanelNetType)
{
if( page )
page->m_IsCurrentFormat->SetValue( false );
}
NETLIST_PAGE_DIALOG* currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
if( currPage == NULL )
return;
SCHEMATIC_SETTINGS& settings = m_Parent->Schematic().Settings();
m_DefaultNetFmtName = currPage->GetPageNetFmtName();
settings.m_NetFormatName = m_DefaultNetFmtName;
currPage->m_IsCurrentFormat->SetValue( true );
}
void NETLIST_DIALOG::OnNetlistTypeSelection( wxNotebookEvent& event ) void NETLIST_DIALOG::OnNetlistTypeSelection( wxNotebookEvent& event )
{ {
NETLIST_PAGE_DIALOG* currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage(); NETLIST_PAGE_DIALOG* currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
@ -476,6 +420,8 @@ void NETLIST_DIALOG::OnNetlistTypeSelection( wxNotebookEvent& event )
if( currPage == NULL ) if( currPage == NULL )
return; return;
m_DefaultNetFmtName = currPage->GetPageNetFmtName();
m_buttonDelGenerator->Enable( currPage->m_IdNetType >= NET_TYPE_CUSTOM1 ); m_buttonDelGenerator->Enable( currPage->m_IdNetType >= NET_TYPE_CUSTOM1 );
} }
@ -490,15 +436,7 @@ void NETLIST_DIALOG::NetlistUpdateOpt()
settings.m_SpiceAdjustPassiveValues = adjust; settings.m_SpiceAdjustPassiveValues = adjust;
settings.m_SpiceCommandString = spice_cmd_string; settings.m_SpiceCommandString = spice_cmd_string;
settings.m_NetFormatName = wxEmptyString; settings.m_NetFormatName = wxEmptyString;
settings.m_NetFormatName = m_DefaultNetFmtName;
for( NETLIST_PAGE_DIALOG*& page : m_PanelNetType )
{
if( page == nullptr )
break;
if( page->m_IsCurrentFormat->GetValue() )
settings.m_NetFormatName = page->GetPageNetFmtName();
}
} }
@ -664,12 +602,7 @@ void NETLIST_DIALOG::OnDelGenerator( wxCommandEvent& event )
currPage->m_CommandStringCtrl->SetValue( wxEmptyString ); currPage->m_CommandStringCtrl->SetValue( wxEmptyString );
currPage->m_TitleStringCtrl->SetValue( wxEmptyString ); currPage->m_TitleStringCtrl->SetValue( wxEmptyString );
m_DefaultNetFmtName = m_PanelNetType[PANELPCBNEW]->GetPageNetFmtName();
if( currPage->m_IsCurrentFormat->IsChecked() )
{
currPage->m_IsCurrentFormat->SetValue( false );
m_PanelNetType[PANELPCBNEW]->m_IsCurrentFormat->SetValue( true );
}
WriteCurrentNetlistSetup(); WriteCurrentNetlistSetup();
EndModal( NET_PLUGIN_CHANGE ); EndModal( NET_PLUGIN_CHANGE );