← Back to team overview

kicad-developers team mailing list archive

Re: Eeschema modern toolset

 

Cool.  I might do a bit to introduce SCH_ACTIONS, etc, but I’ll leave the hookup until I see your stuff.

> On 12 Apr 2019, at 14:17, Tomasz Wlostowski <tomasz.wlostowski@xxxxxxx> wrote:
> 
> On 12/04/2019 12:17, Jeff Young wrote:
>> Hi Tom,
>> 
>> I was going to start laying some of the ground-work for Eeschema’s modern toolset.  Do you already have some of this in a branch that you can share, or should I go ahead and start with master?
> 
> Hi Jeff,
> 
> I've started working on something that might have impact for the modern
> toolset for eeschema (and other KiCad tools), possibly making the
> migration easier and allowing for more code reuse. It's removing the
> dependencies of the tool classes from PCB_EDIT_FRAME and its ancestors.
> The goals are:
> - no direct dependencies on the toolkit in the tool/model classes -
> opens the way to migration to any future toolkit of our choice
> - have all interactive-related objects together in some sort of 'editor
> context' class:
> 
> class EDITOR_CONTEXT_BASE
> {
>    virtual KIGFX::VIEW* View() const = 0;
>    virtual KIGFX::VIEW_CONTROLS* ViewControls() const = 0;
>    virtual EDA_ITEM* Model() const;
> 
> // handles dialogs, prompts, updating the user interface
>    UI_MANAGER_BASE* UIManager() const;
> 
> // specialization of GRID_HELPER for particular appliaction
>    GRID_MANAGER_BASE* GridManager() const;
> 
> // Undo/redo list (factored out from EDA_BASE_FRAME)
>    UNDO_MANAGER *UndoManager() const;
> 
> // The tool manager (and all the tools)
>    TOOL_MANAGER *ToolManager() const;
> 
> // Creates an empty commit to board/sch/etc. Put other syntax sugar here...
>    virtual COMMIT* NewCommit();
> };
> 
> I'll clean up the code I already have (empty classes for the moment) and
> push it to a new branch. Will let you know as soon as it's done...
> 
> Cheers,
> Tom



References