53 && aItem->
Matches( data, aSheet )
127 bool past_item = !aAfter;
128 std::vector<SCH_ITEM*> sorted_items;
133 sorted_items.push_back( item );
140 sorted_items.push_back( &field );
143 sorted_items.push_back(
pin );
151 sorted_items.push_back( &field );
154 sorted_items.push_back(
pin );
160 addItem(
static_cast<SCH_ITEM*
>( item ) );
165 std::sort( sorted_items.begin(), sorted_items.end(),
168 if( a->GetPosition().x == b->GetPosition().x )
171 if( a->GetPosition().y == b->GetPosition().y )
172 return a->m_Uuid < b->m_Uuid;
174 return a->GetPosition().y < b->GetPosition().y;
181 std::reverse( sorted_items.begin(), sorted_items.end() );
183 for(
SCH_ITEM* item : sorted_items )
194 if( item->Matches( aData, aSheet ) )
206 bool searchAllSheets =
false;
207 bool selectedOnly =
false;
218 catch(
const std::bad_cast& )
229 afterSheet =
nullptr;
235 if( afterSheet || !searchAllSheets )
239 if( !item && searchAllSheets )
242 std::vector<SCH_SHEET_PATH*> paths;
249 paths.push_back( &sheet );
252 std::sort( paths.begin(), paths.end(), [] (
const SCH_SHEET_PATH* lhs,
255 int retval = lhs->ComparePageNum( *rhs );
259 else if( retval > 0 )
262 return lhs->GetCurrentHash() < rhs->GetCurrentHash();
266 std::reverse( paths.begin(), paths.end() );
273 afterSheet =
nullptr;
278 item =
nextMatch( sheet->LastScreen(), sheet,
nullptr, data, isReversed );
316 wxString msg = searchAllSheets ?
_(
"Reached end of schematic." )
317 :
_(
"Reached end of sheet." );
321 _(
"Find again to wrap around to the start." ), 4000 );
361 if( item->
Replace( data, sheet ) )
378 bool currentSheetOnly =
false;
379 bool selectedOnly =
false;
387 catch(
const std::bad_cast& )
391 bool modified =
false;
402 if( aItem->
Replace( aData, aSheet ) )
409 if( currentSheetOnly || selectedOnly )
418 doReplace( item, currentSheet, data );
432 for(
unsigned ii = 0; ii < sheets.size(); ++ii )
440 doReplace( item, &sheets[0], data );
448 switch( field->
GetId() )
454 doReplace( field, &sheets[ii], data );
464 item =
nextMatch( screen, &sheets[ii], item, data,
false );
static TOOL_ACTION replaceAll
static TOOL_ACTION updateFind
static TOOL_ACTION findPrevious
static TOOL_ACTION findAndReplace
static TOOL_ACTION replaceAndFindNext
static TOOL_ACTION findNext
static TOOL_ACTION findNextMarker
const Vec GetCenter() const
void FocusOnLocation(const VECTOR2I &aPos)
Useful to focus on a particular location, in find functions.
EDA_SEARCH_DATA & GetFindReplaceData()
virtual void Refresh(bool aEraseBackground=true, const wxRect *aRect=nullptr) override
Update the board display after modifying it by a python script (note: it is automatically called by a...
A base class for most all the KiCad significant classes used in schematics and boards.
virtual VECTOR2I GetPosition() const
virtual const BOX2I GetBoundingBox() const
Return the orthogonal bounding box of this object for display purposes.
KICAD_T Type() const
Returns the type of object.
void SetForceVisible(bool aEnable)
Set and clear force visible flag used to force the item to be drawn even if it's draw attribute is se...
virtual bool Matches(const EDA_SEARCH_DATA &aSearchData, void *aAuxData) const
Compare the item against the search criteria in aSearchData.
EDA_ITEM * GetParent() const
bool IsBrightened() const
static bool Replace(const EDA_SEARCH_DATA &aSearchData, wxString &aText)
Perform a text replace on aText using the find and replace criteria in aSearchData on items that supp...
static const TOOL_EVENT ClearedEvent
static const TOOL_EVENT SelectedEvent
static const TOOL_EVENT SelectedItemsModified
Selected items were moved, this can be very high frequency on the canvas, use with care.
static const TOOL_EVENT PointSelectedEvent
static const TOOL_EVENT UnselectedEvent
void UpdateItems()
Iterate through the list of items that asked for updating and updates them.
void SetCurrentSheet(const SCH_SHEET_PATH &aPath) override
SCH_SHEET_LIST GetSheets() const override
Builds and returns an updated schematic hierarchy TODO: can this be cached?
SCH_DRAW_PANEL * GetCanvas() const override
Return a pointer to GAL-based canvas of given EDA draw frame.
void OnModify() override
Must be called after a schematic change in order to set the "modify" flag and update other data struc...
SCH_SCREEN * GetScreen() const override
Return a pointer to a BASE_SCREEN or one of its derivatives.
void ShowFindReplaceDialog(bool aReplace)
Run the Find or Find & Replace dialog.
void SaveCopyInUndoList(SCH_SCREEN *aScreen, SCH_ITEM *aItemToCopy, UNDO_REDO aTypeCommand, bool aAppend, bool aDirtyConnectivity=true)
Create a copy of the current schematic item, and put it in the undo list.
void ClearFindReplaceStatus()
SCH_SHEET_PATH & GetCurrentSheet() const
SCHEMATIC & Schematic() const
void updateTitle()
Set the main window title bar text.
void ShowFindReplaceStatus(const wxString &aMsg, int aStatusTime)
void DisplayCurrentSheet()
Draw the current sheet on the display.
void UpdateItem(EDA_ITEM *aItem, bool isAddOrDelete=false, bool aUpdateRtree=false) override
Mark an item for refresh.
DIALOG_SCH_FIND * m_findReplaceDialog
Instances are attached to a symbol or sheet and provide a place for the symbol's value,...
Base class for any item which can be embedded within the SCHEMATIC container class,...
Container class that holds multiple SCH_SCREEN objects in a hierarchy.
void BuildClientSheetPathList()
built the list of sheet paths sharing a screen for each screen in use
EE_RTREE & Items()
Gets the full RTree, usually for iterating.
A container for handling SCH_SHEET_PATH objects in a flattened hierarchy.
SCH_SHEET_LIST FindAllSheetsForScreen(const SCH_SCREEN *aScreen) const
Return a SCH_SHEET_LIST with a copy of all the SCH_SHEET_PATH using a particular screen.
Handle access to a stack of flattened SCH_SHEET objects by way of a path for creating a flattened sch...
size_t GetCurrentHash() const
void UpdateAllScreenReferences() const
Update all the symbol references for this sheet path.
SCH_SCREEN * LastScreen()
Define a sheet pin (label) used in sheets to create hierarchical schematics.
Sheet symbol placed in a schematic, and is the entry point for a sub schematic.
std::vector< SCH_FIELD > & GetFields()
std::vector< SCH_SHEET_PIN * > & GetPins()
std::vector< SCH_PIN * > GetPins(const SCH_SHEET_PATH *aSheet=nullptr) const
Retrieve a list of the SCH_PINs for the given sheet path.
void GetFields(std::vector< SCH_FIELD * > &aVector, bool aVisibleOnly)
Populate a std::vector with SCH_FIELDs.
Definition of the SCH_SHEET_PATH and SCH_SHEET_LIST classes for Eeschema.
bool searchCurrentSheetOnly
@ FOOTPRINT_FIELD
Field Name Module PCB, i.e. "16DIP300".
@ VALUE_FIELD
Field Value of part, i.e. "3.3K".
@ REFERENCE_FIELD
Field Reference of part, i.e. "IC21".