46 if( item && aProperty->
Name() ==
_HKI(
"Locked" ) )
51 aCommit->
Modify( generator );
55 generator->SetLocked(
false );
56 generator->SetLocked( item->
IsLocked() );
71 generator->EditStart(
this,
board(), commit );
72 generator->Update(
this,
board(), commit );
73 generator->EditFinish(
this,
board(), commit );
97 auto tuningPatternCondition =
104 if( generator->GetGeneratorType() == wxS(
"tuning_pattern" ) )
172 wxString generatorType = aEvent.
Parameter<wxString>();
177 if( generatorType == wxS(
"*" ) )
178 commitMsg =
_(
"Regenerate All" );
182 if( generatorType == wxS(
"*" ) || generator->GetGeneratorType() == generatorType )
184 if( commitMsg.IsEmpty() )
185 commitMsg.Printf(
_(
"Update %s" ), generator->GetPluralName() );
187 generator->EditStart(
this,
board(), &commit );
188 generator->Update(
this,
board(), &commit );
189 generator->EditFinish(
this,
board(), &commit );
191 commit.Push( commitMsg, commitFlags );
196 frame()->RefreshCanvas();
212 for(
int i = aCollector.
GetCount() - 1; i >= 0; --i )
217 aCollector.
Remove( item );
226 generators.push_back( gen );
229#ifdef GENERATOR_ORDER
230 std::sort( generators.begin(), generators.end(),
233 return a->GetUpdateOrder() < b->GetUpdateOrder();
239 gen->EditStart(
this,
board(), &commit );
240 gen->Update(
this,
board(), &commit );
241 gen->EditFinish(
this,
board(), &commit );
243 commit.
Push(
_(
"Regenerate Selected" ), commitFlags );
247 frame()->RefreshCanvas();
264 frame()->RefreshCanvas();
273 wxCHECK( commit, 0 );
virtual void Push(const wxString &aMessage=wxEmptyString, int aCommitFlags=0) override
Execute the changes.
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
bool IsLocked() const override
int GetCount() const
Return the number of objects in the list.
void Remove(int aIndex)
Remove the item at aIndex (first position is 0).
Represent a set of changes (additions, deletions or modifications) of a data model (e....
COMMIT & Modify(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr, RECURSE_MODE aRecurse=RECURSE_MODE::NO_RECURSE)
Modify a given item in the model.
int GetStatus(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr)
Returns status of an item.
A base class for most all the KiCad significant classes used in schematics and boards.
virtual EDA_GROUP * GetParentGroup() const
KICAD_T Type() const
Returns the type of object.
Used when the right click button is pressed, or when the select tool is in effect.
Class that other classes need to inherit from, in order to be inspectable.
static TOOL_ACTION genFinishEdit
static TOOL_ACTION genStartEdit
static TOOL_ACTION genRemove
static TOOL_ACTION genCancelEdit
static TOOL_ACTION generatorsShowManager
static TOOL_ACTION genUpdateEdit
static TOOL_ACTION regenerateAll
static TOOL_ACTION regenerateAllTuning
Generator tool.
static TOOL_ACTION regenerateSelected
The main frame for Pcbnew.
virtual void Remove(GENERATOR_TOOL *aTool, BOARD *aBoard, BOARD_COMMIT *aCommit)=0
virtual void EditCancel(GENERATOR_TOOL *aTool, BOARD *aBoard, BOARD_COMMIT *aCommit)=0
virtual wxString GetCommitMessage() const =0
virtual void EditStart(GENERATOR_TOOL *aTool, BOARD *aBoard, BOARD_COMMIT *aCommit)=0
virtual bool Update(GENERATOR_TOOL *aTool, BOARD *aBoard, BOARD_COMMIT *aCommit)=0
virtual void EditFinish(GENERATOR_TOOL *aTool, BOARD *aBoard, BOARD_COMMIT *aCommit)=0
const wxString & Name() const
static PROPERTY_MANAGER & Instance()
class PROPERTY_LISTENER_SUBSCRIPTION RegisterListener(TYPE_ID aType, PROPERTY_LISTENER aListenerFunc)
Register a listener for the given type and return a move-only subscription that auto-unregisters in i...
static bool ShowAlways(const SELECTION &aSelection)
The default condition function (always returns true).
std::deque< PCB_GENERATOR * > GENERATORS
@ PCB_GENERATOR_T
class PCB_GENERATOR, generator on a layer
VECTOR2< int32_t > VECTOR2I