@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user