Pcbnew: fix bug1082146 (Keep-out areas get destroyed by "export settings to other zones" )
Eeschema: fix bug 1082107 (error message" component not found" when no component selected from select component dialog box)
This commit is contained in:
commit
932c5e9989
|
@ -144,6 +144,9 @@ wxString SCH_BASE_FRAME::SelectComponentFromLibrary( const wxString& aLibname,
|
||||||
if( cmpName.IsEmpty() )
|
if( cmpName.IsEmpty() )
|
||||||
return wxEmptyString;
|
return wxEmptyString;
|
||||||
|
|
||||||
|
// Here, cmpName contains the component name,
|
||||||
|
// or "*" if the Select All dialog button was pressed
|
||||||
|
|
||||||
#ifndef KICAD_KEEPCASE
|
#ifndef KICAD_KEEPCASE
|
||||||
cmpName.MakeUpper();
|
cmpName.MakeUpper();
|
||||||
#endif
|
#endif
|
||||||
|
@ -175,7 +178,7 @@ wxString SCH_BASE_FRAME::SelectComponentFromLibrary( const wxString& aLibname,
|
||||||
|
|
||||||
libEntry = CMP_LIBRARY::FindLibraryComponent( cmpName, aLibname );
|
libEntry = CMP_LIBRARY::FindLibraryComponent( cmpName, aLibname );
|
||||||
|
|
||||||
if( ( libEntry == NULL ) && allowWildSeach ) /* Search with wildcard */
|
if( ( libEntry == NULL ) && allowWildSeach ) // Search with wildcard
|
||||||
{
|
{
|
||||||
allowWildSeach = false;
|
allowWildSeach = false;
|
||||||
wxString wildname = wxChar( '*' ) + cmpName + wxChar( '*' );
|
wxString wildname = wxChar( '*' ) + cmpName + wxChar( '*' );
|
||||||
|
@ -191,7 +194,7 @@ wxString SCH_BASE_FRAME::SelectComponentFromLibrary( const wxString& aLibname,
|
||||||
|
|
||||||
if( libEntry == NULL )
|
if( libEntry == NULL )
|
||||||
{
|
{
|
||||||
msg = _( "Failed to find part " ) + cmpName + _( " in library" );
|
msg.Printf( _( "Failed to find part <%s> in library" ), GetChars( cmpName ) );
|
||||||
DisplayError( this, msg );
|
DisplayError( this, msg );
|
||||||
return wxEmptyString;
|
return wxEmptyString;
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,7 +79,7 @@ int GetNameOfPartToLoad( EDA_DRAW_FRAME* frame, CMP_LIBRARY* Library, wxString&
|
||||||
static wxString OldCmpName;
|
static wxString OldCmpName;
|
||||||
|
|
||||||
ii = DisplayComponentsNamesInLib( frame, Library, BufName, OldCmpName );
|
ii = DisplayComponentsNamesInLib( frame, Library, BufName, OldCmpName );
|
||||||
if( ii <= 0 )
|
if( ii <= 0 || BufName.IsEmpty() )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
OldCmpName = BufName;
|
OldCmpName = BufName;
|
||||||
|
|
|
@ -641,6 +641,8 @@ void ZONE_CONTAINER::DisplayInfo( EDA_DRAW_FRAME* frame )
|
||||||
|
|
||||||
msg = _( "Zone Outline" );
|
msg = _( "Zone Outline" );
|
||||||
|
|
||||||
|
// Display Cutout instead of Outline for holes inside a zone
|
||||||
|
// i.e. when num contour !=0
|
||||||
int ncont = m_Poly->GetContour( m_CornerSelection );
|
int ncont = m_Poly->GetContour( m_CornerSelection );
|
||||||
|
|
||||||
if( ncont )
|
if( ncont )
|
||||||
|
@ -648,7 +650,27 @@ void ZONE_CONTAINER::DisplayInfo( EDA_DRAW_FRAME* frame )
|
||||||
|
|
||||||
frame->AppendMsgPanel( _( "Type" ), msg, DARKCYAN );
|
frame->AppendMsgPanel( _( "Type" ), msg, DARKCYAN );
|
||||||
|
|
||||||
if( IsOnCopperLayer() )
|
if( GetIsKeepout() )
|
||||||
|
{
|
||||||
|
msg.Empty();
|
||||||
|
if( GetDoNotAllowVias() )
|
||||||
|
msg = _("No via");
|
||||||
|
if( GetDoNotAllowTracks() )
|
||||||
|
{
|
||||||
|
if( !msg.IsEmpty() )
|
||||||
|
msg += wxT(", ");
|
||||||
|
msg += _("No track");
|
||||||
|
}
|
||||||
|
if( GetDoNotAllowCopperPour() )
|
||||||
|
{
|
||||||
|
if( !msg.IsEmpty() )
|
||||||
|
msg += wxT(", ");
|
||||||
|
msg += _("No copper pour");
|
||||||
|
}
|
||||||
|
|
||||||
|
frame->AppendMsgPanel( _( "Keepout" ), msg, RED );
|
||||||
|
}
|
||||||
|
else if( IsOnCopperLayer() )
|
||||||
{
|
{
|
||||||
if( GetNet() >= 0 )
|
if( GetNet() >= 0 )
|
||||||
{
|
{
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
#include <zones.h>
|
#include <zones.h>
|
||||||
#include <base_units.h>
|
#include <base_units.h>
|
||||||
|
|
||||||
#include <class_zone_settings.h>
|
#include <class_zone.h>
|
||||||
#include <class_board.h>
|
#include <class_board.h>
|
||||||
#include <dialog_copper_zones_base.h>
|
#include <dialog_copper_zones_base.h>
|
||||||
|
|
||||||
|
@ -545,11 +545,16 @@ void DIALOG_COPPER_ZONE::ExportSetupToOtherCopperZones( wxCommandEvent& event )
|
||||||
if( !AcceptOptions( true, true ) )
|
if( !AcceptOptions( true, true ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Export settings ( but layer and netcode ) to others zones:
|
// Export settings ( but layer and netcode ) to others copper zones
|
||||||
BOARD* pcb = m_Parent->GetBoard();
|
BOARD* pcb = m_Parent->GetBoard();
|
||||||
for( int ii = 0; ii < pcb->GetAreaCount(); ii++ )
|
for( int ii = 0; ii < pcb->GetAreaCount(); ii++ )
|
||||||
{
|
{
|
||||||
ZONE_CONTAINER* zone = pcb->GetArea( ii );
|
ZONE_CONTAINER* zone = pcb->GetArea( ii );
|
||||||
|
|
||||||
|
// Cannot export settings from a copper zone
|
||||||
|
// to a zone keepout:
|
||||||
|
if( zone->GetIsKeepout() )
|
||||||
|
continue;
|
||||||
m_settings.ExportSetting( *zone, false ); // false = partial export
|
m_settings.ExportSetting( *zone, false ); // false = partial export
|
||||||
m_Parent->OnModify();
|
m_Parent->OnModify();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue