← Back to team overview

kicad-developers team mailing list archive

Re: writing a new top level wxPython based project manager

 

On 04/04/2014 10:14 AM, Carl Poirier wrote:
> Both look great, but I prefer option 1.
> 
> What if the project-specific libraries were also accessible from there? 


Accessible in what way?   Please elaborate in detail.


I know it's not in
> the initial requirements; I'm just throwing in the idea.
> 
> 
> On Fri, Apr 4, 2014 at 10:41 AM, Dick Hollenbeck <dick@xxxxxxxxxxx
> <mailto:dick@xxxxxxxxxxx>> wrote:
> 
>     Thanks Jean-Samuel, very very much!
> 
>     You seem to have met the "multiple open projects" criterion, so your proposals are both
>     potential starting points.  Since we're still in a brain-storming phase, I won't offer any
>     feedback yet, since that can stifle creativity during a brain-storming phase.
> 
> 
>     Dick
> 
> 
>     On 04/03/2014 03:30 PM, Jean-Samuel Reynaud wrote:
>     > Hi all,
>     >
>     > Please find attached a quick view of 3 possibles frame on wxpython
>     > project manager.
>     > I'm not a specialist of ergonomics/design but it is some ideas I have.
>     >
>     > 1/ a welcome frame
>     > Should include logo, welcome message and a list of last opened projects
>     > for example
>     >
>     > 2/ Projects
>     > On the two options project are tabs (horizontal). Two options for the
>     > content of a project frame:
>     >
>     >  Option1: Vertical tabs for schematic/footprint association/pcb
>     >    => In this case all configuration (project configuration...) should
>     > be done inside the main menu as before
>     >
>     >  Option2: Tree
>     >   => In this case a rigth click on project open a submenu with
>     > configuration options
>     >   => Same for all others tree entries (right click on pcb will allow
>     > edition of pcb parameters...)
>     >   => The schematic hiearchicy should be visible directly on this tree as
>     > sub items
>     >
>     > To build this I use wxFormBuilder to start and some override to handle
>     > event/image/content...
>     >
>     > Is it the way you are waiting for ?
>     > Suggestions, comments ?
>     >
>     > @dick
>     > For the moment, the code do nothing it only a skeleton but I can
>     > commit/push it you want
>     >
>     > Le 02/04/2014 23:32, Dick Hollenbeck a écrit :
>     >> On 04/02/2014 12:39 PM, Dick Hollenbeck wrote:
>     >>> Here is more info, which will help you create some low level mock up classes.
>     >>>
>     >>> Class KIWAY_MGR:
>     >>> (temporarily in kicad/kicad.cpp) will get swigged, creating a python class implemented
>     >>> fully in C++.  It is a collection of PROJECTs/KIWAYs.  The constructor of this
>     class may
>     >>> take a wxFrame*, so we have the option of hooking child frames into that parent.
>      Possible
>     >>> functions:
>     >>>   createProject( full_path_to_pro_file )
>     >>>   openProject( full_path_to_pro_file )
>     >>>   listProjects()
>     >>>
>     >>>
>     >>> Class KIWAY:
>     >>> will get swigged, creating a python class implemented fully in C++.  Possible
>     functions:
>     >>>   openSchematic()  no args required, schematic's name is in the *.pro file.
>     >>>   openBoard() no args required, board's name is in the *.pro file.
>     >>>
>     >>>
>     >>> Just with this sketch, you should be able to mock enough both of these classes,
>     enough to
>     >>> work magic at in the UI layer.  If you want to open dummy child frames, that would
>     be ok
>     >>> from openSchematic and openBoard().
>     >>>
>     >>>
>     >>> Feel free to add functions as you find needs for them.  This will give us an
>     aspect of top
>     >>> down design.
>     >>>
>     >>>
>     >>> HTH,
>     >>>
>     >>> Dick
>     >>>
>     >>>
>     >>>
>     >>>
>     >>>
>     >>> On 04/02/2014 11:58 AM, Dick Hollenbeck wrote:
>     >>>> Hi Jean-Samuel,
>     >>>>
>     >>>> Thanks very much for your willingness to help!
>     >>>>
>     >>>> In answer to your question:
>     >>>>
>     >>>> The wxPython project manager sketch up should concentrate on the user interface,
>     not the
>     >>>> actual loading of the sub programs.  In fact, if it did not load the subprograms
>     at all,
>     >>>> that would be acceptable.  The screen real-estate usage, and the icons and
>     whatnot are
>     >>>> what's important for now.  You could create scaffolding to mark a project and a
>     kiface as
>     >>>> being loaded, and test your UI code against that scaffolding, without ever
>     loading any
>     >>>> projects or opening any child frames.
>     >>>>
>     >>>> In milestone B) we are putting a top C++ API into the KIWAY, this is not designed
>     yet.
>     >>>> You should not use the KIFACE from python, that was never intended.  Python will
>     use the
>     >>>> KIWAY API, which in turn will manage the KIFACE's and projects using C++.
>     >>>>
>     >>>> If you really really want to launch something, then encapsulate that python code into
>     >>>> something which will be replaced later, and simply load pcbnew.exe for now from that
>     >>>> disposable code.  This code will get swapped out later, in favor of the KIWAY
>     API, which
>     >>>> will do the actuall loading of the *.kiface, again from C++.  This is necessary
>     so that
>     >>>> the KIFACE to KIFACE
>     >> oops, meant not "KIFACE to KIFACE", but rather
>     >>
>     >> "project specific KIWAY_PLAYER to KIWAY_PLAYER"
>     >>
>     >>
>     >> comms can work for things like back annotation, and pcbnew<->eeschema
>     >>>> cross-probing, per project.
>     >>>>
>     >>>>
>     >>>> There's actually little value in loading executables or kiface's right now.
>      Folks will
>     >>>> use the C++ project manager until the user interface in the python project manager is
>     >>>> superior.  So please focus on the user interface, that's the value added stuff.
>     >>>>
>     >>>> After milestone B) that's when we start to worry about loading the submodules
>     (kifaces).
>     >>>>
>     >>>>
>     >>>> Thanks,
>     >>>>
>     >>>> Dick
>     >>>>
>     >>>>
>     >>>>
>     >>>> On 04/02/2014 11:23 AM, Jean-Samuel Reynaud wrote:
>     >>>>> Hi
>     >>>>>
>     >>>>> As I understand, one of the feature of this new interface is to load directly
>     from python
>     >>>>> the kiface interface (instead of just launch the program aka pcbnew/cvpcb for
>     example).
>     >>>>> Is it right ?
>     >>>>> As I see, the function KIFACE_1 return a struct with inside all function to use
>     (one of
>     >>>>> them is createwindow).
>     >>>>> Could you confirm it's the way you think about ?
>     >>>>> If yes, ctypes from python will help me and I think I'll fight with the structure
>     >>>>> definition inside python...
>     >>>>>
>     >>>>>
>     >>>>> Regards
>     >>>>>
>     >>>>>
>     >>>>>
>     >>>>> 2014-04-01 15:47 GMT+02:00 Dick Hollenbeck <dick@xxxxxxxxxxx
>     <mailto:dick@xxxxxxxxxxx> <mailto:dick@xxxxxxxxxxx <mailto:dick@xxxxxxxxxxx>>>:
>     >>>>>
>     >>>>>
>     >>>>>     In English there is a saying: "Competition breeds success."
>     >>>>>
>     >>>>>     I would consider it a luxury to be able to choose [pieces] from multiple
>     implementations.
>     >>>>>      Competition in this case is not exactly cruel and unusual punishment.  In
>     fact it could
>     >>>>>     be an *awful lot of fun*, since wxPython is such a high level language and
>     so much can be
>     >>>>>     done in so few lines of code.
>     >>>>>
>     >>>>>
>     >>>>>     You may either compete or collaborate.   I think we'll get more ideas if
>     there is
>     >>>>>     competition.  After choices are made, you can continue to compete,
>     improving, innovating
>     >>>>>     and serving your own needs, even if your code is not merged up to that point
>     in time.
>     >>>>>     Repeat that last sentence.
>     >>>>>
>     >>>>>
>     >>>>>     Any implementation which does not meet the primary objective: "showing which
>     projects are
>     >>>>>     open, among a larger set of project possibilities" will lose the
>     competition.  (Even if
>     >>>>>     there is only one entry into the competition, *multiple* open projects is a
>     mandate.)
>     >>>>>     Using screen real estate for a permanently visible directory tree may not be
>     an optimal
>     >>>>>     pathway to achieving the objective.
>     >>>>>
>     >>>>>     Some tips:
>     >>>>>
>     >>>>>     a) the directory tree does not give sufficient emphasis on what constitutes
>     a project.
>     >>>>>
>     >>>>>     b) the directory tree does not give the ability to show several open
>     projects without a
>     >>>>>     sea of rows of actual files in between.
>     >>>>>
>     >>>>>     c) we need to be more project centric, less file centric.
>     >>>>>
>     >>>>>     d) once projects have been defined, the user interface procedure to opening
>     the schematic
>     >>>>>     or layout tools on any of those projects needs to be lean.
>     >>>>>
>     >>>>>     e) I'm thinking the set of files that constitute a project can continue to
>     reside in the
>     >>>>>     *.pro file.
>     >>>>>
>     >>>>>
>     >>>>>
>     >>>>>
>     >>>>>
>     >>>>>     On 04/01/2014 07:24 AM, dileep kushwaha wrote:
>     >>>>>     > Hi,
>     >>>>>     >      I have so far made the menubar for the wxPython. I now want to
>     integrate the
>     >>>>>     > mainmenu.py to KiCAD instead of .cpp codes. I little hint and guidence
>     will be great. I
>     >>>>>     > can send the code. Its ugly right now. i'll modify it according to
>     guidlines after
>     >>>>>     > completing significant portion...(i see three .cpp files that will have to
>     changed)
>     >>>>>     >
>     >>>>>     >
>     >>>>>     > On Tue, Apr 1, 2014 at 9:14 AM, dileep kushwaha <dilzverykool@xxxxxxxxx
>     <mailto:dilzverykool@xxxxxxxxx>
>     >>>>>     <mailto:dilzverykool@xxxxxxxxx <mailto:dilzverykool@xxxxxxxxx>>
>     >>>>>     > <mailto:dilzverykool@xxxxxxxxx <mailto:dilzverykool@xxxxxxxxx>
>     <mailto:dilzverykool@xxxxxxxxx <mailto:dilzverykool@xxxxxxxxx>>>> wrote:
>     >>>>>     >
>     >>>>>     >     Hi,
>     >>>>>     >          Please accept my apology for the delay from my side. I can give
>     you few results
>     >>>>>     >     in maximum one week's time. I am able to make an exact replica of
>     KiCAD window
>     >>>>>     that we
>     >>>>>     >     have right now. I was carried away and wanted the GUI to look pretty
>     innovative.
>     >>>>>     I was
>     >>>>>     >     looking into the feasibility of an idea. The idea comes from a member who
>     >>>>>     proposed it
>     >>>>>     >     to have a game like GUI. I was thinking if right click would give list
>     of options
>     >>>>>     >     surrounding it in circle. I think I will have to wait a little more to get
>     >>>>>     expertise.
>     >>>>>     >
>     >>>>>     >     I was shying away from showing my work. Apparently I will start
>     uploading on the
>     >>>>>     >     branch by evening 6PM IST(Indian Standard Time)
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >     On Tue, Apr 1, 2014 at 2:27 AM, Jean-Samuel Reynaud
>     <js.reynaud@xxxxxxxxx <mailto:js.reynaud@xxxxxxxxx>
>     >>>>>     <mailto:js.reynaud@xxxxxxxxx <mailto:js.reynaud@xxxxxxxxx>>
>     >>>>>     >     <mailto:js.reynaud@xxxxxxxxx <mailto:js.reynaud@xxxxxxxxx>
>     <mailto:js.reynaud@xxxxxxxxx <mailto:js.reynaud@xxxxxxxxx>>>> wrote:
>     >>>>>     >
>     >>>>>     >         Ok I'm starting to work to meet window 1).
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >         2014-03-31 17:01 GMT+02:00 Dick Hollenbeck <dick@xxxxxxxxxxx
>     <mailto:dick@xxxxxxxxxxx>
>     >>>>>     <mailto:dick@xxxxxxxxxxx <mailto:dick@xxxxxxxxxxx>>
>     >>>>>     >         <mailto:dick@xxxxxxxxxxx <mailto:dick@xxxxxxxxxxx>
>     <mailto:dick@xxxxxxxxxxx <mailto:dick@xxxxxxxxxxx>>>>:
>     >>>>>     >
>     >>>>>     >             On 03/24/2014 10:19 AM, Jean-Samuel Reynaud wrote:
>     >>>>>     >             > Hi,
>     >>>>>     >             >
>     >>>>>     >             > I can help too on this project. Tell me if you need more help.
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >             https://code.launchpad.net/~kicad-developers/kicad/prj-mgr
>     >>>>>     >
>     >>>>>     >             is still empty, so therefore I need help.
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >             There are two windows of opportunity here, with a middle
>     section where the
>     >>>>>     >             window is not open:
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >             1) Now, before I get to milestone C)
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >             2) Me doing milestone C), where collisions of effort are so
>     likely its most
>     >>>>>     >             sensible to
>     >>>>>     >             consider python contributions in this time un-helpful.  Plus I
>     don't
>     >>>>>     know what
>     >>>>>     >             I'll have
>     >>>>>     >             to work with at this point.  And I won't be waiting for it.
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >             3) After the C++ layer and framework are in place, then
>     collisions of effort
>     >>>>>     >             will not
>     >>>>>     >             concern me, the python project manager can and should be
>     expanded into a
>     >>>>>     number of
>     >>>>>     >             directions, and I don't expect to play a role in that.
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >             I want to be clear about these two windows of opportunity, 1)
>     & 3), and the
>     >>>>>     >             approximate
>     >>>>>     >             timing, at least the sequencing.
>     >>>>>     >
>     >>>>>     >             The contributions that I would value most are in the window
>     described by 1).
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >         _______________________________________________
>     >>>>>     >         Mailing list: 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
>     >>>>>     >         More help  : https://help.launchpad.net/ListHelp
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >
>     >>>>>     >
>     >>>>>     > --
>     >>>>>     > Dileep Kumar
>     >>>>>     > M.Tech(VLSI Design)
>     >>>>>     > Mob:9891455965
>     >>>>>
>     >>>>>
>     >>>>
>     >>>> _______________________________________________
>     >>>> Mailing list: https://launchpad.net/~kicad-developers
>     >>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >>>> Unsubscribe : https://launchpad.net/~kicad-developers
>     >>>> More help   : https://help.launchpad.net/ListHelp
>     >>>>
>     >>>
>     >>> _______________________________________________
>     >>> Mailing list: https://launchpad.net/~kicad-developers
>     >>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >>> Unsubscribe : https://launchpad.net/~kicad-developers
>     >>> More help   : https://help.launchpad.net/ListHelp
>     >>>
>     >>
>     >> _______________________________________________
>     >> Mailing list: https://launchpad.net/~kicad-developers
>     >> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     >> Unsubscribe : https://launchpad.net/~kicad-developers
>     >> More help   : https://help.launchpad.net/ListHelp
>     >
>     >
>     >
>     > _______________________________________________
>     > Mailing list: https://launchpad.net/~kicad-developers
>     > Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     > Unsubscribe : https://launchpad.net/~kicad-developers
>     > More help   : https://help.launchpad.net/ListHelp
>     >
> 
> 
>     _______________________________________________
>     Mailing list: https://launchpad.net/~kicad-developers
>     Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>     <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
>     Unsubscribe : https://launchpad.net/~kicad-developers
>     More help   : https://help.launchpad.net/ListHelp
> 
> 



Follow ups

References