← Back to team overview

kicad-developers team mailing list archive

Re: Static variables in module editor

 

On 06/10/2014 04:14 PM, Lorenzo Marcantonio wrote:
> On Tue, Jun 10, 2014 at 08:58:04PM +0200, jp charras wrote:
>> when reopening an editor, reopen the latest document(s) previously
>> opened makes sense, and moreover is a common feature in many editors.
>> My text editor does that, and this feature save a lot of time for me.
>> And Kicad too, which reopens the latest project.
>> By the way, Altium also does that.
> 
> I think that to 'solve' this we should decide if there could be more
> than one open editor. 


I don't know what you don't know.  I know Orson seems to have a good understanding of the
architecture and the need.  And since he and I are coding this, that is probably good
enough.  In his absence, I code it.

I don't know what you don't know.

Lorenzo, please read the modular kicad blueprint.  It clearly states that the python
project manager opens more than one project, whereas single top and the C++ project
manager have one KIWAY.  Each KIWAY has its own PROJECT.  All the windows in a project are
tied to the same PROJECT in a KIWAY.  The C++ project manager and the single_top KIWAY,
are both single instance.  The python project manager will have multiple KIWAYs, from
KIWAY_MGR class.

All the windows associated with a single PROJECT are given access to it, the PROJECT,
through window DNA.  The actual DNA is the contents of KIWAY_HOLDER.

The purpose of milestone B) is to get PROJECT renaming, opening, and creating, solid.
These are not solid yet, we are only 50% through milestone B).

The KIWAY window DNA is the KIWAY_HOLDER object, present now in all the wxWindows we use
(except those in the C++ project manager which are ABOVE the KIWAY.)

The source to the KIWAY_HOLDER::Prj() is here.

PROJECT& KIWAY_HOLDER::Prj() const
{
    return Kiway().Prj();
}


Yes, there can be more than one open FOOTPRINT_EDITOR_FRAME under the python project
manager only.  But each will have its own PROJECT, and therefore its own last module.


> What if I open a new one, then close both, and
> then open another? 

Go to bed, this is minus one open.

> There are two 'last' objects in this case...


Each editor has its own window DNA, and therefore its own last MODULE because Prj()
returns something different for each.  One might have access to different libraries,
particularly the Project Specific libraries are unique for each project.  The global ones
are shared and common, and therefore accessible from both editors.


> If the 'reopen last' feature is desired then the project object could be
> a good place to store it. When used standalone (for library edit only)
> some kind of noname/dummy project could be provided for it. Or maybe
> only keep the last for edits done in the context of a project (no
> project->no place to store the last one).








Follow ups

References