← Back to team overview

kicad-developers team mailing list archive

Re: writing a new top level wxPython based project manager

 

I like the second option. Reminds me of Altium.

Would adding a console window to the bottom be useful? Use it to set/clear
environment variables and run scripts.


On Thu, Apr 3, 2014 at 1:30 PM, Jean-Samuel Reynaud <js.reynaud@xxxxxxxxx>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>>:
> >>>>
> >>>>
> >>>>     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>>>
> 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>>>
> 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>>>:
> >>>>     >
> >>>>     >             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>>
> >>>>     >         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
> >>> 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
> >> 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
> > 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
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
>
>

References