DIALOG_GLOBAL_DELETION and teardrop.cpp: fix incorrect call to GetLayer() for ZONES
This commit is contained in:
parent
263faf2870
commit
2bf56c2441
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||
*
|
||||
* Copyright (C) 1992-2021 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
* Copyright (C) 1992-2022 KiCad Developers, see AUTHORS.txt for contributors.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
|
@ -143,11 +143,12 @@ void DIALOG_GLOBAL_DELETION::DoGlobalDeletions()
|
|||
if( delete_all || m_delZones->GetValue() )
|
||||
{
|
||||
int area_index = 0;
|
||||
auto item = board->GetArea( area_index );
|
||||
ZONE* item = board->GetArea( area_index );
|
||||
|
||||
while( item )
|
||||
{
|
||||
if( delete_all || layers_filter[item->GetLayer()] )
|
||||
// The zone will be deleted if it is ar least on one selected layer.
|
||||
if( delete_all || ( layers_filter & item->GetLayerSet() ).any() )
|
||||
{
|
||||
commit.Remove( item );
|
||||
gen_rastnest = true;
|
||||
|
|
|
@ -208,6 +208,9 @@ int TEARDROP_MANAGER::SetTeardrops( BOARD_COMMIT* aCommitter, bool aFollowTracks
|
|||
|
||||
void TEARDROP_MANAGER::setTeardropPriorities()
|
||||
{
|
||||
// Note: a teardrop area is on only one layer, so using GetFirstLayer() is OK
|
||||
// to know the zone layer of a teardrop
|
||||
|
||||
int priority_base = MAGIC_TEARDROP_ZONE_ID;
|
||||
|
||||
// The sort function to sort by increasing copper layers. Group by layers.
|
||||
|
@ -216,10 +219,10 @@ void TEARDROP_MANAGER::setTeardropPriorities()
|
|||
{
|
||||
bool operator()(ZONE* a, ZONE* b) const
|
||||
{
|
||||
if( a->GetLayer() == b->GetLayer() )
|
||||
if( a->GetFirstLayer() == b->GetFirstLayer() )
|
||||
return a->GetOutlineArea() > b->GetOutlineArea();
|
||||
|
||||
return a->GetLayer() < b->GetLayer();
|
||||
return a->GetFirstLayer() < b->GetFirstLayer();
|
||||
}
|
||||
} compareLess;
|
||||
|
||||
|
@ -232,9 +235,9 @@ void TEARDROP_MANAGER::setTeardropPriorities()
|
|||
|
||||
for( ZONE* td: m_createdTdList )
|
||||
{
|
||||
if( td->GetLayer() != curr_layer )
|
||||
if( td->GetFirstLayer() != curr_layer )
|
||||
{
|
||||
curr_layer = td->GetLayer();
|
||||
curr_layer = td->GetFirstLayer();
|
||||
priority_base = MAGIC_TEARDROP_ZONE_ID;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue