Gerbview: always search for the first available layer

This commit is contained in:
Mike Williams 2021-08-16 09:52:25 -04:00
parent 9a0d4f5ba4
commit 2612b94519
3 changed files with 8 additions and 16 deletions

View File

@ -279,7 +279,7 @@ bool GERBVIEW_FRAME::LoadListOfGerberAndDrillFiles( const wxString& aPath,
// Make sure we have a layer available to load into // Make sure we have a layer available to load into
layer = getNextAvailableLayer( layer ); layer = getNextAvailableLayer();
if( layer == NO_AVAILABLE_LAYERS ) if( layer == NO_AVAILABLE_LAYERS )
{ {
@ -421,7 +421,7 @@ bool GERBVIEW_FRAME::LoadExcellonFiles( const wxString& aFullFileName )
m_lastFileName = filename.GetFullPath(); m_lastFileName = filename.GetFullPath();
layer = getNextAvailableLayer( layer ); layer = getNextAvailableLayer();
if( layer == NO_AVAILABLE_LAYERS ) if( layer == NO_AVAILABLE_LAYERS )
{ {
@ -649,7 +649,7 @@ bool GERBVIEW_FRAME::unarchiveFiles( const wxString& aFullFileName, REPORTER* aR
foundX2Gerbers = true; foundX2Gerbers = true;
} }
layer = getNextAvailableLayer( layer ); layer = getNextAvailableLayer();
SetActiveLayer( layer, false ); SetActiveLayer( layer, false );
} }
} }

View File

@ -450,21 +450,14 @@ void GERBVIEW_FRAME::ApplyDisplaySettingsToGAL()
} }
int GERBVIEW_FRAME::getNextAvailableLayer( int aLayer ) const int GERBVIEW_FRAME::getNextAvailableLayer() const
{ {
int layer = aLayer;
for( unsigned i = 0; i < ImagesMaxCount(); ++i ) for( unsigned i = 0; i < ImagesMaxCount(); ++i )
{ {
const GERBER_FILE_IMAGE* gerber = GetGbrImage( layer ); const GERBER_FILE_IMAGE* gerber = GetGbrImage( i );
if( gerber == nullptr ) // this graphic layer is available: use it if( gerber == nullptr ) // this graphic layer is available: use it
return layer; return i;
++layer; // try next graphic layer
if( layer >= (int)ImagesMaxCount() )
layer = 0;
} }
return NO_AVAILABLE_LAYERS; return NO_AVAILABLE_LAYERS;

View File

@ -190,14 +190,13 @@ public:
int GetActiveLayer() const { return m_activeLayer; } int GetActiveLayer() const { return m_activeLayer; }
/** /**
* Find the next empty layer starting at \a aLayer and returns it to the caller. * Find the next empty layer.
* *
* If no empty layers are found, #NO_AVAILABLE_LAYERS is return. * If no empty layers are found, #NO_AVAILABLE_LAYERS is return.
* *
* @param aLayer The first layer to search.
* @return The first empty layer found or #NO_AVAILABLE_LAYERS. * @return The first empty layer found or #NO_AVAILABLE_LAYERS.
*/ */
int getNextAvailableLayer( int aLayer = 0 ) const; int getNextAvailableLayer() const;
/** /**
* Update the currently "selected" layer within the #GERBER_LAYER_WIDGET. * Update the currently "selected" layer within the #GERBER_LAYER_WIDGET.