37 if( aProjectTemplateMgr )
39 m_title->SetLabel(
_(
"Project Field Name Templates" ) );
40 m_scope = TEMPLATES::SCOPE::PROJECT;
45 m_title->SetLabel(
_(
"Global Field Name Templates" ) );
46 m_scope = TEMPLATES::SCOPE::GLOBAL;
55 m_grid->SetUseNativeColLabels();
61 m_grid->SetupColumnAutosizer( 0 );
62 m_grid->SetSelectionMode( wxGrid::wxGridSelectRows );
69 m_grid->PopEventHandler(
true );
84 [&]() -> std::pair<int, int>
86 int row =
m_grid->GetNumberRows();
105 m_grid->DeleteRows( row );
115 m_grid->SwapRows( row, row - 1 );
125 m_grid->SwapRows( row, row + 1 );
137 for(
int row = 0; row <
m_grid->GetNumberRows(); ++row )
142 m_grid->SetCellValue( row, 1,
m_fields[row].m_Visible ? wxS(
"1" ) : wxS(
"0" ) );
143 m_grid->SetCellValue( row, 2,
m_fields[row].m_URL ? wxS(
"1" ) : wxS(
"0" ) );
146 m_grid->SetCellAlignment( row, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
149 m_grid->SetCellRenderer( row, 1,
new wxGridCellBoolRenderer() );
150 m_grid->SetReadOnly( row, 1 );
151 m_grid->SetCellAlignment( row, 1, wxALIGN_CENTRE, wxALIGN_CENTRE );
153 m_grid->SetCellRenderer( row, 2,
new wxGridCellBoolRenderer() );
154 m_grid->SetReadOnly( row, 2 );
155 m_grid->SetCellAlignment( row, 2, wxALIGN_CENTRE, wxALIGN_CENTRE );
166 if( !
m_grid->CommitPendingChanges() )
169 for(
int row = 0; row <
m_grid->GetNumberRows(); ++row )
172 m_fields[row].m_Visible =
m_grid->GetCellValue( row, 1 ) == wxS(
"1" );
173 m_fields[row].m_URL =
m_grid->GetCellValue( row, 2 ) == wxS(
"1" );
189 if( !field.m_Name.IsEmpty() )
191 wxString trimmedName = field.m_Name;
194 trimmedName.Trim(
false );
197 if( field.m_Name != trimmedName )
201 msg.Printf(
_(
"The field name '%s' contains trailing and/or leading white space." ),
206 dlg.SetExtendedMessage(
_(
"This may result in what appears to be duplicate field "
207 "names but are actually unique names differing only by "
208 "white space characters. Removing the white space "
209 "characters will have no effect on existing symbol "
212 dlg.SetOKCancelLabels( KICAD_MESSAGE_DIALOG::ButtonLabel(
_(
"Remove White Space" ) ),
213 KICAD_MESSAGE_DIALOG::ButtonLabel(
_(
"Keep White Space" ) ) );
215 if( dlg.ShowModal() == wxID_OK )
216 field.m_Name = trimmedName;
wxBitmapBundle KiBitmapBundle(BITMAPS aBitmap, int aMinHeight)
TEMPLATES m_FieldNameTemplates
Global field name templates shared by all project editors.
Add mouse and command handling (such as cut, copy, and paste) to a WX_GRID instance.
STD_BITMAP_BUTTON * m_bpMoveUp
STD_BITMAP_BUTTON * m_addFieldButton
STD_BITMAP_BUTTON * m_bpMoveDown
STD_BITMAP_BUTTON * m_deleteFieldButton
PANEL_TEMPLATE_FIELDNAMES_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
void OnAddButtonClick(wxCommandEvent &event) override
Adds a new template fieldname (with default values) to the template fieldnames data.
~PANEL_TEMPLATE_FIELDNAMES() override
std::vector< TEMPLATE_FIELDNAME > m_fields
void OnMoveDown(wxCommandEvent &event) override
bool TransferDataToWindow() override
void OnMoveUp(wxCommandEvent &event) override
TEMPLATES * m_templateMgr
void ImportSettingsFrom(TEMPLATES *templateMgr)
PANEL_TEMPLATE_FIELDNAMES(wxWindow *aWindow, TEMPLATES *aProjectTemplateMgr)
bool TransferDataFromWindow() override
void OnDeleteButtonClick(wxCommandEvent &event) override
Deletes the selected template fieldname from the template fieldnames data.
bool TransferDataToGrid()
bool TransferDataFromGrid()
virtual COMMON_SETTINGS * GetCommonSettings() const
const std::vector< TEMPLATE_FIELDNAME > & GetTemplateFieldNames(SCOPE aScope)
Return a specific list (global or project) for read only access.
This file is part of the common library.
#define KICAD_MESSAGE_DIALOG
PGM_BASE & Pgm()
The global program "get" accessor.
Hold a name of a symbol's field, field value, and default visibility.