kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #40126
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