kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #12889
Re: writing a new top level wxPython based project manager
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>>:
>>>>>
>>>>>
>>>>> 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
>
Follow ups
References
-
writing a new top level wxPython based project manager
From: dileep kushwaha, 2014-03-12
-
Re: writing a new top level wxPython based project manager
From: Dick Hollenbeck, 2014-03-12
-
Re: writing a new top level wxPython based project manager
From: Dick Hollenbeck, 2014-03-13
-
Re: writing a new top level wxPython based project manager
From: dileep kushwaha, 2014-03-24
-
Re: writing a new top level wxPython based project manager
From: dileep kushwaha, 2014-03-24
-
Re: writing a new top level wxPython based project manager
From: Brian Sidebotham, 2014-03-24
-
Re: writing a new top level wxPython based project manager
From: Dick Hollenbeck, 2014-03-24
-
Re: writing a new top level wxPython based project manager
From: Dick Hollenbeck, 2014-03-24
-
Re: writing a new top level wxPython based project manager
From: Jean-Samuel Reynaud, 2014-03-24
-
Re: writing a new top level wxPython based project manager
From: Dick Hollenbeck, 2014-03-31
-
Re: writing a new top level wxPython based project manager
From: Jean-Samuel Reynaud, 2014-03-31
-
Re: writing a new top level wxPython based project manager
From: Dick Hollenbeck, 2014-04-01
-
Re: writing a new top level wxPython based project manager
From: Jean-Samuel Reynaud, 2014-04-02
-
Re: writing a new top level wxPython based project manager
From: Dick Hollenbeck, 2014-04-02
-
Re: writing a new top level wxPython based project manager
From: Dick Hollenbeck, 2014-04-02
-
Re: writing a new top level wxPython based project manager
From: Dick Hollenbeck, 2014-04-02
-
Re: writing a new top level wxPython based project manager
From: Jean-Samuel Reynaud, 2014-04-03