fixed a serious bug in zone filling, for pads with drill but not on all layers

This commit is contained in:
jean-pierre charras
2010-06-28 15:11:14 +02:00
committed by jp
parent af7c26e8be
commit c580d5d72c
4 changed files with 32 additions and 18 deletions
+19 -15
View File
@@ -174,8 +174,11 @@ static int MinimalReq[PIN_NMAX][PIN_NMAX] =
/** Function TestDuplicateSheetNames( )
* inside a given sheet, one cannot have sheets with duplicate names (file
* names can be duplicated).
* @return the error count
* @param aCreateMarker: true = create error markers in schematic,
* false = calculate error count only
*/
int TestDuplicateSheetNames()
int TestDuplicateSheetNames(bool aCreateMarker)
{
int err_count = 0;
EDA_ScreenList ScreenList; // Created the list of screen
@@ -203,17 +206,20 @@ int TestDuplicateSheetNames()
( ( SCH_SHEET* ) item_to_test )-> m_SheetName )
== 0 )
{
/* Create a new marker type ERC error*/
SCH_MARKER* Marker = new SCH_MARKER();
Marker->m_TimeStamp = GetTimeStamp();
Marker->SetData( ERCE_DUPLICATE_SHEET_NAME,
( (SCH_SHEET*) item_to_test )->m_Pos,
_( "Duplicate Sheet name" ),
( (SCH_SHEET*) item_to_test )->m_Pos );
Marker->SetMarkerType( MARK_ERC );
Marker->SetErrorLevel( ERR );
Marker->SetNext( Screen->EEDrawList );
Screen->EEDrawList = Marker;
if( aCreateMarker )
{
/* Create a new marker type ERC error*/
SCH_MARKER* Marker = new SCH_MARKER();
Marker->m_TimeStamp = GetTimeStamp();
Marker->SetData( ERCE_DUPLICATE_SHEET_NAME,
( (SCH_SHEET*) item_to_test )->m_Pos,
_( "Duplicate Sheet name" ),
( (SCH_SHEET*) item_to_test )->m_Pos );
Marker->SetMarkerType( MARK_ERC );
Marker->SetErrorLevel( ERR );
Marker->SetNext( Screen->EEDrawList );
Screen->EEDrawList = Marker;
}
err_count++;
}
}
@@ -279,9 +285,8 @@ void DIALOG_ERC::TestErc( wxArrayString* aMessagesList )
* inside a given sheet, one cannot have sheets with duplicate names (file
* names can be duplicated).
*/
int errcnt = TestDuplicateSheetNames();
int errcnt = TestDuplicateSheetNames( true );
g_EESchemaVar.NbErrorErc += errcnt;
g_EESchemaVar.NbWarningErc += errcnt;
m_Parent->BuildNetListBase();
@@ -290,7 +295,6 @@ void DIALOG_ERC::TestErc( wxArrayString* aMessagesList )
for( unsigned ii = 0; ii < g_NetObjectslist.size(); ii++ )
g_NetObjectslist[ii]->m_FlagOfConnection = UNCONNECTED;
StartNet = OldItem = 0;
NetNbItems = 0;
MinConn = NOC;