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

This commit is contained in:
jean-pierre charras 2015-05-10 21:10:10 +02:00
parent e2c7e6bf02
commit 4ebe471420
2 changed files with 19 additions and 4 deletions

View File

@ -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 )
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() );

View File

@ -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;
} }