Eeschema: fix incorrect saving in prj config on the default netlist format. It was not always saved, and this was not the default, but the last used format.

This commit is contained in:
jean-pierre charras 2019-06-10 18:44:46 +02:00
parent 370109b868
commit 4ceb186251
1 changed files with 19 additions and 6 deletions

View File

@ -3,7 +3,7 @@
*
* Copyright (C) 2013-2017 Jean-Pierre Charras, jp.charras@wanadoo.fr
* Copyright (C) 2013 Wayne Stambaugh <stambaughw@gmail.com>
* Copyright (C) 1992-2018 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 1992-2019 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -121,7 +121,7 @@ class NETLIST_DIALOG : public NETLIST_DIALOG_BASE
public:
SCH_EDIT_FRAME* m_Parent;
wxString m_NetFmtName;
wxString m_DefaultNetFmtName;
NETLIST_PAGE_DIALOG* m_PanelNetType[4 + CUSTOMPANEL_COUNTMAX];
protected:
@ -268,7 +268,7 @@ NETLIST_PAGE_DIALOG::NETLIST_PAGE_DIALOG( wxNotebook* parent,
m_SpiceAjustPassiveValues = NULL;
m_ButtonCancel = NULL;
wxString netfmtName = ((NETLIST_DIALOG*)parent->GetParent())->m_NetFmtName;
wxString netfmtName = ((NETLIST_DIALOG*)parent->GetParent())->m_DefaultNetFmtName;
bool selected = m_pageNetFmtName == netfmtName;
@ -309,7 +309,7 @@ NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) :
long tmp;
m_config->Read( NETLIST_USE_DEFAULT_NETNAME, &tmp, 0l );
m_NetFmtName = m_Parent->GetNetListFormatName();
m_DefaultNetFmtName = m_Parent->GetNetListFormatName();
for( int ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
{
@ -345,6 +345,7 @@ NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) :
{
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;
@ -489,7 +490,8 @@ void NETLIST_DIALOG::SelectDefaultNetlistType( wxCommandEvent& event )
if( currPage == NULL )
return;
m_Parent->SetNetListFormatName( currPage->GetPageNetFmtName() );
m_DefaultNetFmtName = currPage->GetPageNetFmtName();
m_Parent->SetNetListFormatName( m_DefaultNetFmtName );
currPage->m_IsCurrentFormat->SetValue( true );
}
@ -859,5 +861,16 @@ int InvokeDialogNetList( SCH_EDIT_FRAME* aCaller )
{
NETLIST_DIALOG dlg( aCaller );
return dlg.ShowModal();
wxString curr_default_netformat = aCaller->GetNetListFormatName();
int ret = dlg.ShowModal();
// Ensure the default netlist is up to date, and store it in prj config
// if its was explicitely changed.
aCaller->SetNetListFormatName( dlg.m_DefaultNetFmtName ); // can have temporary changed
if( curr_default_netformat != dlg.m_DefaultNetFmtName )
aCaller->SaveProjectSettings( false );
return ret;
}