20#ifndef PROJECT_COMPONENT_CLASS_SETTINGS_H
21#define PROJECT_COMPONENT_CLASS_SETTINGS_H
24#include <unordered_map>
53 const wxString& aSecondaryData )
55 m_conditions[aCondition] = { aPrimaryData, aSecondaryData };
59 const std::unordered_map<CONDITION_TYPE, std::pair<wxString, wxString>>&
GetConditions()
const
83 static wxString GetConditionName(
const CONDITION_TYPE aCondition );
86 static CONDITION_TYPE GetConditionType(
const wxString& aCondition );
89 wxString GetAssignmentInDRCLanguage()
const;
96 std::unordered_map<CONDITION_TYPE, std::pair<wxString, wxString>>
m_conditions;
bool operator==(const wxAuiPaneInfo &aLhs, const wxAuiPaneInfo &aRhs)
wxString m_componentClass
The name of the component class for this assignment rule.
void SetConditionsOperation(const CONDITIONS_OPERATOR aOperator)
Sets the boolean operation in use for all conditions.
CONDITION_TYPE
A condition match type.
const std::unordered_map< CONDITION_TYPE, std::pair< wxString, wxString > > & GetConditions() const
Gets all conditions.
std::unordered_map< CONDITION_TYPE, std::pair< wxString, wxString > > m_conditions
Map of condition types to primary and secondary data fields for the condition.
void SetCondition(const CONDITION_TYPE aCondition, const wxString &aPrimaryData, const wxString &aSecondaryData)
Sets the given condition type with the assocated match data.
CONDITIONS_OPERATOR
Whether conditions are applied with OR or AND logic.
CONDITIONS_OPERATOR m_conditionsOperator
Whether conditions are applied with AND or OR logic Defaults to ALL.
void SetComponentClass(const wxString &aComponentClass)
Sets the resulting component class for matching footprints.
CONDITIONS_OPERATOR GetConditionsOperator() const
Gets the boolean operation in use for all conditions.
const wxString & GetComponentClass() const
Gets the resulting component class for matching footprints.
COMPONENT_CLASS_SETTINGS stores data for component classes, including rules for automatic generation ...
bool GetEnableSheetComponentClasses() const
Gets whether component classes should be generated for components in hierarchical sheets.
COMPONENT_CLASS_SETTINGS(JSON_SETTINGS *aParent, const std::string &aPath)
static nlohmann::json saveAssignment(const COMPONENT_CLASS_ASSIGNMENT_DATA &aAssignment)
Saves a dynamic component class assignment to JSON.
void ClearComponentClassAssignments()
Clear all dynamic component class assignments.
void SetEnableSheetComponentClasses(bool aEnabled)
Sets whether component classes should be generated for components in hierarchical sheets.
std::vector< COMPONENT_CLASS_ASSIGNMENT_DATA > m_componentClassAssignments
All dynamic component class assignment rules.
bool operator!=(const COMPONENT_CLASS_SETTINGS &aOther) const
void AddComponentClassAssignment(const COMPONENT_CLASS_ASSIGNMENT_DATA &aAssignment)
static COMPONENT_CLASS_ASSIGNMENT_DATA loadAssignment(const nlohmann::json &aJson)
Loads a dynamic component class assignment from JSON.
const std::vector< COMPONENT_CLASS_ASSIGNMENT_DATA > & GetComponentClassAssignments() const
Gets all dynamic component class assignments.
bool m_enableSheetComponentClasses
Toggle generation of component classes for hierarchical sheets.
JSON_SETTINGS(const wxString &aFilename, SETTINGS_LOC aLocation, int aSchemaVersion)
NESTED_SETTINGS(const std::string &aName, int aSchemaVersion, JSON_SETTINGS *aParent, const std::string &aPath, bool aLoadFromFile=true)