Hey Jon, I'm getting the following build error (there may be more but this is where my build stopped):
C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/router_tool.cpp: In member function 'int ROUTER_TOOL::onViaCommand(const TOOL_EVENT&)': C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/router_tool.cpp:501:5: error: 'LAYER_ID' was not declared in this scope LAYER_ID targetLayer = UNDEFINED_LAYER; ^~~~~~~~ C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/router_tool.cpp:507:9: error: 'targetLayer' was not declared in this scope targetLayer = m_frame->SelectLayer( static_cast<LAYER_ID>( currentLayer ), ^~~~~~~~~~~ C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/router_tool.cpp:507:57: error: 'LAYER_ID' does not name a type targetLayer = m_frame->SelectLayer( static_cast<LAYER_ID>( currentLayer ), ^~~~~~~~ C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/router_tool.cpp:559:13: error: 'targetLayer' was not declared in this scope if( targetLayer != UNDEFINED_LAYER ) ^~~~~~~~~~~ C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/router_tool.cpp:597:13: error: 'targetLayer' was not declared in this scope if( targetLayer != UNDEFINED_LAYER ) ^~~~~~~~~~~ make[2]: *** [pcbnew/router/CMakeFiles/pnsrouter.dir/build.make:783: pcbnew/router/CMakeFiles/pnsrouter.dir/router_tool.cpp.obj] Error 1 make[1]: *** [CMakeFiles/Makefile2:1598: pcbnew/router/CMakeFiles/pnsrouter.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... and some build warnings that seem pretty ominous: C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp: In member function 'bool WIDGET_EESCHEMA_COLOR_CONFIG::TransferDataFromControl()': C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp:278:63: warning: array subscript is above array bounds [-Warray-bounds] COLOR4D bgcolor = currentColors[LAYER_SCHEMATIC_BACKGROUND]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp:282:21: warning: array subscript is above array bounds [-Warray-bounds] if( bgcolor == currentColors[ clyr ] && clyr != LAYER_SCHEMATIC_BACKGROUND ) ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp:303:49: warning: array subscript is above array bounds [-Warray-bounds] currentColors[ LAYER_SCHEMATIC_BACKGROUND ] = bgcolor; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp:308:22: warning: array subscript is above array bounds [-Warray-bounds] SetLayerColor( currentColors[ clyr ], clyr ); ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp: In member function 'void WIDGET_EESCHEMA_COLOR_CONFIG::CreateControls()': C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/widget_eeschema_color_config.cpp:220:49: warning: array subscript is above array bounds [-Warray-bounds] currentColors[ LAYER_SCHEMATIC_BACKGROUND ] = bgColor; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ On 3/28/2017 11:05 AM, Jon Evans wrote: > Hi Wayne, > > Please try the attached patch and let me know if you have trouble with it. > > Thanks, > Jon > > On Tue, Mar 28, 2017 at 9:49 AM, Wayne Stambaugh <stambau...@gmail.com > <mailto:stambau...@gmail.com>> wrote: > > John, > > Please rebase your patch when you get a chance. I just attempted to > apply it so I could do some testing and it no longer applies. Sorry for > the headaches but I'm really busy. I will apply it as soon as I get it > and do some testing. > > Thanks, > > Wayne > > On 3/24/2017 8:54 AM, Jon Evans wrote: > > Hi Wayne, > > > > Any feedback on this? > > > > Thanks, > > Jon > > > > On Wed, Mar 22, 2017 at 6:15 AM, Maciej Sumiński > > <maciej.sumin...@cern.ch <mailto:maciej.sumin...@cern.ch> > <mailto:maciej.sumin...@cern.ch <mailto:maciej.sumin...@cern.ch>>> > wrote: > > > > I have briefly tested the patch, no issues found. I have no > objections > > to the changes, but I will leave the final decision to Wayne. > > > > Regards, > > Orson > > > > On 03/22/2017 03:51 AM, Jon Evans wrote: > > > Hi Wayne, new patch attached. > > > > > > Thanks, > > > Jon > > > > > > On Tue, Mar 21, 2017 at 9:28 AM, Wayne Stambaugh > > <stambau...@gmail.com <mailto:stambau...@gmail.com> > <mailto:stambau...@gmail.com <mailto:stambau...@gmail.com>>> > > > wrote: > > > > > >> Jon, > > >> > > >> I just attempted to apply your patch and it no longer applies > > cleanly. > > >> Please rebase it when you get a chance. > > >> > > >> Thanks, > > >> > > >> Wayne > > >> > > >> On 3/16/2017 10:14 AM, Jon Evans wrote: > > >>> Bump -- does anyone have time to look at this and report back if > > there > > >>> are any issues? I'd like to get it merged so that I can feel > > confident > > >>> about doing more work on top of these changes. > > >>> > > >>> Thanks, > > >>> Jon > > >>> > > >>> On Tue, Mar 14, 2017 at 6:05 PM, Wayne Stambaugh > > <stambau...@gmail.com <mailto:stambau...@gmail.com> > <mailto:stambau...@gmail.com <mailto:stambau...@gmail.com>> > > >>> <mailto:stambau...@gmail.com <mailto:stambau...@gmail.com> > <mailto:stambau...@gmail.com <mailto:stambau...@gmail.com>>>> wrote: > > >>> > > >>> Hey Jon, > > >>> > > >>> This is better than the giant enum concept and I'm willing > > to accept > > >>> this. It still lacks the type safety of the enum > inheritance > > >> solution. > > >>> I still see ints being cast to enums and enum bounds > checking so > > >> this is > > >>> less than ideal. I would prefer to see some additional > > testing so if > > >>> any one has time, please test this patch before we > commit it. > > >>> > > >>> Thanks, > > >>> > > >>> Wayne > > >>> > > >>> On 3/14/2017 3:09 PM, Jon Evans wrote: > > >>> > Hi Wayne, > > >>> > > > >>> > New patch attached. Let me know what you think of this > > approach. > > >>> > > > >>> > Thanks, > > >>> > Jon > > >>> > > > >>> > On Tue, Mar 14, 2017 at 10:40 AM, Jon Evans > > <j...@craftyjon.com <mailto:j...@craftyjon.com> > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com>> > > >> <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com> > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com>>> > > >>> > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com> > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com>> > > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com> > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com>>>>> wrote: > > >>> > > > >>> > Hi John, that's basically what my first patch > did, but > > inside > > >>> one enum. > > >>> > > > >>> > Hi Wayne, thanks for elaborating more, I see > your point. > > >>> > > > >>> > I am still not sure there is benefit to adding some > > class to > > >>> handle > > >>> > enum inheritance. > > >>> > I think it would work fine to just chain > multiple enums > > >>> together, as > > >>> > was done before, but with some tweaks. > > >>> > > > >>> > enum PCB_LAYER_ID > > >>> > { > > >>> > F_Cu = 0, > > >>> > //... > > >>> > PCB_LAYER_ID_COUNT > > >>> > }; > > >>> > > > >>> > enum NETNAME_LAYER_ID > > >>> > { > > >>> > NETNAME_LAYER_ID_START = PCB_LAYER_ID_COUNT, > > >>> > NETNAME_LAYER_ID_COUNT = > NETNAME_LAYER_ID_START + > > >>> PCB_LAYER_ID_COUNT > > >>> > }; > > >>> > > > >>> > enum GAL_LAYER_ID > > >>> > { > > >>> > GAL_LAYER_ID_START = NETNAME_LAYER_ID_COUNT, > > >>> > //.... > > >>> > }; > > >>> > > > >>> > And so on for gerbview, eeschema, etc > > >>> > > > >>> > That way the IDs will be unique and cover a > contiguous > > range, > > >> so > > >>> > functions that want to take any layer ID can just > > check that > > >>> the ID > > >>> > is >= 0 and < the end sentinel of the last enum. > > >>> > > > >>> > Any concerns with this approach? > > >>> > > > >>> > > > >>> > Best, > > >>> > Jon > > >>> > > > >>> > On Tue, Mar 14, 2017 at 10:29 AM, John Beard > > >>> <john.j.be...@gmail.com > <mailto:john.j.be...@gmail.com> <mailto:john.j.be...@gmail.com > <mailto:john.j.be...@gmail.com>> > > <mailto:john.j.be...@gmail.com <mailto:john.j.be...@gmail.com> > <mailto:john.j.be...@gmail.com <mailto:john.j.be...@gmail.com>>> > > >>> > <mailto:john.j.be...@gmail.com > <mailto:john.j.be...@gmail.com> > > <mailto:john.j.be...@gmail.com <mailto:john.j.be...@gmail.com>> > > >>> <mailto:john.j.be...@gmail.com > <mailto:john.j.be...@gmail.com> > > <mailto:john.j.be...@gmail.com > <mailto:john.j.be...@gmail.com>>>>> wrote: > > >>> > > > >>> > Hi Jon, > > >>> > > > >>> > Protocol Buffers has the same problem. > Messages have a > > >>> unique number > > >>> > for each field, but extensions to messages don't > > know about > > >>> > "siblings". A common thing [1] to so is reserve > > IDs up to > > >> 1000 > > >>> > for the > > >>> > base message, and then messages start at > offsets 1000, > > >>> 2000, etc, > > >>> > based on some in-house scheme. > > >>> > > > >>> > It probably won't just "drop in" to KiCad > due to fixed > > >>> arrays (I > > >>> > think?), but this is certainly one way it > has been > > >>> "solved" in the > > >>> > real world, by Google, no less! It's a bit > crusty to > > >> manually > > >>> > reserve > > >>> > space, but the "enum inheritance" problem isn't > > limited to > > >>> C++. > > >>> > > > >>> > There's plenty of space in enums and I > sincerely doubt > > >>> there is a > > >>> > measurable benefit to forcing the compiler > to use > > shorter > > >>> integral > > >>> > types anyway, so we could just say "0-9999" > is "common > > >> GAL", > > >>> > "10000-19999" is Pcbnew, etc. Some work might be > > needed to > > >>> handle > > >>> > non-contiguous enums here. "10000 layers > should be > > enough > > >> for > > >>> > anyone", > > >>> > right? > > >>> > > > >>> > Just a thought, without any real > consideration of the > > >>> > consequences for > > >>> > things like formats and so on. > > >>> > > > >>> > Cheers, > > >>> > > > >>> > John > > >>> > > > >>> > [1] > > >>> > > > >>> > https://developers.google.com/protocol-buffers/docs/proto# > <https://developers.google.com/protocol-buffers/docs/proto#> > > <https://developers.google.com/protocol-buffers/docs/proto# > <https://developers.google.com/protocol-buffers/docs/proto#>> > > >> choosing-extension-numbers > > >>> <https://developers.google.com/protocol-buffers/docs/ > <https://developers.google.com/protocol-buffers/docs/> > > <https://developers.google.com/protocol-buffers/docs/ > <https://developers.google.com/protocol-buffers/docs/>> > > >> proto#choosing-extension-numbers> > > >>> > > > >>> <https://developers.google.com/protocol-buffers/docs/ > <https://developers.google.com/protocol-buffers/docs/> > > <https://developers.google.com/protocol-buffers/docs/ > <https://developers.google.com/protocol-buffers/docs/>> > > >> proto#choosing-extension-numbers > > >>> <https://developers.google.com/protocol-buffers/docs/ > <https://developers.google.com/protocol-buffers/docs/> > > <https://developers.google.com/protocol-buffers/docs/ > <https://developers.google.com/protocol-buffers/docs/>> > > >> proto#choosing-extension-numbers>> > > >>> > > > >>> > On Tue, Mar 14, 2017 at 10:08 PM, Jon Evans > > >>> <j...@craftyjon.com <mailto:j...@craftyjon.com> > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com>> > > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com> > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com>>> > > >>> > <mailto:j...@craftyjon.com > <mailto:j...@craftyjon.com> > > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com>> > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com> > > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com>>>>> > > >> wrote: > > >>> > > Hi Orson, Wayne, > > >>> > > > > >>> > > I looked at the "enum inheritance" thing some > > more and I > > >>> don't > > >>> > think it > > >>> > > would be a good solution for our case. > > >>> > > > > >>> > > This technique lets you extend enum A with > enum > > B, and > > >> have > > >>> > functions f(A) > > >>> > > and f(A or B), and you could continue > making larger > > >>> enums that > > >>> > contained > > >>> > > smaller ones. > > >>> > > But, if we maintain multiple enums (one > for each > > >>> application, > > >>> > plus one for > > >>> > > GAL layers) I don't see how it would make > anything > > >> simpler, > > >>> > because we would > > >>> > > not be able to treat them as "sibling classes" > > >>> > > > > >>> > > Before I spend more time coding things I > want to > > get an > > >> idea > > >>> > of what your > > >>> > > requirements are / what you would and > would not > > accept > > >> as a > > >>> > change in this > > >>> > > area. I misunderstood Wayne's earlier > reply to > > me and > > >>> thought > > >>> > that a single > > >>> > > enum would be accepted, but if not, I don't > > currently > > >>> have a good > > >>> > > understanding of what the concerns are > with that > > >> approach. > > >>> > > > > >>> > > Questions for Wayne, Orson, and others who > care > > about > > >> this: > > >>> > > > > >>> > > 1) Is there any opposition to moving the layer > > >> definitions > > >>> > from GerbView and > > >>> > > Eeschema into > layers_id_colors_and_visibility.h? > > >> (ignoring > > >>> > whether they are > > >>> > > merged into one enum for now) > > >>> > > > > >>> > > 2) Is there any opposition to ensuring that no > > layer IDs > > >>> > overlap across all > > >>> > > applications? To be clear, what I mean > now is that > > >>> currently > > >>> > GerbView draw > > >>> > > layers occupy the same layer IDs as Pcbnew > board > > >> layers. I > > >>> > want to change > > >>> > > it so that a layer ID (cast to integer) is > > always unique > > >>> > across all > > >>> > > applications, unless it truly is the same > layer > > (i.e can > > >> use > > >>> > the same color > > >>> > > settings, visibility settings, etc. as > > GP_OVERLAY can > > >> across > > >>> > > GerbView/Pcbnew). > > >>> > > > > >>> > > 3) If the answers to both 1 and 2 are > "no", can > > you give > > >>> some > > >>> > more details > > >>> > > on why it's a bad idea to put all the > layers in > > the same > > >>> enum, > > >>> > and based on > > >>> > > that I will come back with a proposal on a > > different way > > >> of > > >>> > doing it? > > >>> > > > > >>> > > Thanks, > > >>> > > Jon > > >>> > > > > >>> > > On Mon, Mar 13, 2017 at 3:07 PM, Jon Evans > > >>> <j...@craftyjon.com <mailto:j...@craftyjon.com> > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com>> > > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com> > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com>>> > > >>> > <mailto:j...@craftyjon.com > <mailto:j...@craftyjon.com> > > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com>> > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com> > > <mailto:j...@craftyjon.com <mailto:j...@craftyjon.com>>>>> > > >> wrote: > > >>> > >> > > >>> > >> Hi Orson, > > >>> > >> > > >>> > >> It's an interesting idea, I will have to > look at it > > >> more. > > >>> > But, doesn't > > >>> > >> this still allow the programmer to > accidentally > > overlap > > >> two > > >>> > enum values? I > > >>> > >> can add checks to prevent this from happening > > elsewhere > > >> in > > >>> > the code, but it > > >>> > >> seems less clean to me. > > >>> > >> > > >>> > >> Best, > > >>> > >> -Jon > > >>> > >> > > >>> > >> On Mon, Mar 13, 2017 at 1:52 PM, Maciej > Suminski > > >>> > <maciej.sumin...@cern.ch > <mailto:maciej.sumin...@cern.ch> > > <mailto:maciej.sumin...@cern.ch > <mailto:maciej.sumin...@cern.ch>> <mailto:maciej.sumin...@cern.ch > <mailto:maciej.sumin...@cern.ch> > > <mailto:maciej.sumin...@cern.ch <mailto:maciej.sumin...@cern.ch>>> > > >>> <mailto:maciej.sumin...@cern.ch > <mailto:maciej.sumin...@cern.ch> > > <mailto:maciej.sumin...@cern.ch > <mailto:maciej.sumin...@cern.ch>> <mailto:maciej.sumin...@cern.ch > <mailto:maciej.sumin...@cern.ch> > > <mailto:maciej.sumin...@cern.ch > <mailto:maciej.sumin...@cern.ch>>>>> > > >>> > >> wrote: > > >>> > >>> > > >>> > >>> Hi, > > >>> > >>> > > >>> > >>> How about emulating enum inheritance [1]? I > > suppose it > > >>> would > > >>> > be the > > >>> > >>> cleanest solution allowing us to clearly > > specify what > > >> kind > > >>> > of layer is > > >>> > >>> expected for certain methods. This is even > > better kind > > >> of > > >>> > type checking. > > >>> > >>> > > >>> > >>> Cheers, > > >>> > >>> Orson > > >>> > >>> > > >>> > >>> 1. > > https://www.codeproject.com/kb/cpp/inheritenum.aspx > <https://www.codeproject.com/kb/cpp/inheritenum.aspx> > > <https://www.codeproject.com/kb/cpp/inheritenum.aspx > <https://www.codeproject.com/kb/cpp/inheritenum.aspx>> > > >>> <https://www.codeproject.com/kb/cpp/inheritenum.aspx > <https://www.codeproject.com/kb/cpp/inheritenum.aspx> > > <https://www.codeproject.com/kb/cpp/inheritenum.aspx > <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>> > > >>> > > > <https://www.codeproject.com/kb/cpp/inheritenum.aspx > <https://www.codeproject.com/kb/cpp/inheritenum.aspx> > > <https://www.codeproject.com/kb/cpp/inheritenum.aspx > <https://www.codeproject.com/kb/cpp/inheritenum.aspx>> > > >>> <https://www.codeproject.com/kb/cpp/inheritenum.aspx > <https://www.codeproject.com/kb/cpp/inheritenum.aspx> > > <https://www.codeproject.com/kb/cpp/inheritenum.aspx > <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>>> > > >>> > >>> > > >>> > >>> On 03/13/2017 02:50 PM, Jon Evans wrote: > > >>> > >>> > Hi Wayne, > > >>> > >>> > > > >>> > >>> > I understand this might seem like too > big a > > change. > > >>> > >>> > Here is what I was thinking when I > thought that > > >>> combining > > >>> > everything > > >>> > >>> > would > > >>> > >>> > be a good solution. > > >>> > >>> > > > >>> > >>> > - If there is more than one enum, then > > functions that > > >>> > consume data from > > >>> > >>> > more than one app (i.e. things in > > common/GAL) have > > >>> to cast > > >>> > to int, so > > >>> > >>> > you > > >>> > >>> > lose type checking that the enum gives you > > for free > > >> (or > > >>> > your type > > >>> > >>> > checking > > >>> > >>> > gets more complicated, because the > range of > > valid > > >> values > > >>> > is different > > >>> > >>> > for > > >>> > >>> > each application) > > >>> > >>> > > > >>> > >>> > - If there is more than one enum, it's > easier to > > >>> duplicate > > >>> > layers for > > >>> > >>> > no > > >>> > >>> > good reason (i.e. GerbView and Pcbnew have > > different > > >>> layer > > >>> > ids for > > >>> > >>> > "grid" > > >>> > >>> > right now) > > >>> > >>> > > > >>> > >>> > - I want to combine the color settings > for all > > >>> > applications under the > > >>> > >>> > hood > > >>> > >>> > (users will still be able to configure > different > > >> colors > > >>> > for each > > >>> > >>> > application). This change will let color > > settings > > >> take > > >>> > LAYER_ID > > >>> > >>> > instead of > > >>> > >>> > int, and there will only be one key/value > > mapping of > > >>> > colors -- no more > > >>> > >>> > difference between "GetLayerColor" and > > >> "GetItemColor". > > >>> > There will be > > >>> > >>> > no > > >>> > >>> > clashes between the meaning of a layer id > > (int type) > > >>> > between different > > >>> > >>> > applications. > > >>> > >>> > > > >>> > >>> > - Bringing Eeschema into this now is > just early > > >>> groundwork > > >>> > for Eeschema > > >>> > >>> > GAL > > >>> > >>> > port (as well as unified color settings) > > >>> > >>> > > > >>> > >>> > If you will not accept this change, I have > > to think > > >>> about > > >>> > a different > > >>> > >>> > proposal that will make the different > layer > > types in > > >>> different > > >>> > >>> > applications > > >>> > >>> > a bit more manageable than they are > today. I > > >> understand > > >>> > how having one > > >>> > >>> > giant enum for LAYER_ID seems more > > complicated, I'm > > >> just > > >>> > worried that > > >>> > >>> > having several different enums will > make the > > code > > >> that > > >>> > consumes > > >>> > >>> > LAYER_ID > > >>> > >>> > more complicated, especially if the > applications > > >> become > > >>> > more integrated > > >>> > >>> > with each other and start sharing more > code. > > >>> > >>> > > > >>> > >>> > Best, > > >>> > >>> > Jon > > >>> > >>> > > > >>> > >>> > On Mon, Mar 13, 2017 at 8:21 AM, Wayne > Stambaugh > > >>> > <stambau...@gmail.com > <mailto:stambau...@gmail.com> > > <mailto:stambau...@gmail.com <mailto:stambau...@gmail.com>> > <mailto:stambau...@gmail.com <mailto:stambau...@gmail.com> > > <mailto:stambau...@gmail.com <mailto:stambau...@gmail.com>>> > > >>> <mailto:stambau...@gmail.com > <mailto:stambau...@gmail.com> <mailto:stambau...@gmail.com > <mailto:stambau...@gmail.com>> > > <mailto:stambau...@gmail.com <mailto:stambau...@gmail.com> > <mailto:stambau...@gmail.com <mailto:stambau...@gmail.com>>>>> > > >>> > >>> > wrote: > > >>> > >>> > > > >>> > >>> >> Jon, > > >>> > >>> >> > > >>> > >>> >> I misunderstood your original intent. I > > don't think > > >>> > cluttering the > > >>> > >>> >> board layer enums with all of the virtual > > layer and > > >>> > schematic layer > > >>> > >>> >> enums is a good idea. It just seems like > > overkill > > >> to > > >>> > me. I thought > > >>> > >>> >> you > > >>> > >>> >> were going to create a separate enum for > > virtual > > >> board > > >>> > layers. You > > >>> > >>> >> could always start the virtual board > layer > > enums > > >>> from the > > >>> > last board > > >>> > >>> >> layer enum if you need unique enums. I > > would also > > >>> prefer the > > >>> > >>> >> schematic > > >>> > >>> >> layer enums be separate from the board > > layer enums > > >> for > > >>> > clarity. > > >>> > >>> >> Anyone > > >>> > >>> >> else have any thoughts on this? > > >>> > >>> >> > > >>> > >>> >> Cheers, > > >>> > >>> >> > > >>> > >>> >> Wayne > > >>> > >>> >> > > >>> > >>> >> On 3/12/2017 11:24 PM, Jon Evans wrote: > > >>> > >>> >>> Hi all, > > >>> > >>> >>> > > >>> > >>> >>> Per the other thread, this patch unifies > > the layer > > >>> > definitions > > >>> > >>> >>> between > > >>> > >>> >>> Pcbnew, GerbView, and Eeschema. It > > removes the > > >>> need for > > >>> > >>> >>> ITEM_GAL_LAYER > > >>> > >>> >>> and some other macros, and it will > > simplify the > > >>> > implementation of > > >>> > >>> >>> cross-application color themes and using > > GAL in > > >>> multiple > > >>> > >>> >>> applications. > > >>> > >>> >>> > > >>> > >>> >>> Note that this patch introduces some > temporary > > >>> weirdness > > >>> > in a few > > >>> > >>> >>> places, such as in > COLORS_DESIGN_SETTINGS > > (there > > >>> is now > > >>> > a single > > >>> > >>> >>> array > > >>> > >>> >>> for color storage, but it's still > referred > > to by > > >>> two sets of > > >>> > >>> >>> getters/setters). This is because I > wanted to > > >>> keep this > > >>> > refactor as > > >>> > >>> >>> simple as possible, as I plan to > follow it > > up with > > >> an > > >>> > overhaul of > > >>> > >>> >>> color > > >>> > >>> >>> settings when I share my color > themes work. I > > >> didn't > > >>> > want to do work > > >>> > >>> >>> that I would soon end up getting rid of > > anyway. > > >>> > >>> >>> > > >>> > >>> >>> Best, > > >>> > >>> >>> Jon > > >>> > >>> >>> > > >>> > >>> >>> > > >>> > >>> >>> > > _______________________________________________ > > >>> > >>> >>> Mailing list: > > >>> https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>> > > >>> > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>>> > > >>> > >>> >>> Post to : > > kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>> > > >>> <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>>> > > >>> > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>> > > >>> <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>>>> > > >>> > >>> >>> Unsubscribe : > https://launchpad.net/~kicad- > > >> developers > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>> > > >>> > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>>> > > >>> > >>> >>> More help : > > https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>> > > >>> <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>>> > > >>> > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>> > > >>> <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>>>> > > >>> > >>> >>> > > >>> > >>> >> > > >>> > >>> >> > _______________________________________________ > > >>> > >>> >> Mailing list: > https://launchpad.net/~kicad- > > >> developers > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>> > > >>> > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>>> > > >>> > >>> >> Post to : > > kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>> > > >>> <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>>> > > >>> > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>> > > >>> <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>>>> > > >>> > >>> >> Unsubscribe : > https://launchpad.net/~kicad- > > >> developers > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>> > > >>> > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>>> > > >>> > >>> >> More help : > > https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>> > > >>> <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>>> > > >>> > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>> > > >>> <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>>>> > > >>> > >>> >> > > >>> > >>> > > > >>> > >>> > > > >>> > >>> > > > >>> > >>> > > _______________________________________________ > > >>> > >>> > Mailing list: > https://launchpad.net/~kicad- > > >> developers > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>> > > >>> > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>>> > > >>> > >>> > Post to : > > kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>> > > >>> <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>>> > > >>> > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>> > > >>> <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>>>> > > >>> > >>> > Unsubscribe : > https://launchpad.net/~kicad- > > >> developers > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>> > > >>> > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>>> > > >>> > >>> > More help : > > https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>> > > >>> <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>>> > > >>> > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>> > > >>> <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>>>> > > >>> > >>> > > > >>> > >>> > > >>> > >>> > _______________________________________________ > > >>> > >>> Mailing list: > > https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>> > > >>> > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>>> > > >>> > >>> Post to : > > kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>> > > >>> <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>>> > > >>> > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>> > > >>> <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>>>> > > >>> > >>> Unsubscribe : > > https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>> > > >>> > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>>> > > >>> > >>> More help : > > https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>> > > >>> <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>>> > > >>> > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>> > > >>> <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>>>> > > >>> > >> > > >>> > >> > > >>> > > > > >>> > > > > >>> > > _______________________________________________ > > >>> > > Mailing list: > > https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>> > > >>> > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>>> > > >>> > > Post to : > > kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>> > > >>> <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>>> > > >>> > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>> > > >>> <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>>>> > > >>> > > Unsubscribe : > > https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>> > > >>> > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > >>> <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>>>> > > >>> > > More help : > > https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>> > > >>> <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>>> > > >>> > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>> > > >>> <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>>>> > > >>> > > > > >>> > > > >>> > > > >>> > > > >>> > > >>> > > >> > > > > > > > > > > > > _______________________________________________ > > > Mailing list: https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > > Post to : kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>> > > > Unsubscribe : https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > > More help : https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>> > > > > > > > > > > > _______________________________________________ > > Mailing list: https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > Post to : kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > <mailto:kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net>> > > Unsubscribe : https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > <https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers>> > > More help : https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > <https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp>> > > > > > > > > > > _______________________________________________ > > Mailing list: https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > Post to : kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > > Unsubscribe : https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > > More help : https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > > > _______________________________________________ > Mailing list: https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > Post to : kicad-developers@lists.launchpad.net > <mailto:kicad-developers@lists.launchpad.net> > Unsubscribe : https://launchpad.net/~kicad-developers > <https://launchpad.net/~kicad-developers> > More help : https://help.launchpad.net/ListHelp > <https://help.launchpad.net/ListHelp> > > _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp