KiCad PCB EDA Suite
Loading...
Searching...
No Matches
variant_proxy_undo_item.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 The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <https://www.gnu.org/licenses/>.
18 */
19
21#include <sch_edit_frame.h>
22
23
26{
27 for( const wxString& variant : aSchematic->GetVariantNames() )
28 m_variants[variant] = aSchematic->GetVariantDescription( variant );
29}
30
31
33{
34 std::set<wxString> currentVariants = aSchematic->GetVariantNames();
35
36 for( const auto& [variantName, variantDescription] : m_variants )
37 {
38 if( currentVariants.contains( variantName ) )
39 currentVariants.erase( variantName );
40 else
41 aSchematic->AddVariant( variantName );
42
43 aSchematic->SetVariantDescription( variantName, variantDescription );
44 }
45
46 for( const wxString& excessVariant : currentVariants )
47 aSchematic->DeleteVariant( excessVariant );
48}
49
EDA_ITEM(EDA_ITEM *parent, KICAD_T idType, bool isSCH_ITEM=false, bool isBOARD_ITEM=false)
Definition eda_item.cpp:84
Holds all the data relating to one schematic.
Definition schematic.h:149
void DeleteVariant(const wxString &aVariantName, SCH_COMMIT *aCommit=nullptr)
Delete all information for aVariantName.
wxString GetVariantDescription(const wxString &aVariantName) const
Return the description for a variant.
void AddVariant(const wxString &aVariantName)
void SetVariantDescription(const wxString &aVariantName, const wxString &aDescription)
Set the description for a variant.
const std::set< wxString > & GetVariantNames() const
Return the set of variant names (without the default placeholder).
Definition schematic.h:656
std::map< wxString, wxString > m_variants
void Restore(SCHEMATIC *aSchematic)
VARIANT_PROXY_UNDO_ITEM(const SCHEMATIC *aSchematic)
@ WS_PROXY_UNDO_ITEM_T
Definition typeinfo.h:220