From 36b4bab5ccc3cd7fa2fd39e77f7af4dd2d181026 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Tue, 25 Feb 2025 17:07:59 +0000 Subject: [PATCH] Cleanup. (cherry picked from commit 931b1b0231a1a449da59bbc6a91c7760a48d1fbe) --- .../dialogs/dialog_track_via_properties.cpp | 101 ++++++++++-------- pcbnew/dialogs/dialog_track_via_properties.h | 8 +- 2 files changed, 58 insertions(+), 51 deletions(-) diff --git a/pcbnew/dialogs/dialog_track_via_properties.cpp b/pcbnew/dialogs/dialog_track_via_properties.cpp index fc01416768..bc5a5a2d20 100644 --- a/pcbnew/dialogs/dialog_track_via_properties.cpp +++ b/pcbnew/dialogs/dialog_track_via_properties.cpp @@ -37,7 +37,7 @@ #include -DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_FRAME* aParent, +DIALOG_TRACK_VIA_PROPERTIES::DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_EDIT_FRAME* aParent, const PCB_SELECTION& aItems ) : DIALOG_TRACK_VIA_PROPERTIES_BASE( aParent ), m_frame( aParent ), @@ -537,7 +537,7 @@ void DIALOG_TRACK_VIA_PROPERTIES::onUnitsChanged( wxCommandEvent& aEvent ) } -bool DIALOG_TRACK_VIA_PROPERTIES::confirmPadChange( const std::vector& changingPads ) +bool DIALOG_TRACK_VIA_PROPERTIES::confirmPadChange( const std::set& changingPads ) { wxString msg; @@ -577,6 +577,14 @@ bool DIALOG_TRACK_VIA_PROPERTIES::confirmPadChange( const std::vector& cha bool DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow() { + std::vector tracks; + + for( EDA_ITEM* item : m_items ) + { + if( PCB_TRACK* track = dynamic_cast( item ) ) + tracks.push_back( track ); + } + // Check for malformed data ONLY; design rules and constraints are the business of DRC. if( m_vias ) @@ -628,51 +636,50 @@ bool DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow() bool changeLock = m_lockedCbox->Get3StateValue() != wxCHK_UNDETERMINED; bool setLock = m_lockedCbox->Get3StateValue() == wxCHK_CHECKED; - for( EDA_ITEM* item : m_items ) + for( PCB_TRACK* track : tracks ) { - commit.Modify( item ); + commit.Modify( track ); - switch( item->Type() ) + switch( track->Type() ) { case PCB_TRACE_T: case PCB_ARC_T: { wxASSERT( m_tracks ); - PCB_TRACK* t = static_cast( item ); if( !m_trackStartX.IsIndeterminate() ) - t->SetStartX( m_trackStartX.GetIntValue() ); + track->SetStartX( m_trackStartX.GetIntValue() ); if( !m_trackStartY.IsIndeterminate() ) - t->SetStartY( m_trackStartY.GetIntValue() ); + track->SetStartY( m_trackStartY.GetIntValue() ); if( !m_trackEndX.IsIndeterminate() ) - t->SetEndX( m_trackEndX.GetIntValue() ); + track->SetEndX( m_trackEndX.GetIntValue() ); if( !m_trackEndY.IsIndeterminate() ) - t->SetEndY( m_trackEndY.GetIntValue() ); + track->SetEndY( m_trackEndY.GetIntValue() ); if( !m_trackWidth.IsIndeterminate() ) - t->SetWidth( m_trackWidth.GetIntValue() ); + track->SetWidth( m_trackWidth.GetIntValue() ); int layer = m_TrackLayerCtrl->GetLayerSelection(); if( layer != UNDEFINED_LAYER ) - t->SetLayer( (PCB_LAYER_ID) layer ); + track->SetLayer( (PCB_LAYER_ID) layer ); if ( m_trackHasSolderMask->Get3StateValue() != wxCHK_UNDETERMINED ) - t->SetHasSolderMask( m_trackHasSolderMask->GetValue() ); + track->SetHasSolderMask( m_trackHasSolderMask->GetValue() ); if( !m_trackMaskMargin.IsIndeterminate() ) { if( m_trackMaskMargin.IsNull() ) - t->SetLocalSolderMaskMargin( {} ); + track->SetLocalSolderMaskMargin( {} ); else - t->SetLocalSolderMaskMargin( m_trackMaskMargin.GetIntValue() ); + track->SetLocalSolderMaskMargin( m_trackMaskMargin.GetIntValue() ); } if( changeLock ) - t->SetLocked( setLock ); + track->SetLocked( setLock ); break; } @@ -680,30 +687,30 @@ bool DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow() case PCB_VIA_T: { wxASSERT( m_vias ); - PCB_VIA* v = static_cast( item ); + PCB_VIA* via = static_cast( track ); if( !m_viaX.IsIndeterminate() ) - v->SetPosition( VECTOR2I( m_viaX.GetIntValue(), v->GetPosition().y ) ); + via->SetPosition( VECTOR2I( m_viaX.GetIntValue(), via->GetPosition().y ) ); if( !m_viaY.IsIndeterminate() ) - v->SetPosition( VECTOR2I( v->GetPosition().x, m_viaY.GetIntValue() ) ); + via->SetPosition( VECTOR2I( via->GetPosition().x, m_viaY.GetIntValue() ) ); if( m_viaNotFree->Get3StateValue() != wxCHK_UNDETERMINED ) - v->SetIsFree( !m_viaNotFree->GetValue() ); + via->SetIsFree( !m_viaNotFree->GetValue() ); if( !m_viaDiameter.IsIndeterminate() ) - v->SetPadstack( *m_viaStack ); + via->SetPadstack( *m_viaStack ); switch( m_ViaTypeChoice->GetSelection() ) { case 0: - v->SetViaType( VIATYPE::THROUGH ); + via->SetViaType( VIATYPE::THROUGH ); break; case 1: - v->SetViaType( VIATYPE::MICROVIA ); + via->SetViaType( VIATYPE::MICROVIA ); break; case 2: - v->SetViaType( VIATYPE::BLIND_BURIED ); + via->SetViaType( VIATYPE::BLIND_BURIED ); break; default: break; @@ -715,29 +722,29 @@ bool DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow() if( startLayer != UNDEFINED_LAYER ) { m_viaStack->Drill().start = startLayer; - v->SetTopLayer( startLayer ); + via->SetTopLayer( startLayer ); } if( endLayer != UNDEFINED_LAYER ) { m_viaStack->Drill().end = endLayer; - v->SetBottomLayer( endLayer ); + via->SetBottomLayer( endLayer ); } - v->SanitizeLayers(); + via->SanitizeLayers(); switch( m_annularRingsCtrl->GetSelection() ) { case 0: - v->Padstack().SetUnconnectedLayerMode( + via->Padstack().SetUnconnectedLayerMode( PADSTACK::UNCONNECTED_LAYER_MODE::KEEP_ALL ); break; case 1: - v->Padstack().SetUnconnectedLayerMode( + via->Padstack().SetUnconnectedLayerMode( PADSTACK::UNCONNECTED_LAYER_MODE::REMOVE_EXCEPT_START_AND_END ); break; case 2: - v->Padstack().SetUnconnectedLayerMode( + via->Padstack().SetUnconnectedLayerMode( PADSTACK::UNCONNECTED_LAYER_MODE::REMOVE_ALL ); break; default: @@ -747,23 +754,23 @@ bool DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow() switch( m_tentingFrontCtrl->GetSelection() ) { default: - case 0: v->Padstack().FrontOuterLayers().has_solder_mask.reset(); break; - case 1: v->Padstack().FrontOuterLayers().has_solder_mask = true; break; - case 2: v->Padstack().FrontOuterLayers().has_solder_mask = false; break; + case 0: via->Padstack().FrontOuterLayers().has_solder_mask.reset(); break; + case 1: via->Padstack().FrontOuterLayers().has_solder_mask = true; break; + case 2: via->Padstack().FrontOuterLayers().has_solder_mask = false; break; } switch( m_tentingBackCtrl->GetSelection() ) { default: - case 0: v->Padstack().BackOuterLayers().has_solder_mask.reset(); break; - case 1: v->Padstack().BackOuterLayers().has_solder_mask = true; break; - case 2: v->Padstack().BackOuterLayers().has_solder_mask = false; break; + case 0: via->Padstack().BackOuterLayers().has_solder_mask.reset(); break; + case 1: via->Padstack().BackOuterLayers().has_solder_mask = true; break; + case 2: via->Padstack().BackOuterLayers().has_solder_mask = false; break; } if( !m_viaDrill.IsIndeterminate() ) - v->SetDrill( m_viaDrill.GetIntValue() ); + via->SetDrill( m_viaDrill.GetIntValue() ); - TEARDROP_PARAMETERS* targetParams = &v->GetTeardropParams(); + TEARDROP_PARAMETERS* targetParams = &via->GetTeardropParams(); if( m_cbTeardrops->Get3StateValue() != wxCHK_UNDETERMINED ) targetParams->m_Enabled = m_cbTeardrops->GetValue(); @@ -791,7 +798,7 @@ bool DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow() targetParams->m_CurvedEdges = m_curvedEdges->GetValue(); if( changeLock ) - v->SetLocked( setLock ); + via->SetLocked( setLock ); break; } @@ -807,18 +814,18 @@ bool DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow() // Pushing the commit will have updated the connectivity so we can now test to see if we // need to update any pad nets. - auto connectivity = m_frame->GetBoard()->GetConnectivity(); - int newNetCode = m_netSelector->GetSelectedNetcode(); - bool updateNets = false; - std::vector changingPads; + auto connectivity = m_frame->GetBoard()->GetConnectivity(); + int newNetCode = m_netSelector->GetSelectedNetcode(); + bool updateNets = false; + std::set changingPads; if ( !m_netSelector->IsIndeterminate() ) { updateNets = true; - for( EDA_ITEM* item : m_items ) + for( PCB_TRACK* track : tracks ) { - BOARD_CONNECTED_ITEM* boardItem = static_cast( item ); + BOARD_CONNECTED_ITEM* boardItem = static_cast( track ); auto connectedItems = connectivity->GetConnectedItems( boardItem, { PCB_TRACE_T, PCB_ARC_T, PCB_PAD_T, PCB_VIA_T, PCB_FOOTPRINT_T }, true ); @@ -828,8 +835,8 @@ bool DIALOG_TRACK_VIA_PROPERTIES::TransferDataFromWindow() { PAD* pad = static_cast( citem ); - if( pad->GetNetCode() != newNetCode && !alg::contains( changingPads, citem ) ) - changingPads.push_back( pad ); + if( pad->GetNetCode() != newNetCode ) + changingPads.insert( pad ); } } } diff --git a/pcbnew/dialogs/dialog_track_via_properties.h b/pcbnew/dialogs/dialog_track_via_properties.h index c566893568..7f186b199c 100644 --- a/pcbnew/dialogs/dialog_track_via_properties.h +++ b/pcbnew/dialogs/dialog_track_via_properties.h @@ -29,14 +29,14 @@ #include class PCB_SELECTION; -class PCB_BASE_FRAME; +class PCB_BASE_EDIT_FRAME; class PAD; class PADSTACK; class DIALOG_TRACK_VIA_PROPERTIES : public DIALOG_TRACK_VIA_PROPERTIES_BASE { public: - DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_FRAME* aParent, const PCB_SELECTION& aItems ); + DIALOG_TRACK_VIA_PROPERTIES( PCB_BASE_EDIT_FRAME* aParent, const PCB_SELECTION& aItems ); ~DIALOG_TRACK_VIA_PROPERTIES(); @@ -58,13 +58,13 @@ private: void onUnitsChanged( wxCommandEvent& aEvent ); void onTeardropsUpdateUi( wxUpdateUIEvent& event ) override; - bool confirmPadChange( const std::vector& connectedPads ); + bool confirmPadChange( const std::set& connectedPads ); int getLayerDepth(); void afterPadstackModeChanged(); private: - PCB_BASE_FRAME* m_frame; + PCB_BASE_EDIT_FRAME* m_frame; const PCB_SELECTION& m_items; // List of items to be modified. UNIT_BINDER m_trackStartX, m_trackStartY;