Commit 4ebe4714 authored by jean-pierre charras's avatar jean-pierre charras

Minor fixes in add zone and duplicate zone (legacy mode)

parent e2c7e6bf
...@@ -123,6 +123,16 @@ void PCB_EDIT_FRAME::duplicateZone( wxDC* aDC, ZONE_CONTAINER* aZone ) ...@@ -123,6 +123,16 @@ void PCB_EDIT_FRAME::duplicateZone( wxDC* aDC, ZONE_CONTAINER* aZone )
else else
success = InvokeNonCopperZonesEditor( this, aZone, &zoneSettings ); success = InvokeNonCopperZonesEditor( this, aZone, &zoneSettings );
// If the new zone is on the same layer as the the initial zone,
// do nothing
if( success && ( aZone->GetLayer() == zoneSettings.m_CurrentZone_Layer ) )
{
DisplayError( this,
_( "The duplicated zone is on the same layer as the initial zone, which has no sense.\n"
"Please, chose an other layer for the new zone") );
success = false;
}
if( success ) if( success )
{ {
zoneSettings.ExportSetting( *newZone ); zoneSettings.ExportSetting( *newZone );
...@@ -148,7 +158,8 @@ void PCB_EDIT_FRAME::duplicateZone( wxDC* aDC, ZONE_CONTAINER* aZone ) ...@@ -148,7 +158,8 @@ void PCB_EDIT_FRAME::duplicateZone( wxDC* aDC, ZONE_CONTAINER* aZone )
if( GetBoard()->GetAreaIndex( newZone ) >= 0 if( GetBoard()->GetAreaIndex( newZone ) >= 0
&& GetBoard()->Test_Drc_Areas_Outlines_To_Areas_Outlines( newZone, true ) ) && GetBoard()->Test_Drc_Areas_Outlines_To_Areas_Outlines( newZone, true ) )
{ {
DisplayError( this, _( "Duplicate Zone: The outline of the duplicated zone fails DRC check!" ) ); DisplayError( this,
_( "The outline of the duplicated zone fails DRC check!" ) );
} }
UpdateCopyOfZonesList( s_PickedList, s_AuxiliaryList, GetBoard() ); UpdateCopyOfZonesList( s_PickedList, s_AuxiliaryList, GetBoard() );
......
...@@ -257,9 +257,13 @@ void UpdateCopyOfZonesList( PICKED_ITEMS_LIST& aPickList, ...@@ -257,9 +257,13 @@ void UpdateCopyOfZonesList( PICKED_ITEMS_LIST& aPickList,
} }
} }
wxASSERT_MSG( notfound != true, if( notfound ) // happens when the new zone overlaps an existing zone
wxT( "UpdateCopyOfZonesList() error: item not found in " // and these zones are combined
"aAuxiliaryList" ) ); {
DBG( printf(
"UpdateCopyOfZonesList(): item not found in aAuxiliaryList,"
"combined with an other zone\n" ) );
}
break; break;
} }
......
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