24#include <wx/listctrl.h>
46 aList->DeleteAllItems();
51 std::set<KIID> errored( aDiag.
errored.begin(), aDiag.
errored.end() );
67 const std::vector<CONSTRAINT_MEMBER>& members = constraint->GetMembers();
69 wxString item1 = !members.empty() ? memberLabel( members[0] ) : wxString();
70 wxString item2 = members.size() > 1 ? memberLabel( members[1] ) : wxString();
74 if( members.size() > 2 )
75 item2 += wxString::Format(
_(
" (+%zu)" ), members.size() - 2 );
77 long row = aList->InsertItem( aList->GetItemCount(), item1 );
84 if( errored.contains( constraint->m_Uuid ) )
85 state =
_(
"Error (missing item)" );
86 else if( conflicting.contains( constraint->m_Uuid ) )
87 state =
_(
"Over-constrained" );
88 else if( redundant.contains( constraint->m_Uuid ) )
89 state =
_(
"Redundant" );
94 aOnRow( row, constraint );
101 addRows( footprint->Constraints() );
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
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...