KiCad PCB EDA Suite
Loading...
Searching...
No Matches
footprint_filter.h
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) 2017-2021 KiCad Developers, see AUTHORS.txt for contributors.
5
*
6
* This program is free software: you can redistribute it and/or modify it
7
* under the terms of the GNU General Public License as published by the
8
* Free Software Foundation, either version 3 of the License, or (at your
9
* option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful, but
12
* WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License along
17
* with this program. If not, see <http://www.gnu.org/licenses/>.
18
*/
19
20
#ifndef FOOTPRINT_FILTER_H
21
#define FOOTPRINT_FILTER_H
22
23
#include <boost/iterator/iterator_facade.hpp>
24
#include <
eda_pattern_match.h
>
25
#include <
footprint_info.h
>
26
#include <wx/arrstr.h>
27
28
33
class
FOOTPRINT_FILTER
34
{
35
public
:
41
FOOTPRINT_FILTER
(
FOOTPRINT_LIST
& aList );
42
47
FOOTPRINT_FILTER
();
48
52
void
SetList
(
FOOTPRINT_LIST
& aList );
53
57
void
ClearFilters
();
58
62
void
FilterByLibrary
(
const
wxString& aLibName );
63
67
void
FilterByPinCount
(
int
aPinCount );
68
72
void
FilterByFootprintFilters
(
const
wxArrayString& aFilters );
73
78
void
FilterByTextPattern
(
const
wxString& aPattern );
79
83
class
ITERATOR
84
:
public
boost::iterator_facade<ITERATOR, FOOTPRINT_INFO, boost::forward_traversal_tag>
85
{
86
public
:
87
ITERATOR
();
88
ITERATOR
(
const
ITERATOR
& aOther );
89
ITERATOR
(
FOOTPRINT_FILTER
& aFilter );
90
91
private
:
92
friend
class
boost::iterator_core_access
;
93
friend
class
FOOTPRINT_FILTER
;
94
95
void
increment
();
96
bool
equal
(
const
ITERATOR
& aOther )
const
;
97
FOOTPRINT_INFO
&
dereference
()
const
;
98
99
size_t
m_pos
;
100
FOOTPRINT_FILTER
*
m_filter
;
101
105
bool
FootprintFilterMatch
(
FOOTPRINT_INFO
& aItem );
106
110
bool
PinCountMatch
(
FOOTPRINT_INFO
& aItem );
111
};
112
116
ITERATOR
begin
();
117
122
ITERATOR
end
();
123
124
private
:
129
enum
FP_FILTER_T
:
int
130
{
131
UNFILTERED_FP_LIST
= 0,
132
FILTERING_BY_COMPONENT_FP_FILTER
= 0x0001,
133
FILTERING_BY_PIN_COUNT
= 0x0002,
134
FILTERING_BY_LIBRARY
= 0x0004,
135
FILTERING_BY_TEXT_PATTERN
= 0x0008
136
};
137
138
FOOTPRINT_LIST
*
m_list
;
139
140
wxString
m_lib_name
;
141
wxString
m_filter_pattern
;
142
int
m_pin_count
;
143
int
m_filter_type
;
144
145
std::vector<std::unique_ptr<EDA_COMBINED_MATCHER>>
m_pattern_filters
;
146
std::vector<std::unique_ptr<EDA_PATTERN_MATCH>>
m_footprint_filters
;
147
};
148
149
#endif
// FOOTPRINT_FILTER_H
FOOTPRINT_FILTER::ITERATOR
Inner iterator class returned by begin() and end().
Definition:
footprint_filter.h:85
FOOTPRINT_FILTER::ITERATOR::PinCountMatch
bool PinCountMatch(FOOTPRINT_INFO &aItem)
Check if the stored component matches an item by pin count.
Definition:
footprint_filter.cpp:154
FOOTPRINT_FILTER::ITERATOR::dereference
FOOTPRINT_INFO & dereference() const
Definition:
footprint_filter.cpp:119
FOOTPRINT_FILTER::ITERATOR::equal
bool equal(const ITERATOR &aOther) const
Definition:
footprint_filter.cpp:112
FOOTPRINT_FILTER::ITERATOR::m_filter
FOOTPRINT_FILTER * m_filter
Definition:
footprint_filter.h:100
FOOTPRINT_FILTER::ITERATOR::m_pos
size_t m_pos
Definition:
footprint_filter.h:99
FOOTPRINT_FILTER::ITERATOR::FootprintFilterMatch
bool FootprintFilterMatch(FOOTPRINT_INFO &aItem)
Check if the stored component matches an item by footprint filter.
Definition:
footprint_filter.cpp:128
FOOTPRINT_FILTER::ITERATOR::ITERATOR
ITERATOR()
Definition:
footprint_filter.cpp:28
FOOTPRINT_FILTER::ITERATOR::iterator_core_access
friend class boost::iterator_core_access
Definition:
footprint_filter.h:92
FOOTPRINT_FILTER::ITERATOR::increment
void increment()
Definition:
footprint_filter.cpp:50
FOOTPRINT_FILTER
Footprint display filter.
Definition:
footprint_filter.h:34
FOOTPRINT_FILTER::FOOTPRINT_FILTER
FOOTPRINT_FILTER()
Construct a filter without assigning a footprint list.
Definition:
footprint_filter.cpp:168
FOOTPRINT_FILTER::m_pin_count
int m_pin_count
Definition:
footprint_filter.h:142
FOOTPRINT_FILTER::m_list
FOOTPRINT_LIST * m_list
Definition:
footprint_filter.h:138
FOOTPRINT_FILTER::SetList
void SetList(FOOTPRINT_LIST &aList)
Set the list to filter.
Definition:
footprint_filter.cpp:176
FOOTPRINT_FILTER::FilterByPinCount
void FilterByPinCount(int aPinCount)
Set a pin count to filter by.
Definition:
footprint_filter.cpp:195
FOOTPRINT_FILTER::begin
ITERATOR begin()
Get an iterator to the beginning of the filtered view.
Definition:
footprint_filter.cpp:232
FOOTPRINT_FILTER::m_filter_pattern
wxString m_filter_pattern
Definition:
footprint_filter.h:141
FOOTPRINT_FILTER::m_filter_type
int m_filter_type
Definition:
footprint_filter.h:143
FOOTPRINT_FILTER::m_lib_name
wxString m_lib_name
Definition:
footprint_filter.h:140
FOOTPRINT_FILTER::FilterByTextPattern
void FilterByTextPattern(const wxString &aPattern)
Add a pattern to filter by name, including wildcards and optionally a colon-delimited library name.
Definition:
footprint_filter.cpp:216
FOOTPRINT_FILTER::ClearFilters
void ClearFilters()
Clear all filter criteria.
Definition:
footprint_filter.cpp:182
FOOTPRINT_FILTER::FilterByLibrary
void FilterByLibrary(const wxString &aLibName)
Add library name to filter criteria.
Definition:
footprint_filter.cpp:188
FOOTPRINT_FILTER::end
ITERATOR end()
Get an iterator to the end of the filtered view.
Definition:
footprint_filter.cpp:238
FOOTPRINT_FILTER::m_pattern_filters
std::vector< std::unique_ptr< EDA_COMBINED_MATCHER > > m_pattern_filters
Definition:
footprint_filter.h:145
FOOTPRINT_FILTER::m_footprint_filters
std::vector< std::unique_ptr< EDA_PATTERN_MATCH > > m_footprint_filters
Definition:
footprint_filter.h:146
FOOTPRINT_FILTER::FP_FILTER_T
FP_FILTER_T
Filter setting constants.
Definition:
footprint_filter.h:130
FOOTPRINT_FILTER::UNFILTERED_FP_LIST
@ UNFILTERED_FP_LIST
Definition:
footprint_filter.h:131
FOOTPRINT_FILTER::FILTERING_BY_LIBRARY
@ FILTERING_BY_LIBRARY
Definition:
footprint_filter.h:134
FOOTPRINT_FILTER::FILTERING_BY_PIN_COUNT
@ FILTERING_BY_PIN_COUNT
Definition:
footprint_filter.h:133
FOOTPRINT_FILTER::FILTERING_BY_TEXT_PATTERN
@ FILTERING_BY_TEXT_PATTERN
Definition:
footprint_filter.h:135
FOOTPRINT_FILTER::FILTERING_BY_COMPONENT_FP_FILTER
@ FILTERING_BY_COMPONENT_FP_FILTER
Definition:
footprint_filter.h:132
FOOTPRINT_FILTER::FilterByFootprintFilters
void FilterByFootprintFilters(const wxArrayString &aFilters)
Set a list of footprint filters to filter by.
Definition:
footprint_filter.cpp:202
FOOTPRINT_INFO
Definition:
footprint_info.h:60
FOOTPRINT_LIST
Holds a list of FOOTPRINT_INFO objects, along with a list of IO_ERRORs or PARSE_ERRORs that were thro...
Definition:
footprint_info.h:161
eda_pattern_match.h
Abstract pattern-matching tool and implementations.
footprint_info.h
src
include
footprint_filter.h
Generated on Mon Nov 25 2024 00:04:52 for KiCad PCB EDA Suite by
1.9.6