Correctly parent simulator netlist error dialogs.
This commit is contained in:
parent
0e778f17db
commit
ee3e285393
|
@ -100,9 +100,11 @@ std::string NAME_GENERATOR::Generate( const std::string& aProposedName )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NETLIST_EXPORTER_SPICE::NETLIST_EXPORTER_SPICE( SCHEMATIC_IFACE* aSchematic ) :
|
NETLIST_EXPORTER_SPICE::NETLIST_EXPORTER_SPICE( SCHEMATIC_IFACE* aSchematic,
|
||||||
|
wxWindow* aDialogParent ) :
|
||||||
NETLIST_EXPORTER_BASE( aSchematic ),
|
NETLIST_EXPORTER_BASE( aSchematic ),
|
||||||
m_libMgr( &aSchematic->Prj() )
|
m_libMgr( &aSchematic->Prj() ),
|
||||||
|
m_dialogParent( aDialogParent )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -509,9 +511,10 @@ void NETLIST_EXPORTER_SPICE::readModel( SCH_SHEET_PATH& aSheet, SCH_SYMBOL& aSym
|
||||||
|
|
||||||
if( !cacheFile.IsOpened() )
|
if( !cacheFile.IsOpened() )
|
||||||
{
|
{
|
||||||
DisplayErrorMessage( nullptr, wxString::Format( _( "Could not open file '%s' to write "
|
DisplayErrorMessage( m_dialogParent,
|
||||||
"IBIS model" ),
|
wxString::Format( _( "Could not open file '%s' to write "
|
||||||
cacheFn.GetFullPath() ) );
|
"IBIS model" ),
|
||||||
|
cacheFn.GetFullPath() ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
auto spiceGenerator = static_cast<const SPICE_GENERATOR_KIBIS&>( kibisModel->SpiceGenerator() );
|
auto spiceGenerator = static_cast<const SPICE_GENERATOR_KIBIS&>( kibisModel->SpiceGenerator() );
|
||||||
|
@ -560,8 +563,9 @@ void NETLIST_EXPORTER_SPICE::writeInclude( OUTPUTFORMATTER& aFormatter, unsigned
|
||||||
|
|
||||||
if( fullPath.IsEmpty() )
|
if( fullPath.IsEmpty() )
|
||||||
{
|
{
|
||||||
DisplayErrorMessage( nullptr, wxString::Format( _( "Could not find library file '%s'" ),
|
DisplayErrorMessage( m_dialogParent,
|
||||||
expandedPath ) );
|
wxString::Format( _( "Could not find library file '%s'" ),
|
||||||
|
expandedPath ) );
|
||||||
fullPath = expandedPath;
|
fullPath = expandedPath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,9 @@
|
||||||
#include <sim/spice_generator.h>
|
#include <sim/spice_generator.h>
|
||||||
|
|
||||||
|
|
||||||
|
class wxWindow;
|
||||||
|
|
||||||
|
|
||||||
class NAME_GENERATOR
|
class NAME_GENERATOR
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -60,7 +63,7 @@ public:
|
||||||
| OPTION_SAVE_ALL_CURRENTS
|
| OPTION_SAVE_ALL_CURRENTS
|
||||||
};
|
};
|
||||||
|
|
||||||
NETLIST_EXPORTER_SPICE( SCHEMATIC_IFACE* aSchematic );
|
NETLIST_EXPORTER_SPICE( SCHEMATIC_IFACE* aSchematic, wxWindow* aDialogParent = nullptr );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write to specified output file.
|
* Write to specified output file.
|
||||||
|
@ -129,7 +132,8 @@ protected:
|
||||||
void ReadDirectives( unsigned aNetlistOptions );
|
void ReadDirectives( unsigned aNetlistOptions );
|
||||||
virtual void WriteDirectives( OUTPUTFORMATTER& aFormatter, unsigned aNetlistOptions ) const;
|
virtual void WriteDirectives( OUTPUTFORMATTER& aFormatter, unsigned aNetlistOptions ) const;
|
||||||
|
|
||||||
virtual std::string GenerateItemPinNetName( const std::string& aNetName, int& aNcCounter ) const;
|
virtual std::string GenerateItemPinNetName( const std::string& aNetName,
|
||||||
|
int& aNcCounter ) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the paths of exported sheets (either all or the current one).
|
* Return the paths of exported sheets (either all or the current one).
|
||||||
|
@ -152,11 +156,17 @@ private:
|
||||||
|
|
||||||
SIM_LIB_MGR m_libMgr; ///< Holds libraries and models
|
SIM_LIB_MGR m_libMgr; ///< Holds libraries and models
|
||||||
NAME_GENERATOR m_modelNameGenerator; ///< Generates unique model names
|
NAME_GENERATOR m_modelNameGenerator; ///< Generates unique model names
|
||||||
NAME_GENERATOR m_netNameGenerator; ///< Generates unique net names (only unique for NC nets for now)
|
|
||||||
|
///< Generates unique net names (only unique for NC nets for now)
|
||||||
|
NAME_GENERATOR m_netNameGenerator;
|
||||||
std::vector<wxString> m_directives; ///< Spice directives found in the schematic sheet
|
std::vector<wxString> m_directives; ///< Spice directives found in the schematic sheet
|
||||||
std::set<wxString> m_rawIncludes; ///< include directives found in symbols
|
std::set<wxString> m_rawIncludes; ///< include directives found in symbols
|
||||||
std::set<std::string> m_nets;
|
std::set<std::string> m_nets;
|
||||||
std::list<SPICE_ITEM> m_items; ///< Items representing schematic symbols in Spice world
|
|
||||||
|
///< Items representing schematic symbols in Spice world.
|
||||||
|
std::list<SPICE_ITEM> m_items;
|
||||||
|
|
||||||
|
wxWindow* m_dialogParent;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2016-2022 CERN
|
* Copyright (C) 2016-2022 CERN
|
||||||
* Copyright (C) 2017-2022 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 2017-2023 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* @author Maciej Suminski <maciej.suminski@cern.ch>
|
* @author Maciej Suminski <maciej.suminski@cern.ch>
|
||||||
*
|
*
|
||||||
|
@ -47,8 +47,8 @@ struct SPICE_DC_PARAMS
|
||||||
class NGSPICE_CIRCUIT_MODEL : public NETLIST_EXPORTER_SPICE, public SIMULATION_MODEL
|
class NGSPICE_CIRCUIT_MODEL : public NETLIST_EXPORTER_SPICE, public SIMULATION_MODEL
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NGSPICE_CIRCUIT_MODEL( SCHEMATIC_IFACE* aSchematic ) :
|
NGSPICE_CIRCUIT_MODEL( SCHEMATIC_IFACE* aSchematic, wxWindow* aDialogParent = nullptr ) :
|
||||||
NETLIST_EXPORTER_SPICE( aSchematic ),
|
NETLIST_EXPORTER_SPICE( aSchematic, aDialogParent ),
|
||||||
m_options( NETLIST_EXPORTER_SPICE::OPTION_DEFAULT_FLAGS )
|
m_options( NETLIST_EXPORTER_SPICE::OPTION_DEFAULT_FLAGS )
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2016-2022 CERN
|
* Copyright (C) 2016-2022 CERN
|
||||||
* Copyright (C) 2016-2022 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 2016-2023 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
* @author Tomasz Wlostowski <tomasz.wlostowski@cern.ch>
|
* @author Tomasz Wlostowski <tomasz.wlostowski@cern.ch>
|
||||||
* @author Maciej Suminski <maciej.suminski@cern.ch>
|
* @author Maciej Suminski <maciej.suminski@cern.ch>
|
||||||
*
|
*
|
||||||
|
@ -147,9 +147,10 @@ SIM_PLOT_FRAME::SIM_PLOT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||||
m_reporter = new SIM_THREAD_REPORTER( this );
|
m_reporter = new SIM_THREAD_REPORTER( this );
|
||||||
m_simulator->SetReporter( m_reporter );
|
m_simulator->SetReporter( m_reporter );
|
||||||
|
|
||||||
m_circuitModel.reset( new NGSPICE_CIRCUIT_MODEL( &m_schematicFrame->Schematic() ) );
|
m_circuitModel.reset( new NGSPICE_CIRCUIT_MODEL( &m_schematicFrame->Schematic(), this ) );
|
||||||
|
|
||||||
Bind( wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME::menuExit ), this, wxID_EXIT );
|
Bind( wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME::menuExit ), this,
|
||||||
|
wxID_EXIT );
|
||||||
|
|
||||||
Bind( EVT_SIM_UPDATE, &SIM_PLOT_FRAME::onSimUpdate, this );
|
Bind( EVT_SIM_UPDATE, &SIM_PLOT_FRAME::onSimUpdate, this );
|
||||||
Bind( EVT_SIM_REPORT, &SIM_PLOT_FRAME::onSimReport, this );
|
Bind( EVT_SIM_REPORT, &SIM_PLOT_FRAME::onSimReport, this );
|
||||||
|
@ -925,7 +926,8 @@ void SIM_PLOT_FRAME::applyTuners()
|
||||||
}
|
}
|
||||||
|
|
||||||
if( reporter.HasMessage() )
|
if( reporter.HasMessage() )
|
||||||
DisplayErrorMessage( this, _( "Could not apply tuned value(s):" ) + wxS( "\n\n" ) + errors );
|
DisplayErrorMessage( this,
|
||||||
|
_( "Could not apply tuned value(s):" ) + wxS( "\n\n" ) + errors );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue