30#include <wx/dataview.h>
61 virtual int GetCount(
int aSeverity = -1 )
const = 0;
66 virtual std::shared_ptr<RC_ITEM>
GetItem(
int aIndex )
const = 0;
86 typedef std::vector<KIID>
KIIDS;
94 RC_ITEM(
const std::shared_ptr<RC_ITEM>& aItem )
101 m_ids = aItem->m_ids;
122 m_ids.push_back( aItem );
123 m_ids.push_back( bItem );
124 m_ids.push_back( cItem );
125 m_ids.push_back( dItem );
145 const std::map<KIID, EDA_ITEM*>& aItemMap )
const;
159 const std::map<KIID, EDA_ITEM*>& aItemMap )
const;
189 return wxEmptyString;
256 return aNode && aNode->
m_Handle ? wxDataViewItem( aNode->
m_Handle ) : wxDataViewItem();
262 return handle ? handle->
m_Node :
nullptr;
278 void Update( std::shared_ptr<RC_ITEMS_PROVIDER> aProvider,
int aSeverities );
287 bool IsContainer( wxDataViewItem
const& aItem )
const override;
289 wxDataViewItem
GetParent( wxDataViewItem
const& aItem )
const override;
291 unsigned int GetChildren( wxDataViewItem
const& aItem,
292 wxDataViewItemArray& aChildren )
const override;
296 wxString
GetColumnType(
unsigned int aCol )
const override {
return "string"; }
299 bool HasValue(
const wxDataViewItem& item,
unsigned col )
const override
304 return wxDataViewModel::HasValue( item, col );
310 void GetValue( wxVariant& aVariant, wxDataViewItem
const& aItem,
311 unsigned int aCol )
const override;
316 bool SetValue( wxVariant
const& aVariant, wxDataViewItem
const& aItem,
317 unsigned int aCol )
override
327 bool GetAttr( wxDataViewItem
const& aItem,
unsigned int aCol,
328 wxDataViewItemAttr& aAttr )
const override;
339 void DeleteItems(
bool aCurrentOnly,
bool aIncludeExclusions,
bool aDeep );
346 void rebuildModel( std::shared_ptr<RC_ITEMS_PROVIDER> aProvider,
int aSeverities );
353 std::vector<std::unique_ptr<RC_TREE_NODE::HANDLE>>
m_handles;
The base frame for deriving all KiCad main window classes.
The base class for create windows for drawing purpose.
A base class for most all the KiCad significant classes used in schematics and boards.
Marker are mainly used to show a DRC or ERC error or warning.
Provide an abstract interface of a RC_ITEM* list manager.
virtual int GetSeverities() const =0
virtual void SetSeverities(int aSeverities)=0
virtual void DeleteItem(int aIndex, bool aDeep)=0
Remove (and optionally deletes) the indexed item from the list.
virtual ~RC_ITEMS_PROVIDER()
virtual int GetCount(int aSeverity=-1) const =0
virtual std::shared_ptr< RC_ITEM > GetItem(int aIndex) const =0
Retrieve a RC_ITEM by index.
A holder for a rule check item, DRC in Pcbnew or ERC in Eeschema.
wxString m_settingsKey
The key used to describe this type of error in settings.
void SetItems(const KIID &aItem, const KIID &bItem=niluuid, const KIID &cItem=niluuid, const KIID &dItem=niluuid)
int m_errorCode
The error code's numeric value.
wxString GetErrorText(bool aTranslate) const
virtual void GetJsonViolation(RC_JSON::VIOLATION &aViolation, UNITS_PROVIDER *aUnitsProvider, SEVERITY aSeverity, const std::map< KIID, EDA_ITEM * > &aItemMap) const
Translate this object into an RC_JSON::VIOLATION object.
static wxString getSeverityString(SEVERITY aSeverity)
virtual wxString GetViolatingRuleDesc(bool aTranslate) const
MARKER_BASE * GetParent() const
std::vector< KIID > KIIDS
void AddItem(EDA_ITEM *aItem)
MARKER_BASE * m_parent
The marker this item belongs to, if any.
virtual KIID GetAuxItem3ID() const
void SetErrorMessage(const wxString &aMessage)
virtual KIID GetAuxItem2ID() const
virtual KIID GetMainItemID() const
virtual KIID GetAuxItemID() const
virtual wxString ShowReport(UNITS_PROVIDER *aUnitsProvider, SEVERITY aSeverity, const std::map< KIID, EDA_ITEM * > &aItemMap) const
Translate this object into a text string suitable for saving to disk in a report.
wxString m_errorMessage
A message describing the details of this specific error.
void SetParent(MARKER_BASE *aMarker)
RC_ITEM(const std::shared_ptr< RC_ITEM > &aItem)
void SetErrorCode(int aCode)
void SetErrorDetail(const wxString &aMsg)
wxString GetSettingsKey() const
std::vector< KIID > GetIDs() const
wxString m_errorTitle
The string describing the type of error.
virtual wxString GetErrorMessage(bool aTranslate) const
void SetItems(const KIIDS &aIds)
wxString GetColumnType(unsigned int aCol) const override
void GetValue(wxVariant &aVariant, wxDataViewItem const &aItem, unsigned int aCol) const override
Called by the wxDataView to fetch an item's value.
std::vector< RC_TREE_NODE * > m_tree
unsigned int GetChildren(wxDataViewItem const &aItem, wxDataViewItemArray &aChildren) const override
std::vector< std::unique_ptr< RC_TREE_NODE::HANDLE > > m_handles
bool HasContainerColumns(wxDataViewItem const &aItem) const override
bool HasValue(const wxDataViewItem &item, unsigned col) const override
EDA_DRAW_FRAME * m_editFrame
void retireNodeTree(RC_TREE_NODE *aNode)
static wxDataViewItem ToItem(RC_TREE_NODE const *aNode)
bool SetValue(wxVariant const &aVariant, wxDataViewItem const &aItem, unsigned int aCol) override
Called by the wxDataView to edit an item's content.
void SelectMarker(const MARKER_BASE *aMarker)
RC_TREE_MODEL(EDA_DRAW_FRAME *aParentFrame, wxDataViewCtrl *aView)
void deleteNodeTree(RC_TREE_NODE *aNode)
const wxDataViewCtrl * GetView() const
static RC_TREE_NODE * ToNode(wxDataViewItem aItem)
void ValueChanged(RC_TREE_NODE *aNode)
void Update(std::shared_ptr< RC_ITEMS_PROVIDER > aProvider, int aSeverities)
bool GetAttr(wxDataViewItem const &aItem, unsigned int aCol, wxDataViewItemAttr &aAttr) const override
Called by the wxDataView to fetch an item's formatting.
RC_TREE_MODEL & operator=(const RC_TREE_MODEL &)=delete
void DeleteItems(bool aCurrentOnly, bool aIncludeExclusions, bool aDeep)
Delete the current item or all items.
RC_TREE_NODE * createNode(RC_TREE_NODE *aParent, const std::shared_ptr< RC_ITEM > &aRcItem, RC_TREE_NODE::NODE_TYPE aType)
RC_TREE_MODEL(const RC_TREE_MODEL &)=delete
void DeleteCurrentItem(bool aDeep)
unsigned int GetColumnCount() const override
wxDataViewItem GetParent(wxDataViewItem const &aItem) const override
void CenterMarker(const MARKER_BASE *aMarker)
static KIID ToUUID(wxDataViewItem aItem)
std::shared_ptr< RC_ITEMS_PROVIDER > m_rcItemsProvider
bool IsContainer(wxDataViewItem const &aItem) const override
void rebuildModel(std::shared_ptr< RC_ITEMS_PROVIDER > aProvider, int aSeverities)
std::shared_ptr< RC_ITEM > m_RcItem
RC_TREE_NODE(RC_TREE_NODE *aParent, const std::shared_ptr< RC_ITEM > &aRcItem, NODE_TYPE aType)
std::vector< RC_TREE_NODE * > m_Children
RC_TREE_NODE(const RC_TREE_NODE &)=delete
RC_TREE_NODE & operator=(const RC_TREE_NODE &)=delete
Contains the json serialization structs for DRC and ERC reports If you are trying to change the outpu...