kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #28380
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
I thought we were retaining the cached behavior for existing code and
implementing a secondary feature to always recalculate the bounding box.
It looks to me as though the cached behavior has completely been
removed unless I'm missing something.
On 3/1/2017 9:07 AM, Jon Evans wrote:
> It was in this thread; I've attached them both again for convenience.
> The "0001-Remove-BOARD-SetBoundingBox.patch" is applied after applying
> the other patch.
>
> On Wed, Mar 1, 2017 at 8:59 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx
> <mailto:stambaughw@xxxxxxxxx>> wrote:
>
> On 3/1/2017 8:54 AM, Jon Evans wrote:
> > Wayne, Orson's latest patch is basically Option 2 but implemented
> > another way. Can you check it out and let us know if you are OK merging
> > it as-is, or if we should change the implementation to be more like what
> > I described?
>
> I don't remember seeing this patch. Was it posted to the dev list?
>
> >
> > Thanks,
> > Jon
> >
> > On Wed, Mar 1, 2017 at 8:43 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
> > <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>> wrote:
> >
> > Option 2 seems fine. It may be easier to just add an option
> argument to
> > the existing GetBoundingBox() function to either return the cached
> > bounding box or recalculate the bounding box on demand rather than
> > create a different function for the cached vs. uncached version.
> >
> > On 3/1/2017 2:51 AM, Maciej Sumiński wrote:
> > > Wayne, what do you think? If it is acceptable, then I would
> like to
> > > merge the patches. I should not judge my code, as I might be
> > tempted to
> > > consider it a good solution.
> > >
> > > In case my proposal to cache the bounding box in autorouter code
> > is not
> > > approved, then I would say #2 would do the job.
> > >
> > > Cheers,
> > > Orson
> > >
> > > On 03/01/2017 01:23 AM, Jon Evans wrote:
> > >> Update: after some more testing, I think Orson's patch on
> top of
> > mine is
> > >> the way to go. It pulls the computation out of the loops for
> > autorouter,
> > >> and that's the only place where the board's bounding box is
> used
> > >> repetitively. Since the other call sites are only going to
> get the
> > >> bounding box intermittently, I don't think it's worth any
> effort
> > doing
> > >> complicated things to track and recompute the bounding box when
> > things are
> > >> changed.
> > >>
> > >> So, I think my patch and Orson's should be merged.
> > >>
> > >> -Jon
> > >>
> > >> On Tue, Feb 28, 2017 at 6:51 PM, Jon Evans
> <jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
> > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>> wrote:
> > >>
> > >>> I'm finally back to this problem now that I have some
> other WIP
> > committed.
> > >>>
> > >>> As far as I can tell, there two paths to go down for this
> problem:
> > >>>
> > >>> 1) Implement auto-caching of the bounding box. This
> requires some
> > >>> mechanism to tell BOARD that it needs to update the cache,
> be it
> > OBSERVABLE
> > >>> or some other update function added to BOARD_ITEM. No matter
> > how it's
> > >>> done, this method seems not great to me because it requires
> > touching a ton
> > >>> of code to provide coverage for every possible entry point
> that
> > could end
> > >>> up having an effect on the bounding box.
> > >>>
> > >>> 2) Have two different calls to get the bounding box for an
> > EDA_ITEM, one
> > >>> that always re-generates the cache and one that just returns a
> > cached
> > >>> value. Update the call sites that hit the bounding box
> frequently
> > >>> (autorouter, etc) to make use of the cached value; keep
> the call
> > sites that
> > >>> always re-generate the bounding box in today's code
> working that
> > way.
> > >>> Performance shouldn't be any better or worse than it is now.
> > >>>
> > >>> 3) Track whether a board is clean/dirty in some other way
> > besides looking
> > >>> at BOARD_ITEMs. This might not be practical while we still
> > support legacy,
> > >>> but once there is only GAL, I could see this maybe being
> > possible through
> > >>> the tool framework. For example, actions could be marked as
> > possibly
> > >>> impacting the board or not (i.e. move item does, zoom does
> not)
> > >>>
> > >>> So, unless someone suggests otherwise, I'm going to try
> > implementing #2,
> > >>> and suggest #3 as a future improvement that would improve
> > performance for
> > >>> some edge case operations (i.e. "zoom to fit screen" would be
> > instantaneous
> > >>> if nothing has modified the board since the last time the bbox
> > was cached,
> > >>> even on large boards)
> > >>>
> > >>> -Jon
> > >>>
> > >>> On Fri, Feb 24, 2017 at 11:01 AM, Wayne Stambaugh
> > <stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
> <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>>
> > >>> wrote:
> > >>>
> > >>>> On 2/24/2017 10:30 AM, Maciej Sumiński wrote:
> > >>>>> Most of the operations one can do on a BOARD_ITEM
> potentially
> > affects
> > >>>>> the board bounding box. It means there might be many places
> > where the
> > >>>>> notifications should be added.
> > >>>>>
> > >>>>> Some time ago, Michael Steinberg has put in place
> OBSERVABLE class
> > >>>>> (include/observable.h) that could facilitate the task.
> > >>>>
> > >>>> It could be useful but I'm not sure it would be a better
> design
> > than the
> > >>>> child object informing it's parent that it's bounding box has
> > changed.
> > >>>> I'm not sure the additional code would make the code any more
> > readable.
> > >>>> The only benefit would be if other observers were required.
> > >>>>
> > >>>>>
> > >>>>> With the current approach, developers have to guess
> whether to
> > update
> > >>>>> the bounding box with ComputeBoundingBox() or take the
> cached
> > value.
> > >>>>> Update is called in very few places, so I really wonder what
> > kind of
> > >>>>> magic makes it work, but I might have missed something here.
> > >>>>
> > >>>> This solution would require limiting the entry points in
> the BOARD
> > >>>> object that allow changes to the BOARD's child items.
> > Conceptually this
> > >>>> is probably easier to understand but requires developers
> to be
> > diligent
> > >>>> when making changes to the BOARD object or not trying to
> bypass
> > these
> > >>>> entry points.
> > >>>>
> > >>>>>
> > >>>>> Regards,
> > >>>>> Orson
> > >>>>>
> > >>>>> On 02/24/2017 04:06 PM, Wayne Stambaugh wrote:
> > >>>>>> Every BOARD_ITEM has a parent/child relationship or at
> least
> > it did if
> > >>>>>> someone did not break it. You can always find the parent
> > BOARD object
> > >>>>>> by walking up the BOARD_ITEM parent list. There is
> already a
> > >>>>>> BOARD_ITEM::GetBoard() call that should return the parent
> > board. You
> > >>>>>> could use that to notify the BOARD object when a child
> BOARD_ITEM
> > >>>> change
> > >>>>>> effects the bounding box.
> > >>>>>>
> > >>>>>> On 2/24/2017 9:27 AM, Jon Evans wrote:
> > >>>>>>> We need a solution that allows GetBoundingBox to be called
> > blindly,
> > >>>>>>> without knowing if (or how) an EDA_ITEM subclass needs to
> > have the
> > >>>>>>> bounding box updated.
> > >>>>>>>
> > >>>>>>> Does anyone have ideas about how complicated it would
> be to
> > give the
> > >>>>>>> BOARD class knowledge of whether or not anything
> inside it has
> > >>>> changed?
> > >>>>>>> This is what I tried to implement at first, but Orson
> > pointed out that
> > >>>>>>> the way I did it would miss some kinds of changes.
> > >>>>>>>
> > >>>>>>> Figuring out the above also seems useful for other reasons
> > -- for
> > >>>>>>> example, autosave / backup features are easier to
> implement
> > if there
> > >>>> is
> > >>>>>>> a global "dirty/clean" flag for things like BOARD.
> > >>>>>>>
> > >>>>>>> If there is no good way to implement caching, I guess
> > another way
> > >>>> would
> > >>>>>>> be to implement caching at the sites that use the BOARD
> > bounding box
> > >>>>>>> heavily (autorouter etc)
> > >>>>>>>
> > >>>>>>> -Jon
> > >>>>>>>
> > >>>>>>> On Fri, Feb 24, 2017 at 9:22 AM, Wayne Stambaugh <
> > >>>> stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
> <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>
> > >>>>>>> <mailto:stambaughw@xxxxxxxxx
> <mailto:stambaughw@xxxxxxxxx> <mailto:stambaughw@xxxxxxxxx
> <mailto:stambaughw@xxxxxxxxx>>>>
> > wrote:
> > >>>>>>>
> > >>>>>>> On 2/24/2017 4:16 AM, Maciej Sumiński wrote:
> > >>>>>>> > Hi Jon,
> > >>>>>>> >
> > >>>>>>> > The current version looks much better to me.
> From what
> > I see
> > >>>> there is no
> > >>>>>>> > actual bounding box caching, as GetBoundingBox()
> > always calls
> > >>>>>>> > ComputeBoundingBox(). I am fine with that, but
> before
> > I push
> > >>>> the patch I
> > >>>>>>> > need to ask: does anyone know why the board bounding
> > box is
> > >>>> cached? I
> > >>>>>>> > believe it must have been done to boost
> performance of
> > certain
> > >>>> parts of
> > >>>>>>> > the code, but I wonder if it is really necessary.
> > Especially
> > >>>> that one
> > >>>>>>> > needs to know that it has to be updated using
> > >>>> ComputeBoundingBox().
> > >>>>>>>
> > >>>>>>> It was cached so it didn't need to be recalculated
> every
> > time the
> > >>>>>>> bounding box was required. It should or at least
> it did
> > >>>> recalculate
> > >>>>>>> only when the changes were made since the last call to
> > fetch the
> > >>>>>>> bounding box. On very complex boards, this can take a
> > while.
> > >>>> Getting
> > >>>>>>> the bounding box is called fairly often so this
> can add
> > up. I
> > >>>> don't see
> > >>>>>>> any reason to recalculate the bounding box on
> every get
> > bounding
> > >>>> box
> > >>>>>>> call. If the current bounding box behavior is broken,
> > then it
> > >>>> should be
> > >>>>>>> fixed. I don't see any reason to get rid of the
> caching
> > method.
> > >>>> If you
> > >>>>>>> are operating outside of the normal methods for adding
> > and/or
> > >>>> editing
> > >>>>>>> board objects that prevents the correct bounding box
> > from being
> > >>>>>>> calculated, that is your fault and you need to fix
> your code
> > >>>>>>> accordingly.
> > >>>>>>>
> > >>>>>>> >
> > >>>>>>> > Just by looking at the code, I noticed that the
> > autorouter calls
> > >>>>>>> > BOARD::GetBoundingBox() frequently, but I could not
> > see much
> > >>>>>>> difference
> > >>>>>>> > with caching disabled. Likely, the routing
> algorithm takes
> > >>>>>>> significantly
> > >>>>>>> > more time than the bounding box calculations.
> > >>>>>>> >
> > >>>>>>> > Personally I would completely remove
> m_BoundingBox field
> > >>>> instead of
> > >>>>>>> > making it mutable. Also, I have noticed there are a
> > few places
> > >>>>>>> where the
> > >>>>>>> > bounding box is overridden with SetBoundingBox(). It
> > seems to
> > >>>> me a bit
> > >>>>>>> > dubious, as bounding box should depend solely on
> the items
> > >>>>>>> belonging to
> > >>>>>>> > the board. I attach a patch to show what I would
> > change. Any
> > >>>> comments,
> > >>>>>>> > especially from Wayne & Jean-Pierre?
> > >>>>>>> >
> > >>>>>>> > Regards,
> > >>>>>>> > Orson
> > >>>>>>> >
> > >>>>>>> > On 02/23/2017 01:49 PM, Jon Evans wrote:
> > >>>>>>> >> Hi Orson,
> > >>>>>>> >>
> > >>>>>>> >> Here's an updated patch with the changes you
> > requested. The
> > >>>> only
> > >>>>>>> issue is,
> > >>>>>>> >> without some kind of caching, I had to change the
> > call sites
> > >>>> that
> > >>>>>>> were
> > >>>>>>> >> interested in the board bounding box with edges
> only,
> > so the
> > >>>>>>> patch has
> > >>>>>>> >> grown in scope. Let me know if this looks better.
> > >>>>>>> >>
> > >>>>>>> >> Best,
> > >>>>>>> >> Jon
> > >>>>>>> >>
> > >>>>>>> >> On Thu, Feb 23, 2017 at 4:17 AM, Maciej Sumiński
> > >>>>>>> <maciej.suminski@xxxxxxx
> <mailto:maciej.suminski@xxxxxxx>
> > <mailto:maciej.suminski@xxxxxxx
> <mailto:maciej.suminski@xxxxxxx>> <mailto:maciej.suminski@xxxxxxx
> <mailto:maciej.suminski@xxxxxxx>
> > <mailto:maciej.suminski@xxxxxxx
> <mailto:maciej.suminski@xxxxxxx>>>>
> > >>>>>>> >> wrote:
> > >>>>>>> >>
> > >>>>>>> >>> Hi Jon,
> > >>>>>>> >>>
> > >>>>>>> >>> I really like the generic approach in the zoom
> > methods. This
> > >>>> part I
> > >>>>>>> >>> would merge instantly, but there is an issue with
> > caching the
> > >>>> board
> > >>>>>>> >>> bounding box. It does not take into account that
> > items already
> > >>>>>>> added to
> > >>>>>>> >>> board may change their position and affect the
> > bounding box.
> > >>>> I would
> > >>>>>>> >>> remove caching completely, what do you think?
> > >>>>>>> >>>
> > >>>>>>> >>> If you are going to modify the patch, would
> you rename
> > >>>> boardBBox in
> > >>>>>>> >>> COMMON_TOOLS::ZoomFitScreen() to bbox or anything
> > that is not
> > >>>>>>> related to
> > >>>>>>> >>> board? Thank you in advance.
> > >>>>>>> >>>
> > >>>>>>> >>> Regards,
> > >>>>>>> >>> Orson
> > >>>>>>> >>>
> > >>>>>>> >>> On 02/23/2017 05:34 AM, Jon Evans wrote:
> > >>>>>>> >>>> Hi all,
> > >>>>>>> >>>>
> > >>>>>>> >>>> This patch finishes off the refactor I did a few
> > days ago, by
> > >>>>>>> enabling
> > >>>>>>> >>>> ZoomFitScreen to work without knowledge of the
> > BOARD class.
> > >>>>>>> >>>>
> > >>>>>>> >>>> In order to make this work, I changed the way
> > GetBoundingBox
> > >>>> and
> > >>>>>>> >>>> ComputeBoundingBox work so that the call sites of
> > >>>>>>> GetBoundingBox don't
> > >>>>>>> >>> have
> > >>>>>>> >>>> to also call ComputeBoundingBox if they don't
> need
> > to use the
> > >>>>>>> >>>> aBoardEdgesOnly flag.
> > >>>>>>> >>>>
> > >>>>>>> >>>> Those with good knowledge of BOARD should review
> > this to make
> > >>>>>>> sure I
> > >>>>>>> >>> caught
> > >>>>>>> >>>> all the instances where we should mark the
> bounding
> > box as
> > >>>>>>> needing to be
> > >>>>>>> >>>> re-computed.
> > >>>>>>> >>>>
> > >>>>>>> >>>> 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>>>
> > >>>>>>> >>>> Post to :
> kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > >>>>>>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> > >>>>>>> >>>> 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>>>
> > >>>>>>> >>>> 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>>>
> > >>>>>>> >>>>
> > >>>>>>> >>>
> > >>>>>>> >>>
> > >>>>>>> >>>
> > >>>>>>> >>> _______________________________________________
> > >>>>>>> >>> 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>>>
> > >>>>>>> >>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > >>>>>>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> > >>>>>>> >>> 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>>>
> > >>>>>>> >>> 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>>>
> > >>>>>>> >>>
> > >>>>>>> >>>
> > >>>>>>> >>
> > >>>>>>> >
> > >>>>>>> >
> > >>>>>>> >
> > >>>>>>> > _______________________________________________
> > >>>>>>> > 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>>>
> > >>>>>>> > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > >>>>>>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> > >>>>>>> > 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>>>
> > >>>>>>> > 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>>>
> > >>>>>>> >
> > >>>>>>>
> > >>>>>>>
> > >>>>>>> _______________________________________________
> > >>>>>>> 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>>>
> > >>>>>>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > >>>>>>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> > >>>>>>> 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>>>
> > >>>>>>> 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>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>> _______________________________________________
> > >>>>>> 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@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > >>>>>> 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@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > >>>>> 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@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > >>>> 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@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > >> 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@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > 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@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > 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>>
> >
> >
>
>
References
-
[PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Jon Evans, 2017-02-23
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Maciej Sumiński, 2017-02-23
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Jon Evans, 2017-02-23
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Maciej Sumiński, 2017-02-24
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Wayne Stambaugh, 2017-02-24
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Jon Evans, 2017-02-24
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Wayne Stambaugh, 2017-02-24
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Maciej Sumiński, 2017-02-24
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Wayne Stambaugh, 2017-02-24
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Jon Evans, 2017-02-28
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Jon Evans, 2017-03-01
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Maciej Sumiński, 2017-03-01
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Wayne Stambaugh, 2017-03-01
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Jon Evans, 2017-03-01
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Wayne Stambaugh, 2017-03-01
-
Re: [PATCH] Move ZoomFitScreen and ZoomPreset to common
From: Jon Evans, 2017-03-01