Commit 9305f77f authored by Maciej Suminski's avatar Maciej Suminski

Fixed: Modules become invisible after reloading a netlist, until GAL view is refreshed.

parent 517bfa35
...@@ -463,7 +463,7 @@ public: ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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, ...@@ -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();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment