47 if( item && aProperty->
Name() ==
_HKI(
"Locked" ) )
52 aCommit->
Modify( generator );
56 generator->SetLocked(
false );
57 generator->SetLocked( item->
IsLocked() );
72 generator->EditStart(
this,
board(), commit );
73 generator->Update(
this,
board(), commit );
74 generator->EditFinish(
this,
board(), commit );
98 auto tuningPatternCondition =
105 if( generator->GetGeneratorType() == wxS(
"tuning_pattern" ) )
173 wxString generatorType = aEvent.
Parameter<wxString>();
178 if( generatorType == wxS(
"*" ) )
179 commitMsg =
_(
"Regenerate All" );
183 if( generatorType == wxS(
"*" ) || generator->GetGeneratorType() == generatorType )
185 if( commitMsg.IsEmpty() )
186 commitMsg.Printf(
_(
"Update %s" ), generator->GetPluralName() );
188 generator->EditStart(
this,
board(), &commit );
189 generator->Update(
this,
board(), &commit );
190 generator->EditFinish(
this,
board(), &commit );
192 commit.Push( commitMsg, commitFlags );
197 frame()->RefreshCanvas();
210 for(
int i = aCollector.
GetCount() - 1; i >= 0; --i )
215 aCollector.
Remove( item );
219 std::vector<BOARD_ITEM*> items;
223 if( item->IsBOARD_ITEM() )
224 items.push_back(
static_cast<BOARD_ITEM*
>( item ) );
227 std::vector<BOARD_ITEM*> members;
232 frame()->ShowInfoBarWarning(
_(
"Selection does not form a contiguous microvia stack on one net." ) );
244 if(
EDA_GROUP* existingGroup = item->GetParentGroup() )
251 commit.
Push(
_(
"Create Microvia Stack" ) );
255 frame()->RefreshCanvas();
272 for(
int i = aCollector.
GetCount() - 1; i >= 0; --i )
277 aCollector.
Remove( item );
286 generators.push_back( gen );
289#ifdef GENERATOR_ORDER
290 std::sort( generators.begin(), generators.end(),
293 return a->GetUpdateOrder() < b->GetUpdateOrder();
299 gen->EditStart(
this,
board(), &commit );
300 gen->Update(
this,
board(), &commit );
301 gen->EditFinish(
this,
board(), &commit );
303 commit.
Push(
_(
"Regenerate Selected" ), commitFlags );
307 frame()->RefreshCanvas();
324 frame()->RefreshCanvas();
333 wxCHECK( commit, 0 );
static TOOL_ACTION selectionClear
Clear the current selection.
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.
COMMIT & Add(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr)
Add a new item to the model.
int GetStatus(EDA_ITEM *aItem, BASE_SCREEN *aScreen=nullptr)
Returns status of an item.
A set of EDA_ITEMs (i.e., without duplicates).
void AddItem(EDA_ITEM *aItem)
Add item to group.
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.
static const TOOL_EVENT SelectedItemsModified
Selected items were moved, this can be very high frequency on the canvas, use with care.
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 makeViaStack
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
A microvia stack: several single hop microvias, plus connecting traces for staggered stacks,...
static PCB_VIA_STACK * CreateFromItems(const std::vector< BOARD_ITEM * > &aItems, BOARD *aBoard, std::vector< BOARD_ITEM * > *aMembers=nullptr)
Build a stack from existing board items (microvias plus optional connecting traces).
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
@ PCB_VIA_T
class PCB_VIA, a via (like a track segment on a copper layer)
@ PCB_TRACE_T
class PCB_TRACK, a track segment (segment on a copper layer)
VECTOR2< int32_t > VECTOR2I