132    virtual void Push( 
const wxString& aMessage = wxT( 
"A commit" ), 
int aFlags = 0 ) = 0;
 
 
Handles how to draw a screen (a board, a schematic ...)
 
Represent a set of changes (additions, deletions or modifications) of a data model (e....
 
COMMIT & Remove(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr)
Remove a new item from the model.
 
std::set< std::pair< EDA_ITEM *, BASE_SCREEN * > > m_deletedItems
 
virtual EDA_ITEM * undoLevelItem(EDA_ITEM *aItem) const =0
 
virtual void Revert()=0
Revert the commit by restoring the modified items state.
 
COMMIT & Added(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr)
Notify observers that aItem has been added.
 
void Unstage(EDA_ITEM *aItem, BASE_SCREEN *aScreen)
 
COMMIT & Modified(EDA_ITEM *aItem, EDA_ITEM *aCopy, BASE_SCREEN *aScreen=nullptr)
Create an undo entry for an item that has been already modified.
 
virtual void Push(const wxString &aMessage=wxT("A commit"), int aFlags=0)=0
Execute the changes.
 
COMMIT & Modify(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr, RECURSE_MODE aRecurse=RECURSE_MODE::NO_RECURSE)
Modify a given item in the model.
 
COMMIT_LINE * findEntry(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr)
Search for an entry describing change for a particular item.
 
std::set< std::pair< EDA_ITEM *, BASE_SCREEN * > > m_addedItems
 
virtual void makeEntry(EDA_ITEM *aItem, CHANGE_TYPE aType, EDA_ITEM *aCopy=nullptr, BASE_SCREEN *aScreen=nullptr)
 
COMMIT & Add(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr)
Add a new item to the model.
 
std::vector< COMMIT_LINE > m_entries
 
EDA_ITEM * GetFirst() const
 
std::set< std::pair< EDA_ITEM *, BASE_SCREEN * > > m_changedItems
 
COMMIT & Removed(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr)
 
virtual EDA_ITEM * makeImage(EDA_ITEM *aItem) const =0
 
int GetStatus(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr)
Returns status of an item.
 
void clear()
Should be called in Push() & Revert() methods.
 
virtual COMMIT & Stage(EDA_ITEM *aItem, CHANGE_TYPE aChangeType, BASE_SCREEN *aScreen=nullptr, RECURSE_MODE aRecurse=RECURSE_MODE::NO_RECURSE)
Add a change of the item aItem of type aChangeType to the change list.
 
A set of EDA_ITEMs (i.e., without duplicates).
 
A base class for most all the KiCad significant classes used in schematics and boards.
 
A holder to handle information on schematic or board items.
 
CHANGE_TYPE operator|(CHANGE_TYPE aTypeA, T aTypeB)
 
CHANGE_TYPE
Types of changes.
 
@ CHT_DONE
Flag to indicate the change is already applied.
 
CHANGE_TYPE operator&(CHANGE_TYPE aTypeA, T aTypeB)
 
EDA_ITEM * m_copy
Optional copy of the item.
 
CHANGE_TYPE m_type
Modification type.
 
EDA_ITEM * m_item
Main item that is added/deleted/modified.
 
UNDO_REDO
Undo Redo considerations: Basically we have 3 cases New item Deleted item Modified item there is also...