61 return wxString::Format(
_(
"Shape %d" ), aSymbol.
m_ShapeIndex + 1 );
74 m_groupGrid->SetColLabelValue( COL_SYMBOL,
_(
"Symbol" ) );
76 m_groupGrid->SetColLabelValue( COL_PLATING,
_(
"Plated" ) );
77 m_groupGrid->SetColLabelValue( COL_SPAN,
_(
"From / To" ) );
79 m_groupGrid->SetColLabelValue( COL_SITES,
_(
"Sites" ) );
81 m_groupGrid->SetSelectionMode( wxGrid::wxGridSelectRows );
88 Bind( wxEVT_CLOSE_WINDOW,
89 [
this]( wxCloseEvent& aEvent )
95 m_frame->GetBoard()->AddListener(
this );
105 m_frame->GetBoard()->RemoveListener(
this );
145 const std::shared_ptr<const DRILL_SYMBOL_CACHE> cache = board->
DrillSymbolCache();
149 const auto it = cache->m_ByGroup.find(
group.m_SymbolKey );
151 if( it != cache->m_ByGroup.end() )
152 group.m_Symbol = it->second;
160 for(
size_t row = 0; row <
m_groups.size(); ++row )
163 const int r =
static_cast<int>( row );
170 wxString::Format( wxT(
"%.3f x %.3f" ),
177 wxString::Format( wxT(
"%.3f" ),
182 group.m_NotPlated ?
_(
"No" ) :
_(
"Yes" ) );
184 wxString::Format( wxT(
"%s / %s" ),
188 wxString::Format( wxT(
"%d" ),
group.m_OperationCount ) );
190 wxString::Format( wxT(
"%d" ),
group.m_SiteCount ) );
203 if( row < 0 || row >=
static_cast<int>(
m_groups.size() ) )
214 const bool valid = aRow >= 0 && aRow < static_cast<int>(
m_groups.size() );
226 m_markCtrl->SetSelection(
static_cast<int>(
group.m_Symbol.m_MarkMode ) );
260 const bool same = existing->m_MarkMode == assignment.
m_MarkMode
262 && existing->m_Letter == assignment.
m_Letter
317 std::vector<BOARD_ITEM*> items;
322 items.push_back( item );
327 m_frame->FocusOnItems( items );
constexpr EDA_IU_SCALE pcbIUScale
DRILL_SYMBOL_PROFILE & GetDrillSymbolProfile()
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.
std::shared_ptr< const DRILL_SYMBOL_CACHE > DrillSymbolCache() const
Resolved drill symbols, by group and by owning item.
void BumpDrillModelGeneration()
Bumped whenever anything a drill chart or map reports on has moved.
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
BOARD_ITEM * ResolveItem(const KIID &aID, bool aAllowNullptrReturn=false) const
wxTextCtrl * m_descriptionCtrl
DIALOG_DRILL_GROUPS_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Drill Groups"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(760, 620), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
wxStaticText * m_profileName
wxTextCtrl * m_letterCtrl
wxCheckBox * m_freezeAssignments
const DRILL_CHART_GROUP * selectedGroup() const
void showDetail(int aRow)
void onFreezeChanged(wxCommandEvent &aEvent) override
int m_detailRow
The row the detail pane is showing, so it can be committed before the selection moves.
void onClose(wxCommandEvent &aEvent) override
std::vector< DRILL_CHART_GROUP > m_groups
void Reload()
Rebuild from the board.
void scheduleReload()
Coalesce a burst of board notifications into one rebuild, and keep the rebuild out of the notificatio...
bool m_loading
Guards against the detail pane writing back while it is being filled in.
void commitDetail(int aRow)
Push the detail pane back into the profile for the given row.
void onFlash(wxCommandEvent &aEvent) override
void onGridSelect(wxGridEvent &aEvent)
DIALOG_DRILL_GROUPS(PCB_EDIT_FRAME *aFrame)
~DIALOG_DRILL_GROUPS() override
void finishDialogSettings()
In all dialogs, we must call the same functions to fix minimal dlg size, the default position and per...
Grouping rules and symbol assignments, shared by reference so a chart and its map can never disagree ...
const wxString & GetName() const
const DRILL_SYMBOL_ASSIGNMENT * GetAssignment(const std::string &aKey) const
void SetFreezeAssignments(bool aFreeze)
bool GetFreezeAssignments() const
void SetAssignment(const std::string &aKey, const DRILL_SYMBOL_ASSIGNMENT &aAssignment)
static wxString Name(PCB_LAYER_ID aLayerId)
Return the fixed name association with aLayerId.
The main frame for Pcbnew.
This file is part of the common library.
std::vector< DRILL_SPAN > EnumerateDrillSpans(const BOARD &aBoard)
Every drill span present on the board, through-holes first.
@ REPAINT
Item needs to be redrawn.
Globally unique handle for one machining action.
DRILL_MARK_MODE m_MarkMode