← Back to team overview

kicad-developers team mailing list archive

Re: Eeschema modern toolset


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:

    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...


Follow ups