23#include <unordered_set>
25#include <wx/listctrl.h>
48 aList->DeleteAllItems();
53 std::set<KIID> errored( aDiag.
errored.begin(), aDiag.
errored.end() );
74 const std::vector<CONSTRAINT_MEMBER>& members = constraint->GetMembers();
76 wxString item1 = !members.empty() ? memberLabel( members[0] ) : wxString();
77 wxString item2 = members.size() > 1 ? memberLabel( members[1] ) : wxString();
81 if( members.size() > 2 )
82 item2 += wxString::Format(
_(
" (+%zu)" ), members.size() - 2 );
84 long row = aList->InsertItem( aList->GetItemCount(), item1 );
91 if( errored.contains( constraint->m_Uuid ) )
92 state =
_(
"Error (missing item)" );
93 else if( conflicting.contains( constraint->m_Uuid ) )
94 state =
_(
"Over-constrained" );
95 else if( redundant.contains( constraint->m_Uuid ) )
96 state =
_(
"Redundant" );
101 aOnRow( row, constraint );
108 addRows( footprint->Constraints() );
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
Information pertinent to a Pcbnew printed circuit board.
const FOOTPRINTS & Footprints() const
const CONSTRAINTS & Constraints() const
Geometric constraints (#2329) owned by this board.
BOARD_ITEM * ResolveItem(const KIID &aID, bool aAllowNullptrReturn=false) const
A geometric constraint between board items (issue #2329).
EDA_UNITS GetUserUnits() const
std::unordered_set< KIID > CollectMemberCandidateIds(const BOARD *aBoard)
The ids of every item on aBoard a constraint member can resolve to (shapes, dimensions and table cell...
void PopulateConstraintList(wxListCtrl *aList, BOARD *aBoard, UNITS_PROVIDER *aUnits, const BOARD_CONSTRAINT_DIAGNOSTICS &aDiag, const std::function< void(long, PCB_CONSTRAINT *)> &aOnRow)
Fill aList with one row per constraint on aBoard (board-owned then footprint-owned),...
void AddConstraintListColumns(wxListCtrl *aList)
Add the four constraint columns (Item 1 / Item 2 / Constraint / State) to a report-mode list.
wxString ConstraintMemberLabel(BOARD_ITEM *aItem, const CONSTRAINT_MEMBER &aMember, UNITS_PROVIDER *aUnitsProvider)
Label for one constrained item in a list combining the item description with its anchored feature suc...
wxString ConstraintDisplayLabel(const PCB_CONSTRAINT &aConstraint, EDA_UNITS aUnits)
Display label for a constraint in lists and menus.
std::deque< PCB_CONSTRAINT * > CONSTRAINTS
Board-wide diagnostics for the constraint overlay and info bar.
std::vector< KIID > errored
Invalid constraints (member missing, deleted, or of a kind incompatible with the type).
std::vector< KIID > redundant
std::vector< KIID > conflicting
One participant in a constraint: a referenced board item plus the feature of that item that participa...