diff --git a/pcbnew/dialogs/dialog_cleanup_tracks_and_vias.cpp b/pcbnew/dialogs/dialog_cleanup_tracks_and_vias.cpp index 7f5833f81f..5ed7c94f3c 100644 --- a/pcbnew/dialogs/dialog_cleanup_tracks_and_vias.cpp +++ b/pcbnew/dialogs/dialog_cleanup_tracks_and_vias.cpp @@ -24,7 +24,6 @@ #include #include #include -#include #include #include #include @@ -131,7 +130,7 @@ void DIALOG_CLEANUP_TRACKS_AND_VIAS::doCleanup( bool aDryRun ) if( m_firstRun ) { - m_reporter->Report( _( "Check zones..." ) ); + m_reporter->Report( _( "Checking zones..." ) ); wxSafeYield(); // Timeslice to update UI m_parentFrame->GetToolManager()->GetTool()->CheckAllZones( this ); wxSafeYield(); // Timeslice to close zone progress reporter @@ -139,13 +138,10 @@ void DIALOG_CLEANUP_TRACKS_AND_VIAS::doCleanup( bool aDryRun ) } // Old model has to be refreshed, GAL normally does not keep updating it - m_reporter->Report( _( "Rebuild connectivity..." ) ); + m_reporter->Report( _( "Rebuilding connectivity..." ) ); wxSafeYield(); // Timeslice to update UI m_parentFrame->Compile_Ratsnest( false ); - m_reporter->Report( _( "Check items..." ) ); - wxSafeYield(); // Timeslice to update UI - cleaner.CleanupBoard( aDryRun, &m_items, m_cleanShortCircuitOpt->GetValue(), m_cleanViasOpt->GetValue(), m_mergeSegmOpt->GetValue(), @@ -154,9 +150,6 @@ void DIALOG_CLEANUP_TRACKS_AND_VIAS::doCleanup( bool aDryRun ) m_deleteDanglingViasOpt->GetValue(), m_reporter ); - m_reporter->Report( _( "Items checked..." ) ); - wxSafeYield(); // Timeslice to update UI - if( aDryRun ) { RC_ITEMS_PROVIDER* provider = new VECTOR_CLEANUP_ITEMS_PROVIDER( &m_items ); @@ -169,7 +162,7 @@ void DIALOG_CLEANUP_TRACKS_AND_VIAS::doCleanup( bool aDryRun ) m_parentFrame->GetCanvas()->Refresh( true ); } - m_reporter->Report( _( "Finished..." ) ); + m_reporter->Report( _( "Done." ) ); setupOKButtonLabel(); } diff --git a/pcbnew/tracks_cleaner.cpp b/pcbnew/tracks_cleaner.cpp index 5316148057..22f713b72c 100644 --- a/pcbnew/tracks_cleaner.cpp +++ b/pcbnew/tracks_cleaner.cpp @@ -50,10 +50,11 @@ TRACKS_CLEANER::TRACKS_CLEANER( BOARD* aPcb, BOARD_COMMIT& aCommit ) : * - vias on pad * - null length segments */ -void TRACKS_CLEANER::CleanupBoard( bool aDryRun, std::vector >* aItemsList, +void TRACKS_CLEANER::CleanupBoard( bool aDryRun, + std::vector >* aItemsList, bool aRemoveMisConnected, bool aCleanVias, bool aMergeSegments, - bool aDeleteUnconnected, bool aDeleteTracksinPad, bool aDeleteDanglingVias, - REPORTER* aReporter ) + bool aDeleteUnconnected, bool aDeleteTracksinPad, + bool aDeleteDanglingVias, REPORTER* aReporter ) { m_reporter = aReporter; bool has_deleted = false; @@ -63,7 +64,11 @@ void TRACKS_CLEANER::CleanupBoard( bool aDryRun, std::vectorReport( _( "Clean vias and tracks" ) ); + if( aDryRun ) + m_reporter->Report( _( "Checking null tracks and vias..." ) ); + else + m_reporter->Report( _( "Removing null tracks and vias..." ) ); + wxSafeYield(); // Timeslice to update UI } @@ -72,17 +77,25 @@ void TRACKS_CLEANER::CleanupBoard( bool aDryRun, std::vectorReport( _( "Merge collinear tracks" ) ); + if( aDryRun ) + m_reporter->Report( _( "Checking redundant tracks..." ) ); + else + m_reporter->Report( _( "Removing redundant tracks..." ) ); + wxSafeYield(); // Timeslice to update UI } - cleanup( false, false, true, aMergeSegments ); + cleanup( false, false, true, aMergeSegments ); if( aRemoveMisConnected ) { if( m_reporter ) { - m_reporter->Report( _( "Remove misconnected" ) ); + if( aDryRun ) + m_reporter->Report( _( "Checking shorting tracks..." ) ); + else + m_reporter->Report( _( "Removing shorting tracks..." ) ); + wxSafeYield(); // Timeslice to update UI } @@ -93,20 +106,49 @@ void TRACKS_CLEANER::CleanupBoard( bool aDryRun, std::vectorReport( _( "Delete tracks in pads" ) ); + if( aDryRun ) + m_reporter->Report( _( "Checking tracks in pads..." ) ); + else + m_reporter->Report( _( "Removing tracks in pads..." ) ); + wxSafeYield(); // Timeslice to update UI } deleteTracksInPads(); } - has_deleted = deleteDanglingTracks( aDeleteUnconnected, aDeleteDanglingVias ); + if( aDeleteUnconnected || aDeleteDanglingVias ) + { + if( m_reporter ) + { + if( aDryRun ) + { + m_reporter->Report( _( "Checking dangling tracks and vias..." ) ); + } + else + { + if( aDeleteUnconnected ) + m_reporter->Report( _( "Removing dangling tracks..." ) ); + + if( aDeleteDanglingVias ) + m_reporter->Report( _( "Removing dangling vias..." ) ); + } + + wxSafeYield(); // Timeslice to update UI + } + + has_deleted = deleteDanglingTracks( aDeleteUnconnected, aDeleteDanglingVias ); + } if( has_deleted && aMergeSegments ) { if( m_reporter ) { - m_reporter->Report( _( "Merge segments" ) ); + if( aDryRun ) + m_reporter->Report( _( "Checking collinear tracks..." ) ); + else + m_reporter->Report( _( "Merging collinear tracks..." ) ); + wxSafeYield(); // Timeslice to update UI }