KiCad PCB EDA Suite
Loading...
Searching...
No Matches
panel_bom_presets.cpp
Go to the documentation of this file.
1/*
2 * This program source code file is part of KICAD, a free EDA CAD application.
3 *
4 * Copyright (C) 2023 Mike Williams <[email protected]>
5 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
19 */
20
21#include <panel_bom_presets.h>
22
23#include <wx/grid.h>
24#include <widgets/wx_grid.h>
25#include <bitmaps.h>
27
28
30 PANEL_BOM_PRESETS_BASE( aWindow ), m_settings( aSettings )
31{
34
35 m_bomPresetsGrid->SetUseNativeColLabels();
36 m_bomFmtPresetsGrid->SetUseNativeColLabels();
37}
38
39
41{
42 m_bomPresets = m_settings.m_BomPresets;
43 m_bomFmtPresets = m_settings.m_BomFmtPresets;
44
45 BuildGrid();
46
47 return true;
48}
49
50
52{
53 m_settings.m_BomPresets = m_bomPresets;
54 m_settings.m_BomFmtPresets = m_bomFmtPresets;
55
56 return true;
57}
58
59
61{
62 m_bomPresetsGrid->ClearRows();
63 m_bomFmtPresetsGrid->ClearRows();
64
65 for( const BOM_PRESET& p : m_bomPresets )
66 {
67 m_bomPresetsGrid->AppendRows( 1 );
68 m_bomPresetsGrid->SetCellValue( m_bomPresetsGrid->GetNumberRows() - 1, 0, p.name );
69 }
70
71 for( const BOM_FMT_PRESET& p : m_bomFmtPresets )
72 {
73 m_bomFmtPresetsGrid->AppendRows( 1 );
74 m_bomFmtPresetsGrid->SetCellValue( m_bomFmtPresetsGrid->GetNumberRows() - 1, 0, p.name );
75 }
76}
77
78
79void PANEL_BOM_PRESETS::OnDeleteBomPreset( wxCommandEvent& event )
80{
81 m_bomPresetsGrid->OnDeleteRows(
82 [&]( int row )
83 {
84 m_bomPresetsGrid->DeleteRows( row, 1 );
85 m_bomPresets.erase( m_bomPresets.begin() + row );
86 } );
87}
88
89
90void PANEL_BOM_PRESETS::OnDeleteBomFmtPreset( wxCommandEvent& event )
91{
92 m_bomFmtPresetsGrid->OnDeleteRows(
93 [&]( int row )
94 {
95 m_bomFmtPresetsGrid->DeleteRows( row, 1 );
96 m_bomFmtPresets.erase( m_bomFmtPresets.begin() + row );
97 } );
98}
99
100
106
107
wxBitmapBundle KiBitmapBundle(BITMAPS aBitmap, int aMinHeight)
Definition bitmap.cpp:106
PANEL_BOM_PRESETS_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)
STD_BITMAP_BUTTON * m_btnDeleteBomPreset
STD_BITMAP_BUTTON * m_btnDeleteBomFmtPreset
std::vector< BOM_FMT_PRESET > m_bomFmtPresets
std::vector< BOM_PRESET > m_bomPresets
void OnDeleteBomFmtPreset(wxCommandEvent &event) override
bool TransferDataFromWindow() override
bool TransferDataToWindow() override
void ImportBomFmtPresetsFrom(SCHEMATIC_SETTINGS &aSettings)
PANEL_BOM_PRESETS(wxWindow *aWindow, SCHEMATIC_SETTINGS &aSettings)
void ImportBomPresetsFrom(SCHEMATIC_SETTINGS &aSettings)
SCHEMATIC_SETTINGS & m_settings
void OnDeleteBomPreset(wxCommandEvent &event) override
These are loaded from Eeschema settings but then overwritten by the project settings.
std::vector< BOM_PRESET > m_BomPresets
std::vector< BOM_FMT_PRESET > m_BomFmtPresets