Don't disable run when there's no command: just ask for a command.
This commit is contained in:
parent
7d7a48070e
commit
6bc89ee180
|
@ -212,7 +212,9 @@ bool SIM_MODEL_SERIALIZER::ParseParams( const std::string& aParams )
|
||||||
for( const auto& node : root->children )
|
for( const auto& node : root->children )
|
||||||
{
|
{
|
||||||
if( node->is_type<SIM_MODEL_SERIALIZER_PARSER::param>() )
|
if( node->is_type<SIM_MODEL_SERIALIZER_PARSER::param>() )
|
||||||
|
{
|
||||||
paramName = node->string();
|
paramName = node->string();
|
||||||
|
}
|
||||||
// TODO: Do something with number<SIM_VALUE::TYPE_INT, ...>.
|
// TODO: Do something with number<SIM_VALUE::TYPE_INT, ...>.
|
||||||
// It doesn't seem too useful?
|
// It doesn't seem too useful?
|
||||||
else if( node->is_type<SIM_MODEL_SERIALIZER_PARSER::quotedStringContent>()
|
else if( node->is_type<SIM_MODEL_SERIALIZER_PARSER::quotedStringContent>()
|
||||||
|
|
|
@ -375,8 +375,14 @@ void SIM_PLOT_FRAME::setSubWindowsSashSize()
|
||||||
|
|
||||||
void SIM_PLOT_FRAME::StartSimulation( const wxString& aSimCommand )
|
void SIM_PLOT_FRAME::StartSimulation( const wxString& aSimCommand )
|
||||||
{
|
{
|
||||||
wxCHECK_RET( m_circuitModel->CommandToSimType( GetCurrentSimCommand() ) != ST_UNKNOWN,
|
if( m_circuitModel->CommandToSimType( GetCurrentSimCommand() ) == ST_UNKNOWN )
|
||||||
wxT( "Unknown simulation type" ) );
|
{
|
||||||
|
if( !EditSimCommand()
|
||||||
|
|| m_circuitModel->CommandToSimType( GetCurrentSimCommand() ) == ST_UNKNOWN )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
m_simConsole->Clear();
|
m_simConsole->Clear();
|
||||||
|
|
||||||
|
@ -858,8 +864,7 @@ void SIM_PLOT_FRAME::applyTuners()
|
||||||
}
|
}
|
||||||
|
|
||||||
if( reporter.HasMessage() )
|
if( reporter.HasMessage() )
|
||||||
DisplayErrorMessage( this,
|
DisplayErrorMessage( this, _( "Could not apply tuned value(s):" ) + wxS( "\n" ) + errors );
|
||||||
_( "Could not apply tuned value(s):" ) + wxS( "\n\n" ) + errors );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1226,7 +1231,7 @@ void SIM_PLOT_FRAME::onWorkbookClrModified( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SIM_PLOT_FRAME::EditSimCommand()
|
bool SIM_PLOT_FRAME::EditSimCommand()
|
||||||
{
|
{
|
||||||
SIM_PANEL_BASE* plotPanelWindow = getCurrentPlotWindow();
|
SIM_PANEL_BASE* plotPanelWindow = getCurrentPlotWindow();
|
||||||
DIALOG_SIM_COMMAND dlg( this, m_circuitModel, m_simulator->Settings() );
|
DIALOG_SIM_COMMAND dlg( this, m_circuitModel, m_simulator->Settings() );
|
||||||
|
@ -1238,7 +1243,7 @@ void SIM_PLOT_FRAME::EditSimCommand()
|
||||||
{
|
{
|
||||||
DisplayErrorMessage( this, _( "Errors during netlist generation; simulation aborted.\n\n" )
|
DisplayErrorMessage( this, _( "Errors during netlist generation; simulation aborted.\n\n" )
|
||||||
+ errors );
|
+ errors );
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_workbook->GetPageIndex( plotPanelWindow ) != wxNOT_FOUND )
|
if( m_workbook->GetPageIndex( plotPanelWindow ) != wxNOT_FOUND )
|
||||||
|
@ -1289,7 +1294,10 @@ void SIM_PLOT_FRAME::EditSimCommand()
|
||||||
}
|
}
|
||||||
|
|
||||||
m_simulator->Init();
|
m_simulator->Init();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1427,12 +1435,6 @@ void SIM_PLOT_FRAME::setupUIConditions()
|
||||||
return m_darkMode;
|
return m_darkMode;
|
||||||
};
|
};
|
||||||
|
|
||||||
auto haveCommand =
|
|
||||||
[this]( const SELECTION& aSel )
|
|
||||||
{
|
|
||||||
return m_circuitModel->CommandToSimType( GetCurrentSimCommand() ) != ST_UNKNOWN;
|
|
||||||
};
|
|
||||||
|
|
||||||
auto simRunning =
|
auto simRunning =
|
||||||
[this]( const SELECTION& aSel )
|
[this]( const SELECTION& aSel )
|
||||||
{
|
{
|
||||||
|
@ -1467,7 +1469,7 @@ void SIM_PLOT_FRAME::setupUIConditions()
|
||||||
mgr->SetConditions( EE_ACTIONS::toggleDarkModePlots, CHECK( darkModePlotCondition ) );
|
mgr->SetConditions( EE_ACTIONS::toggleDarkModePlots, CHECK( darkModePlotCondition ) );
|
||||||
|
|
||||||
mgr->SetConditions( EE_ACTIONS::simCommand, ENABLE( SELECTION_CONDITIONS::ShowAlways ) );
|
mgr->SetConditions( EE_ACTIONS::simCommand, ENABLE( SELECTION_CONDITIONS::ShowAlways ) );
|
||||||
mgr->SetConditions( EE_ACTIONS::runSimulation, ENABLE( haveCommand && !simRunning ) );
|
mgr->SetConditions( EE_ACTIONS::runSimulation, ENABLE( !simRunning ) );
|
||||||
mgr->SetConditions( EE_ACTIONS::stopSimulation, ENABLE( simRunning ) );
|
mgr->SetConditions( EE_ACTIONS::stopSimulation, ENABLE( simRunning ) );
|
||||||
mgr->SetConditions( EE_ACTIONS::addSignals, ENABLE( simFinished ) );
|
mgr->SetConditions( EE_ACTIONS::addSignals, ENABLE( simFinished ) );
|
||||||
mgr->SetConditions( EE_ACTIONS::simProbe, ENABLE( simFinished ) );
|
mgr->SetConditions( EE_ACTIONS::simProbe, ENABLE( simFinished ) );
|
||||||
|
|
|
@ -77,7 +77,7 @@ public:
|
||||||
* Shows a dialog for editing the current tab's simulation command, or creating a new tab
|
* Shows a dialog for editing the current tab's simulation command, or creating a new tab
|
||||||
* with a different simulation command type.
|
* with a different simulation command type.
|
||||||
*/
|
*/
|
||||||
void EditSimCommand();
|
bool EditSimCommand();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a voltage plot for a given net name.
|
* Add a voltage plot for a given net name.
|
||||||
|
|
Loading…
Reference in New Issue