Fix double call of OnPgmExit
Also fix bad filename being passed to pcbnew when starting from a blank schematic in standalone mode Fixes https://gitlab.com/kicad/code/kicad/-/issues/5786
This commit is contained in:
parent
6c2433fed6
commit
e27786de2d
|
@ -161,13 +161,7 @@ struct APP_SINGLE_TOP : public wxApp
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if( !program.OnPgmInit() )
|
return program.OnPgmInit();
|
||||||
{
|
|
||||||
program.OnPgmExit();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
catch( const std::exception& e )
|
catch( const std::exception& e )
|
||||||
{
|
{
|
||||||
|
@ -294,7 +288,11 @@ bool PGM_SINGLE_TOP::OnPgmInit()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if( !InitPgm() )
|
if( !InitPgm() )
|
||||||
|
{
|
||||||
|
// Clean up
|
||||||
|
OnPgmExit();
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
#if !defined(BUILD_KIWAY_DLL)
|
#if !defined(BUILD_KIWAY_DLL)
|
||||||
|
|
||||||
|
@ -353,6 +351,8 @@ bool PGM_SINGLE_TOP::OnPgmInit()
|
||||||
if( appType == FRAME_T_COUNT )
|
if( appType == FRAME_T_COUNT )
|
||||||
{
|
{
|
||||||
wxLogError( wxT( "Unknown frame: %s" ), frameName );
|
wxLogError( wxT( "Unknown frame: %s" ), frameName );
|
||||||
|
// Clean up
|
||||||
|
OnPgmExit();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -611,7 +611,7 @@ public:
|
||||||
|
|
||||||
wxPoint GetPinPhysicalPosition( const LIB_PIN* Pin ) const;
|
wxPoint GetPinPhysicalPosition( const LIB_PIN* Pin ) const;
|
||||||
|
|
||||||
bool IsConnectable() const override { return m_onBoard; }
|
bool IsConnectable() const override { return true; }
|
||||||
|
|
||||||
bool CanConnect( const SCH_ITEM* aItem ) const override
|
bool CanConnect( const SCH_ITEM* aItem ) const override
|
||||||
{
|
{
|
||||||
|
|
|
@ -903,7 +903,7 @@ void SCH_EDIT_FRAME::OnOpenPcbnew( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
wxFileName kicad_board = Prj().AbsolutePath( Schematic().GetFileName() );
|
wxFileName kicad_board = Prj().AbsolutePath( Schematic().GetFileName() );
|
||||||
|
|
||||||
if( kicad_board.IsOk() )
|
if( kicad_board.IsOk() && !Schematic().GetFileName().IsEmpty() )
|
||||||
{
|
{
|
||||||
kicad_board.SetExt( PcbFileExtension );
|
kicad_board.SetExt( PcbFileExtension );
|
||||||
wxFileName legacy_board( kicad_board );
|
wxFileName legacy_board( kicad_board );
|
||||||
|
@ -940,6 +940,8 @@ void SCH_EDIT_FRAME::OnOpenPcbnew( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// If we are running inside a project, it should be impossible for this case to happen
|
||||||
|
wxASSERT( Kiface().IsSingle() );
|
||||||
ExecuteFile( this, PCBNEW_EXE );
|
ExecuteFile( this, PCBNEW_EXE );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue