Fixed: Modules become invisible after reloading a netlist, until GAL view is refreshed.
This commit is contained in:
parent
517bfa3570
commit
9305f77fdc
|
@ -463,7 +463,7 @@ public:
|
||||||
void RunOnChildren( boost::function<void (BOARD_ITEM*)> aFunction );
|
void RunOnChildren( boost::function<void (BOARD_ITEM*)> aFunction );
|
||||||
|
|
||||||
/// @copydoc VIEW_ITEM::ViewUpdate()
|
/// @copydoc VIEW_ITEM::ViewUpdate()
|
||||||
void ViewUpdate( int aUpdateFlags );
|
void ViewUpdate( int aUpdateFlags = KIGFX::VIEW_ITEM::ALL );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function CopyNetlistSettings
|
* Function CopyNetlistSettings
|
||||||
|
|
|
@ -63,6 +63,7 @@ void PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFileName,
|
||||||
NETLIST netlist;
|
NETLIST netlist;
|
||||||
NETLIST_READER* netlistReader;
|
NETLIST_READER* netlistReader;
|
||||||
KIGFX::VIEW* view = GetGalCanvas()->GetView();
|
KIGFX::VIEW* view = GetGalCanvas()->GetView();
|
||||||
|
BOARD* board = GetBoard();
|
||||||
|
|
||||||
netlist.SetIsDryRun( aIsDryRun );
|
netlist.SetIsDryRun( aIsDryRun );
|
||||||
netlist.SetFindByTimeStamp( aSelectByTimeStamp );
|
netlist.SetFindByTimeStamp( aSelectByTimeStamp );
|
||||||
|
@ -100,7 +101,7 @@ void PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFileName,
|
||||||
if( !netlist.IsDryRun() )
|
if( !netlist.IsDryRun() )
|
||||||
{
|
{
|
||||||
// Remove old modules
|
// Remove old modules
|
||||||
for( MODULE* module = GetBoard()->m_Modules; module; module = module->Next() )
|
for( MODULE* module = board->m_Modules; module; module = module->Next() )
|
||||||
{
|
{
|
||||||
module->RunOnChildren( boost::bind( &KIGFX::VIEW::Remove, view, _1 ) );
|
module->RunOnChildren( boost::bind( &KIGFX::VIEW::Remove, view, _1 ) );
|
||||||
view->Remove( module );
|
view->Remove( module );
|
||||||
|
@ -108,7 +109,7 @@ void PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFileName,
|
||||||
}
|
}
|
||||||
|
|
||||||
netlist.SortByReference();
|
netlist.SortByReference();
|
||||||
GetBoard()->ReplaceNetlist( netlist, aDeleteSinglePadNets, aReporter );
|
board->ReplaceNetlist( netlist, aDeleteSinglePadNets, aReporter );
|
||||||
|
|
||||||
// If it was a dry run, nothing has changed so we're done.
|
// If it was a dry run, nothing has changed so we're done.
|
||||||
if( netlist.IsDryRun() )
|
if( netlist.IsDryRun() )
|
||||||
|
@ -119,13 +120,14 @@ void PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFileName,
|
||||||
SetCurItem( NULL );
|
SetCurItem( NULL );
|
||||||
|
|
||||||
// Reload modules
|
// Reload modules
|
||||||
for( MODULE* module = GetBoard()->m_Modules; module; module = module->Next() )
|
for( MODULE* module = board->m_Modules; module; module = module->Next() )
|
||||||
{
|
{
|
||||||
module->RunOnChildren( boost::bind( &KIGFX::VIEW::Add, view, _1 ) );
|
module->RunOnChildren( boost::bind( &KIGFX::VIEW::Add, view, _1 ) );
|
||||||
view->Add( module );
|
view->Add( module );
|
||||||
|
module->ViewUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
if( aDeleteUnconnectedTracks && GetBoard()->m_Track )
|
if( aDeleteUnconnectedTracks && board->m_Track )
|
||||||
{
|
{
|
||||||
// Remove erroneous tracks. This should probably pushed down to the #BOARD object.
|
// Remove erroneous tracks. This should probably pushed down to the #BOARD object.
|
||||||
RemoveMisConnectedTracks();
|
RemoveMisConnectedTracks();
|
||||||
|
@ -133,11 +135,11 @@ void PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFileName,
|
||||||
|
|
||||||
// Rebuild the board connectivity:
|
// Rebuild the board connectivity:
|
||||||
if( IsGalCanvasActive() )
|
if( IsGalCanvasActive() )
|
||||||
GetBoard()->GetRatsnest()->Recalculate();
|
board->GetRatsnest()->ProcessBoard();
|
||||||
else
|
else
|
||||||
Compile_Ratsnest( NULL, true );
|
Compile_Ratsnest( NULL, true );
|
||||||
|
|
||||||
SetMsgPanel( GetBoard() );
|
SetMsgPanel( board );
|
||||||
m_canvas->Refresh();
|
m_canvas->Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue