← Back to team overview

kicad-developers team mailing list archive

Re: GerbView: KiCad-rc2: Layer filenames mixed up in right tab view.

 

Thanks JP!

On Tue, Feb 27, 2018 at 2:09 PM, jp charras <jp.charras@xxxxxxxxxx> wrote:

> Le 27/02/2018 à 15:33, Jon Evans a écrit :
> > This is so strange.  I just installed the nightly build on a Windows
> machine just to see if this is
> > a Windows specific problem, and I still don't see it.
> >
> > What I did:
> >
> > 1) Start GerbView (in OpenGL mode)
> > 2) Load one file (using File->Open Gerber File...)
> > 3) See that file appears on Layer 1
> > 4) Load another file (without clicking anything in the layer manager)
> > 5) Second file appears in Layer 2, and all colors and file names are
> correct.
> >
> > Regarding your last point, I think by default the active layer is set to
> one past the last one
> > loaded, so if you load files in sequence, they do not overwrite each
> other, but if you click on a
> > layer in the layer manager (now there is a triangle indicator next to
> it) and then load a file, it
> > will replace the selected layer.
> >
> > I would much appreciate if anyone who can reproduce this can do any
> debugging to see what is going
> > on, since I can't reproduce it.
> >
> > I would expect that:
> >
> > 1) in GERBVIEW_FRAME::Read_GERBER_File() the first call to
> GetActiveLayer() returns one higher than
> > the last layer you loaded
> > 2) then a few lines down, GetGbrImage( layers ) returns NULL and a new
> image is created.
> >
> >
> > -Jon
>
> Hi Jon,
>
> This was very strange, however I found the culprit:
> This is in files.cpp the call (added by commit 0c9d11) to
>     GetImagesList()->SortImagesByZOrder();
> after loading a file.
> This call is incorrect (especially when files are not in X2 format) ,and
> reorder the layers, but
> without changing the previous color of layers.
>
> SortImagesByZOrder() creates unexpected reorder of layers if files are not
> using X2 format.
> (perhaps this is a flaw in this function) and cannot be called here.
>
> I committed the fix that removes this call.
>
>
> --
> Jean-Pierre CHARRAS
>

References