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 pathapplicationinfolist_8cpp_source.html
227 lines (225 loc) · 41.4 KB
/
applicationinfolist_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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
<!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/blackmisc/applicationinfolist.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_9687d2aaac47be79d7525830e55feee8.html">blackmisc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">applicationinfolist.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) 2016 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="applicationinfolist_8h.html">blackmisc/applicationinfolist.h</a>"</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="preprocessor">#include "<a class="code" href="swiftdirectories_8h.html">blackmisc/swiftdirectories.h</a>"</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="preprocessor">#include "<a class="code" href="directoryutils_8h.html">blackmisc/directoryutils.h</a>"</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="preprocessor">#include "<a class="code" href="stringutils_8h.html">blackmisc/stringutils.h</a>"</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="buildconfig_8h.html">blackconfig/buildconfig.h</a>"</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>  </div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="keyword">using namespace </span>BlackConfig;</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>  </div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <a class="code" href="sequence_8h.html#aa5c56a5a1e172e6a037b5f827f510703">BLACK_DEFINE_SEQUENCE_MIXINS</a>(<a class="code" href="namespace_black_misc.html">BlackMisc</a>, CApplicationInfo, CApplicationInfoList)</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>  </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">namespace </span><a class="code" href="namespace_black_misc.html">BlackMisc</a></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> {</div>
<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_black_misc_1_1_c_application_info_list.html#a3263c59fea59e799a427a497aba98d77"> 16</a></span>  CApplicationInfoList::CApplicationInfoList() {}</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_black_misc_1_1_c_application_info_list.html#a35896b38f505788f44c031b64b233cd9"> 18</a></span>  CApplicationInfoList::CApplicationInfoList(<span class="keyword">const</span> <a class="code" href="class_black_misc_1_1_c_sequence.html">CSequence<CApplicationInfo></a> &other) : <a class="code" href="class_black_misc_1_1_c_sequence.html">CSequence</a><<a class="code" href="class_black_misc_1_1_c_application_info.html">CApplicationInfo</a>>(other)</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>  {}</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="class_black_misc_1_1_c_application_info_list.html#adc42031c30191247d4da1a7df082572e"> 21</a></span>  <span class="keywordtype">bool</span> <a class="code" href="class_black_misc_1_1_c_application_info_list.html#adc42031c30191247d4da1a7df082572e">CApplicationInfoList::containsApplication</a>(<a class="code" href="class_black_misc_1_1_c_application_info.html#a2896486ef3ddab54fbf95bad3c8657fd">CApplicationInfo::Application</a> application)<span class="keyword"> const</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="keyword"> </span>{</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>  <span class="keywordflow">return</span> this-><a class="code" href="class_black_misc_1_1_c_range_base.html#af5bf8c279385f77b263ba8577bbff0b8">contains</a>(&<a class="code" href="class_black_misc_1_1_c_application_info.html#a5669a1ca6b71c380cd9d14a4d22bea67">CApplicationInfo::getApplication</a>, application);</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  }</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_black_misc_1_1_c_application_info_list.html#a1e9acb6b7defc75970ba9c837354dd1c"> 26</a></span>  <span class="keywordtype">int</span> <a class="code" href="class_black_misc_1_1_c_application_info_list.html#a1e9acb6b7defc75970ba9c837354dd1c">CApplicationInfoList::removeApplication</a>(<a class="code" href="class_black_misc_1_1_c_application_info.html#a2896486ef3ddab54fbf95bad3c8657fd">CApplicationInfo::Application</a> application)</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  {</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  <span class="keywordflow">return</span> this-><a class="code" href="class_black_misc_1_1_c_sequence.html#a716bce1701520bdf6eecd18bc9cdcbd8">removeIf</a>(&<a class="code" href="class_black_misc_1_1_c_application_info.html#a5669a1ca6b71c380cd9d14a4d22bea67">CApplicationInfo::getApplication</a>, application);</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>  }</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_black_misc_1_1_c_application_info_list.html#a29b8de3ee434b611bd1b8dfc92803384"> 31</a></span>  <a class="codeRef" href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> <a class="code" href="class_black_misc_1_1_c_application_info_list.html#a29b8de3ee434b611bd1b8dfc92803384">CApplicationInfoList::processNames</a>()<span class="keyword"> const</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword"> </span>{</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="codeRef" href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a> names;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  names.<a class="codeRef" href="http://doc.qt.io/qt-5/qlist.html#reserve">reserve</a>(<a class="code" href="class_black_misc_1_1_c_sequence.html#a26e7c3866dc7a18974b18d505346df35">size</a>());</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="class_black_misc_1_1_c_application_info.html">CApplicationInfo</a> &info : *<span class="keyword">this</span>)</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  {</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  names.<a class="codeRef" href="http://doc.qt.io/qt-5/qlist.html#append">append</a>(info.<a class="code" href="class_black_misc_1_1_c_application_info.html#adb47f617b963f05f0e07784da9a76686">getProcessInfo</a>().<a class="code" href="class_black_misc_1_1_c_process_info.html#a0f7033bfff207d23046392f31587d983">processName</a>());</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  }</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">return</span> names;</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>  </div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_black_misc_1_1_c_application_info_list.html#a5f7c0b8f2442ed52a4f4eb1472924461"> 42</a></span>  <span class="keywordtype">int</span> <a class="code" href="class_black_misc_1_1_c_application_info_list.html#a5f7c0b8f2442ed52a4f4eb1472924461">CApplicationInfoList::otherSwiftVersionsFromDataDirectories</a>(<span class="keywordtype">bool</span> reinit)</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  this-><a class="code" href="class_black_misc_1_1_c_sequence.html#ad47999b337703232f06ad8891e4bd16b">clear</a>();</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">const</span> <a class="codeRef" href="http://doc.qt.io/qt-5/qmap.html">QMap<QString, CApplicationInfo></a> otherVersions = reinit ?</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="class_black_misc_1_1_c_application_info_list.html#a39c08a6576747bccecd7030a43b2c5e5">currentApplicationDataDirectoryMapWithoutCurrentVersion</a>() :</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="class_black_misc_1_1_c_application_info_list.html#ac03280b4fe7a1723b03ec2b5c28948a5">applicationDataDirectoryMapWithoutCurrentVersion</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">for</span> (<span class="keyword">const</span> <a class="code" href="class_black_misc_1_1_c_application_info.html">CApplicationInfo</a> &info : otherVersions)</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>  this-><a class="code" href="class_black_misc_1_1_c_sequence.html#a3b1a591f9338825e0364e940f8e06cb0">push_back</a>(info);</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">return</span> this-><a class="code" href="class_black_misc_1_1_c_sequence.html#a26e7c3866dc7a18974b18d505346df35">size</a>();</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>  </div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_black_misc_1_1_c_application_info_list.html#a6ed32b08a6a2df426e03a0855960f929"> 56</a></span>  <a class="code" href="class_black_misc_1_1_c_application_info_list.html">CApplicationInfoList</a> <a class="code" href="class_black_misc_1_1_c_application_info_list.html#a6ed32b08a6a2df426e03a0855960f929">CApplicationInfoList::fromOtherSwiftVersionsFromDataDirectories</a>(<span class="keywordtype">bool</span> reinit)</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="class_black_misc_1_1_c_application_info_list.html">CApplicationInfoList</a> il;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  il.<a class="code" href="class_black_misc_1_1_c_application_info_list.html#a5f7c0b8f2442ed52a4f4eb1472924461">otherSwiftVersionsFromDataDirectories</a>(reinit);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">return</span> il;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</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"><a class="line" href="class_black_misc_1_1_c_application_info_list.html#ac03280b4fe7a1723b03ec2b5c28948a5"> 63</a></span>  <span class="keyword">const</span> <a class="codeRef" href="http://doc.qt.io/qt-5/qmap.html">QMap<QString, CApplicationInfo></a> &<a class="code" href="class_black_misc_1_1_c_application_info_list.html#ac03280b4fe7a1723b03ec2b5c28948a5">CApplicationInfoList::applicationDataDirectoryMapWithoutCurrentVersion</a>()</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="keyword">static</span> <span class="keyword">const</span> <a class="codeRef" href="http://doc.qt.io/qt-5/qmap.html">QMap<QString, CApplicationInfo></a> directories = <a class="code" href="class_black_misc_1_1_c_application_info_list.html#a39c08a6576747bccecd7030a43b2c5e5">currentApplicationDataDirectoryMapWithoutCurrentVersion</a>();</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">return</span> directories;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="class_black_misc_1_1_c_application_info_list.html#a39c08a6576747bccecd7030a43b2c5e5"> 69</a></span>  <a class="codeRef" href="http://doc.qt.io/qt-5/qmap.html">QMap<QString, CApplicationInfo></a> <a class="code" href="class_black_misc_1_1_c_application_info_list.html#a39c08a6576747bccecd7030a43b2c5e5">CApplicationInfoList::currentApplicationDataDirectoryMapWithoutCurrentVersion</a>()</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>  <a class="codeRef" href="http://doc.qt.io/qt-5/qmap.html">QMap<QString, CApplicationInfo></a> directories;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="codeRef" href="http://doc.qt.io/qt-5/qfileinfo.html">QFileInfo</a> &info : <a class="code" href="class_black_misc_1_1_c_swift_directories.html#a2b27c128815b492381fdadbf7f853132">CSwiftDirectories::currentApplicationDataDirectories</a>())</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  {</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="comment">// check for myself (the running swift)</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">if</span> (<a class="code" href="namespace_black_misc.html#a96145627481e59d6ea3f75ef31a6a5fe">caseInsensitiveStringCompare</a>(info.filePath(), <a class="code" href="class_black_misc_1_1_c_swift_directories.html#aca9b4ad381a55760fe1dde1d49e56ba4">CSwiftDirectories::normalizedApplicationDataDirectory</a>())) { <span class="keywordflow">continue</span>; }</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// the application info will be written by each swift application started</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="comment">// so the application type will always contain that application</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">const</span> <a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html">QString</a> appInfoFile = <a class="code" href="class_black_misc_1_1_c_file_utils.html#a1b130394cb8ec6ca700057089bf3476c">CFileUtils::appendFilePaths</a>(info.filePath(), <a class="code" href="class_black_misc_1_1_c_application_info.html#ad45a12507e519db2407f631cc551c16f">CApplicationInfo::fileName</a>());</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">const</span> <a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html">QString</a> appInfoJson = <a class="code" href="class_black_misc_1_1_c_file_utils.html#a1fa7111a3b58413ccb555150091d9452">CFileUtils::readFileToString</a>(appInfoFile);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <a class="code" href="class_black_misc_1_1_c_application_info.html">CApplicationInfo</a> appInfo;</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">if</span> (appInfoJson.<a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html#isEmpty">isEmpty</a>())</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  {</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// no JSON means the app no longer exists</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keyword">const</span> <a class="codeRef" href="http://doc.qt.io/qt-5/qstring.html">QString</a> exeDir = <a class="code" href="class_black_misc_1_1_c_directory_utils.html#a0630a016c8a44146f2e9c65fc3d7489c">CDirectoryUtils::decodeNormalizedDirectory</a>(info.filePath());</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  appInfo.<a class="code" href="class_black_misc_1_1_c_application_info.html#a8d71729e42038e794de20b8c82db3ebc">setExecutablePath</a>(exeDir);</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  appInfo = <a class="code" href="class_black_misc_1_1_mixin_1_1_json_by_meta_class.html#a2498673ac1614bf077c8fa98bfb99f20">CApplicationInfo::fromJson</a>(appInfoJson);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  }</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  appInfo.<a class="code" href="class_black_misc_1_1_c_application_info.html#a3e603882bff9e7e9cffbd4f6cfc5bcf8">setApplicationDataDirectory</a>(info.filePath());</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  directories.<a class="codeRef" href="http://doc.qt.io/qt-5/qmap.html#insert">insert</a>(info.filePath(), appInfo);</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  }</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">return</span> directories;</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  </div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_black_misc_1_1_c_application_info_list.html#a9264f3fd92ef5699a686824492f503fb"> 99</a></span>  <span class="keywordtype">bool</span> <a class="code" href="class_black_misc_1_1_c_application_info_list.html#a9264f3fd92ef5699a686824492f503fb">CApplicationInfoList::hasOtherSwiftDataDirectories</a>()</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  {</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> !<a class="code" href="class_black_misc_1_1_c_application_info_list.html#ac03280b4fe7a1723b03ec2b5c28948a5">applicationDataDirectoryMapWithoutCurrentVersion</a>().isEmpty();</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> } <span class="comment">// ns</span></div>
<div class="ttc" id="aapplicationinfolist_8h_html"><div class="ttname"><a href="applicationinfolist_8h.html">applicationinfolist.h</a></div></div>
<div class="ttc" id="abuildconfig_8h_html"><div class="ttname"><a href="buildconfig_8h.html">buildconfig.h</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_html"><div class="ttname"><a href="class_black_misc_1_1_c_application_info.html">BlackMisc::CApplicationInfo</a></div><div class="ttdoc">Description of a swift application.</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfo_8h_source.html#l00024">applicationinfo.h:25</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_html_a2896486ef3ddab54fbf95bad3c8657fd"><div class="ttname"><a href="class_black_misc_1_1_c_application_info.html#a2896486ef3ddab54fbf95bad3c8657fd">BlackMisc::CApplicationInfo::Application</a></div><div class="ttdeci">Application</div><div class="ttdoc">Enumeration of application roles.</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfo_8h_source.html#l00028">applicationinfo.h:29</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_html_a3e603882bff9e7e9cffbd4f6cfc5bcf8"><div class="ttname"><a href="class_black_misc_1_1_c_application_info.html#a3e603882bff9e7e9cffbd4f6cfc5bcf8">BlackMisc::CApplicationInfo::setApplicationDataDirectory</a></div><div class="ttdeci">void setApplicationDataDirectory(const QString &appDataDir)</div><div class="ttdoc">Set application data dir.</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfo_8h_source.html#l00082">applicationinfo.h:82</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_html_a5669a1ca6b71c380cd9d14a4d22bea67"><div class="ttname"><a href="class_black_misc_1_1_c_application_info.html#a5669a1ca6b71c380cd9d14a4d22bea67">BlackMisc::CApplicationInfo::getApplication</a></div><div class="ttdeci">Application getApplication() const</div><div class="ttdoc">Get application.</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfo_8h_source.html#l00064">applicationinfo.h:64</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_html_a8d71729e42038e794de20b8c82db3ebc"><div class="ttname"><a href="class_black_misc_1_1_c_application_info.html#a8d71729e42038e794de20b8c82db3ebc">BlackMisc::CApplicationInfo::setExecutablePath</a></div><div class="ttdeci">void setExecutablePath(const QString &exePath)</div><div class="ttdoc">Set executable path.</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfo_8h_source.html#l00070">applicationinfo.h:70</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_html_ad45a12507e519db2407f631cc551c16f"><div class="ttname"><a href="class_black_misc_1_1_c_application_info.html#ad45a12507e519db2407f631cc551c16f">BlackMisc::CApplicationInfo::fileName</a></div><div class="ttdeci">static const QString & fileName()</div><div class="ttdoc">File name of the application info file.</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfo_8cpp_source.html#l00203">applicationinfo.cpp:203</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_html_adb47f617b963f05f0e07784da9a76686"><div class="ttname"><a href="class_black_misc_1_1_c_application_info.html#adb47f617b963f05f0e07784da9a76686">BlackMisc::CApplicationInfo::getProcessInfo</a></div><div class="ttdeci">const CProcessInfo & getProcessInfo() const</div><div class="ttdoc">Get process info.</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfo_8h_source.html#l00098">applicationinfo.h:98</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_list_html"><div class="ttname"><a href="class_black_misc_1_1_c_application_info_list.html">BlackMisc::CApplicationInfoList</a></div><div class="ttdoc">List of swift application descriptions.</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfolist_8h_source.html#l00020">applicationinfolist.h:23</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_list_html_a1e9acb6b7defc75970ba9c837354dd1c"><div class="ttname"><a href="class_black_misc_1_1_c_application_info_list.html#a1e9acb6b7defc75970ba9c837354dd1c">BlackMisc::CApplicationInfoList::removeApplication</a></div><div class="ttdeci">int removeApplication(CApplicationInfo::Application application)</div><div class="ttdoc">Remove given application.</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfolist_8cpp_source.html#l00026">applicationinfolist.cpp:26</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_list_html_a29b8de3ee434b611bd1b8dfc92803384"><div class="ttname"><a href="class_black_misc_1_1_c_application_info_list.html#a29b8de3ee434b611bd1b8dfc92803384">BlackMisc::CApplicationInfoList::processNames</a></div><div class="ttdeci">QStringList processNames() const</div><div class="ttdoc">Running application names.</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfolist_8cpp_source.html#l00031">applicationinfolist.cpp:31</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_list_html_a39c08a6576747bccecd7030a43b2c5e5"><div class="ttname"><a href="class_black_misc_1_1_c_application_info_list.html#a39c08a6576747bccecd7030a43b2c5e5">BlackMisc::CApplicationInfoList::currentApplicationDataDirectoryMapWithoutCurrentVersion</a></div><div class="ttdeci">static QMap< QString, CApplicationInfo > currentApplicationDataDirectoryMapWithoutCurrentVersion()</div><div class="ttdoc">swift application data sub directories with info if available</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfolist_8cpp_source.html#l00069">applicationinfolist.cpp:69</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_list_html_a5f7c0b8f2442ed52a4f4eb1472924461"><div class="ttname"><a href="class_black_misc_1_1_c_application_info_list.html#a5f7c0b8f2442ed52a4f4eb1472924461">BlackMisc::CApplicationInfoList::otherSwiftVersionsFromDataDirectories</a></div><div class="ttdeci">int otherSwiftVersionsFromDataDirectories(bool reinit=false)</div><div class="ttdoc">Fill from cache data directories.</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfolist_8cpp_source.html#l00042">applicationinfolist.cpp:42</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_list_html_a6ed32b08a6a2df426e03a0855960f929"><div class="ttname"><a href="class_black_misc_1_1_c_application_info_list.html#a6ed32b08a6a2df426e03a0855960f929">BlackMisc::CApplicationInfoList::fromOtherSwiftVersionsFromDataDirectories</a></div><div class="ttdeci">static CApplicationInfoList fromOtherSwiftVersionsFromDataDirectories(bool reinit=false)</div><div class="ttdoc">Filled from cache data directories.</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfolist_8cpp_source.html#l00056">applicationinfolist.cpp:56</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_list_html_a9264f3fd92ef5699a686824492f503fb"><div class="ttname"><a href="class_black_misc_1_1_c_application_info_list.html#a9264f3fd92ef5699a686824492f503fb">BlackMisc::CApplicationInfoList::hasOtherSwiftDataDirectories</a></div><div class="ttdeci">static bool hasOtherSwiftDataDirectories()</div><div class="ttdoc">Other swift data directories.</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfolist_8cpp_source.html#l00099">applicationinfolist.cpp:99</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_list_html_ac03280b4fe7a1723b03ec2b5c28948a5"><div class="ttname"><a href="class_black_misc_1_1_c_application_info_list.html#ac03280b4fe7a1723b03ec2b5c28948a5">BlackMisc::CApplicationInfoList::applicationDataDirectoryMapWithoutCurrentVersion</a></div><div class="ttdeci">static const QMap< QString, CApplicationInfo > & applicationDataDirectoryMapWithoutCurrentVersion()</div><div class="ttdoc">swift application data sub directories with info if available</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfolist_8cpp_source.html#l00063">applicationinfolist.cpp:63</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_application_info_list_html_adc42031c30191247d4da1a7df082572e"><div class="ttname"><a href="class_black_misc_1_1_c_application_info_list.html#adc42031c30191247d4da1a7df082572e">BlackMisc::CApplicationInfoList::containsApplication</a></div><div class="ttdeci">bool containsApplication(CApplicationInfo::Application application) const</div><div class="ttdoc">List containing entry for CApplicationInfo::Application ?</div><div class="ttdef"><b>Definition:</b> <a href="applicationinfolist_8cpp_source.html#l00021">applicationinfolist.cpp:21</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_directory_utils_html_a0630a016c8a44146f2e9c65fc3d7489c"><div class="ttname"><a href="class_black_misc_1_1_c_directory_utils.html#a0630a016c8a44146f2e9c65fc3d7489c">BlackMisc::CDirectoryUtils::decodeNormalizedDirectory</a></div><div class="ttdeci">static QString decodeNormalizedDirectory(const QString &directory)</div><div class="ttdoc">Virtually the inverse operation of CDirectoryUtils::normalizedApplicationDirectory.</div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_file_utils_html_a1b130394cb8ec6ca700057089bf3476c"><div class="ttname"><a href="class_black_misc_1_1_c_file_utils.html#a1b130394cb8ec6ca700057089bf3476c">BlackMisc::CFileUtils::appendFilePaths</a></div><div class="ttdeci">static QString appendFilePaths(const QString &path1, const QString &path2)</div><div class="ttdoc">Append file paths.</div><div class="ttdef"><b>Definition:</b> <a href="fileutils_8cpp_source.html#l00093">fileutils.cpp:93</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_file_utils_html_a1fa7111a3b58413ccb555150091d9452"><div class="ttname"><a href="class_black_misc_1_1_c_file_utils.html#a1fa7111a3b58413ccb555150091d9452">BlackMisc::CFileUtils::readFileToString</a></div><div class="ttdeci">static QString readFileToString(const QString &fileNameAndPath)</div><div class="ttdoc">Read file into string.</div><div class="ttdef"><b>Definition:</b> <a href="fileutils_8cpp_source.html#l00066">fileutils.cpp:66</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_process_info_html_a0f7033bfff207d23046392f31587d983"><div class="ttname"><a href="class_black_misc_1_1_c_process_info.html#a0f7033bfff207d23046392f31587d983">BlackMisc::CProcessInfo::processName</a></div><div class="ttdeci">const QString & processName() const</div><div class="ttdoc">Get the process name.</div><div class="ttdef"><b>Definition:</b> <a href="processinfo_8h_source.html#l00045">processinfo.h:45</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_range_base_html_af5bf8c279385f77b263ba8577bbff0b8"><div class="ttname"><a href="class_black_misc_1_1_c_range_base.html#af5bf8c279385f77b263ba8577bbff0b8">BlackMisc::CRangeBase::contains</a></div><div class="ttdeci">bool contains(const T &object) const</div><div class="ttdoc">Return true if there is an element equal to given object. Uses the most efficient implementation avai...</div><div class="ttdef"><b>Definition:</b> <a href="range_8h_source.html#l00101">range.h:101</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_sequence_html"><div class="ttname"><a href="class_black_misc_1_1_c_sequence.html">BlackMisc::CSequence< CApplicationInfo ></a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_sequence_html_a26e7c3866dc7a18974b18d505346df35"><div class="ttname"><a href="class_black_misc_1_1_c_sequence.html#a26e7c3866dc7a18974b18d505346df35">BlackMisc::CSequence< CApplicationInfo >::size</a></div><div class="ttdeci">size_type size() const</div><div class="ttdoc">Returns number of elements in the sequence.</div><div class="ttdef"><b>Definition:</b> <a href="sequence_8h_source.html#l00274">sequence.h:274</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< CApplicationInfo >::push_back</a></div><div class="ttdeci">void push_back(const CApplicationInfo &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="aclass_black_misc_1_1_c_sequence_html_a716bce1701520bdf6eecd18bc9cdcbd8"><div class="ttname"><a href="class_black_misc_1_1_c_sequence.html#a716bce1701520bdf6eecd18bc9cdcbd8">BlackMisc::CSequence< CApplicationInfo >::removeIf</a></div><div class="ttdeci">int removeIf(Predicate p)</div><div class="ttdoc">Remove elements for which a given predicate returns true.</div><div class="ttdef"><b>Definition:</b> <a href="sequence_8h_source.html#l00447">sequence.h:447</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_sequence_html_ad47999b337703232f06ad8891e4bd16b"><div class="ttname"><a href="class_black_misc_1_1_c_sequence.html#ad47999b337703232f06ad8891e4bd16b">BlackMisc::CSequence< CApplicationInfo >::clear</a></div><div class="ttdeci">void clear()</div><div class="ttdoc">Removes all elements in the sequence.</div><div class="ttdef"><b>Definition:</b> <a href="sequence_8h_source.html#l00289">sequence.h:289</a></div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_swift_directories_html_a2b27c128815b492381fdadbf7f853132"><div class="ttname"><a href="class_black_misc_1_1_c_swift_directories.html#a2b27c128815b492381fdadbf7f853132">BlackMisc::CSwiftDirectories::currentApplicationDataDirectories</a></div><div class="ttdeci">static QFileInfoList currentApplicationDataDirectories()</div><div class="ttdoc">swift application data sub directories</div></div>
<div class="ttc" id="aclass_black_misc_1_1_c_swift_directories_html_aca9b4ad381a55760fe1dde1d49e56ba4"><div class="ttname"><a href="class_black_misc_1_1_c_swift_directories.html#aca9b4ad381a55760fe1dde1d49e56ba4">BlackMisc::CSwiftDirectories::normalizedApplicationDataDirectory</a></div><div class="ttdeci">static const QString & normalizedApplicationDataDirectory()</div><div class="ttdoc">swift application data directory for one specific installation (a version)</div></div>
<div class="ttc" id="aclass_black_misc_1_1_mixin_1_1_json_by_meta_class_html_a2498673ac1614bf077c8fa98bfb99f20"><div class="ttname"><a href="class_black_misc_1_1_mixin_1_1_json_by_meta_class.html#a2498673ac1614bf077c8fa98bfb99f20">BlackMisc::Mixin::JsonByMetaClass::fromJson</a></div><div class="ttdeci">static DerivedObj fromJson(const QJsonObject &json)</div><div class="ttdoc">Get object from QJsonObject.</div><div class="ttdef"><b>Definition:</b> <a href="mixinjson_8h_source.html#l00182">mixinjson.h:182</a></div></div>
<div class="ttc" id="adirectoryutils_8h_html"><div class="ttname"><a href="directoryutils_8h.html">directoryutils.h</a></div></div>
<div class="ttc" id="anamespace_black_misc_html"><div class="ttname"><a href="namespace_black_misc.html">BlackMisc</a></div><div class="ttdoc">Base and utility classes available in all other projects.</div><div class="ttdef"><b>Definition:</b> <a href="aircraftmatcher_8h_source.html#l00028">aircraftmatcher.h:29</a></div></div>
<div class="ttc" id="anamespace_black_misc_html_a96145627481e59d6ea3f75ef31a6a5fe"><div class="ttname"><a href="namespace_black_misc.html#a96145627481e59d6ea3f75ef31a6a5fe">BlackMisc::caseInsensitiveStringCompare</a></div><div class="ttdeci">BLACKMISC_EXPORT bool caseInsensitiveStringCompare(const QString &c1, const QString &c2)</div><div class="ttdoc">Case insensitive string compare.</div></div>
<div class="ttc" id="aqfileinfo_html"><div class="ttname"><a href="http://doc.qt.io/qt-5/qfileinfo.html">QFileInfo</a></div></div>
<div class="ttc" id="aqlist_html_append"><div class="ttname"><a href="http://doc.qt.io/qt-5/qlist.html#append">QList::append</a></div><div class="ttdeci">void append(const T &value)</div></div>
<div class="ttc" id="aqlist_html_reserve"><div class="ttname"><a href="http://doc.qt.io/qt-5/qlist.html#reserve">QList::reserve</a></div><div class="ttdeci">void reserve(int alloc)</div></div>
<div class="ttc" id="aqmap_html"><div class="ttname"><a href="http://doc.qt.io/qt-5/qmap.html">QMap</a></div></div>
<div class="ttc" id="aqmap_html_insert"><div class="ttname"><a href="http://doc.qt.io/qt-5/qmap.html#insert">QMap::insert</a></div><div class="ttdeci">QMap::iterator insert(const Key &key, const T &value)</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_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 class="ttc" id="aqstringlist_html"><div class="ttname"><a href="http://doc.qt.io/qt-5/qstringlist.html">QStringList</a></div></div>
<div class="ttc" id="asequence_8h_html_aa5c56a5a1e172e6a037b5f827f510703"><div class="ttname"><a href="sequence_8h.html#aa5c56a5a1e172e6a037b5f827f510703">BLACK_DEFINE_SEQUENCE_MIXINS</a></div><div class="ttdeci">#define BLACK_DEFINE_SEQUENCE_MIXINS(Namespace, T, List)</div><div class="ttdoc">Explicit template definition of mixins for a CSequence subclass.</div><div class="ttdef"><b>Definition:</b> <a href="sequence_8h_source.html#l00061">sequence.h:61</a></div></div>
<div class="ttc" id="astringutils_8h_html"><div class="ttname"><a href="stringutils_8h.html">stringutils.h</a></div></div>
<div class="ttc" id="aswiftdirectories_8h_html"><div class="ttname"><a href="swiftdirectories_8h.html">swiftdirectories.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Dec 3 2023 18:38:39 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>