This repository was archived by the owner on Dec 5, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaircrafticaofilter_8cpp_source.html
163 lines (161 loc) · 21.7 KB
/
aircrafticaofilter_8cpp_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>swift: src/blackgui/models/aircrafticaofilter.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">swift
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_6b2000c826b43a25622ed520506b10d9.html">blackgui</a></li><li class="navelem"><a class="el" href="dir_7c8af91da0cb1780ffa3a3b448c62e41.html">models</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">aircrafticaofilter.cpp</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>  </div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="preprocessor">#include "<a class="code" href="aircrafticaofilter_8h.html">blackgui/models/aircrafticaofilter.h</a>"</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#include "<a class="code" href="aircrafticaocode_8h.html">blackmisc/aviation/aircrafticaocode.h</a>"</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>  </div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="keyword">using namespace </span>BlackMisc::Aviation;</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>  </div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="keyword">namespace </span><a class="code" href="namespace_black_gui_1_1_models.html">BlackGui::Models</a></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> {</div>
<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_black_gui_1_1_models_1_1_c_aircraft_icao_filter.html#a68a12c6091f6dc0cbcba3462fcd4a274"> 11</a></span>  CAircraftIcaoFilter::CAircraftIcaoFilter(</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>  <span class="keywordtype">int</span> <span class="keywordtype">id</span>,</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  <span class="keyword">const</span> <a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html">QString</a> &designator, <span class="keyword">const</span> <a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html">QString</a> &family, <span class="keyword">const</span> <a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html">QString</a> &manufacturer,</div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>  <span class="keyword">const</span> <a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html">QString</a> &description, <span class="keyword">const</span> <a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html">QString</a> &combinedType) : m_id(id),</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>  m_designator(designator.trimmed().toUpper()),</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>  m_family(family.trimmed().toUpper()),</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  m_manufacturer(manufacturer.trimmed()),</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  m_description(description.trimmed()),</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  m_combinedType(combinedType.trimmed().toUpper())</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  {</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <a class="code" href="class_black_gui_1_1_models_1_1_i_model_filter.html#a1d977bcb70b7aa975116675c014e8ca6">m_valid</a> = !(m_id < 0 && m_combinedType.<a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html#isEmpty">isEmpty</a>() && m_designator.<a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html#isEmpty">isEmpty</a>() &&</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>  m_family.<a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html#isEmpty">isEmpty</a>() && m_description.<a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html#isEmpty">isEmpty</a>() && m_manufacturer.<a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html#isEmpty">isEmpty</a>());</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  }</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_black_gui_1_1_models_1_1_c_aircraft_icao_filter.html#a107bbe98b23bf8df9b35a0f914486b4b"> 25</a></span>  <a class="code" href="class_black_misc_1_1_aviation_1_1_c_aircraft_icao_code_list.html">CAircraftIcaoCodeList</a> <a class="code" href="class_black_gui_1_1_models_1_1_c_aircraft_icao_filter.html#a107bbe98b23bf8df9b35a0f914486b4b">CAircraftIcaoFilter::filter</a>(<span class="keyword">const</span> <a class="code" href="class_black_misc_1_1_aviation_1_1_c_aircraft_icao_code_list.html">CAircraftIcaoCodeList</a> &inContainer)<span class="keyword"> const</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword"> </span>{</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <span class="keywordflow">if</span> (!this-><a class="code" href="class_black_gui_1_1_models_1_1_i_model_filter.html#a57199968be4367ae85091e5f05ca2a92">isValid</a>()) { <span class="keywordflow">return</span> inContainer; }</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <a class="code" href="class_black_misc_1_1_aviation_1_1_c_aircraft_icao_code_list.html">CAircraftIcaoCodeList</a> outContainer;</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> filterCombinedCode = !m_combinedType.<a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html#isEmpty">isEmpty</a>() && !m_combinedType.<a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html#contains-1">contains</a>(<span class="charliteral">'-'</span>) && CAircraftIcaoCode::isValidCombinedType(m_combinedType);</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="class_black_misc_1_1_aviation_1_1_c_aircraft_icao_code.html">CAircraftIcaoCode</a> &icao : inContainer)</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <span class="keywordflow">if</span> (m_id >= 0)</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  {</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="comment">// search only for id</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keywordflow">if</span> (icao.isLoadedFromDb() && icao.getDbKey() == m_id)</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  {</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  outContainer.<a class="code" href="class_black_misc_1_1_c_sequence.html#a3b1a591f9338825e0364e940f8e06cb0">push_back</a>(icao);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  }</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">continue</span>;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  }</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">if</span> (!m_designator.<a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html#isEmpty">isEmpty</a>())</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  {</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordflow">if</span> (!this-><a class="code" href="class_black_gui_1_1_models_1_1_i_model_filter.html#a69b29c73f61f15175d410df9d819b3ef">stringMatchesFilterExpression</a>(icao.getDesignator(), m_designator)) { <span class="keywordflow">continue</span>; }</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordflow">if</span> (!m_family.<a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html#isEmpty">isEmpty</a>())</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  {</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keywordflow">if</span> (!this-><a class="code" href="class_black_gui_1_1_models_1_1_i_model_filter.html#a69b29c73f61f15175d410df9d819b3ef">stringMatchesFilterExpression</a>(icao.getFamily(), m_family)) { <span class="keywordflow">continue</span>; }</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  }</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">if</span> (!m_manufacturer.<a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html#isEmpty">isEmpty</a>())</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keywordflow">if</span> (!this-><a class="code" href="class_black_gui_1_1_models_1_1_i_model_filter.html#a69b29c73f61f15175d410df9d819b3ef">stringMatchesFilterExpression</a>(icao.getManufacturer(), m_manufacturer)) { <span class="keywordflow">continue</span>; }</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordflow">if</span> (!m_description.<a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html#isEmpty">isEmpty</a>())</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  {</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keyword">const</span> <span class="keywordtype">bool</span> ignore =</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  !this-><a class="code" href="class_black_gui_1_1_models_1_1_i_model_filter.html#a69b29c73f61f15175d410df9d819b3ef">stringMatchesFilterExpression</a>(icao.getModelDescription(), m_description) &&</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  !this-><a class="code" href="class_black_gui_1_1_models_1_1_i_model_filter.html#a69b29c73f61f15175d410df9d819b3ef">stringMatchesFilterExpression</a>(icao.getModelSwiftDescription(), m_description) &&</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  !this-><a class="code" href="class_black_gui_1_1_models_1_1_i_model_filter.html#a69b29c73f61f15175d410df9d819b3ef">stringMatchesFilterExpression</a>(icao.getModelIataDescription(), m_description);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">if</span> (ignore) { <span class="keywordflow">continue</span>; }</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">if</span> (filterCombinedCode)</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">if</span> (icao.getCombinedType() != m_combinedType) { <span class="keywordflow">continue</span>; }</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  outContainer.<a class="code" href="class_black_misc_1_1_c_sequence.html#a3b1a591f9338825e0364e940f8e06cb0">push_back</a>(icao);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  }</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">return</span> outContainer;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> } <span class="comment">// namespace</span></div>
<div class="ttc" id="aaircrafticaocode_8h_html"><div class="ttname"><a href="aircrafticaocode_8h.html">aircrafticaocode.h</a></div></div>
<div class="ttc" id="aaircrafticaofilter_8h_html"><div class="ttname"><a href="aircrafticaofilter_8h.html">aircrafticaofilter.h</a></div></div>
<div class="ttc" id="aclass_black_gui_1_1_models_1_1_c_aircraft_icao_filter_html_a107bbe98b23bf8df9b35a0f914486b4b"><div class="ttname"><a href="class_black_gui_1_1_models_1_1_c_aircraft_icao_filter.html#a107bbe98b23bf8df9b35a0f914486b4b">BlackGui::Models::CAircraftIcaoFilter::filter</a></div><div class="ttdeci">virtual BlackMisc::Aviation::CAircraftIcaoCodeList filter(const BlackMisc::Aviation::CAircraftIcaoCodeList &inContainer) const</div><div class="ttdoc">Used container data.</div><div class="ttdef"><b>Definition:</b> <a href="aircrafticaofilter_8cpp_source.html#l00025">aircrafticaofilter.cpp:25</a></div></div>
<div class="ttc" id="aclass_black_gui_1_1_models_1_1_i_model_filter_html_a1d977bcb70b7aa975116675c014e8ca6"><div class="ttname"><a href="class_black_gui_1_1_models_1_1_i_model_filter.html#a1d977bcb70b7aa975116675c014e8ca6">BlackGui::Models::IModelFilter< BlackMisc::Aviation::CAircraftIcaoCodeList >::m_valid</a></div><div class="ttdeci">bool m_valid</div><div class="ttdoc">is filter valid?</div><div class="ttdef"><b>Definition:</b> <a href="modelfilter_8h_source.html#l00066">modelfilter.h:66</a></div></div>
<div class="ttc" id="aclass_black_gui_1_1_models_1_1_i_model_filter_html_a57199968be4367ae85091e5f05ca2a92"><div class="ttname"><a href="class_black_gui_1_1_models_1_1_i_model_filter.html#a57199968be4367ae85091e5f05ca2a92">BlackGui::Models::IModelFilter< BlackMisc::Aviation::CAircraftIcaoCodeList >::isValid</a></div><div class="ttdeci">bool isValid() const</div><div class="ttdoc">Anything to do?</div><div class="ttdef"><b>Definition:</b> <a href="modelfilter_8h_source.html#l00048">modelfilter.h:48</a></div></div>
<div class="ttc" id="aclass_black_gui_1_1_models_1_1_i_model_filter_html_a69b29c73f61f15175d410df9d819b3ef"><div class="ttname"><a href="class_black_gui_1_1_models_1_1_i_model_filter.html#a69b29c73f61f15175d410df9d819b3ef">BlackGui::Models::IModelFilter< BlackMisc::Aviation::CAircraftIcaoCodeList >::stringMatchesFilterExpression</a></div><div class="ttdeci">bool stringMatchesFilterExpression(const QString &value, const QString &filter, Qt::CaseSensitivity cs=Qt::CaseInsensitive) const</div><div class="ttdoc">Standard string search supporting wildcard at begin and end: "*xyz", "abc*".</div><div class="ttdef"><b>Definition:</b> <a href="modelfilter_8cpp_source.html#l00061">modelfilter.cpp:13</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_aviation_1_1_c_aircraft_icao_code_html"><div class="ttname"><a href="class_black_misc_1_1_aviation_1_1_c_aircraft_icao_code.html">BlackMisc::Aviation::CAircraftIcaoCode</a></div><div class="ttdoc">Value object for ICAO classification.</div><div class="ttdef"><b>Definition:</b> <a href="aircrafticaocode_8h_source.html#l00028">aircrafticaocode.h:31</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_aviation_1_1_c_aircraft_icao_code_list_html"><div class="ttname"><a href="class_black_misc_1_1_aviation_1_1_c_aircraft_icao_code_list.html">BlackMisc::Aviation::CAircraftIcaoCodeList</a></div><div class="ttdoc">Value object encapsulating a list of ICAO codes.</div><div class="ttdef"><b>Definition:</b> <a href="aircrafticaocodelist_8h_source.html#l00027">aircrafticaocodelist.h:31</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_sequence_html_a3b1a591f9338825e0364e940f8e06cb0"><div class="ttname"><a href="class_black_misc_1_1_c_sequence.html#a3b1a591f9338825e0364e940f8e06cb0">BlackMisc::CSequence::push_back</a></div><div class="ttdeci">void push_back(const T &value)</div><div class="ttdoc">Appends an element at the end of the sequence.</div><div class="ttdef"><b>Definition:</b> <a href="sequence_8h_source.html#l00306">sequence.h:306</a></div></div>
<div class="ttc" id="anamespace_black_gui_1_1_models_html"><div class="ttname"><a href="namespace_black_gui_1_1_models.html">BlackGui::Models</a></div><div class="ttdoc">Models to be used with views, mainly QTableView.</div></div>
<div class="ttc" id="aqstring_html"><div class="ttname"><a href="http://doc.qt.io/qt-5/qstring.html">QString</a></div></div>
<div class="ttc" id="aqstring_html_contains-1"><div class="ttname"><a href="http://doc.qt.io/qt-5/qstring.html#contains-1">QString::contains</a></div><div class="ttdeci">bool contains(QChar ch, Qt::CaseSensitivity cs) const const</div></div>
<div class="ttc" id="aqstring_html_isEmpty"><div class="ttname"><a href="http://doc.qt.io/qt-5/qstring.html#isEmpty">QString::isEmpty</a></div><div class="ttdeci">bool isEmpty() const const</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Dec 3 2023 18:38:38 for swift by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>