|
|
|
@ -149,12 +149,10 @@ SIMULATOR_FRAME::SIMULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) : |
|
|
|
|
|
|
|
LoadSettings( config() ); |
|
|
|
|
|
|
|
NGSPICE_SETTINGS* settings = dynamic_cast<NGSPICE_SETTINGS*>( m_simulator->Settings().get() ); |
|
|
|
std::shared_ptr<NGSPICE_SETTINGS> cfg = Prj().GetProjectFile().m_SchematicSettings->m_NgspiceSettings; |
|
|
|
|
|
|
|
wxCHECK2( settings, /* do nothing in release builds*/ ); |
|
|
|
|
|
|
|
if( settings && settings->GetWorkbookFilename().IsEmpty() ) |
|
|
|
settings->SetCompatibilityMode( NGSPICE_COMPATIBILITY_MODE::LT_PSPICE ); |
|
|
|
if( cfg->GetWorkbookFilename().IsEmpty() ) |
|
|
|
cfg->SetCompatibilityMode( NGSPICE_COMPATIBILITY_MODE::LT_PSPICE ); |
|
|
|
|
|
|
|
m_simulator->Init(); |
|
|
|
|
|
|
|
@ -169,8 +167,7 @@ SIMULATOR_FRAME::SIMULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) : |
|
|
|
ReCreateHToolbar(); |
|
|
|
ReCreateMenuBar(); |
|
|
|
|
|
|
|
Bind( wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIMULATOR_FRAME::onExit ), this, |
|
|
|
wxID_EXIT ); |
|
|
|
Bind( wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIMULATOR_FRAME::onExit ), this, wxID_EXIT ); |
|
|
|
|
|
|
|
Bind( EVT_SIM_UPDATE, &SIMULATOR_FRAME::onUpdateSim, this ); |
|
|
|
Bind( EVT_SIM_REPORT, &SIMULATOR_FRAME::onSimReport, this ); |
|
|
|
@ -237,44 +234,29 @@ void SIMULATOR_FRAME::ShowChangedLanguage() |
|
|
|
|
|
|
|
void SIMULATOR_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg ) |
|
|
|
{ |
|
|
|
EESCHEMA_SETTINGS* cfg = dynamic_cast<EESCHEMA_SETTINGS*>( aCfg ); |
|
|
|
wxASSERT( cfg ); |
|
|
|
|
|
|
|
if( cfg ) |
|
|
|
if( EESCHEMA_SETTINGS* cfg = dynamic_cast<EESCHEMA_SETTINGS*>( aCfg ) ) |
|
|
|
{ |
|
|
|
EDA_BASE_FRAME::LoadSettings( cfg ); |
|
|
|
m_ui->LoadSettings( cfg ); |
|
|
|
} |
|
|
|
|
|
|
|
PROJECT_FILE& project = Prj().GetProjectFile(); |
|
|
|
|
|
|
|
NGSPICE* currentSim = dynamic_cast<NGSPICE*>( m_simulator.get() ); |
|
|
|
|
|
|
|
if( currentSim ) |
|
|
|
m_simulator->Settings() = project.m_SchematicSettings->m_NgspiceSettings; |
|
|
|
if( m_simulator ) |
|
|
|
m_simulator->Settings() = Prj().GetProjectFile().m_SchematicSettings->m_NgspiceSettings; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void SIMULATOR_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg ) |
|
|
|
{ |
|
|
|
EESCHEMA_SETTINGS* cfg = dynamic_cast<EESCHEMA_SETTINGS*>( aCfg ); |
|
|
|
wxASSERT( cfg ); |
|
|
|
|
|
|
|
if( cfg ) |
|
|
|
if( EESCHEMA_SETTINGS* cfg = dynamic_cast<EESCHEMA_SETTINGS*>( aCfg ) ) |
|
|
|
{ |
|
|
|
EDA_BASE_FRAME::SaveSettings( cfg ); |
|
|
|
m_ui->SaveSettings( cfg ); |
|
|
|
} |
|
|
|
|
|
|
|
PROJECT_FILE& project = Prj().GetProjectFile(); |
|
|
|
bool modified = Prj().GetProjectFile().m_SchematicSettings->m_NgspiceSettings->SaveToFile(); |
|
|
|
|
|
|
|
if( project.m_SchematicSettings ) |
|
|
|
{ |
|
|
|
bool modified = project.m_SchematicSettings->m_NgspiceSettings->SaveToFile(); |
|
|
|
|
|
|
|
if( m_schematicFrame && modified ) |
|
|
|
m_schematicFrame->OnModify(); |
|
|
|
} |
|
|
|
if( m_schematicFrame && modified ) |
|
|
|
m_schematicFrame->OnModify(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -323,10 +305,11 @@ int SIMULATOR_FRAME::GetCurrentOptions() const |
|
|
|
|
|
|
|
void SIMULATOR_FRAME::UpdateTitle() |
|
|
|
{ |
|
|
|
bool unsaved = true; |
|
|
|
bool readOnly = false; |
|
|
|
wxString title; |
|
|
|
wxFileName filename = Prj().AbsolutePath( m_simulator->Settings()->GetWorkbookFilename() ); |
|
|
|
bool unsaved = true; |
|
|
|
bool readOnly = false; |
|
|
|
wxString title; |
|
|
|
std::shared_ptr<NGSPICE_SETTINGS> cfg = Prj().GetProjectFile().m_SchematicSettings->m_NgspiceSettings; |
|
|
|
wxFileName filename = Prj().AbsolutePath( cfg->GetWorkbookFilename() ); |
|
|
|
|
|
|
|
if( filename.IsOk() && filename.FileExists() ) |
|
|
|
{ |
|
|
|
@ -658,7 +641,7 @@ void SIMULATOR_FRAME::doCloseWindow() |
|
|
|
|
|
|
|
SaveSettings( config() ); |
|
|
|
|
|
|
|
m_simulator->Settings() = nullptr; |
|
|
|
m_simulator->Settings().reset(); |
|
|
|
|
|
|
|
Destroy(); |
|
|
|
} |
|
|
|
|