Browse Source

Clean Up and Documentation

- Writing some documentation and updating doxygen
- Deprecating some old unused code
- Replaced QMap with QHash in most places for improved performance
Felix Turo 3 years ago
parent
commit
83c20cc4fd
100 changed files with 2170 additions and 1423 deletions
  1. 0 2
      CMakeLists.txt
  2. 0 4
      assets/templates.qrc
  3. 0 0
      deprecated/adatabasesetup.cpp
  4. 0 0
      deprecated/adatabasesetup.h
  5. 0 0
      deprecated/aircraft.csv
  6. 0 0
      deprecated/airports.csv
  7. 0 0
      deprecated/changelog.csv
  8. 0 0
      deprecated/currencies.csv
  9. 0 0
      deprecated/oldnewflight.ui
  10. 0 0
      deprecated/oldnewflightdialog.cpp
  11. 0 0
      deprecated/oldnewflightdialog.h
  12. 0 0
      deprecated/sample_flights.csv
  13. 0 0
      deprecated/sample_pilots.csv
  14. 0 0
      deprecated/sample_tails.csv
  15. 7 9
      docs/html/aaircraftentry_8h_source.html
  16. 174 130
      docs/html/acalc_8h_source.html
  17. 133 0
      docs/html/acompletiondata_8h_source.html
  18. 8 10
      docs/html/acurrencyentry_8h_source.html
  19. 182 161
      docs/html/adatabase_8h_source.html
  20. 6 8
      docs/html/adatabasetypes_8h_source.html
  21. 30 20
      docs/html/adate_8h_source.html
  22. 15 10
      docs/html/adatetime_8h_source.html
  23. 14 13
      docs/html/adbsetup_8h_source.html
  24. 6 8
      docs/html/adownload_8h_source.html
  25. 30 37
      docs/html/aentry_8h_source.html
  26. 10 12
      docs/html/aflightentry_8h_source.html
  27. 9 11
      docs/html/ahash_8h_source.html
  28. 67 68
      docs/html/aircraftwidget_8h_source.html
  29. 10 12
      docs/html/ajson_8h_source.html
  30. 9 11
      docs/html/alog_8h_source.html
  31. 46 41
      docs/html/annotated.html
  32. 13 3
      docs/html/annotated_dup.js
  33. 7 9
      docs/html/apilotentry_8h_source.html
  34. 8 8
      docs/html/areadcsv_8h_source.html
  35. 6 8
      docs/html/arunguard_8h_source.html
  36. 60 67
      docs/html/asettings_8h_source.html
  37. 9 11
      docs/html/astandardpaths_8h_source.html
  38. 5 7
      docs/html/astat_8h_source.html
  39. 53 45
      docs/html/astyle_8h_source.html
  40. 7 9
      docs/html/atailentry_8h_source.html
  41. 130 104
      docs/html/atime_8h_source.html
  42. 7 9
      docs/html/atimer_8h_source.html
  43. 7 9
      docs/html/atranslator_8h_source.html
  44. 47 50
      docs/html/backupwidget_8h_source.html
  45. 115 0
      docs/html/class_a_completion_data-members.html
  46. 163 0
      docs/html/class_a_completion_data.html
  47. 16 0
      docs/html/class_a_completion_data.js
  48. 22 23
      docs/html/class_a_database-members.html
  49. 60 39
      docs/html/class_a_database.html
  50. 8 7
      docs/html/class_a_database.js
  51. 4 6
      docs/html/class_a_database_error-members.html
  52. 5 8
      docs/html/class_a_database_error.html
  53. 12 9
      docs/html/class_a_date-members.html
  54. 30 15
      docs/html/class_a_date.html
  55. 4 6
      docs/html/class_a_download-members.html
  56. 4 6
      docs/html/class_a_download.html
  57. 12 13
      docs/html/class_a_entry-members.html
  58. 14 12
      docs/html/class_a_entry.html
  59. 3 2
      docs/html/class_a_entry.js
  60. 4 6
      docs/html/class_a_file_standard_item-members.html
  61. 4 6
      docs/html/class_a_file_standard_item.html
  62. 15 16
      docs/html/class_a_flight_entry-members.html
  63. 17 15
      docs/html/class_a_flight_entry.html
  64. 4 6
      docs/html/class_a_hash-members.html
  65. 4 6
      docs/html/class_a_hash.html
  66. 4 6
      docs/html/class_a_json-members.html
  67. 4 6
      docs/html/class_a_json.html
  68. 4 6
      docs/html/class_a_run_guard-members.html
  69. 4 6
      docs/html/class_a_run_guard.html
  70. 9 10
      docs/html/class_a_settings-members.html
  71. 43 50
      docs/html/class_a_settings.html
  72. 1 8
      docs/html/class_a_settings.js
  73. 4 6
      docs/html/class_a_standard_paths-members.html
  74. 9 11
      docs/html/class_a_standard_paths.html
  75. 12 13
      docs/html/class_a_style-members.html
  76. 7 6
      docs/html/class_a_style.html
  77. 4 6
      docs/html/class_a_timer-members.html
  78. 4 6
      docs/html/class_a_timer.html
  79. 4 6
      docs/html/class_a_translator-members.html
  80. 4 6
      docs/html/class_a_translator.html
  81. 4 6
      docs/html/class_aircraft_widget-members.html
  82. 5 7
      docs/html/class_aircraft_widget.html
  83. 4 6
      docs/html/class_backup_widget-members.html
  84. 4 6
      docs/html/class_backup_widget.html
  85. 4 6
      docs/html/class_debug_widget-members.html
  86. 4 6
      docs/html/class_debug_widget.html
  87. 4 6
      docs/html/class_first_run_dialog-members.html
  88. 34 7
      docs/html/class_first_run_dialog.html
  89. 4 6
      docs/html/class_home_widget-members.html
  90. 4 6
      docs/html/class_home_widget.html
  91. 5 7
      docs/html/class_logbook_widget-members.html
  92. 7 9
      docs/html/class_logbook_widget.html
  93. 1 1
      docs/html/class_logbook_widget.js
  94. 8 9
      docs/html/class_new_flight_dialog-members.html
  95. 141 33
      docs/html/class_new_flight_dialog.html
  96. 4 3
      docs/html/class_new_flight_dialog.js
  97. 6 8
      docs/html/class_new_pilot_dialog-members.html
  98. 63 9
      docs/html/class_new_pilot_dialog.html
  99. 6 8
      docs/html/class_new_tail_dialog-members.html
  100. 106 15
      docs/html/class_new_tail_dialog.html

+ 0 - 2
CMakeLists.txt

@@ -39,7 +39,6 @@ set(PROJECT_SOURCES
     src/classes/ajson.cpp
     src/classes/ahash.cpp
     src/database/adatabase.cpp
-    src/database/adatabasesetup.cpp
     src/database/adbsetup.cpp
     src/functions/acalc.cpp
     src/functions/alog.cpp
@@ -77,7 +76,6 @@ set(PROJECT_SOURCES
     src/classes/ajson.h
     src/classes/ahash.h
     src/database/adatabase.h
-    src/database/adatabasesetup.h
     src/database/adbsetup.h
     src/database/adatabasetypes.h
     src/functions/acalc.h

+ 0 - 4
assets/templates.qrc

@@ -1,9 +1,5 @@
 <RCC>
     <qresource prefix="/templates">
-        <file>database/templates/aircraft.csv</file>
-        <file>database/templates/airports.csv</file>
-        <file>database/templates/changelog.csv</file>
-        <file>database/templates/currencies.csv</file>
         <file>database/templates/aircraft.json</file>
         <file>database/templates/airports.json</file>
         <file>database/templates/changelog.json</file>

+ 0 - 0
src/database/adatabasesetup.cpp → deprecated/adatabasesetup.cpp


+ 0 - 0
src/database/adatabasesetup.h → deprecated/adatabasesetup.h


+ 0 - 0
assets/database/templates/aircraft.csv → deprecated/aircraft.csv


+ 0 - 0
assets/database/templates/airports.csv → deprecated/airports.csv


+ 0 - 0
assets/database/templates/changelog.csv → deprecated/changelog.csv


+ 0 - 0
assets/database/templates/currencies.csv → deprecated/currencies.csv


+ 0 - 0
src/gui/dialogues/oldnewflight.ui → deprecated/oldnewflight.ui


+ 0 - 0
src/gui/dialogues/oldnewflightdialog.cpp → deprecated/oldnewflightdialog.cpp


+ 0 - 0
src/gui/dialogues/oldnewflightdialog.h → deprecated/oldnewflightdialog.h


+ 0 - 0
assets/database/templates/sample_flights.csv → deprecated/sample_flights.csv


+ 0 - 0
assets/database/templates/sample_pilots.csv → deprecated/sample_pilots.csv


+ 0 - 0
assets/database/templates/sample_tails.csv → deprecated/sample_tails.csv


+ 7 - 9
docs/html/aaircraftentry_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/aaircraftentry.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -120,18 +120,16 @@ $(document).ready(function(){initNavTree('aaircraftentry_8h_source.html',''); in
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <a class="code" href="struct_a_aircraft_entry.html">AAircraftEntry</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="struct_a_aircraft_entry.html">AAircraftEntry</a>&amp; te) = <span class="keywordflow">default</span>;</div>
 <div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;};</div>
 <div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160; </div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif // AAIRCRAFTENTRY_H</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// AAIRCRAFTENTRY_H</span></div>
+<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:33</div></div>
+<div class="ttc" id="astruct_a_aircraft_entry_html"><div class="ttname"><a href="struct_a_aircraft_entry.html">AAircraftEntry</a></div><div class="ttdef"><b>Definition:</b> aaircraftentry.h:24</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="astruct_a_aircraft_entry_html"><div class="ttname"><a href="struct_a_aircraft_entry.html">AAircraftEntry</a></div><div class="ttdef"><b>Definition:</b> aaircraftentry.h:24</div></div>
-<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:40</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>aaircraftentry.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 174 - 130
docs/html/acalc_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/functions/acalc.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -114,140 +114,184 @@ $(document).ready(function(){initNavTree('acalc_8h_source.html',''); initResizab
 <div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;QDateTime&gt;</span></div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;QDebug&gt;</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;src/functions/alog.h&quot;</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="namespace_a_calc.html">   34</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_a_calc.html">ACalc</a> {</div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;QT_DEPRECATED</div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">   43</a></span>&#160;<span class="keyword">inline</span> QTime <a class="code" href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">blocktime</a>(QTime tofb, QTime tonb)</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;{</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    QTime blocktime_out(0, 0); <span class="comment">// initialise return value at midnight</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keywordflow">if</span> (tonb &gt; tofb) { <span class="comment">// landing same day</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        <span class="keywordtype">int</span> blockseconds = tofb.secsTo(tonb);</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        blocktime_out = blocktime_out.addSecs(blockseconds);</div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    } <span class="keywordflow">else</span> { <span class="comment">// landing next day</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        QTime midnight(0, 0);</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <span class="keywordtype">int</span> blockseconds = tofb.secsTo(midnight);</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        blocktime_out = blocktime_out.addSecs(blockseconds);</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        blockseconds = midnight.secsTo(tonb);</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        blocktime_out = blocktime_out.addSecs(blockseconds);</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    }</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keywordflow">return</span> blocktime_out;</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;}</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;QT_DEPRECATED</div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#ac5e39b538ea3663556c820d237f242a2">   65</a></span>&#160;<span class="keyword">inline</span> QString <a class="code" href="namespace_a_calc.html#ac5e39b538ea3663556c820d237f242a2">minutesToString</a>(QString block_minutes)</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;{</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keywordtype">int</span> minutes = block_minutes.toInt();</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    QString hour = QString::number(minutes / 60);</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordflow">if</span> (hour.size() &lt; 2) {</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        hour.prepend(<span class="stringliteral">&quot;0&quot;</span>);</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    }</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    QString minute = QString::number(minutes % 60);</div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keywordflow">if</span> (minute.size() &lt; 2) {</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        minute.prepend(<span class="stringliteral">&quot;0&quot;</span>);</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    }</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    QString block_time = hour + <span class="stringliteral">&quot;:&quot;</span> + minute;</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keywordflow">return</span> block_time;</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;};</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; </div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;QT_DEPRECATED</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="keyword">inline</span> QString <a class="code" href="namespace_a_calc.html#ac5e39b538ea3663556c820d237f242a2">minutesToString</a>(<span class="keywordtype">int</span> block_minutes)</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;{</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    QString hour = QString::number(block_minutes / 60);</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordflow">if</span> (hour.size() &lt; 2) {</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        hour.prepend(<span class="stringliteral">&quot;0&quot;</span>);</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    }</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    QString minute = QString::number(block_minutes % 60);</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keywordflow">if</span> (minute.size() &lt; 2) {</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        minute.prepend(<span class="stringliteral">&quot;0&quot;</span>);</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    }</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    QString <a class="code" href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">blocktime</a> = hour + <span class="stringliteral">&quot;:&quot;</span> + minute;</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">blocktime</a>;</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;};</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;QT_DEPRECATED</div>
-<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#a9568b0d72cd6b0f91f686342bc624e1f">  101</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_a_calc.html#a9568b0d72cd6b0f91f686342bc624e1f">QTimeToMinutes</a>(QTime time)</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;{</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    QString timestring = time.toString(<span class="stringliteral">&quot;hh:mm&quot;</span>);</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">int</span> minutes = (timestring.left(2).toInt()) * 60;</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    minutes += timestring.right(2).toInt();</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keywordflow">return</span> minutes;</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;}</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;QT_DEPRECATED</div>
-<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#a4c829bf747bcd84bf6b1efb3ab0201d1">  115</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_a_calc.html#a4c829bf747bcd84bf6b1efb3ab0201d1">stringToMinutes</a>(QString timestring)</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;{</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordtype">int</span> minutes = (timestring.left(2).toInt()) * 60;</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    minutes += timestring.right(2).toInt();</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    timestring = QString::number(minutes);</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordflow">return</span> minutes;</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;}</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
-<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#a2a540662e22840e4b58e8e760611b4f2">  128</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="namespace_a_calc.html#a2a540662e22840e4b58e8e760611b4f2">radToDeg</a>(<span class="keywordtype">double</span> rad)</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;{</div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <span class="keywordtype">double</span> deg = rad * (180 / M_PI);</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordflow">return</span> deg;</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;}</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; </div>
-<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#acafe6c0bede38e737937e2062fd93c71">  139</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="namespace_a_calc.html#acafe6c0bede38e737937e2062fd93c71">degToRad</a>(<span class="keywordtype">double</span> deg)</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;{</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">double</span> rad = deg * (M_PI / 180);</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="keywordflow">return</span> rad;</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;}</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
-<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#a37c52e8b522b233087b8c4d94f30fca5">  150</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="namespace_a_calc.html#a37c52e8b522b233087b8c4d94f30fca5">radToNauticalMiles</a>(<span class="keywordtype">double</span> rad)</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;{</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordtype">double</span> nm = rad * 3440.06479482;</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordflow">return</span> nm;</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;}</div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160; </div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespace_a_calc.html#a72c6fca35602a24ff8435f86abdc78d7">greatCircleDistance</a>(<span class="keywordtype">double</span> lat1, <span class="keywordtype">double</span> lon1, <span class="keywordtype">double</span> lat2, <span class="keywordtype">double</span> lon2);</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespace_a_calc.html#a2d15bbb67e99d502e2fd730c47854a9f">greatCircleDistanceBetweenAirports</a>(<span class="keyword">const</span> QString &amp;dept, <span class="keyword">const</span> QString &amp;dest);</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;QVector&lt;QVector&lt;double&gt;&gt; <a class="code" href="namespace_a_calc.html#a4a071a5788f00c98834127f9c5721383">intermediatePointsOnGreatCircle</a>(<span class="keywordtype">double</span> lat1,</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;                                                         <span class="keywordtype">double</span> lon1,</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                                                         <span class="keywordtype">double</span> lat2,</div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                                                         <span class="keywordtype">double</span> lon2,</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                                                         <span class="keywordtype">int</span> tblk);</div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespace_a_calc.html#acfa830e821e2f9e20bebffda67d393b1">solarElevation</a>(QDateTime utc_time_point, <span class="keywordtype">double</span> lat, <span class="keywordtype">double</span> lon);</div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160; </div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="keywordtype">int</span> <a class="code" href="namespace_a_calc.html#a55ede99d0f9f6e8a2f3a467859c0f192">calculateNightTime</a>(<span class="keyword">const</span> QString &amp;dept, <span class="keyword">const</span> QString &amp;dest, QDateTime departureTime, <span class="keywordtype">int</span> tblk, <span class="keywordtype">int</span> nightAngle);</div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160; </div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="keywordtype">bool</span> isNight(<span class="keyword">const</span> QString &amp;icao, QDateTime event_time, <span class="keywordtype">int</span> night_angle);</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160; </div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;QString <a class="code" href="namespace_a_calc.html#ad088e5dd93d1938ff97f88032dc0adec">formatTimeInput</a>(QString user_input);</div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160; </div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_a_calc.html#a3f12e1f72eeb5cc1cfe9b7b6df47391c">updateAutoTimes</a>(<span class="keywordtype">int</span> acft_id);</div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160; </div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_a_calc.html#adb7a8a84011affb4173bb59be4449b9d">updateNightTimes</a>();</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;} <span class="comment">// namespace ACalc</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &quot;src/functions/atime.h&quot;</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="namespace_a_calc.html">   35</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_a_calc.html">ACalc</a> {</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;QT_DEPRECATED</div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">   44</a></span>&#160;<span class="keyword">inline</span> QTime <a class="code" href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">blocktime</a>(QTime tofb, QTime tonb)</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;{</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    QTime blocktime_out(0, 0); <span class="comment">// initialise return value at midnight</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160; </div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="keywordflow">if</span> (tonb &gt; tofb) { <span class="comment">// landing same day</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <span class="keywordtype">int</span> blockseconds = tofb.secsTo(tonb);</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        blocktime_out = blocktime_out.addSecs(blockseconds);</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    } <span class="keywordflow">else</span> { <span class="comment">// landing next day</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        QTime midnight(0, 0);</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <span class="keywordtype">int</span> blockseconds = tofb.secsTo(midnight);</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        blocktime_out = blocktime_out.addSecs(blockseconds);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        blockseconds = midnight.secsTo(tonb);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        blocktime_out = blocktime_out.addSecs(blockseconds);</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    }</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="keywordflow">return</span> blocktime_out;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;}</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;QT_DEPRECATED</div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#ac5e39b538ea3663556c820d237f242a2">   66</a></span>&#160;<span class="keyword">inline</span> QString <a class="code" href="namespace_a_calc.html#ac5e39b538ea3663556c820d237f242a2">minutesToString</a>(QString block_minutes)</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;{</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="keywordtype">int</span> minutes = block_minutes.toInt();</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    QString hour = QString::number(minutes / 60);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keywordflow">if</span> (hour.size() &lt; 2) {</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        hour.prepend(<span class="stringliteral">&quot;0&quot;</span>);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    }</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    QString minute = QString::number(minutes % 60);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keywordflow">if</span> (minute.size() &lt; 2) {</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        minute.prepend(<span class="stringliteral">&quot;0&quot;</span>);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    }</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    QString block_time = hour + <span class="stringliteral">&quot;:&quot;</span> + minute;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keywordflow">return</span> block_time;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;};</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;QT_DEPRECATED</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="keyword">inline</span> QString <a class="code" href="namespace_a_calc.html#ac5e39b538ea3663556c820d237f242a2">minutesToString</a>(<span class="keywordtype">int</span> block_minutes)</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;{</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    QString hour = QString::number(block_minutes / 60);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keywordflow">if</span> (hour.size() &lt; 2) {</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        hour.prepend(<span class="stringliteral">&quot;0&quot;</span>);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    }</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    QString minute = QString::number(block_minutes % 60);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordflow">if</span> (minute.size() &lt; 2) {</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        minute.prepend(<span class="stringliteral">&quot;0&quot;</span>);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    }</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    QString <a class="code" href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">blocktime</a> = hour + <span class="stringliteral">&quot;:&quot;</span> + minute;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">blocktime</a>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;};</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;QT_DEPRECATED</div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#a9568b0d72cd6b0f91f686342bc624e1f">  102</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_a_calc.html#a9568b0d72cd6b0f91f686342bc624e1f">QTimeToMinutes</a>(QTime time)</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;{</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    QString timestring = time.toString(<span class="stringliteral">&quot;hh:mm&quot;</span>);</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keywordtype">int</span> minutes = (timestring.left(2).toInt()) * 60;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    minutes += timestring.right(2).toInt();</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordflow">return</span> minutes;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;}</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;QT_DEPRECATED</div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#a4c829bf747bcd84bf6b1efb3ab0201d1">  116</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespace_a_calc.html#a4c829bf747bcd84bf6b1efb3ab0201d1">stringToMinutes</a>(QString timestring)</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;{</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordtype">int</span> minutes = (timestring.left(2).toInt()) * 60;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    minutes += timestring.right(2).toInt();</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    timestring = QString::number(minutes);</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    <span class="keywordflow">return</span> minutes;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;}</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
+<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#a2a540662e22840e4b58e8e760611b4f2">  129</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="namespace_a_calc.html#a2a540662e22840e4b58e8e760611b4f2">radToDeg</a>(<span class="keywordtype">double</span> rad)</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;{</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordtype">double</span> deg = rad * (180 / M_PI);</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordflow">return</span> deg;</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;}</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160; </div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#acafe6c0bede38e737937e2062fd93c71">  140</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="namespace_a_calc.html#acafe6c0bede38e737937e2062fd93c71">degToRad</a>(<span class="keywordtype">double</span> deg)</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;{</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="keywordtype">double</span> rad = deg * (M_PI / 180);</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <span class="keywordflow">return</span> rad;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;}</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
+<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="namespace_a_calc.html#a37c52e8b522b233087b8c4d94f30fca5">  151</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">double</span> <a class="code" href="namespace_a_calc.html#a37c52e8b522b233087b8c4d94f30fca5">radToNauticalMiles</a>(<span class="keywordtype">double</span> rad)</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;{</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keywordtype">double</span> nm = rad * 3440.06479482;</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keywordflow">return</span> nm;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;}</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespace_a_calc.html#a72c6fca35602a24ff8435f86abdc78d7">greatCircleDistance</a>(<span class="keywordtype">double</span> lat1, <span class="keywordtype">double</span> lon1, <span class="keywordtype">double</span> lat2, <span class="keywordtype">double</span> lon2);</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespace_a_calc.html#a2d15bbb67e99d502e2fd730c47854a9f">greatCircleDistanceBetweenAirports</a>(<span class="keyword">const</span> QString &amp;dept, <span class="keyword">const</span> QString &amp;dest);</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160; </div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;QVector&lt;QVector&lt;double&gt;&gt; <a class="code" href="namespace_a_calc.html#a4a071a5788f00c98834127f9c5721383">intermediatePointsOnGreatCircle</a>(<span class="keywordtype">double</span> lat1,</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;                                                         <span class="keywordtype">double</span> lon1,</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;                                                         <span class="keywordtype">double</span> lat2,</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                                                         <span class="keywordtype">double</span> lon2,</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                                                         <span class="keywordtype">int</span> tblk);</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="keywordtype">double</span> <a class="code" href="namespace_a_calc.html#acfa830e821e2f9e20bebffda67d393b1">solarElevation</a>(QDateTime utc_time_point, <span class="keywordtype">double</span> lat, <span class="keywordtype">double</span> lon);</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160; </div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="keywordtype">int</span> <a class="code" href="namespace_a_calc.html#a55ede99d0f9f6e8a2f3a467859c0f192">calculateNightTime</a>(<span class="keyword">const</span> QString &amp;dept, <span class="keyword">const</span> QString &amp;dest, QDateTime departureTime, <span class="keywordtype">int</span> tblk, <span class="keywordtype">int</span> nightAngle);</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160; </div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="keywordtype">bool</span> isNight(<span class="keyword">const</span> QString &amp;icao, QDateTime event_time, <span class="keywordtype">int</span> night_angle);</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160; </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;QString <a class="code" href="namespace_a_calc.html#ad088e5dd93d1938ff97f88032dc0adec">formatTimeInput</a>(QString user_input);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160; </div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_a_calc.html#a3f12e1f72eeb5cc1cfe9b7b6df47391c">updateAutoTimes</a>(<span class="keywordtype">int</span> acft_id);</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160; </div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespace_a_calc.html#adb7a8a84011affb4173bb59be4449b9d">updateNightTimes</a>();</div>
 <div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160; </div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="preprocessor">#endif // ACALC_H</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="struct_a_calc_1_1_night_time_values.html">  232</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_a_calc_1_1_night_time_values.html">NightTimeValues</a>{</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    <a class="code" href="struct_a_calc_1_1_night_time_values.html">NightTimeValues</a>() = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <a class="code" href="struct_a_calc_1_1_night_time_values.html">NightTimeValues</a>(<span class="keyword">const</span> QString&amp; dept, <span class="keyword">const</span> QString&amp; dest, <span class="keyword">const</span> QDateTime&amp; departure_time, <span class="keywordtype">int</span> block_minutes, <span class="keywordtype">int</span> night_angle)</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    {</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        nightMinutes = <a class="code" href="namespace_a_calc.html#a55ede99d0f9f6e8a2f3a467859c0f192">calculateNightTime</a>(dept, dest, departure_time, block_minutes, night_angle);</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160; </div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        nightTime = ATime::qTimefromMinutes(nightMinutes);</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        totalTime = ATime::qTimefromMinutes(block_minutes);</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160; </div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        <span class="keywordflow">if</span> (nightMinutes == 0) { <span class="comment">// all day</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;            takeOffNight = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;            landingNight  = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        }</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> (nightMinutes == block_minutes) { <span class="comment">// all night</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;            takeOffNight = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;            landingNight  = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;        } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;            <span class="keywordflow">if</span>(isNight(dept, departure_time,  night_angle))</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;                takeOffNight = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;                takeOffNight = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;            <span class="keywordflow">if</span>(isNight(dest, departure_time.addSecs(block_minutes * 60), night_angle))</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;                landingNight = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;                landingNight = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        }</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; </div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    };</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    <a class="code" href="struct_a_calc_1_1_night_time_values.html">NightTimeValues</a>(<span class="keywordtype">bool</span> to_night, <span class="keywordtype">bool</span> ldg_night, <span class="keywordtype">int</span> night_minutes, QTime night_time, QTime total_time)</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        : takeOffNight(to_night), landingNight(ldg_night), nightMinutes(night_minutes), nightTime(night_time), totalTime(total_time){};</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    <span class="keywordtype">bool</span> takeOffNight;</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <span class="keywordtype">bool</span> landingNight;</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <span class="keywordtype">int</span> nightMinutes;</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    QTime nightTime;</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    QTime totalTime;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160; </div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">bool</span> isAllDay()      {<span class="keywordflow">return</span> (!takeOffNight  &amp;&amp; !landingNight);}</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">bool</span> isAllNight()    {<span class="keywordflow">return</span> ( takeOffNight  &amp;&amp;  landingNight);}</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">bool</span> isDayToNight()  {<span class="keywordflow">return</span> (!takeOffNight  &amp;&amp;  landingNight);}</div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">bool</span> isNightToDay()  {<span class="keywordflow">return</span> ( takeOffNight  &amp;&amp; !landingNight);}</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;};</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160; </div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160; </div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;} <span class="comment">// namespace ACalc</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160; </div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ACALC_H</span></div>
+<div class="ttc" id="anamespace_a_calc_html"><div class="ttname"><a href="namespace_a_calc.html">ACalc</a></div><div class="ttdoc">The ACalc namespace provides various functions for calculations that are performed outside of the dat...</div><div class="ttdef"><b>Definition:</b> acalc.h:35</div></div>
+<div class="ttc" id="anamespace_a_calc_html_a2a540662e22840e4b58e8e760611b4f2"><div class="ttname"><a href="namespace_a_calc.html#a2a540662e22840e4b58e8e760611b4f2">ACalc::radToDeg</a></div><div class="ttdeci">double radToDeg(double rad)</div><div class="ttdoc">radToDeg Converts radians to degrees</div><div class="ttdef"><b>Definition:</b> acalc.h:129</div></div>
+<div class="ttc" id="anamespace_a_calc_html_a2d15bbb67e99d502e2fd730c47854a9f"><div class="ttname"><a href="namespace_a_calc.html#a2d15bbb67e99d502e2fd730c47854a9f">ACalc::greatCircleDistanceBetweenAirports</a></div><div class="ttdeci">double greatCircleDistanceBetweenAirports(const QString &amp;dept, const QString &amp;dest)</div><div class="ttdoc">ACalc::greatCircleDistanceBetweenAirports Calculates Great Circle distance between two coordinates,...</div><div class="ttdef"><b>Definition:</b> acalc.cpp:107</div></div>
+<div class="ttc" id="anamespace_a_calc_html_a37c52e8b522b233087b8c4d94f30fca5"><div class="ttname"><a href="namespace_a_calc.html#a37c52e8b522b233087b8c4d94f30fca5">ACalc::radToNauticalMiles</a></div><div class="ttdeci">double radToNauticalMiles(double rad)</div><div class="ttdoc">radToNauticalMiles Convert Radians to nautical miles</div><div class="ttdef"><b>Definition:</b> acalc.h:151</div></div>
+<div class="ttc" id="anamespace_a_calc_html_a3f12e1f72eeb5cc1cfe9b7b6df47391c"><div class="ttname"><a href="namespace_a_calc.html#a3f12e1f72eeb5cc1cfe9b7b6df47391c">ACalc::updateAutoTimes</a></div><div class="ttdeci">void updateAutoTimes(int acft_id)</div><div class="ttdoc">ACalc::updateAutoTimes When the details of an aircraft are changed, this function recalculates deduct...</div><div class="ttdef"><b>Definition:</b> acalc.cpp:305</div></div>
+<div class="ttc" id="anamespace_a_calc_html_a4a071a5788f00c98834127f9c5721383"><div class="ttname"><a href="namespace_a_calc.html#a4a071a5788f00c98834127f9c5721383">ACalc::intermediatePointsOnGreatCircle</a></div><div class="ttdeci">QVector&lt; QVector&lt; double &gt; &gt; intermediatePointsOnGreatCircle(double lat1, double lon1, double lat2, double lon2, int tblk)</div><div class="ttdoc">Calculates a list of points (lat,lon) along the Great Circle between two points. The points are space...</div><div class="ttdef"><b>Definition:</b> acalc.cpp:137</div></div>
+<div class="ttc" id="anamespace_a_calc_html_a4c829bf747bcd84bf6b1efb3ab0201d1"><div class="ttname"><a href="namespace_a_calc.html#a4c829bf747bcd84bf6b1efb3ab0201d1">ACalc::stringToMinutes</a></div><div class="ttdeci">QT_DEPRECATED int stringToMinutes(QString timestring)</div><div class="ttdoc">ACalc::string_to_minutes Converts String Time to String Number of Minutes.</div><div class="ttdef"><b>Definition:</b> acalc.h:116</div></div>
+<div class="ttc" id="anamespace_a_calc_html_a55ede99d0f9f6e8a2f3a467859c0f192"><div class="ttname"><a href="namespace_a_calc.html#a55ede99d0f9f6e8a2f3a467859c0f192">ACalc::calculateNightTime</a></div><div class="ttdeci">int calculateNightTime(const QString &amp;dept, const QString &amp;dest, QDateTime departureTime, int tblk, int nightAngle)</div><div class="ttdoc">Calculates which portion of a flight was conducted in night conditions.</div><div class="ttdef"><b>Definition:</b> acalc.cpp:230</div></div>
+<div class="ttc" id="anamespace_a_calc_html_a72c6fca35602a24ff8435f86abdc78d7"><div class="ttname"><a href="namespace_a_calc.html#a72c6fca35602a24ff8435f86abdc78d7">ACalc::greatCircleDistance</a></div><div class="ttdeci">double greatCircleDistance(double lat1, double lon1, double lat2, double lon2)</div><div class="ttdoc">greatCircleDistance Calculates Great Circle distance between two coordinates, return in Radians.</div><div class="ttdef"><b>Definition:</b> acalc.cpp:88</div></div>
+<div class="ttc" id="anamespace_a_calc_html_a8ac68999097f2e28a3b4bd2709b5b19f"><div class="ttname"><a href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">ACalc::blocktime</a></div><div class="ttdeci">QT_DEPRECATED QTime blocktime(QTime tofb, QTime tonb)</div><div class="ttdoc">ACalc::blocktime Calculates Block Time for a given departure and arrival time.</div><div class="ttdef"><b>Definition:</b> acalc.h:44</div></div>
+<div class="ttc" id="anamespace_a_calc_html_a9568b0d72cd6b0f91f686342bc624e1f"><div class="ttname"><a href="namespace_a_calc.html#a9568b0d72cd6b0f91f686342bc624e1f">ACalc::QTimeToMinutes</a></div><div class="ttdeci">QT_DEPRECATED int QTimeToMinutes(QTime time)</div><div class="ttdoc">ACalc::time_to_minutes converts QTime to int minutes.</div><div class="ttdef"><b>Definition:</b> acalc.h:102</div></div>
+<div class="ttc" id="anamespace_a_calc_html_ac5e39b538ea3663556c820d237f242a2"><div class="ttname"><a href="namespace_a_calc.html#ac5e39b538ea3663556c820d237f242a2">ACalc::minutesToString</a></div><div class="ttdeci">QT_DEPRECATED QString minutesToString(QString block_minutes)</div><div class="ttdoc">ACalc::minutes_to_string Converts database time to String Time.</div><div class="ttdef"><b>Definition:</b> acalc.h:66</div></div>
+<div class="ttc" id="anamespace_a_calc_html_acafe6c0bede38e737937e2062fd93c71"><div class="ttname"><a href="namespace_a_calc.html#acafe6c0bede38e737937e2062fd93c71">ACalc::degToRad</a></div><div class="ttdeci">double degToRad(double deg)</div><div class="ttdoc">degToRad Converts degrees to radians</div><div class="ttdef"><b>Definition:</b> acalc.h:140</div></div>
+<div class="ttc" id="anamespace_a_calc_html_acfa830e821e2f9e20bebffda67d393b1"><div class="ttname"><a href="namespace_a_calc.html#acfa830e821e2f9e20bebffda67d393b1">ACalc::solarElevation</a></div><div class="ttdeci">double solarElevation(QDateTime utc_time_point, double lat, double lon)</div><div class="ttdoc">Calculates solar elevation angle for a given point in time and latitude/longitude coordinates.</div><div class="ttdef"><b>Definition:</b> acalc.cpp:171</div></div>
+<div class="ttc" id="anamespace_a_calc_html_ad088e5dd93d1938ff97f88032dc0adec"><div class="ttname"><a href="namespace_a_calc.html#ad088e5dd93d1938ff97f88032dc0adec">ACalc::formatTimeInput</a></div><div class="ttdeci">QString formatTimeInput(QString user_input)</div><div class="ttdoc">ACalc::formatTimeInput verifies user input and formats to hh:mm if the output is not a valid time,...</div><div class="ttdef"><b>Definition:</b> acalc.cpp:35</div></div>
+<div class="ttc" id="anamespace_a_calc_html_adb7a8a84011affb4173bb59be4449b9d"><div class="ttname"><a href="namespace_a_calc.html#adb7a8a84011affb4173bb59be4449b9d">ACalc::updateNightTimes</a></div><div class="ttdeci">void updateNightTimes()</div><div class="ttdoc">ACalc::updateNightTimes updates the night times in the database, used when changing night angle setti...</div><div class="ttdef"><b>Definition:</b> acalc.cpp:348</div></div>
+<div class="ttc" id="astruct_a_calc_1_1_night_time_values_html"><div class="ttname"><a href="struct_a_calc_1_1_night_time_values.html">ACalc::NightTimeValues</a></div><div class="ttdoc">The NightTimeValues struct encapsulates values relating to night time that are needed by the NewFligh...</div><div class="ttdef"><b>Definition:</b> acalc.h:232</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="anamespace_a_calc_html_a4a071a5788f00c98834127f9c5721383"><div class="ttname"><a href="namespace_a_calc.html#a4a071a5788f00c98834127f9c5721383">ACalc::intermediatePointsOnGreatCircle</a></div><div class="ttdeci">QVector&lt; QVector&lt; double &gt; &gt; intermediatePointsOnGreatCircle(double lat1, double lon1, double lat2, double lon2, int tblk)</div><div class="ttdoc">Calculates a list of points (lat,lon) along the Great Circle between two points. The points are space...</div><div class="ttdef"><b>Definition:</b> acalc.cpp:136</div></div>
-<div class="ttc" id="anamespace_a_calc_html_a9568b0d72cd6b0f91f686342bc624e1f"><div class="ttname"><a href="namespace_a_calc.html#a9568b0d72cd6b0f91f686342bc624e1f">ACalc::QTimeToMinutes</a></div><div class="ttdeci">QT_DEPRECATED int QTimeToMinutes(QTime time)</div><div class="ttdoc">ACalc::time_to_minutes converts QTime to int minutes.</div><div class="ttdef"><b>Definition:</b> acalc.h:101</div></div>
-<div class="ttc" id="anamespace_a_calc_html_a3f12e1f72eeb5cc1cfe9b7b6df47391c"><div class="ttname"><a href="namespace_a_calc.html#a3f12e1f72eeb5cc1cfe9b7b6df47391c">ACalc::updateAutoTimes</a></div><div class="ttdeci">void updateAutoTimes(int acft_id)</div><div class="ttdoc">ACalc::updateAutoTimes When the details of an aircraft are changed, this function recalculates deduct...</div><div class="ttdef"><b>Definition:</b> acalc.cpp:288</div></div>
-<div class="ttc" id="anamespace_a_calc_html_ac5e39b538ea3663556c820d237f242a2"><div class="ttname"><a href="namespace_a_calc.html#ac5e39b538ea3663556c820d237f242a2">ACalc::minutesToString</a></div><div class="ttdeci">QT_DEPRECATED QString minutesToString(QString block_minutes)</div><div class="ttdoc">ACalc::minutes_to_string Converts database time to String Time.</div><div class="ttdef"><b>Definition:</b> acalc.h:65</div></div>
-<div class="ttc" id="anamespace_a_calc_html_a37c52e8b522b233087b8c4d94f30fca5"><div class="ttname"><a href="namespace_a_calc.html#a37c52e8b522b233087b8c4d94f30fca5">ACalc::radToNauticalMiles</a></div><div class="ttdeci">double radToNauticalMiles(double rad)</div><div class="ttdoc">radToNauticalMiles Convert Radians to nautical miles</div><div class="ttdef"><b>Definition:</b> acalc.h:150</div></div>
-<div class="ttc" id="anamespace_a_calc_html"><div class="ttname"><a href="namespace_a_calc.html">ACalc</a></div><div class="ttdoc">The ACalc namespace provides various functions for calculations that are performed outside of the dat...</div><div class="ttdef"><b>Definition:</b> acalc.h:34</div></div>
-<div class="ttc" id="anamespace_a_calc_html_a8ac68999097f2e28a3b4bd2709b5b19f"><div class="ttname"><a href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">ACalc::blocktime</a></div><div class="ttdeci">QT_DEPRECATED QTime blocktime(QTime tofb, QTime tonb)</div><div class="ttdoc">ACalc::blocktime Calculates Block Time for a given departure and arrival time.</div><div class="ttdef"><b>Definition:</b> acalc.h:43</div></div>
-<div class="ttc" id="anamespace_a_calc_html_ad088e5dd93d1938ff97f88032dc0adec"><div class="ttname"><a href="namespace_a_calc.html#ad088e5dd93d1938ff97f88032dc0adec">ACalc::formatTimeInput</a></div><div class="ttdeci">QString formatTimeInput(QString user_input)</div><div class="ttdoc">ACalc::formatTimeInput verifies user input and formats to hh:mm if the output is not a valid time,...</div><div class="ttdef"><b>Definition:</b> acalc.cpp:34</div></div>
-<div class="ttc" id="anamespace_a_calc_html_acafe6c0bede38e737937e2062fd93c71"><div class="ttname"><a href="namespace_a_calc.html#acafe6c0bede38e737937e2062fd93c71">ACalc::degToRad</a></div><div class="ttdeci">double degToRad(double deg)</div><div class="ttdoc">degToRad Converts degrees to radians</div><div class="ttdef"><b>Definition:</b> acalc.h:139</div></div>
-<div class="ttc" id="anamespace_a_calc_html_a2a540662e22840e4b58e8e760611b4f2"><div class="ttname"><a href="namespace_a_calc.html#a2a540662e22840e4b58e8e760611b4f2">ACalc::radToDeg</a></div><div class="ttdeci">double radToDeg(double rad)</div><div class="ttdoc">radToDeg Converts radians to degrees</div><div class="ttdef"><b>Definition:</b> acalc.h:128</div></div>
-<div class="ttc" id="anamespace_a_calc_html_a2d15bbb67e99d502e2fd730c47854a9f"><div class="ttname"><a href="namespace_a_calc.html#a2d15bbb67e99d502e2fd730c47854a9f">ACalc::greatCircleDistanceBetweenAirports</a></div><div class="ttdeci">double greatCircleDistanceBetweenAirports(const QString &amp;dept, const QString &amp;dest)</div><div class="ttdoc">ACalc::greatCircleDistanceBetweenAirports Calculates Great Circle distance between two coordinates,...</div><div class="ttdef"><b>Definition:</b> acalc.cpp:106</div></div>
-<div class="ttc" id="anamespace_a_calc_html_acfa830e821e2f9e20bebffda67d393b1"><div class="ttname"><a href="namespace_a_calc.html#acfa830e821e2f9e20bebffda67d393b1">ACalc::solarElevation</a></div><div class="ttdeci">double solarElevation(QDateTime utc_time_point, double lat, double lon)</div><div class="ttdoc">Calculates solar elevation angle for a given point in time and latitude/longitude coordinates.</div><div class="ttdef"><b>Definition:</b> acalc.cpp:167</div></div>
-<div class="ttc" id="anamespace_a_calc_html_a4c829bf747bcd84bf6b1efb3ab0201d1"><div class="ttname"><a href="namespace_a_calc.html#a4c829bf747bcd84bf6b1efb3ab0201d1">ACalc::stringToMinutes</a></div><div class="ttdeci">QT_DEPRECATED int stringToMinutes(QString timestring)</div><div class="ttdoc">ACalc::string_to_minutes Converts String Time to String Number of Minutes.</div><div class="ttdef"><b>Definition:</b> acalc.h:115</div></div>
-<div class="ttc" id="anamespace_a_calc_html_a72c6fca35602a24ff8435f86abdc78d7"><div class="ttname"><a href="namespace_a_calc.html#a72c6fca35602a24ff8435f86abdc78d7">ACalc::greatCircleDistance</a></div><div class="ttdeci">double greatCircleDistance(double lat1, double lon1, double lat2, double lon2)</div><div class="ttdoc">greatCircleDistance Calculates Great Circle distance between two coordinates, return in Radians.</div><div class="ttdef"><b>Definition:</b> acalc.cpp:87</div></div>
-<div class="ttc" id="anamespace_a_calc_html_adb7a8a84011affb4173bb59be4449b9d"><div class="ttname"><a href="namespace_a_calc.html#adb7a8a84011affb4173bb59be4449b9d">ACalc::updateNightTimes</a></div><div class="ttdeci">void updateNightTimes()</div><div class="ttdoc">ACalc::updateNightTimes updates the night times in the database, used when changing night angle setti...</div><div class="ttdef"><b>Definition:</b> acalc.cpp:331</div></div>
-<div class="ttc" id="anamespace_a_calc_html_a55ede99d0f9f6e8a2f3a467859c0f192"><div class="ttname"><a href="namespace_a_calc.html#a55ede99d0f9f6e8a2f3a467859c0f192">ACalc::calculateNightTime</a></div><div class="ttdeci">int calculateNightTime(const QString &amp;dept, const QString &amp;dest, QDateTime departureTime, int tblk, int nightAngle)</div><div class="ttdoc">Calculates which portion of a flight was conducted in night conditions.</div><div class="ttdef"><b>Definition:</b> acalc.cpp:227</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_e823141bb13a34caac0c96ccd0d33fcf.html">functions</a></li><li class="navelem"><b>acalc.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 133 - 0
docs/html/acompletiondata_8h_source.html

@@ -0,0 +1,133 @@
+<!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>openPilotLog: src/classes/acompletiondata.h 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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.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="custom_dark_theme.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="projectlogo"><img alt="Logo" src="icon_main.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">openPilotLog
+   </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&amp;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&amp;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>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('acompletiondata_8h_source.html',''); initResizable(); });
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- 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 class="header">
+  <div class="headertitle">
+<div class="title">acompletiondata.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#ifndef ACOMPLETIONDATA_H</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define ACOMPLETIONDATA_H</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;src/database/adatabase.h&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_a_completion_data.html">   11</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_completion_data.html">ACompletionData</a></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="keyword">public</span>:  </div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_a_completion_data.html#af476c92d41ac0dce50e098c25e6b035c">init</a>();</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160; </div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_a_completion_data.html#aeccf7bcb927ec5dbf2879c0a345161a4">update</a>();</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    <span class="keywordtype">void</span> updateTails();</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    <span class="keywordtype">void</span> updatePilots();</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="comment">// Maps for input mapping DB key - user input</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    QMap&lt;RowId_T, QString&gt; pilotsIdMap;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    QMap&lt;RowId_T, QString&gt; tailsIdMap;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    QMap&lt;RowId_T, QString&gt; airportIcaoIdMap;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    QMap&lt;RowId_T, QString&gt; airportIataIdMap;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    QMap&lt;RowId_T, QString&gt; airportNameIdMap;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="comment">// Lists for QCompleter</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    QStringList pilotList;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    QStringList tailsList;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    QStringList airportList;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="comment">// User Data State to trigger update if needed</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <a class="code" href="struct_user_data_state.html">UserDataState</a> current_state;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;};</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ACOMPLETIONDATA_H</span></div>
+<div class="ttc" id="aclass_a_completion_data_html"><div class="ttname"><a href="class_a_completion_data.html">ACompletionData</a></div><div class="ttdoc">The ACompletionData class provides data to QCompleters and QMaps used for mapping user input to datab...</div><div class="ttdef"><b>Definition:</b> acompletiondata.h:12</div></div>
+<div class="ttc" id="aclass_a_completion_data_html_aeccf7bcb927ec5dbf2879c0a345161a4"><div class="ttname"><a href="class_a_completion_data.html#aeccf7bcb927ec5dbf2879c0a345161a4">ACompletionData::update</a></div><div class="ttdeci">void update()</div><div class="ttdoc">updates data from the user modifiable tables</div><div class="ttdef"><b>Definition:</b> acompletiondata.cpp:31</div></div>
+<div class="ttc" id="aclass_a_completion_data_html_af476c92d41ac0dce50e098c25e6b035c"><div class="ttname"><a href="class_a_completion_data.html#af476c92d41ac0dce50e098c25e6b035c">ACompletionData::init</a></div><div class="ttdeci">void init()</div><div class="ttdoc">init Retrieves Data and populates Lists and Maps</div><div class="ttdef"><b>Definition:</b> acompletiondata.cpp:3</div></div>
+<div class="ttc" id="astruct_user_data_state_html"><div class="ttname"><a href="struct_user_data_state.html">UserDataState</a></div><div class="ttdoc">The UserDateState struct caches the current number of entries in relevant database tables for fast ac...</div><div class="ttdef"><b>Definition:</b> adatabase.h:97</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>acompletiondata.h</b></li>
+    <li class="footer">Generated 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 </li>
+  </ul>
+</div>
+</body>
+</html>

+ 8 - 10
docs/html/acurrencyentry_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/acurrencyentry.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -115,19 +115,17 @@ $(document).ready(function(){initNavTree('acurrencyentry_8h_source.html',''); in
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="struct_a_currency_entry.html#a17202e44445755d9136335201758a8d4">isValid</a>() <span class="keyword">const</span>;</div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;};</div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#endif // ACURRENCYENTRY_H</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ACURRENCYENTRY_H</span></div>
+<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:33</div></div>
+<div class="ttc" id="astruct_a_currency_entry_html"><div class="ttname"><a href="struct_a_currency_entry.html">ACurrencyEntry</a></div><div class="ttdef"><b>Definition:</b> acurrencyentry.h:8</div></div>
+<div class="ttc" id="astruct_a_currency_entry_html_a17202e44445755d9136335201758a8d4"><div class="ttname"><a href="struct_a_currency_entry.html#a17202e44445755d9136335201758a8d4">ACurrencyEntry::isValid</a></div><div class="ttdeci">bool isValid() const</div><div class="ttdoc">ACurrencyEntry::isValid returns true if the object holds a valid expiration date.</div><div class="ttdef"><b>Definition:</b> acurrencyentry.cpp:34</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="astruct_a_currency_entry_html_a17202e44445755d9136335201758a8d4"><div class="ttname"><a href="struct_a_currency_entry.html#a17202e44445755d9136335201758a8d4">ACurrencyEntry::isValid</a></div><div class="ttdeci">bool isValid() const</div><div class="ttdoc">ACurrencyEntry::isValid returns true if the object holds a valid expiration date.</div><div class="ttdef"><b>Definition:</b> acurrencyentry.cpp:34</div></div>
-<div class="ttc" id="astruct_a_currency_entry_html"><div class="ttname"><a href="struct_a_currency_entry.html">ACurrencyEntry</a></div><div class="ttdef"><b>Definition:</b> acurrencyentry.h:7</div></div>
-<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:40</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>acurrencyentry.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 182 - 161
docs/html/adatabase_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/database/adatabase.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -129,7 +129,7 @@ $(document).ready(function(){initNavTree('adatabase_8h_source.html',''); initRes
 <div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &quot;src/classes/astandardpaths.h&quot;</span></div>
 <div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &quot;src/classes/acurrencyentry.h&quot;</span></div>
 <div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#define SQLITE_DRIVER QStringLiteral(&quot;QSQLITE&quot;)</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#define SQLITE_DRIVER QStringLiteral(&quot;QSQLITE&quot;</span>)</div>
 <div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
 <div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#define aDB ADatabase::instance()</span></div>
 <div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
@@ -163,177 +163,198 @@ $(document).ready(function(){initNavTree('adatabase_8h_source.html',''); initRes
 <div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    total_time,</div>
 <div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;};</div>
 <div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; </div>
-<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_a_database_error.html">   98</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_database_error.html">ADatabaseError</a> : <span class="keyword">public</span> QSqlError {</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <a class="code" href="class_a_database_error.html">ADatabaseError</a>() = <span class="keywordflow">default</span>;</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <a class="code" href="class_a_database_error.html">ADatabaseError</a>(QString msg);</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    QString text() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <a class="code" href="class_a_database_error.html">ADatabaseError</a>(QSqlError);</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;};</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_a_database.html">  110</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_database.html">ADatabase</a> : <span class="keyword">public</span> QObject {</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    Q_OBJECT</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keyword">static</span> <a class="code" href="class_a_database.html">ADatabase</a>* <span class="keyword">self</span>;</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    TableNames_T tableNames;</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    TableColumns_T tableColumns;</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordtype">int</span> databaseRevision;</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <a class="code" href="class_a_database.html">ADatabase</a>();</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordtype">int</span> checkDbVersion() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keyword">const</span> <span class="keyword">static</span> QStringList userTableNames;</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keyword">const</span> <span class="keyword">static</span> QStringList templateTableNames;</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <span class="keyword">const</span> <span class="keyword">static</span> <span class="keywordtype">int</span> minimumDatabaseRevision;</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_a_database.html#a88c8cb3d573d46c1ee8e5af61cf63224">  134</a></span>&#160;    QSqlError <a class="code" href="class_a_database.html#a88c8cb3d573d46c1ee8e5af61cf63224">lastError</a>;</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="keyword">const</span> QFileInfo databaseFile;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_user_data_state.html">   97</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_user_data_state.html">UserDataState</a> {</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <a class="code" href="struct_user_data_state.html">UserDataState</a>(){numTails = 0; numPilots = 0;}</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <a class="code" href="struct_user_data_state.html">UserDataState</a>(<span class="keywordtype">int</span> numTails_, <span class="keywordtype">int</span> numPilots_)</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        : numTails(numTails_), numPilots(numPilots_){}</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="struct_user_data_state.html">UserDataState</a>&amp; other)</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    {</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        <span class="keywordflow">return</span> numTails == other.numTails &amp;&amp; numPilots == other.numPilots;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    }</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> <a class="code" href="struct_user_data_state.html">UserDataState</a>&amp; other)</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    {</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        <span class="keywordflow">return</span> numTails != other.numTails || numPilots != other.numPilots;</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    }</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordtype">int</span> numTails;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordtype">int</span> numPilots;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;};</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_a_database_error.html">  123</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_database_error.html">ADatabaseError</a> : <span class="keyword">public</span> QSqlError {</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <a class="code" href="class_a_database_error.html">ADatabaseError</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <a class="code" href="class_a_database_error.html">ADatabaseError</a>(QString msg);</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    QString text() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <a class="code" href="class_a_database_error.html">ADatabaseError</a>(QSqlError);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;};</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_a_database.html">  135</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_database.html">ADatabase</a> : <span class="keyword">public</span> QObject {</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    Q_OBJECT</div>
 <div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160; </div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    <span class="comment">// Ensure DB is not copiable or assignable</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <a class="code" href="class_a_database.html">ADatabase</a>(<span class="keyword">const</span> <a class="code" href="class_a_database.html">ADatabase</a>&amp;) = <span class="keyword">delete</span>;</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="class_a_database.html">ADatabase</a>&amp;) = <span class="keyword">delete</span>;</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keyword">static</span> <a class="code" href="class_a_database.html">ADatabase</a>* instance();</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="class_a_database.html#a1c026e7784b03fc5822077c7d0071330">dbRevision</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="keyword">const</span> TableNames_T <a class="code" href="class_a_database.html#a3deb081c5abe832a65e1792c106eb083">getTableNames</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="keyword">const</span> ColumnNames_T <a class="code" href="class_a_database.html#a9c0dcd8c35087c8256b75d8aafa64880">getTableColumns</a>(TableName_T table_name) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_a_database.html#a3c0fdc84000ad397d61f0efabd032194">updateLayout</a>();</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keyword">const</span> QString <a class="code" href="class_a_database.html#a491415273a771dd7ea41452c331a34b0">sqliteVersion</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160; </div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#aa6080200aa3f229251480bc416755fed">connect</a>();</div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160; </div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_a_database.html#abc461aaa66304ca638e546f67a694935">disconnect</a>();</div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <span class="keyword">static</span> QSqlDatabase <a class="code" href="class_a_database.html#a2379c9da900da8e96add932e4024389a">database</a>();</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160; </div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    QVector&lt;QVariant&gt; <a class="code" href="class_a_database.html#a2a43936d3ae28993f9f7eda0fdf4664d">customQuery</a>(QString statement, <span class="keywordtype">int</span> return_values);</div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160; </div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a24f938e4c8d20afddb5e5651e041a7a6">exists</a>(<a class="code" href="class_a_entry.html">AEntry</a> entry);</div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a24f938e4c8d20afddb5e5651e041a7a6">exists</a>(<a class="code" href="struct_data_position.html">DataPosition</a> data_position);</div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160; </div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a73382f7e897f8381371cd3da458f72cc">clear</a>();</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <span class="keyword">static</span> <a class="code" href="class_a_database.html">ADatabase</a>* <span class="keyword">self</span>;</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    TableNames_T tableNames;</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    TableColumns_T tableColumns;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="keywordtype">int</span> databaseRevision;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <a class="code" href="class_a_database.html">ADatabase</a>();</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <span class="keywordtype">int</span> checkDbVersion() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="keyword">const</span> <span class="keyword">static</span> QStringList userTableNames;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keyword">const</span> <span class="keyword">static</span> QStringList templateTableNames;</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="keyword">const</span> <span class="keyword">static</span> <span class="keywordtype">int</span> minimumDatabaseRevision;</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="class_a_database.html#a88c8cb3d573d46c1ee8e5af61cf63224">  159</a></span>&#160;    QSqlError <a class="code" href="class_a_database.html#a88c8cb3d573d46c1ee8e5af61cf63224">lastError</a>;</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="keyword">const</span> QFileInfo databaseFile;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="comment">// Ensure DB is not copiable or assignable</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <a class="code" href="class_a_database.html">ADatabase</a>(<span class="keyword">const</span> <a class="code" href="class_a_database.html">ADatabase</a>&amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="class_a_database.html">ADatabase</a>&amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keyword">static</span> <a class="code" href="class_a_database.html">ADatabase</a>* instance();</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="class_a_database.html#a1c026e7784b03fc5822077c7d0071330">dbRevision</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <span class="keyword">const</span> TableNames_T <a class="code" href="class_a_database.html#a3deb081c5abe832a65e1792c106eb083">getTableNames</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="keyword">const</span> ColumnNames_T <a class="code" href="class_a_database.html#a9c0dcd8c35087c8256b75d8aafa64880">getTableColumns</a>(TableName_T table_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160; </div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_a_database.html#a3c0fdc84000ad397d61f0efabd032194">updateLayout</a>();</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160; </div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keyword">const</span> QString <a class="code" href="class_a_database.html#a491415273a771dd7ea41452c331a34b0">sqliteVersion</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160; </div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#aa6080200aa3f229251480bc416755fed">connect</a>();</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160; </div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_a_database.html#abc461aaa66304ca638e546f67a694935">disconnect</a>();</div>
 <div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160; </div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a652472c747c0ce68940b17c9c23666dd">commit</a>(<a class="code" href="class_a_entry.html">AEntry</a> entry);</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="keyword">static</span> QSqlDatabase <a class="code" href="class_a_database.html#a2379c9da900da8e96add932e4024389a">database</a>();</div>
 <div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160; </div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a4ecb6d0c9b3813c90b3165c993e69ad5">insert</a>(<a class="code" href="class_a_entry.html">AEntry</a> new_entry);</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160; </div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a910bc0c1717e9301911343c082aa1aaa">update</a>(<a class="code" href="class_a_entry.html">AEntry</a> updated_entry);</div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160; </div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a4903909a28daed708e1a335d3be4f57b">remove</a>(<a class="code" href="class_a_entry.html">AEntry</a> entry);</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; </div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a863d30e9e3a7c14adfe72787363618c8">removeMany</a>(QList&lt;DataPosition&gt;);</div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160; </div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    RowData_T <a class="code" href="class_a_database.html#afc39f6136fc822e0649964fa22b84bf9">getEntryData</a>(<a class="code" href="struct_data_position.html">DataPosition</a> data_position);</div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160; </div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a> <a class="code" href="class_a_database.html#a8959b406b97d9520981890d92850b1ba">getEntry</a>(<a class="code" href="struct_data_position.html">DataPosition</a> data_position);</div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160; </div>
-<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <a class="code" href="struct_a_pilot_entry.html">APilotEntry</a> <a class="code" href="class_a_database.html#a426026d641a594863995ec5db8312259">getPilotEntry</a>(RowId_T row_id);</div>
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160; </div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    <a class="code" href="struct_a_tail_entry.html">ATailEntry</a> <a class="code" href="class_a_database.html#a356df159542705635dc3898d90682039">getTailEntry</a>(RowId_T row_id);</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    QVector&lt;QVariant&gt; <a class="code" href="class_a_database.html#a2a43936d3ae28993f9f7eda0fdf4664d">customQuery</a>(QString statement, <span class="keywordtype">int</span> return_values);</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160; </div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a0c5a017dccf7bf5d4dcbfc29c8d20e12">exists</a>(<span class="keyword">const</span> <a class="code" href="class_a_entry.html">AEntry</a> &amp;entry);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a0c5a017dccf7bf5d4dcbfc29c8d20e12">exists</a>(<a class="code" href="struct_data_position.html">DataPosition</a> data_position);</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160; </div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a73382f7e897f8381371cd3da458f72cc">clear</a>();</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160; </div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a7d57d7696814bd013fa35e068ad909c8">commit</a>(<span class="keyword">const</span> <a class="code" href="class_a_entry.html">AEntry</a> &amp;entry);</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160; </div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#aa69dcdf174e48653cdf1bef473dc5623">insert</a>(<span class="keyword">const</span> <a class="code" href="class_a_entry.html">AEntry</a> &amp;new_entry);</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160; </div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#ac73208ba1a70af19590d53f260e7cb8c">update</a>(<span class="keyword">const</span> <a class="code" href="class_a_entry.html">AEntry</a> &amp;updated_entry);</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160; </div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a4deda96cfb75518f98a4a0c9996920eb">remove</a>(<span class="keyword">const</span> <a class="code" href="class_a_entry.html">AEntry</a> &amp;entry);</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160; </div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a863d30e9e3a7c14adfe72787363618c8">removeMany</a>(QList&lt;DataPosition&gt;);</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160; </div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    RowData_T <a class="code" href="class_a_database.html#afc39f6136fc822e0649964fa22b84bf9">getEntryData</a>(<a class="code" href="struct_data_position.html">DataPosition</a> data_position);</div>
 <div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160; </div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    <a class="code" href="struct_a_aircraft_entry.html">AAircraftEntry</a> <a class="code" href="class_a_database.html#ae0a3c9273431195df6295b9da24b3a3a">getAircraftEntry</a>(RowId_T row_id);</div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160; </div>
-<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;    <a class="code" href="class_a_flight_entry.html">AFlightEntry</a> <a class="code" href="class_a_database.html#a7bb44738362582e4f54f68e3aa30d40a">getFlightEntry</a>(RowId_T row_id);</div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160; </div>
-<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <a class="code" href="struct_a_currency_entry.html">ACurrencyEntry</a> <a class="code" href="class_a_database.html#a5abdf1f35468f788609252c7a3be7bc4">getCurrencyEntry</a>(ACurrencyEntry::CurrencyName currency_name);</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a> <a class="code" href="class_a_database.html#a8959b406b97d9520981890d92850b1ba">getEntry</a>(<a class="code" href="struct_data_position.html">DataPosition</a> data_position);</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160; </div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    <a class="code" href="struct_a_pilot_entry.html">APilotEntry</a> <a class="code" href="class_a_database.html#a426026d641a594863995ec5db8312259">getPilotEntry</a>(RowId_T row_id);</div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160; </div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <a class="code" href="struct_a_tail_entry.html">ATailEntry</a> <a class="code" href="class_a_database.html#a356df159542705635dc3898d90682039">getTailEntry</a>(RowId_T row_id);</div>
 <div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160; </div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    <span class="keyword">const</span> QStringList <a class="code" href="class_a_database.html#a89de409c1828125363f46f384df47359">getCompletionList</a>(ADatabaseTarget target);</div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160; </div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    <span class="keyword">const</span> QMap&lt;QString, RowId_T&gt; <a class="code" href="class_a_database.html#a5dba46567089112b28b16aaf985af0ba">getIdMap</a>(ADatabaseTarget target);</div>
-<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160; </div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="class_a_database.html#abc8c302d07f5f14cf246c8b2fd1ba366">getLastEntry</a>(ADatabaseTable table);</div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160; </div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;    QList&lt;RowId_T&gt; <a class="code" href="class_a_database.html#a0f88e121d421043f35e321d5dc49ba19">getForeignKeyConstraints</a>(RowId_T foreign_row_id, ADatabaseTable target);</div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160; </div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <a class="code" href="struct_a_pilot_entry.html">APilotEntry</a> <a class="code" href="class_a_database.html#a4640a4348dad468a0ff65bad05b07227">resolveForeignPilot</a>(RowId_T foreign_key);</div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160; </div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <a class="code" href="struct_a_tail_entry.html">ATailEntry</a> <a class="code" href="class_a_database.html#a5878bcd4bc19e4c3fc5275ca7252860d">resolveForeignTail</a>(RowId_T foreign_key);</div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160; </div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    QMap&lt;ADatabaseSummaryKey, QString&gt; <a class="code" href="class_a_database.html#a56baf4eaf25922030f3cfa6906963f7c">databaseSummary</a>(<span class="keyword">const</span> QString&amp; db_path);</div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160; </div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    <span class="keyword">const</span> QString <a class="code" href="class_a_database.html#a2c54b7506faf0f15f5323ed53ff12099">databaseSummaryString</a>(<span class="keyword">const</span> QString&amp; db_path);</div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160; </div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a0bda52064f005f1463e56b60cd23b164">restoreBackup</a>(<span class="keyword">const</span> QString&amp; backup_file);</div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a5ab838a62a83974f9e40c62f66adfa99">createBackup</a>(<span class="keyword">const</span> QString&amp; dest_file);</div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160; </div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    QVector&lt;RowData_T&gt; <a class="code" href="class_a_database.html#a8b38405b535d603cce2b36ca2d56368f">getTable</a>(ADatabaseTable table_name);</div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160; </div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    QStringList <a class="code" href="class_a_database.html#a692d7ba3abc763ee7c0d1a47236f021f">getUserTableNames</a>();</div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160; </div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;    QStringList <a class="code" href="class_a_database.html#ad688f0e48bea4879a81e17a584f189b1">getTemplateTableNames</a>();</div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160; </div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="class_a_database.html#ab99ccce4c67591f5f58832c26cf93fc8">getMinimumDatabaseRevision</a>();</div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160; </div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;signals:</div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_a_database.html#a5ed8c010ccc022687ce903cfde8ae911">dataBaseUpdated</a>();</div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_a_database.html#a0f0bffbb6cdd79975b7b5ca6c0db31a7">connectionReset</a>();</div>
-<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;};</div>
-<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160; </div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="preprocessor">#endif // ADATABASE_H</span></div>
-</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
-<div class="ttc" id="aclass_a_database_html_a24f938e4c8d20afddb5e5651e041a7a6"><div class="ttname"><a href="class_a_database.html#a24f938e4c8d20afddb5e5651e041a7a6">ADatabase::exists</a></div><div class="ttdeci">bool exists(AEntry entry)</div><div class="ttdoc">Checks if an entry exists in the database, based on position data.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:256</div></div>
-<div class="ttc" id="aclass_a_database_html_a0bda52064f005f1463e56b60cd23b164"><div class="ttname"><a href="class_a_database.html#a0bda52064f005f1463e56b60cd23b164">ADatabase::restoreBackup</a></div><div class="ttdeci">bool restoreBackup(const QString &amp;backup_file)</div><div class="ttdoc">ADatabase::restoreBackup restores the database from a given backup file and replaces the currently ac...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:854</div></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    <a class="code" href="struct_a_aircraft_entry.html">AAircraftEntry</a> <a class="code" href="class_a_database.html#ae0a3c9273431195df6295b9da24b3a3a">getAircraftEntry</a>(RowId_T row_id);</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160; </div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    <a class="code" href="class_a_flight_entry.html">AFlightEntry</a> <a class="code" href="class_a_database.html#a7bb44738362582e4f54f68e3aa30d40a">getFlightEntry</a>(RowId_T row_id);</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160; </div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <a class="code" href="struct_a_currency_entry.html">ACurrencyEntry</a> <a class="code" href="class_a_database.html#a5abdf1f35468f788609252c7a3be7bc4">getCurrencyEntry</a>(ACurrencyEntry::CurrencyName currency_name);</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160; </div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    <span class="keyword">const</span> QStringList <a class="code" href="class_a_database.html#a89de409c1828125363f46f384df47359">getCompletionList</a>(ADatabaseTarget target);</div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160; </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    <span class="keyword">const</span> QMap&lt;RowId_T, QString&gt; <a class="code" href="class_a_database.html#afa8ce49693abf480f296d34dfc2969f0">getIdMap</a>(ADatabaseTarget target);</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160; </div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    RowId_T <a class="code" href="class_a_database.html#a0497bb70998cea6cd60fa893880c9555">getLastEntry</a>(ADatabaseTable table);</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160; </div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    QList&lt;RowId_T&gt; <a class="code" href="class_a_database.html#a0f88e121d421043f35e321d5dc49ba19">getForeignKeyConstraints</a>(RowId_T foreign_row_id, ADatabaseTable target);</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160; </div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    <a class="code" href="struct_a_pilot_entry.html">APilotEntry</a> <a class="code" href="class_a_database.html#a4640a4348dad468a0ff65bad05b07227">resolveForeignPilot</a>(RowId_T foreign_key);</div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160; </div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    <a class="code" href="struct_a_tail_entry.html">ATailEntry</a> <a class="code" href="class_a_database.html#a5878bcd4bc19e4c3fc5275ca7252860d">resolveForeignTail</a>(RowId_T foreign_key);</div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160; </div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    QMap&lt;ADatabaseSummaryKey, QString&gt; <a class="code" href="class_a_database.html#a56baf4eaf25922030f3cfa6906963f7c">databaseSummary</a>(<span class="keyword">const</span> QString&amp; db_path);</div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160; </div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    <span class="keyword">const</span> QString <a class="code" href="class_a_database.html#a2c54b7506faf0f15f5323ed53ff12099">databaseSummaryString</a>(<span class="keyword">const</span> QString&amp; db_path);</div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160; </div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a0bda52064f005f1463e56b60cd23b164">restoreBackup</a>(<span class="keyword">const</span> QString&amp; backup_file);</div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_database.html#a5ab838a62a83974f9e40c62f66adfa99">createBackup</a>(<span class="keyword">const</span> QString&amp; dest_file);</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160; </div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    QVector&lt;RowData_T&gt; <a class="code" href="class_a_database.html#a8b38405b535d603cce2b36ca2d56368f">getTable</a>(ADatabaseTable table_name);</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160; </div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    QStringList <a class="code" href="class_a_database.html#a692d7ba3abc763ee7c0d1a47236f021f">getUserTableNames</a>();</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160; </div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    QStringList <a class="code" href="class_a_database.html#ad688f0e48bea4879a81e17a584f189b1">getTemplateTableNames</a>();</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160; </div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    <a class="code" href="struct_user_data_state.html">UserDataState</a> <a class="code" href="class_a_database.html#a9da290c8488b35196ce4e49c4cfbe9f5">getUserDataState</a>();</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160; </div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">int</span> <a class="code" href="class_a_database.html#ab99ccce4c67591f5f58832c26cf93fc8">getMinimumDatabaseRevision</a>();</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160; </div>
+<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;signals:</div>
+<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="class_a_database.html#a5ed8c010ccc022687ce903cfde8ae911">  405</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_a_database.html#a5ed8c010ccc022687ce903cfde8ae911">dataBaseUpdated</a>();</div>
+<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="class_a_database.html#a0f0bffbb6cdd79975b7b5ca6c0db31a7">  410</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_a_database.html#a0f0bffbb6cdd79975b7b5ca6c0db31a7">connectionReset</a>();</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;};</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160; </div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ADATABASE_H</span></div>
+<div class="ttc" id="aclass_a_database_error_html"><div class="ttname"><a href="class_a_database_error.html">ADatabaseError</a></div><div class="ttdoc">Custom Database Error derived from QSqlError. Extends text() adding &quot;Database Error: &quot; before the tex...</div><div class="ttdef"><b>Definition:</b> adatabase.h:123</div></div>
+<div class="ttc" id="aclass_a_database_html"><div class="ttname"><a href="class_a_database.html">ADatabase</a></div><div class="ttdoc">The DB class encapsulates the SQL database by providing fast access to hot database data.</div><div class="ttdef"><b>Definition:</b> adatabase.h:135</div></div>
+<div class="ttc" id="aclass_a_database_html_a0497bb70998cea6cd60fa893880c9555"><div class="ttname"><a href="class_a_database.html#a0497bb70998cea6cd60fa893880c9555">ADatabase::getLastEntry</a></div><div class="ttdeci">RowId_T getLastEntry(ADatabaseTable table)</div><div class="ttdoc">returns the ROWID for the newest entry in the respective database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:600</div></div>
+<div class="ttc" id="aclass_a_database_html_a0bda52064f005f1463e56b60cd23b164"><div class="ttname"><a href="class_a_database.html#a0bda52064f005f1463e56b60cd23b164">ADatabase::restoreBackup</a></div><div class="ttdeci">bool restoreBackup(const QString &amp;backup_file)</div><div class="ttdoc">ADatabase::restoreBackup restores the database from a given backup file and replaces the currently ac...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:848</div></div>
+<div class="ttc" id="aclass_a_database_html_a0c5a017dccf7bf5d4dcbfc29c8d20e12"><div class="ttname"><a href="class_a_database.html#a0c5a017dccf7bf5d4dcbfc29c8d20e12">ADatabase::exists</a></div><div class="ttdeci">bool exists(const AEntry &amp;entry)</div><div class="ttdoc">Checks if an entry exists in the database, based on position data.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:253</div></div>
+<div class="ttc" id="aclass_a_database_html_a0f0bffbb6cdd79975b7b5ca6c0db31a7"><div class="ttname"><a href="class_a_database.html#a0f0bffbb6cdd79975b7b5ca6c0db31a7">ADatabase::connectionReset</a></div><div class="ttdeci">void connectionReset()</div><div class="ttdoc">connectionReset is emitted whenever the database connection is reset, for example when creating or re...</div></div>
+<div class="ttc" id="aclass_a_database_html_a0f88e121d421043f35e321d5dc49ba19"><div class="ttname"><a href="class_a_database.html#a0f88e121d421043f35e321d5dc49ba19">ADatabase::getForeignKeyConstraints</a></div><div class="ttdeci">QList&lt; RowId_T &gt; getForeignKeyConstraints(RowId_T foreign_row_id, ADatabaseTable target)</div><div class="ttdoc">returns a list of ROWID's in the flights table for which foreign key constraints exist.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:627</div></div>
+<div class="ttc" id="aclass_a_database_html_a1c026e7784b03fc5822077c7d0071330"><div class="ttname"><a href="class_a_database.html#a1c026e7784b03fc5822077c7d0071330">ADatabase::dbRevision</a></div><div class="ttdeci">int dbRevision() const</div><div class="ttdoc">dbRevision returns the database Revision Number. The Revision refers to what iteration of the databas...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:45</div></div>
+<div class="ttc" id="aclass_a_database_html_a2379c9da900da8e96add932e4024389a"><div class="ttname"><a href="class_a_database.html#a2379c9da900da8e96add932e4024389a">ADatabase::database</a></div><div class="ttdeci">static QSqlDatabase database()</div><div class="ttdoc">Can be used to access the database connection.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:168</div></div>
+<div class="ttc" id="aclass_a_database_html_a2a43936d3ae28993f9f7eda0fdf4664d"><div class="ttname"><a href="class_a_database.html#a2a43936d3ae28993f9f7eda0fdf4664d">ADatabase::customQuery</a></div><div class="ttdeci">QVector&lt; QVariant &gt; customQuery(QString statement, int return_values)</div><div class="ttdoc">Can be used to send a complex query to the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:674</div></div>
+<div class="ttc" id="aclass_a_database_html_a2c54b7506faf0f15f5323ed53ff12099"><div class="ttname"><a href="class_a_database.html#a2c54b7506faf0f15f5323ed53ff12099">ADatabase::databaseSummaryString</a></div><div class="ttdeci">const QString databaseSummaryString(const QString &amp;db_path)</div><div class="ttdoc">returns a short summary string of the database, containing total time and date of last flight.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:763</div></div>
+<div class="ttc" id="aclass_a_database_html_a356df159542705635dc3898d90682039"><div class="ttname"><a href="class_a_database.html#a356df159542705635dc3898d90682039">ADatabase::getTailEntry</a></div><div class="ttdeci">ATailEntry getTailEntry(RowId_T row_id)</div><div class="ttdoc">retreives a TailEntry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:475</div></div>
 <div class="ttc" id="aclass_a_database_html_a3c0fdc84000ad397d61f0efabd032194"><div class="ttname"><a href="class_a_database.html#a3c0fdc84000ad397d61f0efabd032194">ADatabase::updateLayout</a></div><div class="ttdeci">void updateLayout()</div><div class="ttdoc">Updates the member variables tableNames and tableColumns with up-to-date layout information if the da...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:98</div></div>
-<div class="ttc" id="aclass_a_database_html_a2c54b7506faf0f15f5323ed53ff12099"><div class="ttname"><a href="class_a_database.html#a2c54b7506faf0f15f5323ed53ff12099">ADatabase::databaseSummaryString</a></div><div class="ttdeci">const QString databaseSummaryString(const QString &amp;db_path)</div><div class="ttdoc">returns a short summary string of the database, containing total time and date of last flight.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:769</div></div>
-<div class="ttc" id="aclass_a_database_html_a73382f7e897f8381371cd3da458f72cc"><div class="ttname"><a href="class_a_database.html#a73382f7e897f8381371cd3da458f72cc">ADatabase::clear</a></div><div class="ttdeci">bool clear()</div><div class="ttdoc">clear resets the database, i.e. deletes all content in the tables containing userdata (pilots,...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:315</div></div>
-<div class="ttc" id="aclass_a_database_html_abc8c302d07f5f14cf246c8b2fd1ba366"><div class="ttname"><a href="class_a_database.html#abc8c302d07f5f14cf246c8b2fd1ba366">ADatabase::getLastEntry</a></div><div class="ttdeci">int getLastEntry(ADatabaseTable table)</div><div class="ttdoc">returns the ROWID for the newest entry in the respective database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:604</div></div>
-<div class="ttc" id="aclass_a_database_html_a4640a4348dad468a0ff65bad05b07227"><div class="ttname"><a href="class_a_database.html#a4640a4348dad468a0ff65bad05b07227">ADatabase::resolveForeignPilot</a></div><div class="ttdeci">APilotEntry resolveForeignPilot(RowId_T foreign_key)</div><div class="ttdoc">Resolves the foreign key in a flight entry.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:669</div></div>
-<div class="ttc" id="aclass_a_database_html_a89de409c1828125363f46f384df47359"><div class="ttname"><a href="class_a_database.html#a89de409c1828125363f46f384df47359">ADatabase::getCompletionList</a></div><div class="ttdeci">const QStringList getCompletionList(ADatabaseTarget target)</div><div class="ttdoc">getCompletionList returns a QStringList of values for a QCompleter based on database values</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:509</div></div>
+<div class="ttc" id="aclass_a_database_html_a3deb081c5abe832a65e1792c106eb083"><div class="ttname"><a href="class_a_database.html#a3deb081c5abe832a65e1792c106eb083">ADatabase::getTableNames</a></div><div class="ttdeci">const TableNames_T getTableNames() const</div><div class="ttdoc">Return the names of all tables in the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:93</div></div>
+<div class="ttc" id="aclass_a_database_html_a426026d641a594863995ec5db8312259"><div class="ttname"><a href="class_a_database.html#a426026d641a594863995ec5db8312259">ADatabase::getPilotEntry</a></div><div class="ttdeci">APilotEntry getPilotEntry(RowId_T row_id)</div><div class="ttdoc">retreives a PilotEntry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:468</div></div>
+<div class="ttc" id="aclass_a_database_html_a4640a4348dad468a0ff65bad05b07227"><div class="ttname"><a href="class_a_database.html#a4640a4348dad468a0ff65bad05b07227">ADatabase::resolveForeignPilot</a></div><div class="ttdeci">APilotEntry resolveForeignPilot(RowId_T foreign_key)</div><div class="ttdoc">Resolves the foreign key in a flight entry.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:664</div></div>
+<div class="ttc" id="aclass_a_database_html_a491415273a771dd7ea41452c331a34b0"><div class="ttname"><a href="class_a_database.html#a491415273a771dd7ea41452c331a34b0">ADatabase::sqliteVersion</a></div><div class="ttdeci">const QString sqliteVersion() const</div><div class="ttdoc">ADatabase::sqliteVersion returns the database sqlite version. See also dbRevision()</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:124</div></div>
+<div class="ttc" id="aclass_a_database_html_a4deda96cfb75518f98a4a0c9996920eb"><div class="ttname"><a href="class_a_database.html#a4deda96cfb75518f98a4a0c9996920eb">ADatabase::remove</a></div><div class="ttdeci">bool remove(const AEntry &amp;entry)</div><div class="ttdoc">deletes an entry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:182</div></div>
+<div class="ttc" id="aclass_a_database_html_a56baf4eaf25922030f3cfa6906963f7c"><div class="ttname"><a href="class_a_database.html#a56baf4eaf25922030f3cfa6906963f7c">ADatabase::databaseSummary</a></div><div class="ttdeci">QMap&lt; ADatabaseSummaryKey, QString &gt; databaseSummary(const QString &amp;db_path)</div><div class="ttdoc">Return a summary of a database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:702</div></div>
+<div class="ttc" id="aclass_a_database_html_a5878bcd4bc19e4c3fc5275ca7252860d"><div class="ttname"><a href="class_a_database.html#a5878bcd4bc19e4c3fc5275ca7252860d">ADatabase::resolveForeignTail</a></div><div class="ttdeci">ATailEntry resolveForeignTail(RowId_T foreign_key)</div><div class="ttdoc">Resolves the foreign key in a flight entry.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:669</div></div>
+<div class="ttc" id="aclass_a_database_html_a5ab838a62a83974f9e40c62f66adfa99"><div class="ttname"><a href="class_a_database.html#a5ab838a62a83974f9e40c62f66adfa99">ADatabase::createBackup</a></div><div class="ttdeci">bool createBackup(const QString &amp;dest_file)</div><div class="ttdoc">ADatabase::createBackup copies the currently used database to an external backup location provided by...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:781</div></div>
+<div class="ttc" id="aclass_a_database_html_a5abdf1f35468f788609252c7a3be7bc4"><div class="ttname"><a href="class_a_database.html#a5abdf1f35468f788609252c7a3be7bc4">ADatabase::getCurrencyEntry</a></div><div class="ttdeci">ACurrencyEntry getCurrencyEntry(ACurrencyEntry::CurrencyName currency_name)</div><div class="ttdoc">Retreives a currency entry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:496</div></div>
+<div class="ttc" id="aclass_a_database_html_a5ed8c010ccc022687ce903cfde8ae911"><div class="ttname"><a href="class_a_database.html#a5ed8c010ccc022687ce903cfde8ae911">ADatabase::dataBaseUpdated</a></div><div class="ttdeci">void dataBaseUpdated()</div><div class="ttdoc">updated is emitted whenever the database contents have been updated. This can be either a commit,...</div></div>
+<div class="ttc" id="aclass_a_database_html_a692d7ba3abc763ee7c0d1a47236f021f"><div class="ttname"><a href="class_a_database.html#a692d7ba3abc763ee7c0d1a47236f021f">ADatabase::getUserTableNames</a></div><div class="ttdeci">QStringList getUserTableNames()</div><div class="ttdoc">getUserTableNames returns a list of the table names of tables that contain user-created data (flights...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:83</div></div>
+<div class="ttc" id="aclass_a_database_html_a73382f7e897f8381371cd3da458f72cc"><div class="ttname"><a href="class_a_database.html#a73382f7e897f8381371cd3da458f72cc">ADatabase::clear</a></div><div class="ttdeci">bool clear()</div><div class="ttdoc">clear resets the database, i.e. deletes all content in the tables containing userdata (pilots,...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:310</div></div>
+<div class="ttc" id="aclass_a_database_html_a7bb44738362582e4f54f68e3aa30d40a"><div class="ttname"><a href="class_a_database.html#a7bb44738362582e4f54f68e3aa30d40a">ADatabase::getFlightEntry</a></div><div class="ttdeci">AFlightEntry getFlightEntry(RowId_T row_id)</div><div class="ttdoc">retreives a flight entry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:489</div></div>
+<div class="ttc" id="aclass_a_database_html_a7d57d7696814bd013fa35e068ad909c8"><div class="ttname"><a href="class_a_database.html#a7d57d7696814bd013fa35e068ad909c8">ADatabase::commit</a></div><div class="ttdeci">bool commit(const AEntry &amp;entry)</div><div class="ttdoc">commits an entry to the database, calls either insert or update, based on position data</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:173</div></div>
+<div class="ttc" id="aclass_a_database_html_a863d30e9e3a7c14adfe72787363618c8"><div class="ttname"><a href="class_a_database.html#a863d30e9e3a7c14adfe72787363618c8">ADatabase::removeMany</a></div><div class="ttdeci">bool removeMany(QList&lt; DataPosition &gt;)</div><div class="ttdoc">deletes a list of entries from the database. Optimised for speed when deleting many entries.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:210</div></div>
+<div class="ttc" id="aclass_a_database_html_a88c8cb3d573d46c1ee8e5af61cf63224"><div class="ttname"><a href="class_a_database.html#a88c8cb3d573d46c1ee8e5af61cf63224">ADatabase::lastError</a></div><div class="ttdeci">QSqlError lastError</div><div class="ttdoc">Holds information about the last error that ocurred during a SQL operation. If the error type is QSql...</div><div class="ttdef"><b>Definition:</b> adatabase.h:159</div></div>
+<div class="ttc" id="aclass_a_database_html_a8959b406b97d9520981890d92850b1ba"><div class="ttname"><a href="class_a_database.html#a8959b406b97d9520981890d92850b1ba">ADatabase::getEntry</a></div><div class="ttdeci">AEntry getEntry(DataPosition data_position)</div><div class="ttdoc">retreive an Entry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:461</div></div>
+<div class="ttc" id="aclass_a_database_html_a89de409c1828125363f46f384df47359"><div class="ttname"><a href="class_a_database.html#a89de409c1828125363f46f384df47359">ADatabase::getCompletionList</a></div><div class="ttdeci">const QStringList getCompletionList(ADatabaseTarget target)</div><div class="ttdoc">getCompletionList returns a QStringList of values for a QCompleter based on database values</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:503</div></div>
+<div class="ttc" id="aclass_a_database_html_a8b38405b535d603cce2b36ca2d56368f"><div class="ttname"><a href="class_a_database.html#a8b38405b535d603cce2b36ca2d56368f">ADatabase::getTable</a></div><div class="ttdeci">QVector&lt; RowData_T &gt; getTable(ADatabaseTable table_name)</div><div class="ttdoc">getTable returns all contents of a given table from the database</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:799</div></div>
 <div class="ttc" id="aclass_a_database_html_a9c0dcd8c35087c8256b75d8aafa64880"><div class="ttname"><a href="class_a_database.html#a9c0dcd8c35087c8256b75d8aafa64880">ADatabase::getTableColumns</a></div><div class="ttdeci">const ColumnNames_T getTableColumns(TableName_T table_name) const</div><div class="ttdoc">Return the names of a given table in the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:88</div></div>
-<div class="ttc" id="aclass_a_database_html_abc461aaa66304ca638e546f67a694935"><div class="ttname"><a href="class_a_database.html#abc461aaa66304ca638e546f67a694935">ADatabase::disconnect</a></div><div class="ttdeci">void disconnect()</div><div class="ttdoc">closes the database connection.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:164</div></div>
+<div class="ttc" id="aclass_a_database_html_a9da290c8488b35196ce4e49c4cfbe9f5"><div class="ttname"><a href="class_a_database.html#a9da290c8488b35196ce4e49c4cfbe9f5">ADatabase::getUserDataState</a></div><div class="ttdeci">UserDataState getUserDataState()</div><div class="ttdoc">getUserDataState returns a struct containing the current amount of entries in the tails and pilots ta...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:67</div></div>
+<div class="ttc" id="aclass_a_database_html_aa6080200aa3f229251480bc416755fed"><div class="ttname"><a href="class_a_database.html#aa6080200aa3f229251480bc416755fed">ADatabase::connect</a></div><div class="ttdeci">bool connect()</div><div class="ttdoc">Connect to the database and populate database information.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:133</div></div>
+<div class="ttc" id="aclass_a_database_html_aa69dcdf174e48653cdf1bef473dc5623"><div class="ttname"><a href="class_a_database.html#aa69dcdf174e48653cdf1bef473dc5623">ADatabase::insert</a></div><div class="ttdeci">bool insert(const AEntry &amp;new_entry)</div><div class="ttdoc">Create new entry in the databse based on UserInput.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:360</div></div>
+<div class="ttc" id="aclass_a_database_html_ab99ccce4c67591f5f58832c26cf93fc8"><div class="ttname"><a href="class_a_database.html#ab99ccce4c67591f5f58832c26cf93fc8">ADatabase::getMinimumDatabaseRevision</a></div><div class="ttdeci">static int getMinimumDatabaseRevision()</div><div class="ttdoc">getMinimumDatabaseRevision returns the minimum required database revision number required by the appl...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:57</div></div>
+<div class="ttc" id="aclass_a_database_html_abc461aaa66304ca638e546f67a694935"><div class="ttname"><a href="class_a_database.html#abc461aaa66304ca638e546f67a694935">ADatabase::disconnect</a></div><div class="ttdeci">void disconnect()</div><div class="ttdoc">closes the database connection.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:161</div></div>
+<div class="ttc" id="aclass_a_database_html_ac73208ba1a70af19590d53f260e7cb8c"><div class="ttname"><a href="class_a_database.html#ac73208ba1a70af19590d53f260e7cb8c">ADatabase::update</a></div><div class="ttdeci">bool update(const AEntry &amp;updated_entry)</div><div class="ttdoc">Updates entry in database from existing entry tweaked by the user.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:326</div></div>
+<div class="ttc" id="aclass_a_database_html_ad688f0e48bea4879a81e17a584f189b1"><div class="ttname"><a href="class_a_database.html#ad688f0e48bea4879a81e17a584f189b1">ADatabase::getTemplateTableNames</a></div><div class="ttdeci">QStringList getTemplateTableNames()</div><div class="ttdoc">getTemplateTableNames returns a list of the table names of tables that contain template data (aiports...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:62</div></div>
+<div class="ttc" id="aclass_a_database_html_ae0a3c9273431195df6295b9da24b3a3a"><div class="ttname"><a href="class_a_database.html#ae0a3c9273431195df6295b9da24b3a3a">ADatabase::getAircraftEntry</a></div><div class="ttdeci">AAircraftEntry getAircraftEntry(RowId_T row_id)</div><div class="ttdoc">retreives a TailEntry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:482</div></div>
+<div class="ttc" id="aclass_a_database_html_afa8ce49693abf480f296d34dfc2969f0"><div class="ttname"><a href="class_a_database.html#afa8ce49693abf480f296d34dfc2969f0">ADatabase::getIdMap</a></div><div class="ttdeci">const QMap&lt; RowId_T, QString &gt; getIdMap(ADatabaseTarget target)</div><div class="ttdoc">returns a QMap of a human-readable database value and its row id. Used in the Dialogs to map user inp...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:552</div></div>
+<div class="ttc" id="aclass_a_database_html_afc39f6136fc822e0649964fa22b84bf9"><div class="ttname"><a href="class_a_database.html#afc39f6136fc822e0649964fa22b84bf9">ADatabase::getEntryData</a></div><div class="ttdeci">RowData_T getEntryData(DataPosition data_position)</div><div class="ttdoc">retreive entry data from the database to create an entry object</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:404</div></div>
+<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:33</div></div>
 <div class="ttc" id="aclass_a_flight_entry_html"><div class="ttname"><a href="class_a_flight_entry.html">AFlightEntry</a></div><div class="ttdef"><b>Definition:</b> aflightentry.h:23</div></div>
-<div class="ttc" id="aclass_a_database_html_a426026d641a594863995ec5db8312259"><div class="ttname"><a href="class_a_database.html#a426026d641a594863995ec5db8312259">ADatabase::getPilotEntry</a></div><div class="ttdeci">APilotEntry getPilotEntry(RowId_T row_id)</div><div class="ttdoc">retreives a PilotEntry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:474</div></div>
-<div class="ttc" id="aclass_a_database_error_html"><div class="ttname"><a href="class_a_database_error.html">ADatabaseError</a></div><div class="ttdoc">Custom Database Error derived from QSqlError. Extends text() adding &quot;Database Error: &quot; before the tex...</div><div class="ttdef"><b>Definition:</b> adatabase.h:98</div></div>
-<div class="ttc" id="aclass_a_database_html_ab99ccce4c67591f5f58832c26cf93fc8"><div class="ttname"><a href="class_a_database.html#ab99ccce4c67591f5f58832c26cf93fc8">ADatabase::getMinimumDatabaseRevision</a></div><div class="ttdeci">static int getMinimumDatabaseRevision()</div><div class="ttdoc">getMinimumDatabaseRevision returns the minimum required database revision number required by the appl...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:73</div></div>
-<div class="ttc" id="aclass_a_database_html_a88c8cb3d573d46c1ee8e5af61cf63224"><div class="ttname"><a href="class_a_database.html#a88c8cb3d573d46c1ee8e5af61cf63224">ADatabase::lastError</a></div><div class="ttdeci">QSqlError lastError</div><div class="ttdoc">lastError extends QSqlError. Holds information about the last error that ocurred during a SQL operati...</div><div class="ttdef"><b>Definition:</b> adatabase.h:134</div></div>
+<div class="ttc" id="astruct_a_aircraft_entry_html"><div class="ttname"><a href="struct_a_aircraft_entry.html">AAircraftEntry</a></div><div class="ttdef"><b>Definition:</b> aaircraftentry.h:24</div></div>
+<div class="ttc" id="astruct_a_currency_entry_html"><div class="ttname"><a href="struct_a_currency_entry.html">ACurrencyEntry</a></div><div class="ttdef"><b>Definition:</b> acurrencyentry.h:8</div></div>
 <div class="ttc" id="astruct_a_pilot_entry_html"><div class="ttname"><a href="struct_a_pilot_entry.html">APilotEntry</a></div><div class="ttdef"><b>Definition:</b> apilotentry.h:24</div></div>
-<div class="ttc" id="aclass_a_database_html_aa6080200aa3f229251480bc416755fed"><div class="ttname"><a href="class_a_database.html#aa6080200aa3f229251480bc416755fed">ADatabase::connect</a></div><div class="ttdeci">bool connect()</div><div class="ttdoc">Connect to the database and populate database information.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:136</div></div>
-<div class="ttc" id="aclass_a_database_html_a5ab838a62a83974f9e40c62f66adfa99"><div class="ttname"><a href="class_a_database.html#a5ab838a62a83974f9e40c62f66adfa99">ADatabase::createBackup</a></div><div class="ttdeci">bool createBackup(const QString &amp;dest_file)</div><div class="ttdoc">ADatabase::createBackup copies the currently used database to an external backup location provided by...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:787</div></div>
-<div class="ttc" id="aclass_a_database_html_a0f0bffbb6cdd79975b7b5ca6c0db31a7"><div class="ttname"><a href="class_a_database.html#a0f0bffbb6cdd79975b7b5ca6c0db31a7">ADatabase::connectionReset</a></div><div class="ttdeci">void connectionReset()</div><div class="ttdoc">connectionReset is emitted whenever the database connection is reset, for example when creating or re...</div></div>
-<div class="ttc" id="aclass_a_database_html_a491415273a771dd7ea41452c331a34b0"><div class="ttname"><a href="class_a_database.html#a491415273a771dd7ea41452c331a34b0">ADatabase::sqliteVersion</a></div><div class="ttdeci">const QString sqliteVersion() const</div><div class="ttdoc">ADatabase::sqliteVersion returns the database sqlite version. See also dbRevision()</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:127</div></div>
-<div class="ttc" id="aclass_a_database_html_a5ed8c010ccc022687ce903cfde8ae911"><div class="ttname"><a href="class_a_database.html#a5ed8c010ccc022687ce903cfde8ae911">ADatabase::dataBaseUpdated</a></div><div class="ttdeci">void dataBaseUpdated()</div><div class="ttdoc">updated is emitted whenever the database contents have been updated. This can be either a commit,...</div></div>
-<div class="ttc" id="aclass_a_database_html_a692d7ba3abc763ee7c0d1a47236f021f"><div class="ttname"><a href="class_a_database.html#a692d7ba3abc763ee7c0d1a47236f021f">ADatabase::getUserTableNames</a></div><div class="ttdeci">QStringList getUserTableNames()</div><div class="ttdoc">getUserTableNames returns a list of the table names of tables that contain user-created data (flights...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:83</div></div>
-<div class="ttc" id="aclass_a_database_html_a2a43936d3ae28993f9f7eda0fdf4664d"><div class="ttname"><a href="class_a_database.html#a2a43936d3ae28993f9f7eda0fdf4664d">ADatabase::customQuery</a></div><div class="ttdeci">QVector&lt; QVariant &gt; customQuery(QString statement, int return_values)</div><div class="ttdoc">Can be used to send a complex query to the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:679</div></div>
-<div class="ttc" id="aclass_a_database_html_a56baf4eaf25922030f3cfa6906963f7c"><div class="ttname"><a href="class_a_database.html#a56baf4eaf25922030f3cfa6906963f7c">ADatabase::databaseSummary</a></div><div class="ttdeci">QMap&lt; ADatabaseSummaryKey, QString &gt; databaseSummary(const QString &amp;db_path)</div><div class="ttdoc">Return a summary of a database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:708</div></div>
-<div class="ttc" id="aclass_a_database_html_a8959b406b97d9520981890d92850b1ba"><div class="ttname"><a href="class_a_database.html#a8959b406b97d9520981890d92850b1ba">ADatabase::getEntry</a></div><div class="ttdeci">AEntry getEntry(DataPosition data_position)</div><div class="ttdoc">retreive an Entry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:467</div></div>
-<div class="ttc" id="aclass_a_database_html_a3deb081c5abe832a65e1792c106eb083"><div class="ttname"><a href="class_a_database.html#a3deb081c5abe832a65e1792c106eb083">ADatabase::getTableNames</a></div><div class="ttdeci">const TableNames_T getTableNames() const</div><div class="ttdoc">Return the names of all tables in the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:93</div></div>
-<div class="ttc" id="aclass_a_database_html_a356df159542705635dc3898d90682039"><div class="ttname"><a href="class_a_database.html#a356df159542705635dc3898d90682039">ADatabase::getTailEntry</a></div><div class="ttdeci">ATailEntry getTailEntry(RowId_T row_id)</div><div class="ttdoc">retreives a TailEntry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:481</div></div>
-<div class="ttc" id="aclass_a_database_html_a7bb44738362582e4f54f68e3aa30d40a"><div class="ttname"><a href="class_a_database.html#a7bb44738362582e4f54f68e3aa30d40a">ADatabase::getFlightEntry</a></div><div class="ttdeci">AFlightEntry getFlightEntry(RowId_T row_id)</div><div class="ttdoc">retreives a flight entry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:495</div></div>
-<div class="ttc" id="aclass_a_database_html_ae0a3c9273431195df6295b9da24b3a3a"><div class="ttname"><a href="class_a_database.html#ae0a3c9273431195df6295b9da24b3a3a">ADatabase::getAircraftEntry</a></div><div class="ttdeci">AAircraftEntry getAircraftEntry(RowId_T row_id)</div><div class="ttdoc">retreives a TailEntry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:488</div></div>
-<div class="ttc" id="astruct_data_position_html"><div class="ttname"><a href="struct_data_position.html">DataPosition</a></div><div class="ttdef"><b>Definition:</b> adatabasetypes.h:44</div></div>
 <div class="ttc" id="astruct_a_tail_entry_html"><div class="ttname"><a href="struct_a_tail_entry.html">ATailEntry</a></div><div class="ttdef"><b>Definition:</b> atailentry.h:24</div></div>
-<div class="ttc" id="aclass_a_database_html_a2379c9da900da8e96add932e4024389a"><div class="ttname"><a href="class_a_database.html#a2379c9da900da8e96add932e4024389a">ADatabase::database</a></div><div class="ttdeci">static QSqlDatabase database()</div><div class="ttdoc">Can be used to access the database connection.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:171</div></div>
-<div class="ttc" id="aclass_a_database_html"><div class="ttname"><a href="class_a_database.html">ADatabase</a></div><div class="ttdoc">The DB class encapsulates the SQL database by providing fast access to hot database data.</div><div class="ttdef"><b>Definition:</b> adatabase.h:110</div></div>
-<div class="ttc" id="aclass_a_database_html_a4903909a28daed708e1a335d3be4f57b"><div class="ttname"><a href="class_a_database.html#a4903909a28daed708e1a335d3be4f57b">ADatabase::remove</a></div><div class="ttdeci">bool remove(AEntry entry)</div><div class="ttdoc">deletes an entry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:185</div></div>
-<div class="ttc" id="aclass_a_database_html_afc39f6136fc822e0649964fa22b84bf9"><div class="ttname"><a href="class_a_database.html#afc39f6136fc822e0649964fa22b84bf9">ADatabase::getEntryData</a></div><div class="ttdeci">RowData_T getEntryData(DataPosition data_position)</div><div class="ttdoc">retreive entry data from the database to create an entry object</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:409</div></div>
-<div class="ttc" id="aclass_a_database_html_a863d30e9e3a7c14adfe72787363618c8"><div class="ttname"><a href="class_a_database.html#a863d30e9e3a7c14adfe72787363618c8">ADatabase::removeMany</a></div><div class="ttdeci">bool removeMany(QList&lt; DataPosition &gt;)</div><div class="ttdoc">deletes a list of entries from the database. Optimised for speed when deleting many entries.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:214</div></div>
-<div class="ttc" id="aclass_a_database_html_a5abdf1f35468f788609252c7a3be7bc4"><div class="ttname"><a href="class_a_database.html#a5abdf1f35468f788609252c7a3be7bc4">ADatabase::getCurrencyEntry</a></div><div class="ttdeci">ACurrencyEntry getCurrencyEntry(ACurrencyEntry::CurrencyName currency_name)</div><div class="ttdoc">Retreives a currency entry from the database.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:502</div></div>
-<div class="ttc" id="aclass_a_database_html_a0f88e121d421043f35e321d5dc49ba19"><div class="ttname"><a href="class_a_database.html#a0f88e121d421043f35e321d5dc49ba19">ADatabase::getForeignKeyConstraints</a></div><div class="ttdeci">QList&lt; RowId_T &gt; getForeignKeyConstraints(RowId_T foreign_row_id, ADatabaseTable target)</div><div class="ttdoc">returns a list of ROWID's in the flights table for which foreign key constraints exist.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:632</div></div>
-<div class="ttc" id="astruct_a_aircraft_entry_html"><div class="ttname"><a href="struct_a_aircraft_entry.html">AAircraftEntry</a></div><div class="ttdef"><b>Definition:</b> aaircraftentry.h:24</div></div>
-<div class="ttc" id="aclass_a_database_html_a8b38405b535d603cce2b36ca2d56368f"><div class="ttname"><a href="class_a_database.html#a8b38405b535d603cce2b36ca2d56368f">ADatabase::getTable</a></div><div class="ttdeci">QVector&lt; RowData_T &gt; getTable(ADatabaseTable table_name)</div><div class="ttdoc">getTable returns all contents of a given table from the database</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:805</div></div>
-<div class="ttc" id="astruct_a_currency_entry_html"><div class="ttname"><a href="struct_a_currency_entry.html">ACurrencyEntry</a></div><div class="ttdef"><b>Definition:</b> acurrencyentry.h:7</div></div>
-<div class="ttc" id="aclass_a_database_html_a5878bcd4bc19e4c3fc5275ca7252860d"><div class="ttname"><a href="class_a_database.html#a5878bcd4bc19e4c3fc5275ca7252860d">ADatabase::resolveForeignTail</a></div><div class="ttdeci">ATailEntry resolveForeignTail(RowId_T foreign_key)</div><div class="ttdoc">Resolves the foreign key in a flight entry.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:674</div></div>
-<div class="ttc" id="aclass_a_database_html_a1c026e7784b03fc5822077c7d0071330"><div class="ttname"><a href="class_a_database.html#a1c026e7784b03fc5822077c7d0071330">ADatabase::dbRevision</a></div><div class="ttdeci">int dbRevision() const</div><div class="ttdoc">dbRevision returns the database Revision Number. The Revision refers to what iteration of the databas...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:61</div></div>
-<div class="ttc" id="aclass_a_database_html_a5dba46567089112b28b16aaf985af0ba"><div class="ttname"><a href="class_a_database.html#a5dba46567089112b28b16aaf985af0ba">ADatabase::getIdMap</a></div><div class="ttdeci">const QMap&lt; QString, RowId_T &gt; getIdMap(ADatabaseTarget target)</div><div class="ttdoc">returns a QMap&lt;QString, RowId_t&gt; of a human-readable database value and its row id....</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:558</div></div>
-<div class="ttc" id="aclass_a_database_html_a652472c747c0ce68940b17c9c23666dd"><div class="ttname"><a href="class_a_database.html#a652472c747c0ce68940b17c9c23666dd">ADatabase::commit</a></div><div class="ttdeci">bool commit(AEntry entry)</div><div class="ttdoc">commits an entry to the database, calls either insert or update, based on position data</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:176</div></div>
-<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:40</div></div>
-<div class="ttc" id="aclass_a_database_html_ad688f0e48bea4879a81e17a584f189b1"><div class="ttname"><a href="class_a_database.html#ad688f0e48bea4879a81e17a584f189b1">ADatabase::getTemplateTableNames</a></div><div class="ttdeci">QStringList getTemplateTableNames()</div><div class="ttdoc">getTemplateTableNames returns a list of the table names of tables that contain template data (aiports...</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:78</div></div>
-<div class="ttc" id="aclass_a_database_html_a4ecb6d0c9b3813c90b3165c993e69ad5"><div class="ttname"><a href="class_a_database.html#a4ecb6d0c9b3813c90b3165c993e69ad5">ADatabase::insert</a></div><div class="ttdeci">bool insert(AEntry new_entry)</div><div class="ttdoc">Create new entry in the databse based on UserInput.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:365</div></div>
-<div class="ttc" id="aclass_a_database_html_a910bc0c1717e9301911343c082aa1aaa"><div class="ttname"><a href="class_a_database.html#a910bc0c1717e9301911343c082aa1aaa">ADatabase::update</a></div><div class="ttdeci">bool update(AEntry updated_entry)</div><div class="ttdoc">Updates entry in database from existing entry tweaked by the user.</div><div class="ttdef"><b>Definition:</b> adatabase.cpp:331</div></div>
+<div class="ttc" id="astruct_data_position_html"><div class="ttname"><a href="struct_data_position.html">DataPosition</a></div><div class="ttdef"><b>Definition:</b> adatabasetypes.h:44</div></div>
+<div class="ttc" id="astruct_user_data_state_html"><div class="ttname"><a href="struct_user_data_state.html">UserDataState</a></div><div class="ttdoc">The UserDateState struct caches the current number of entries in relevant database tables for fast ac...</div><div class="ttdef"><b>Definition:</b> adatabase.h:97</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_803ee67260c130b45d29089798491ab2.html">database</a></li><li class="navelem"><b>adatabase.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 6 - 8
docs/html/adatabasetypes_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/database/adatabasetypes.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -148,17 +148,15 @@ $(document).ready(function(){initNavTree('adatabasetypes_8h_source.html',''); in
 <div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;         )</div>
 <div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;};</div>
 <div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#endif // DECLARATIONS_H</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// DECLARATIONS_H</span></div>
+<div class="ttc" id="astruct_data_position_html"><div class="ttname"><a href="struct_data_position.html">DataPosition</a></div><div class="ttdef"><b>Definition:</b> adatabasetypes.h:44</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="astruct_data_position_html"><div class="ttname"><a href="struct_data_position.html">DataPosition</a></div><div class="ttdef"><b>Definition:</b> adatabasetypes.h:44</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_803ee67260c130b45d29089798491ab2.html">database</a></li><li class="navelem"><b>adatabasetypes.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 30 - 20
docs/html/adate_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/functions/adate.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -111,32 +111,42 @@ $(document).ready(function(){initNavTree('adate_8h_source.html',''); initResizab
 <div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_a_date.html">   26</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_date.html">ADate</a></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;{</div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keyword">static</span> QDate <a class="code" href="class_a_date.html#aa1c79d62d44ab503ccbc984f6f681a2d">formatInput</a>(QString user_input, Opl::Date::ADateFormat format);</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keyword">static</span> QDate <a class="code" href="class_a_date.html#ad678a1eed52b81d7af4d4e31ffad2c1e">parseInput</a>(QString &amp;io_user_input, Opl::Date::ADateFormat format);</div>
 <div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
-<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_a_date.html#ae8a544f48462c8159748f98fe4684a56">   38</a></span>&#160;    <span class="keyword">inline</span> <span class="keyword">static</span> QString <a class="code" href="class_a_date.html#ae8a544f48462c8159748f98fe4684a56">toString</a>(<span class="keyword">const</span> QDate &amp;date, Opl::Date::ADateFormat format = Opl::Date::ADateFormat::ISODate)</div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    {</div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        <span class="keywordflow">return</span> date.toString(ADATEFORMATSMAP.value(format));</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    };</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QStringList&amp; getDisplayNames();</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString getFormatString(Opl::Date::ADateFormat format);</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> tryToFix(QString &amp;io_user_input, Opl::Date::ADateFormat format);</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_a_date.html#ac184d215183b290f4cdacde835fd5938">padCentury</a>(QString &amp;io_user_input, Opl::Date::ADateFormat format);</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_a_date.html#ac73a41e8dac47a3a2a3fcef5b3d19eee">padZeroes</a>(QString &amp;io_user_input);</div>
 <div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;};</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> addSeperators(QString &amp;io_user_input, <span class="keyword">const</span> Opl::Date::ADateFormat &amp;format);</div>
 <div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#endif // ADATE_H</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> containsSeperator(<span class="keyword">const</span> QString &amp;user_input);</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_a_date.html#ae8a544f48462c8159748f98fe4684a56">   54</a></span>&#160;    <span class="keyword">inline</span> <span class="keyword">static</span> QString <a class="code" href="class_a_date.html#ae8a544f48462c8159748f98fe4684a56">toString</a>(<span class="keyword">const</span> QDate &amp;date, Opl::Date::ADateFormat format = Opl::Date::ADateFormat::ISODate)</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    {</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        <span class="keywordflow">return</span> date.toString(ADATEFORMATSMAP.value(format));</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    };</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QStringList&amp; getDisplayNames();</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString getFormatString(Opl::Date::ADateFormat format);</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;};</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ADATE_H</span></div>
+<div class="ttc" id="aclass_a_date_html"><div class="ttname"><a href="class_a_date.html">ADate</a></div><div class="ttdoc">The ADate class is responsible for input/output of Dates and handling the different Date Formats.</div><div class="ttdef"><b>Definition:</b> adate.h:27</div></div>
+<div class="ttc" id="aclass_a_date_html_ac184d215183b290f4cdacde835fd5938"><div class="ttname"><a href="class_a_date.html#ac184d215183b290f4cdacde835fd5938">ADate::padCentury</a></div><div class="ttdeci">static void padCentury(QString &amp;io_user_input, Opl::Date::ADateFormat format)</div><div class="ttdoc">padCentury adds the century to a date where it was omitted</div><div class="ttdef"><b>Definition:</b> adate.cpp:36</div></div>
+<div class="ttc" id="aclass_a_date_html_ac73a41e8dac47a3a2a3fcef5b3d19eee"><div class="ttname"><a href="class_a_date.html#ac73a41e8dac47a3a2a3fcef5b3d19eee">ADate::padZeroes</a></div><div class="ttdeci">static void padZeroes(QString &amp;io_user_input)</div><div class="ttdoc">pads a user-provided date string with 0s to facilitate conversion to QDate</div><div class="ttdef"><b>Definition:</b> adate.cpp:67</div></div>
+<div class="ttc" id="aclass_a_date_html_ad678a1eed52b81d7af4d4e31ffad2c1e"><div class="ttname"><a href="class_a_date.html#ad678a1eed52b81d7af4d4e31ffad2c1e">ADate::parseInput</a></div><div class="ttdeci">static QDate parseInput(QString &amp;io_user_input, Opl::Date::ADateFormat format)</div><div class="ttdoc">takes a user-provided input and tries to convert it to a (valid) QDate.</div><div class="ttdef"><b>Definition:</b> adate.cpp:3</div></div>
+<div class="ttc" id="aclass_a_date_html_ae8a544f48462c8159748f98fe4684a56"><div class="ttname"><a href="class_a_date.html#ae8a544f48462c8159748f98fe4684a56">ADate::toString</a></div><div class="ttdeci">static QString toString(const QDate &amp;date, Opl::Date::ADateFormat format=Opl::Date::ADateFormat::ISODate)</div><div class="ttdoc">Reimplements QDate::toString to accept Opl::Date::ADateFormat enums.</div><div class="ttdef"><b>Definition:</b> adate.h:54</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="aclass_a_date_html_ae8a544f48462c8159748f98fe4684a56"><div class="ttname"><a href="class_a_date.html#ae8a544f48462c8159748f98fe4684a56">ADate::toString</a></div><div class="ttdeci">static QString toString(const QDate &amp;date, Opl::Date::ADateFormat format=Opl::Date::ADateFormat::ISODate)</div><div class="ttdoc">Reimplements QDate::toString to accept Opl::Date::ADateFormat enums.</div><div class="ttdef"><b>Definition:</b> adate.h:38</div></div>
-<div class="ttc" id="aclass_a_date_html_aa1c79d62d44ab503ccbc984f6f681a2d"><div class="ttname"><a href="class_a_date.html#aa1c79d62d44ab503ccbc984f6f681a2d">ADate::formatInput</a></div><div class="ttdeci">static QDate formatInput(QString user_input, Opl::Date::ADateFormat format)</div><div class="ttdoc">formatInput takes a user-provided input and tries to convert it to a QDate.</div><div class="ttdef"><b>Definition:</b> adate.cpp:3</div></div>
-<div class="ttc" id="aclass_a_date_html"><div class="ttname"><a href="class_a_date.html">ADate</a></div><div class="ttdoc">The ADate class is responsible for input/output of Dates and handling the different Date Formats.</div><div class="ttdef"><b>Definition:</b> adate.h:26</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_e823141bb13a34caac0c96ccd0d33fcf.html">functions</a></li><li class="navelem"><b>adate.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 15 - 10
docs/html/adatetime_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/functions/adatetime.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -111,7 +111,7 @@ $(document).ready(function(){initNavTree('adatetime_8h_source.html',''); initRes
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="keyword">namespace </span>ADateTime {</div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> QString toString (<span class="keyword">const</span> QDateTime date_time, Opl::Datetime::DateTimeFormat format) {</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> QString toString (<span class="keyword">const</span> QDateTime&amp; date_time, Opl::Datetime::DateTimeFormat format) {</div>
 <div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keywordflow">switch</span> (format) {</div>
 <div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keywordflow">case</span> Opl::Datetime::Default:</div>
 <div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <span class="keywordflow">return</span> date_time.toString(Qt::ISODate);</div>
@@ -122,18 +122,23 @@ $(document).ready(function(){initNavTree('adatetime_8h_source.html',''); initRes
 <div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    }</div>
 <div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;}</div>
 <div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;}</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#endif // ADATETIME_H</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">inline</span> QDateTime fromString(<span class="keyword">const</span> QString&amp; date_time_string)</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;{</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <span class="keyword">auto</span> date_time = QDateTime::fromString(date_time_string, QStringLiteral(<span class="stringliteral">&quot;yyyy-MM-ddhh:mm&quot;</span>));</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    date_time.setTimeZone(QTimeZone::utc());</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="keywordflow">return</span> date_time;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;}</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;}</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ADATETIME_H</span></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_e823141bb13a34caac0c96ccd0d33fcf.html">functions</a></li><li class="navelem"><b>adatetime.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 14 - 13
docs/html/adbsetup_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/database/adbsetup.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -117,22 +117,23 @@ $(document).ready(function(){initNavTree('adbsetup_8h_source.html',''); initResi
 <div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespacea_db_setup.html#a6bc782f35cc58b815a1e01134c885839">commitData</a>(<span class="keyword">const</span> QJsonArray &amp;json_arr, <span class="keyword">const</span> QString &amp;table_name);</div>
 <div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
 <div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespacea_db_setup.html#a97547c296b43543df163411cd423c945">importTemplateData</a>(<span class="keywordtype">bool</span> use_local_ressources);</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;}; <span class="comment">// namespace aDbSetup</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#endif // ADBSETUP_H</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespacea_db_setup.html#a9bfda68f87c3558ca1a0590515ece3fa">resetUserData</a>();</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;}; <span class="comment">// namespace aDbSetup</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ADBSETUP_H</span></div>
+<div class="ttc" id="anamespacea_db_setup_html"><div class="ttname"><a href="namespacea_db_setup.html">aDbSetup</a></div><div class="ttdoc">The aDbSetup namespace is responsible for the inital setup of the database when the application is fi...</div><div class="ttdef"><b>Definition:</b> adbsetup.cpp:24</div></div>
+<div class="ttc" id="anamespacea_db_setup_html_a6bc782f35cc58b815a1e01134c885839"><div class="ttname"><a href="namespacea_db_setup.html#a6bc782f35cc58b815a1e01134c885839">aDbSetup::commitData</a></div><div class="ttdeci">bool commitData(const QJsonArray &amp;json_arr, const QString &amp;table_name)</div><div class="ttdoc">commitData commits the data read from a JSON file into a table in the database.</div><div class="ttdef"><b>Definition:</b> adbsetup.cpp:305</div></div>
+<div class="ttc" id="anamespacea_db_setup_html_a97547c296b43543df163411cd423c945"><div class="ttname"><a href="namespacea_db_setup.html#a97547c296b43543df163411cd423c945">aDbSetup::importTemplateData</a></div><div class="ttdeci">bool importTemplateData(bool use_local_ressources)</div><div class="ttdoc">importTemplateData fills an empty database with the template data (Aircraft, Airports,...</div><div class="ttdef"><b>Definition:</b> adbsetup.cpp:346</div></div>
+<div class="ttc" id="anamespacea_db_setup_html_a9bfda68f87c3558ca1a0590515ece3fa"><div class="ttname"><a href="namespacea_db_setup.html#a9bfda68f87c3558ca1a0590515ece3fa">aDbSetup::resetUserData</a></div><div class="ttdeci">bool resetUserData()</div><div class="ttdoc">Empties all user-generated content in the database.</div><div class="ttdef"><b>Definition:</b> adbsetup.cpp:384</div></div>
+<div class="ttc" id="anamespacea_db_setup_html_ae1411575e4c2773a578c78e8f02574ed"><div class="ttname"><a href="namespacea_db_setup.html#ae1411575e4c2773a578c78e8f02574ed">aDbSetup::createDatabase</a></div><div class="ttdeci">bool createDatabase()</div><div class="ttdoc">createDatabase runs a number of CREATE queries that create the database tables and columns.</div><div class="ttdef"><b>Definition:</b> adbsetup.cpp:274</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="anamespacea_db_setup_html"><div class="ttname"><a href="namespacea_db_setup.html">aDbSetup</a></div><div class="ttdoc">The aDbSetup namespace is responsible for the inital setup of the database when the application is fi...</div><div class="ttdef"><b>Definition:</b> adbsetup.cpp:24</div></div>
-<div class="ttc" id="anamespacea_db_setup_html_a6bc782f35cc58b815a1e01134c885839"><div class="ttname"><a href="namespacea_db_setup.html#a6bc782f35cc58b815a1e01134c885839">aDbSetup::commitData</a></div><div class="ttdeci">bool commitData(const QJsonArray &amp;json_arr, const QString &amp;table_name)</div><div class="ttdoc">commitData commits the data read from a JSON file into a table in the database.</div><div class="ttdef"><b>Definition:</b> adbsetup.cpp:293</div></div>
-<div class="ttc" id="anamespacea_db_setup_html_ae1411575e4c2773a578c78e8f02574ed"><div class="ttname"><a href="namespacea_db_setup.html#ae1411575e4c2773a578c78e8f02574ed">aDbSetup::createDatabase</a></div><div class="ttdeci">bool createDatabase()</div><div class="ttdoc">createDatabase runs a number of CREATE queries that create the database tables and columns.</div><div class="ttdef"><b>Definition:</b> adbsetup.cpp:262</div></div>
-<div class="ttc" id="anamespacea_db_setup_html_a97547c296b43543df163411cd423c945"><div class="ttname"><a href="namespacea_db_setup.html#a97547c296b43543df163411cd423c945">aDbSetup::importTemplateData</a></div><div class="ttdeci">bool importTemplateData(bool use_local_ressources)</div><div class="ttdoc">importTemplateData fills an empty database with the template data (Aircraft, Airports,...</div><div class="ttdef"><b>Definition:</b> adbsetup.cpp:334</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_803ee67260c130b45d29089798491ab2.html">database</a></li><li class="navelem"><b>adbsetup.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 6 - 8
docs/html/adownload_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/adownload.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -143,17 +143,15 @@ $(document).ready(function(){initNavTree('adownload_8h_source.html',''); initRes
 <div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="keywordtype">void</span> downloadProgress(qint64 received, qint64 total);</div>
 <div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;};</div>
 <div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#endif // ADOWNLOAD_H</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ADOWNLOAD_H</span></div>
+<div class="ttc" id="aclass_a_download_html"><div class="ttname"><a href="class_a_download.html">ADownload</a></div><div class="ttdef"><b>Definition:</b> adownload.h:30</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="aclass_a_download_html"><div class="ttname"><a href="class_a_download.html">ADownload</a></div><div class="ttdef"><b>Definition:</b> adownload.h:30</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>adownload.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 30 - 37
docs/html/aentry_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/aentry.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -115,46 +115,39 @@ $(document).ready(function(){initNavTree('aentry_8h_source.html',''); initResiza
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &quot;src/database/adatabasetypes.h&quot;</span></div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment">// [G]: Define what data is public and what not. For objects such as</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">// DataPosition which are consumable its no biggy. Are entries the same?</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment">// If so we could avoid getters and setters</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment">// [F]: In the way we are using the entries atm, we do access and edit the</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="comment">// TableData quite frequently. Maybe the data could be public, but the</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">// position private? Except for creating a new entry, the position should</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment">// never really be changed.</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_a_entry.html">   40</a></span>&#160;<span class="comment"></span><span class="keyword">class </span><a class="code" href="class_a_entry.html">AEntry</a> {</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <a class="code" href="struct_data_position.html">DataPosition</a> position;</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    RowData_T tableData;</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a>() = <span class="keyword">delete</span>; <span class="comment">// Demand specificity from default constructor</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a>(<span class="keyword">const</span> <a class="code" href="class_a_entry.html">AEntry</a>&amp;) = <span class="keywordflow">default</span>;</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_a_entry.html">AEntry</a>&amp;) = <span class="keywordflow">default</span>;</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a>(<a class="code" href="struct_data_position.html">DataPosition</a> position_);</div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a>(RowData_T table_data);</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a>(<a class="code" href="struct_data_position.html">DataPosition</a> position_, RowData_T table_data);</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keywordtype">void</span> setData(RowData_T table_data);</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="keywordtype">void</span> setPosition(<a class="code" href="struct_data_position.html">DataPosition</a> position_);</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_data_position.html">DataPosition</a>&amp; getPosition();</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keyword">const</span> RowData_T&amp; getData();</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;};</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor">#endif // AENTRY_H</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_a_entry.html">   33</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_entry.html">AEntry</a> {</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <a class="code" href="struct_data_position.html">DataPosition</a> position;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    RowData_T tableData;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a>() = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a>(<span class="keyword">const</span> <a class="code" href="class_a_entry.html">AEntry</a>&amp;) = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_a_entry.html">AEntry</a>&amp;) = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a>(<a class="code" href="struct_data_position.html">DataPosition</a> position_);</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a>(RowData_T table_data);</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <a class="code" href="class_a_entry.html">AEntry</a>(<a class="code" href="struct_data_position.html">DataPosition</a> position_, RowData_T table_data);</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keywordtype">void</span> setData(RowData_T table_data);</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keywordtype">void</span> setPosition(<a class="code" href="struct_data_position.html">DataPosition</a> position_);</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_data_position.html">DataPosition</a>&amp; getPosition() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keyword">const</span> RowData_T&amp; getData() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keyword">operator</span> QString() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;};</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// AENTRY_H</span></div>
+<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:33</div></div>
+<div class="ttc" id="astruct_data_position_html"><div class="ttname"><a href="struct_data_position.html">DataPosition</a></div><div class="ttdef"><b>Definition:</b> adatabasetypes.h:44</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="astruct_data_position_html"><div class="ttname"><a href="struct_data_position.html">DataPosition</a></div><div class="ttdef"><b>Definition:</b> adatabasetypes.h:44</div></div>
-<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:40</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>aentry.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 10 - 12
docs/html/aflightentry_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/aflightentry.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -126,21 +126,19 @@ $(document).ready(function(){initNavTree('aflightentry_8h_source.html',''); init
 <div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keyword">const</span> QString <a class="code" href="class_a_flight_entry.html#a24e526b17cedbe7fdf5af3a1ebe58648">getPilotName</a>(pilotPosition);</div>
 <div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;};</div>
 <div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#endif // AFLIGHTENTRY_H</span></div>
-</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
-<div class="ttc" id="aclass_a_flight_entry_html_a83b4a71633e5f3cd44e266d44f117412"><div class="ttname"><a href="class_a_flight_entry.html#a83b4a71633e5f3cd44e266d44f117412">AFlightEntry::summary</a></div><div class="ttdeci">const QString summary()</div><div class="ttdoc">Returs a summary of the flight data, if struct holds data.</div><div class="ttdef"><b>Definition:</b> aflightentry.cpp:36</div></div>
-<div class="ttc" id="aclass_a_flight_entry_html_a603aa9ca029e7d3ecbe77d40e02b8b1c"><div class="ttname"><a href="class_a_flight_entry.html#a603aa9ca029e7d3ecbe77d40e02b8b1c">AFlightEntry::getRegistration</a></div><div class="ttdeci">const QString getRegistration()</div><div class="ttdoc">Returns the tails' registration from the database.</div><div class="ttdef"><b>Definition:</b> aflightentry.cpp:54</div></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// AFLIGHTENTRY_H</span></div>
+<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:33</div></div>
 <div class="ttc" id="aclass_a_flight_entry_html"><div class="ttname"><a href="class_a_flight_entry.html">AFlightEntry</a></div><div class="ttdef"><b>Definition:</b> aflightentry.h:23</div></div>
 <div class="ttc" id="aclass_a_flight_entry_html_a24e526b17cedbe7fdf5af3a1ebe58648"><div class="ttname"><a href="class_a_flight_entry.html#a24e526b17cedbe7fdf5af3a1ebe58648">AFlightEntry::getPilotName</a></div><div class="ttdeci">const QString getPilotName(pilotPosition)</div><div class="ttdoc">Returns the pilots name from the Database.</div><div class="ttdef"><b>Definition:</b> aflightentry.cpp:60</div></div>
-<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:40</div></div>
+<div class="ttc" id="aclass_a_flight_entry_html_a603aa9ca029e7d3ecbe77d40e02b8b1c"><div class="ttname"><a href="class_a_flight_entry.html#a603aa9ca029e7d3ecbe77d40e02b8b1c">AFlightEntry::getRegistration</a></div><div class="ttdeci">const QString getRegistration()</div><div class="ttdoc">Returns the tails' registration from the database.</div><div class="ttdef"><b>Definition:</b> aflightentry.cpp:54</div></div>
+<div class="ttc" id="aclass_a_flight_entry_html_a83b4a71633e5f3cd44e266d44f117412"><div class="ttname"><a href="class_a_flight_entry.html#a83b4a71633e5f3cd44e266d44f117412">AFlightEntry::summary</a></div><div class="ttdeci">const QString summary()</div><div class="ttdoc">Returs a summary of the flight data, if struct holds data.</div><div class="ttdef"><b>Definition:</b> aflightentry.cpp:36</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>aflightentry.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 9 - 11
docs/html/ahash_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/ahash.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -125,20 +125,18 @@ $(document).ready(function(){initNavTree('ahash_8h_source.html',''); initResizab
 <div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_a_hash.html#ab203c085f451f0bdc9c7a8e8bb4aa751">compare</a>(QFileInfo &amp;md5_file);</div>
 <div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;};</div>
 <div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#endif // AHASH_H</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// AHASH_H</span></div>
+<div class="ttc" id="aclass_a_hash_html"><div class="ttname"><a href="class_a_hash.html">AHash</a></div><div class="ttdoc">The AHash class is responsible for calculating cryptographic hashes of files (used to verify download...</div><div class="ttdef"><b>Definition:</b> ahash.h:28</div></div>
+<div class="ttc" id="aclass_a_hash_html_a1e864fdfeca70e093046fdea7feaf3a4"><div class="ttname"><a href="class_a_hash.html#a1e864fdfeca70e093046fdea7feaf3a4">AHash::hashToHex</a></div><div class="ttdeci">const QString hashToHex()</div><div class="ttdoc">hashString returns a hex representation of the hash</div><div class="ttdef"><b>Definition:</b> ahash.h:41</div></div>
+<div class="ttc" id="aclass_a_hash_html_a9781cae720933f452e4e11c6f727602b"><div class="ttname"><a href="class_a_hash.html#a9781cae720933f452e4e11c6f727602b">AHash::AHash</a></div><div class="ttdeci">AHash(QFileInfo &amp;file_info)</div><div class="ttdoc">AHash - calculates the MD5-checksum for the parameter given in the constructor and saves the result i...</div><div class="ttdef"><b>Definition:</b> ahash.cpp:21</div></div>
+<div class="ttc" id="aclass_a_hash_html_ab203c085f451f0bdc9c7a8e8bb4aa751"><div class="ttname"><a href="class_a_hash.html#ab203c085f451f0bdc9c7a8e8bb4aa751">AHash::compare</a></div><div class="ttdeci">bool compare(QFileInfo &amp;md5_file)</div><div class="ttdoc">compare reads the pre-calculated md5-sum from a checkfile and compares the hashes.</div><div class="ttdef"><b>Definition:</b> ahash.cpp:39</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="aclass_a_hash_html_ab203c085f451f0bdc9c7a8e8bb4aa751"><div class="ttname"><a href="class_a_hash.html#ab203c085f451f0bdc9c7a8e8bb4aa751">AHash::compare</a></div><div class="ttdeci">bool compare(QFileInfo &amp;md5_file)</div><div class="ttdoc">compare reads the pre-calculated md5-sum from a checkfile and compares the hashes.</div><div class="ttdef"><b>Definition:</b> ahash.cpp:39</div></div>
-<div class="ttc" id="aclass_a_hash_html_a9781cae720933f452e4e11c6f727602b"><div class="ttname"><a href="class_a_hash.html#a9781cae720933f452e4e11c6f727602b">AHash::AHash</a></div><div class="ttdeci">AHash(QFileInfo &amp;file_info)</div><div class="ttdoc">AHash - calculates the MD5-checksum for the parameter given in the constructor and saves the result i...</div><div class="ttdef"><b>Definition:</b> ahash.cpp:21</div></div>
-<div class="ttc" id="aclass_a_hash_html_a1e864fdfeca70e093046fdea7feaf3a4"><div class="ttname"><a href="class_a_hash.html#a1e864fdfeca70e093046fdea7feaf3a4">AHash::hashToHex</a></div><div class="ttdeci">const QString hashToHex()</div><div class="ttdoc">hashString returns a hex representation of the hash</div><div class="ttdef"><b>Definition:</b> ahash.h:41</div></div>
-<div class="ttc" id="aclass_a_hash_html"><div class="ttname"><a href="class_a_hash.html">AHash</a></div><div class="ttdoc">The AHash class is responsible for calculating cryptographic hashes of files (used to verify download...</div><div class="ttdef"><b>Definition:</b> ahash.h:27</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>ahash.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 67 - 68
docs/html/aircraftwidget_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/gui/widgets/aircraftwidget.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -112,78 +112,77 @@ $(document).ready(function(){initNavTree('aircraftwidget_8h_source.html',''); in
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;QSqlTableModel&gt;</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;QTableView&gt;</span></div>
 <div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &quot;src/gui/widgets/settingswidget.h&quot;</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &quot;src/gui/dialogues/newtaildialog.h&quot;</span></div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">namespace </span>Ui {</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">class </span><a class="code" href="class_aircraft_widget.html">AircraftWidget</a>;</div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;}</div>
-<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_aircraft_widget.html">   52</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_aircraft_widget.html">AircraftWidget</a> : <span class="keyword">public</span> QWidget</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;{</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    Q_OBJECT</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="class_aircraft_widget.html">AircraftWidget</a>(QWidget *parent = <span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    ~<a class="code" href="class_aircraft_widget.html">AircraftWidget</a>();</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="keyword">private</span> slots:</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keywordtype">void</span> tableView_selectionChanged();</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; </div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keywordtype">void</span> tableView_headerClicked(<span class="keywordtype">int</span> column);</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keywordtype">void</span> on_deleteAircraftButton_clicked();</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keywordtype">void</span> on_newAircraftButton_clicked();</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordtype">void</span> onNewTailDialog_editingFinished();</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keywordtype">void</span> on_aircraftSearchLineEdit_textChanged(<span class="keyword">const</span> QString &amp;arg1);</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="keyword">public</span> slots:</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_aircraft_widget.html#a8e78830530971eeb4a3913b1d8356498">onAircraftWidget_settingChanged</a>(<a class="code" href="class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4">SettingsWidget::SettingSignal</a> signal);</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_aircraft_widget.html#ac5a5e720c80e49796930f8715b0a51e0">onAircraftWidget_dataBaseUpdated</a>();</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_aircraft_widget.html#a1b1faca35af681e28472d0b84ad52c4f">repopulateModel</a>();</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    Ui::AircraftWidget *ui;</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; </div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    QSqlTableModel *model;</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    QTableView *view;</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    QItemSelectionModel* selection;</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    qint32 sortColumn;</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; </div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    QVector&lt;qint32&gt; selectedTails;</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">void</span> setupModelAndView();</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keywordtype">void</span> connectSignalsAndSlots();</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordtype">void</span> onDeleteUnsuccessful();</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">void</span> refreshView(){model-&gt;select();}</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_aircraft_widget.html#a9f356fad999add271c8b8996d0fbb1a0">changeEvent</a>(QEvent* event) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;};</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor">#endif // AIRCRAFTWIDGET_H</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span>Ui {</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="keyword">class </span><a class="code" href="class_aircraft_widget.html">AircraftWidget</a>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;}</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_aircraft_widget.html">   53</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_aircraft_widget.html">AircraftWidget</a> : <span class="keyword">public</span> QWidget</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;{</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    Q_OBJECT</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="class_aircraft_widget.html">AircraftWidget</a>(QWidget *parent = <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    ~<a class="code" href="class_aircraft_widget.html">AircraftWidget</a>();</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keyword">private</span> slots:</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keywordtype">void</span> tableView_selectionChanged();</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; </div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordtype">void</span> tableView_headerClicked(<span class="keywordtype">int</span> column);</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160; </div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keywordtype">void</span> on_deleteAircraftButton_clicked();</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160; </div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="keywordtype">void</span> on_newAircraftButton_clicked();</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160; </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keywordtype">void</span> onNewTailDialog_editingFinished();</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="keywordtype">void</span> on_aircraftSearchLineEdit_textChanged(<span class="keyword">const</span> QString &amp;arg1);</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="keyword">public</span> slots:</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_aircraft_widget.html#a8e78830530971eeb4a3913b1d8356498">onAircraftWidget_settingChanged</a>(<a class="code" href="class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4">SettingsWidget::SettingSignal</a> signal);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_aircraft_widget.html#ac5a5e720c80e49796930f8715b0a51e0">onAircraftWidget_dataBaseUpdated</a>();</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_aircraft_widget.html#a1b1faca35af681e28472d0b84ad52c4f">repopulateModel</a>();</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    Ui::AircraftWidget *ui;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    QSqlTableModel *model;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; </div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    QTableView *view;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    QItemSelectionModel* selection;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    qint32 sortColumn;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    QVector&lt;qint32&gt; selectedTails;</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keywordtype">void</span> setupModelAndView();</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordtype">void</span> connectSignalsAndSlots();</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">void</span> onDeleteUnsuccessful();</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">void</span> refreshView(){model-&gt;select();}</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_aircraft_widget.html#a9f356fad999add271c8b8996d0fbb1a0">changeEvent</a>(QEvent* event) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;};</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// AIRCRAFTWIDGET_H</span></div>
+<div class="ttc" id="aclass_aircraft_widget_html"><div class="ttname"><a href="class_aircraft_widget.html">AircraftWidget</a></div><div class="ttdoc">The AircraftWidget is used to view, edit, delete or add new tails.</div><div class="ttdef"><b>Definition:</b> aircraftwidget.h:54</div></div>
+<div class="ttc" id="aclass_aircraft_widget_html_a1b1faca35af681e28472d0b84ad52c4f"><div class="ttname"><a href="class_aircraft_widget.html#a1b1faca35af681e28472d0b84ad52c4f">AircraftWidget::repopulateModel</a></div><div class="ttdeci">void repopulateModel()</div><div class="ttdoc">AircraftWidget::repopulateModel (public slot) - re-populates the model to cater for a change to the d...</div><div class="ttdef"><b>Definition:</b> aircraftwidget.cpp:251</div></div>
+<div class="ttc" id="aclass_aircraft_widget_html_a8e78830530971eeb4a3913b1d8356498"><div class="ttname"><a href="class_aircraft_widget.html#a8e78830530971eeb4a3913b1d8356498">AircraftWidget::onAircraftWidget_settingChanged</a></div><div class="ttdeci">void onAircraftWidget_settingChanged(SettingsWidget::SettingSignal signal)</div><div class="ttdoc">invokes setupModelAndView() to account for changes the user has made in the SettingsWidget</div><div class="ttdef"><b>Definition:</b> aircraftwidget.cpp:84</div></div>
+<div class="ttc" id="aclass_aircraft_widget_html_a9f356fad999add271c8b8996d0fbb1a0"><div class="ttname"><a href="class_aircraft_widget.html#a9f356fad999add271c8b8996d0fbb1a0">AircraftWidget::changeEvent</a></div><div class="ttdeci">void changeEvent(QEvent *event) override</div><div class="ttdoc">Handles change events, like updating the UI to new localisation.</div><div class="ttdef"><b>Definition:</b> aircraftwidget.cpp:97</div></div>
+<div class="ttc" id="aclass_aircraft_widget_html_ac5a5e720c80e49796930f8715b0a51e0"><div class="ttname"><a href="class_aircraft_widget.html#ac5a5e720c80e49796930f8715b0a51e0">AircraftWidget::onAircraftWidget_dataBaseUpdated</a></div><div class="ttdeci">void onAircraftWidget_dataBaseUpdated()</div><div class="ttdoc">Refreshes the view if the Database has been altered from outside the AircraftWidget.</div><div class="ttdef"><b>Definition:</b> aircraftwidget.cpp:92</div></div>
+<div class="ttc" id="aclass_settings_widget_html_af15eec9fd55841ec02041a1114da54d4"><div class="ttname"><a href="class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4">SettingsWidget::SettingSignal</a></div><div class="ttdeci">SettingSignal</div><div class="ttdoc">enumerates Widgets that need to receive a signal when a setting is updated.</div><div class="ttdef"><b>Definition:</b> settingswidget.h:51</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="aclass_aircraft_widget_html_ac5a5e720c80e49796930f8715b0a51e0"><div class="ttname"><a href="class_aircraft_widget.html#ac5a5e720c80e49796930f8715b0a51e0">AircraftWidget::onAircraftWidget_dataBaseUpdated</a></div><div class="ttdeci">void onAircraftWidget_dataBaseUpdated()</div><div class="ttdoc">Refreshes the view if the Database has been altered from outside the AircraftWidget.</div><div class="ttdef"><b>Definition:</b> aircraftwidget.cpp:93</div></div>
-<div class="ttc" id="aclass_settings_widget_html_af15eec9fd55841ec02041a1114da54d4"><div class="ttname"><a href="class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4">SettingsWidget::SettingSignal</a></div><div class="ttdeci">SettingSignal</div><div class="ttdoc">enumerates Widgets that need to receive a signal when a setting is updated.</div><div class="ttdef"><b>Definition:</b> settingswidget.h:51</div></div>
-<div class="ttc" id="aclass_aircraft_widget_html_a9f356fad999add271c8b8996d0fbb1a0"><div class="ttname"><a href="class_aircraft_widget.html#a9f356fad999add271c8b8996d0fbb1a0">AircraftWidget::changeEvent</a></div><div class="ttdeci">void changeEvent(QEvent *event) override</div><div class="ttdoc">Handles change events, like updating the UI to new localisation.</div><div class="ttdef"><b>Definition:</b> aircraftwidget.cpp:98</div></div>
-<div class="ttc" id="aclass_aircraft_widget_html"><div class="ttname"><a href="class_aircraft_widget.html">AircraftWidget</a></div><div class="ttdoc">The AircraftWidget is used to view, edit, delete or add new tails.</div><div class="ttdef"><b>Definition:</b> aircraftwidget.h:52</div></div>
-<div class="ttc" id="aclass_aircraft_widget_html_a8e78830530971eeb4a3913b1d8356498"><div class="ttname"><a href="class_aircraft_widget.html#a8e78830530971eeb4a3913b1d8356498">AircraftWidget::onAircraftWidget_settingChanged</a></div><div class="ttdeci">void onAircraftWidget_settingChanged(SettingsWidget::SettingSignal signal)</div><div class="ttdoc">invokes setupModelAndView() to account for changes the user has made in the SettingsWidget</div><div class="ttdef"><b>Definition:</b> aircraftwidget.cpp:85</div></div>
-<div class="ttc" id="aclass_aircraft_widget_html_a1b1faca35af681e28472d0b84ad52c4f"><div class="ttname"><a href="class_aircraft_widget.html#a1b1faca35af681e28472d0b84ad52c4f">AircraftWidget::repopulateModel</a></div><div class="ttdeci">void repopulateModel()</div><div class="ttdoc">AircraftWidget::repopulateModel (public slot) - re-populates the model to cater for a change to the d...</div><div class="ttdef"><b>Definition:</b> aircraftwidget.cpp:250</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_99d0482cf009f9d97a0877749b817f19.html">gui</a></li><li class="navelem"><a class="el" href="dir_cc657b4ce13702a9d007a200bde234e1.html">widgets</a></li><li class="navelem"><b>aircraftwidget.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 10 - 12
docs/html/ajson_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/ajson.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -132,21 +132,19 @@ $(document).ready(function(){initNavTree('ajson_8h_source.html',''); initResizab
 <div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
 <div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;};</div>
 <div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#endif // AJSON_H</span></div>
-</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// AJSON_H</span></div>
+<div class="ttc" id="aclass_a_json_html"><div class="ttname"><a href="class_a_json.html">AJson</a></div><div class="ttdoc">The AJSON class is responsible for parsing the database (sqlite) to and from JSON.</div><div class="ttdef"><b>Definition:</b> ajson.h:30</div></div>
+<div class="ttc" id="aclass_a_json_html_a079cd737a5ed89b24f971df73011d9b2"><div class="ttname"><a href="class_a_json.html#a079cd737a5ed89b24f971df73011d9b2">AJson::readFileToDoc</a></div><div class="ttdeci">static QJsonDocument readFileToDoc(const QString &amp;file_path)</div><div class="ttdoc">readToDocument reads data from a JSON file into a QJSonDocument</div><div class="ttdef"><b>Definition:</b> ajson.cpp:60</div></div>
 <div class="ttc" id="aclass_a_json_html_a52e083d17fbb8906b47024bfdda49ca7"><div class="ttname"><a href="class_a_json.html#a52e083d17fbb8906b47024bfdda49ca7">AJson::writeDocToFile</a></div><div class="ttdeci">static void writeDocToFile(const QJsonDocument &amp;doc, const QString &amp;file_name)</div><div class="ttdoc">writes a QJsonDocument to a file</div><div class="ttdef"><b>Definition:</b> ajson.cpp:71</div></div>
-<div class="ttc" id="aclass_a_json_html_a6e0e703fb4187d3a02983c09873dae21"><div class="ttname"><a href="class_a_json.html#a6e0e703fb4187d3a02983c09873dae21">AJson::importDatabase</a></div><div class="ttdeci">static void importDatabase()</div><div class="ttdoc">importDatabase imports a dataset from JSON. Files need to be at AStanardPaths::JSON for now.</div><div class="ttdef"><b>Definition:</b> ajson.cpp:42</div></div>
 <div class="ttc" id="aclass_a_json_html_a60561d59b4bdb31032f217ba984563a3"><div class="ttname"><a href="class_a_json.html#a60561d59b4bdb31032f217ba984563a3">AJson::exportDatabase</a></div><div class="ttdeci">static void exportDatabase()</div><div class="ttdoc">exportDatabase exports the currently active database to JSON.</div><div class="ttdef"><b>Definition:</b> ajson.cpp:28</div></div>
-<div class="ttc" id="aclass_a_json_html_a079cd737a5ed89b24f971df73011d9b2"><div class="ttname"><a href="class_a_json.html#a079cd737a5ed89b24f971df73011d9b2">AJson::readFileToDoc</a></div><div class="ttdeci">static QJsonDocument readFileToDoc(const QString &amp;file_path)</div><div class="ttdoc">readToDocument reads data from a JSON file into a QJSonDocument</div><div class="ttdef"><b>Definition:</b> ajson.cpp:60</div></div>
-<div class="ttc" id="aclass_a_json_html"><div class="ttname"><a href="class_a_json.html">AJson</a></div><div class="ttdoc">The AJSON class is responsible for parsing the database (sqlite) to and from JSON.</div><div class="ttdef"><b>Definition:</b> ajson.h:29</div></div>
+<div class="ttc" id="aclass_a_json_html_a6e0e703fb4187d3a02983c09873dae21"><div class="ttname"><a href="class_a_json.html#a6e0e703fb4187d3a02983c09873dae21">AJson::importDatabase</a></div><div class="ttdeci">static void importDatabase()</div><div class="ttdoc">importDatabase imports a dataset from JSON. Files need to be at AStanardPaths::JSON for now.</div><div class="ttdef"><b>Definition:</b> ajson.cpp:42</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>ajson.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 9 - 11
docs/html/alog_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/functions/alog.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -151,21 +151,19 @@ $(document).ready(function(){initNavTree('alog_8h_source.html',''); initResizabl
 <div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="preprocessor">    return qdb; \</span></div>
 <div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">}</span></div>
 <div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; </div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="preprocessor">#endif // ALOG_H</span></div>
-</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ALOG_H</span></div>
 <div class="ttc" id="anamespace_a_log_html"><div class="ttname"><a href="namespace_a_log.html">ALog</a></div><div class="ttdoc">The ALog namespace encapsulates constants and functions used to provide logging to files and logging ...</div><div class="ttdef"><b>Definition:</b> alog.cpp:22</div></div>
-<div class="ttc" id="anamespace_a_log_html_a421bd504f26d924e0557d6359d853f69"><div class="ttname"><a href="namespace_a_log.html#a421bd504f26d924e0557d6359d853f69">ALog::aMessageHandler</a></div><div class="ttdeci">void aMessageHandler(QtMsgType type, const QMessageLogContext &amp;context, const QString &amp;msg)</div><div class="ttdoc">aMessageHandler Intercepts Messages and prints to console and log file</div><div class="ttdef"><b>Definition:</b> alog.cpp:85</div></div>
 <div class="ttc" id="anamespace_a_log_html_a1eeade2b758f2d452e40426f8d37c41a"><div class="ttname"><a href="namespace_a_log.html#a1eeade2b758f2d452e40426f8d37c41a">ALog::setLogFileName</a></div><div class="ttdeci">void setLogFileName()</div><div class="ttdoc">setLogFileName sets a log file name (&quot;Log_&lt;Date&gt;_&lt;Time&gt;.txt&quot;)</div><div class="ttdef"><b>Definition:</b> alog.cpp:29</div></div>
-<div class="ttc" id="anamespace_a_log_html_ae110fbae5b42a1dd106a9c53be104b13"><div class="ttname"><a href="namespace_a_log.html#ae110fbae5b42a1dd106a9c53be104b13">ALog::deleteOldLogs</a></div><div class="ttdeci">void deleteOldLogs()</div><div class="ttdoc">Cleans up old logs and initializes logging by preparing and installing a QMessageHandler.</div><div class="ttdef"><b>Definition:</b> alog.cpp:40</div></div>
+<div class="ttc" id="anamespace_a_log_html_a421bd504f26d924e0557d6359d853f69"><div class="ttname"><a href="namespace_a_log.html#a421bd504f26d924e0557d6359d853f69">ALog::aMessageHandler</a></div><div class="ttdeci">void aMessageHandler(QtMsgType type, const QMessageLogContext &amp;context, const QString &amp;msg)</div><div class="ttdoc">aMessageHandler Intercepts Messages and prints to console and log file</div><div class="ttdef"><b>Definition:</b> alog.cpp:93</div></div>
 <div class="ttc" id="anamespace_a_log_html_ac797ea9883ac75b58c2b08a64bcc26d7"><div class="ttname"><a href="namespace_a_log.html#ac797ea9883ac75b58c2b08a64bcc26d7">ALog::init</a></div><div class="ttdeci">bool init(bool log_debug)</div><div class="ttdoc">initialise logging, clean up logfiles and install a QMessageHandler. To enable logging of debug messa...</div><div class="ttdef"><b>Definition:</b> alog.cpp:60</div></div>
+<div class="ttc" id="anamespace_a_log_html_ae110fbae5b42a1dd106a9c53be104b13"><div class="ttname"><a href="namespace_a_log.html#ae110fbae5b42a1dd106a9c53be104b13">ALog::deleteOldLogs</a></div><div class="ttdeci">void deleteOldLogs()</div><div class="ttdoc">Cleans up old logs and initializes logging by preparing and installing a QMessageHandler.</div><div class="ttdef"><b>Definition:</b> alog.cpp:40</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_e823141bb13a34caac0c96ccd0d33fcf.html">functions</a></li><li class="navelem"><b>alog.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 46 - 41
docs/html/annotated.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Class List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -89,41 +89,48 @@ $(document).ready(function(){initNavTree('annotated.html',''); initResizable();
 <div class="contents">
 <div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
 <div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_opl.html" target="_self">Opl</a></td><td class="desc">A namespace to collect constants and enums used throughout the application </td></tr>
-<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_opl_1_1_a_notification_handler.html" target="_self">ANotificationHandler</a></td><td class="desc">Handles displaying of user-directed messages. It displays information to the user and forwards the displayed message to <a class="el" href="namespace_a_log.html" title="The ALog namespace encapsulates constants and functions used to provide logging to files and logging ...">ALog</a> so it is written to the console and log files. The INFO, WARN and CRIT makros provide convenient access </td></tr>
-<tr id="row_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_a_aircraft_entry.html" target="_self">AAircraftEntry</a></td><td class="desc"></td></tr>
-<tr id="row_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_a_currency_entry.html" target="_self">ACurrencyEntry</a></td><td class="desc"></td></tr>
-<tr id="row_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_database.html" target="_self">ADatabase</a></td><td class="desc">The DB class encapsulates the SQL database by providing fast access to hot database data </td></tr>
-<tr id="row_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_database_error.html" target="_self">ADatabaseError</a></td><td class="desc">Custom Database Error derived from QSqlError. Extends text() adding "Database Error: " before the text. Errors that are related to SQL are assigned their respective error codes. Errors that occur with data in the database are handled with the error code "opl" and QSqlError::UnknownError </td></tr>
-<tr id="row_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_data_base_setup.html" target="_self">ADataBaseSetup</a></td><td class="desc">Responsible for the inital setup of the database when the application is first launched. It creates the database in the specified default location and creates all required tables and views. It can also be used to reset the database currently used </td></tr>
-<tr id="row_6_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_date.html" target="_self">ADate</a></td><td class="desc">Responsible for input/output of Dates and handling the different Date Formats </td></tr>
-<tr id="row_7_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_download.html" target="_self">ADownload</a></td><td class="desc"></td></tr>
-<tr id="row_8_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_entry.html" target="_self">AEntry</a></td><td class="desc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries in the database to operate on </td></tr>
-<tr id="row_9_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_file_standard_item.html" target="_self">AFileStandardItem</a></td><td class="desc">Simple QStandardItem subclass to encapsulate necessary file info. Using only a QStandardItem would mean that the full path should be inputted as data and of course displayed by default. However this way we create the absolute path in the fileInfo attribute for further use while displaying only the base name </td></tr>
-<tr id="row_10_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_flight_entry.html" target="_self">AFlightEntry</a></td><td class="desc"></td></tr>
-<tr id="row_11_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_hash.html" target="_self">AHash</a></td><td class="desc">Responsible for calculating cryptographic hashes of files (used to verify downloads) </td></tr>
-<tr id="row_12_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_aircraft_widget.html" target="_self">AircraftWidget</a></td><td class="desc">The <a class="el" href="class_aircraft_widget.html" title="The AircraftWidget is used to view, edit, delete or add new tails.">AircraftWidget</a> is used to view, edit, delete or add new tails </td></tr>
-<tr id="row_13_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_json.html" target="_self">AJson</a></td><td class="desc">The AJSON class is responsible for parsing the database (sqlite) to and from JSON </td></tr>
-<tr id="row_14_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_a_pilot_entry.html" target="_self">APilotEntry</a></td><td class="desc"></td></tr>
-<tr id="row_15_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_run_guard.html" target="_self">ARunGuard</a></td><td class="desc">The RunGuard class ensures only a single instance of the application is running simultaneously </td></tr>
-<tr id="row_16_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_settings.html" target="_self">ASettings</a></td><td class="desc">Thin wrapper for the QSettings class, simplifying reading and writing of settings </td></tr>
-<tr id="row_17_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_standard_paths.html" target="_self">AStandardPaths</a></td><td class="desc">The AStandardAppPaths class encapsulates a static QMap holding the standard paths of the application </td></tr>
-<tr id="row_18_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_style.html" target="_self">AStyle</a></td><td class="desc">Encapsulates style and stylesheet logic </td></tr>
-<tr id="row_19_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_a_tail_entry.html" target="_self">ATailEntry</a></td><td class="desc"></td></tr>
-<tr id="row_20_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_timer.html" target="_self">ATimer</a></td><td class="desc">Easy to use performance timer </td></tr>
-<tr id="row_21_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_translator.html" target="_self">ATranslator</a></td><td class="desc">Responsible for managing the QTranslator used for providing localisations. Translations are planned, but are not currently being worked on. The way QT language tools are working with CMAKE, there are some considerations for when works on translation actually start. See <a href="https://bugreports.qt.io/browse/QTBUG-41736">here</a> and <a href="https://bugreports.qt.io/browse/QTBUG-76410">here</a>. Long story short, make sure to use a version of CMake that is 3.16 or earlier, or 3.19.2 or later </td></tr>
-<tr id="row_22_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_backup_widget.html" target="_self">BackupWidget</a></td><td class="desc">The <a class="el" href="class_backup_widget.html" title="The BackupWidget is the interface for the user to create and restore backups of the database.">BackupWidget</a> is the interface for the user to create and restore backups of the database </td></tr>
-<tr id="row_23_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_data_position.html" target="_self">DataPosition</a></td><td class="desc"></td></tr>
-<tr id="row_24_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_debug_widget.html" target="_self">DebugWidget</a></td><td class="desc"></td></tr>
-<tr id="row_25_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_first_run_dialog.html" target="_self">FirstRunDialog</a></td><td class="desc"></td></tr>
-<tr id="row_26_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_home_widget.html" target="_self">HomeWidget</a></td><td class="desc">The <a class="el" href="class_home_widget.html" title="The HomeWidget is the welcome screen of the application.">HomeWidget</a> is the welcome screen of the application </td></tr>
-<tr id="row_27_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_logbook_widget.html" target="_self">LogbookWidget</a></td><td class="desc">The <a class="el" href="class_logbook_widget.html" title="The LogbookWidget displays data from the database in a QSqlTableView fed by a QSqlQuery Model.">LogbookWidget</a> displays data from the database in a QSqlTableView fed by a QSqlQuery Model </td></tr>
-<tr id="row_28_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_new_flight_dialog.html" target="_self">NewFlightDialog</a></td><td class="desc"></td></tr>
-<tr id="row_29_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_new_pilot_dialog.html" target="_self">NewPilotDialog</a></td><td class="desc"></td></tr>
-<tr id="row_30_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_new_tail_dialog.html" target="_self">NewTailDialog</a></td><td class="desc">The NewTail class is a dialog for adding a new tail to the database or editing an existing one </td></tr>
-<tr id="row_31_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_pilots_widget.html" target="_self">PilotsWidget</a></td><td class="desc">The <a class="el" href="class_pilots_widget.html" title="The PilotsWidget is used to view, edit, delete or add new pilots.">PilotsWidget</a> is used to view, edit, delete or add new pilots </td></tr>
-<tr id="row_32_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_settings_widget.html" target="_self">SettingsWidget</a></td><td class="desc">The <a class="el" href="class_settings_widget.html" title="The SettingsWidget is used to to display and alter Settings.">SettingsWidget</a> is used to to display and alter Settings </td></tr>
-<tr id="row_33_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_style_sheet.html" target="_self">StyleSheet</a></td><td class="desc">The <a class="el" href="struct_style_sheet.html" title="The StyleSheet struct holds the Display Name and File Name (in the resource system) for the available...">StyleSheet</a> struct holds the Display Name and File Name (in the resource system) for the available stylesheets </td></tr>
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_a_calc.html" target="_self">ACalc</a></td><td class="desc">The <a class="el" href="namespace_a_calc.html" title="The ACalc namespace provides various functions for calculations that are performed outside of the dat...">ACalc</a> namespace provides various functions for calculations that are performed outside of the database. This includes tasks like converting different units and formats, or functions calculating block time or night time </td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_a_calc_1_1_night_time_values.html" target="_self">NightTimeValues</a></td><td class="desc">The <a class="el" href="struct_a_calc_1_1_night_time_values.html" title="The NightTimeValues struct encapsulates values relating to night time that are needed by the NewFligh...">NightTimeValues</a> struct encapsulates values relating to night time that are needed by the <a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a> </td></tr>
+<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_opl.html" target="_self">Opl</a></td><td class="desc">A namespace to collect constants and enums used throughout the application </td></tr>
+<tr id="row_1_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_opl_1_1_a_notification_handler.html" target="_self">ANotificationHandler</a></td><td class="desc">Handles displaying of user-directed messages. It displays information to the user in a QMessageBox and forwards the displayed message to <a class="el" href="namespace_a_log.html" title="The ALog namespace encapsulates constants and functions used to provide logging to files and logging ...">ALog</a> so it is written to the console and log files. The INFO, WARN and CRIT makros provide convenient access </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_a_aircraft_entry.html" target="_self">AAircraftEntry</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_completion_data.html" target="_self">ACompletionData</a></td><td class="desc">Data to QCompleters and QMaps used for mapping user input to database keys. It retreives the completer targets and mapping data from the database and caches it for fast access without the need to query the database </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_a_currency_entry.html" target="_self">ACurrencyEntry</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_database.html" target="_self">ADatabase</a></td><td class="desc">The DB class encapsulates the SQL database by providing fast access to hot database data </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_database_error.html" target="_self">ADatabaseError</a></td><td class="desc">Custom Database Error derived from QSqlError. Extends text() adding "Database Error: " before the text. Errors that are related to SQL are assigned their respective error codes. Errors that occur with data in the database are handled with the error code "opl" and QSqlError::UnknownError </td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_date.html" target="_self">ADate</a></td><td class="desc">Responsible for input/output of Dates and handling the different Date Formats </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_download.html" target="_self">ADownload</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_entry.html" target="_self">AEntry</a></td><td class="desc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries in the database to operate on </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_file_standard_item.html" target="_self">AFileStandardItem</a></td><td class="desc">Simple QStandardItem subclass to encapsulate necessary file info. Using only a QStandardItem would mean that the full path should be inputted as data and of course displayed by default. However this way we create the absolute path in the fileInfo attribute for further use while displaying only the base name </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_flight_entry.html" target="_self">AFlightEntry</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_hash.html" target="_self">AHash</a></td><td class="desc">Responsible for calculating cryptographic hashes of files (used to verify downloads) </td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_aircraft_widget.html" target="_self">AircraftWidget</a></td><td class="desc">The <a class="el" href="class_aircraft_widget.html" title="The AircraftWidget is used to view, edit, delete or add new tails.">AircraftWidget</a> is used to view, edit, delete or add new tails </td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_json.html" target="_self">AJson</a></td><td class="desc">The AJSON class is responsible for parsing the database (sqlite) to and from JSON </td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_a_pilot_entry.html" target="_self">APilotEntry</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_run_guard.html" target="_self">ARunGuard</a></td><td class="desc">The RunGuard class ensures only a single instance of the application is running simultaneously </td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_settings.html" target="_self">ASettings</a></td><td class="desc">Thin wrapper for the QSettings class, simplifying reading and writing of settings </td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_standard_paths.html" target="_self">AStandardPaths</a></td><td class="desc">The AStandardAppPaths class encapsulates a static QMap holding the standard paths of the application </td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_style.html" target="_self">AStyle</a></td><td class="desc">Encapsulates style and stylesheet logic </td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_a_tail_entry.html" target="_self">ATailEntry</a></td><td class="desc"></td></tr>
+<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_timer.html" target="_self">ATimer</a></td><td class="desc">Easy to use performance timer </td></tr>
+<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_translator.html" target="_self">ATranslator</a></td><td class="desc">Responsible for managing the QTranslator used for providing localisations. Translations are planned, but are not currently being worked on. The way QT language tools are working with CMAKE, there are some considerations for when works on translation actually start. See <a href="https://bugreports.qt.io/browse/QTBUG-41736">here</a> and <a href="https://bugreports.qt.io/browse/QTBUG-76410">here</a>. Long story short, make sure to use a version of CMake that is 3.16 or earlier, or 3.19.2 or later </td></tr>
+<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_backup_widget.html" target="_self">BackupWidget</a></td><td class="desc">The <a class="el" href="class_backup_widget.html" title="The BackupWidget is the interface for the user to create and restore backups of the database.">BackupWidget</a> is the interface for the user to create and restore backups of the database </td></tr>
+<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_data_position.html" target="_self">DataPosition</a></td><td class="desc"></td></tr>
+<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_debug_widget.html" target="_self">DebugWidget</a></td><td class="desc"></td></tr>
+<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_first_run_dialog.html" target="_self">FirstRunDialog</a></td><td class="desc">The <a class="el" href="class_first_run_dialog.html" title="The FirstRunDialog is used as a set-up wizard for the application.">FirstRunDialog</a> is used as a set-up wizard for the application </td></tr>
+<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_home_widget.html" target="_self">HomeWidget</a></td><td class="desc">The <a class="el" href="class_home_widget.html" title="The HomeWidget is the welcome screen of the application.">HomeWidget</a> is the welcome screen of the application </td></tr>
+<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_logbook_widget.html" target="_self">LogbookWidget</a></td><td class="desc">The <a class="el" href="class_logbook_widget.html" title="The LogbookWidget displays data from the database in a QSqlTableView fed by a QSqlQuery Model.">LogbookWidget</a> displays data from the database in a QSqlTableView fed by a QSqlQuery Model </td></tr>
+<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_new_flight_dialog.html" target="_self">NewFlightDialog</a></td><td class="desc">The <a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a> is used to add or edit entries from the flights table in the database </td></tr>
+<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_new_pilot_dialog.html" target="_self">NewPilotDialog</a></td><td class="desc">The <a class="el" href="class_new_pilot_dialog.html" title="The NewPilotDialog enables adding new entries to the pilot table in the database.">NewPilotDialog</a> enables adding new entries to the pilot table in the database </td></tr>
+<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_new_tail_dialog.html" target="_self">NewTailDialog</a></td><td class="desc">The <a class="el" href="class_new_tail_dialog.html" title="The NewTailDialog enables adding new Tail entries to the database or editing existing ones.">NewTailDialog</a> enables adding new Tail entries to the database or editing existing ones </td></tr>
+<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_pilots_widget.html" target="_self">PilotsWidget</a></td><td class="desc">The <a class="el" href="class_pilots_widget.html" title="The PilotsWidget is used to view, edit, delete or add new pilots.">PilotsWidget</a> is used to view, edit, delete or add new pilots </td></tr>
+<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_process_aircraft.html" target="_self">ProcessAircraft</a></td><td class="desc"></td></tr>
+<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_process_flights.html" target="_self">ProcessFlights</a></td><td class="desc"></td></tr>
+<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_process_pilots.html" target="_self">ProcessPilots</a></td><td class="desc"></td></tr>
+<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_settings_widget.html" target="_self">SettingsWidget</a></td><td class="desc">The <a class="el" href="class_settings_widget.html" title="The SettingsWidget is used to to display and alter Settings.">SettingsWidget</a> is used to to display and alter Settings </td></tr>
+<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_style_sheet.html" target="_self">StyleSheet</a></td><td class="desc">The <a class="el" href="struct_style_sheet.html" title="The StyleSheet struct holds the Display Name and File Name (in the resource system) for the available...">StyleSheet</a> struct holds the Display Name and File Name (in the resource system) for the available stylesheets </td></tr>
+<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_user_data_state.html" target="_self">UserDataState</a></td><td class="desc">The UserDateState struct caches the current number of entries in relevant database tables for fast access </td></tr>
+<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_validation_state.html" target="_self">ValidationState</a></td><td class="desc">Encapsulates a QBitArray that has a bit set (or unset) depending on wether the input for the associated index has been verified. The indexes correspond to the mandatory items enumerated in the ValidationItem enum </td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
@@ -131,9 +138,7 @@ $(document).ready(function(){initNavTree('annotated.html',''); initResizable();
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 13 - 3
docs/html/annotated_dup.js

@@ -1,11 +1,16 @@
 var annotated_dup =
 [
-    [ "Opl", "namespace_opl.html", "namespace_opl" ],
+    [ "ACalc", "namespace_a_calc.html", [
+      [ "NightTimeValues", "struct_a_calc_1_1_night_time_values.html", "struct_a_calc_1_1_night_time_values" ]
+    ] ],
+    [ "Opl", "namespace_opl.html", [
+      [ "ANotificationHandler", "class_opl_1_1_a_notification_handler.html", null ]
+    ] ],
     [ "AAircraftEntry", "struct_a_aircraft_entry.html", "struct_a_aircraft_entry" ],
+    [ "ACompletionData", "class_a_completion_data.html", "class_a_completion_data" ],
     [ "ACurrencyEntry", "struct_a_currency_entry.html", "struct_a_currency_entry" ],
     [ "ADatabase", "class_a_database.html", "class_a_database" ],
     [ "ADatabaseError", "class_a_database_error.html", "class_a_database_error" ],
-    [ "ADataBaseSetup", "class_a_data_base_setup.html", null ],
     [ "ADate", "class_a_date.html", null ],
     [ "ADownload", "class_a_download.html", "class_a_download" ],
     [ "AEntry", "class_a_entry.html", "class_a_entry" ],
@@ -32,6 +37,11 @@ var annotated_dup =
     [ "NewPilotDialog", "class_new_pilot_dialog.html", "class_new_pilot_dialog" ],
     [ "NewTailDialog", "class_new_tail_dialog.html", "class_new_tail_dialog" ],
     [ "PilotsWidget", "class_pilots_widget.html", "class_pilots_widget" ],
+    [ "ProcessAircraft", "class_process_aircraft.html", "class_process_aircraft" ],
+    [ "ProcessFlights", "class_process_flights.html", "class_process_flights" ],
+    [ "ProcessPilots", "class_process_pilots.html", "class_process_pilots" ],
     [ "SettingsWidget", "class_settings_widget.html", "class_settings_widget" ],
-    [ "StyleSheet", "struct_style_sheet.html", "struct_style_sheet" ]
+    [ "StyleSheet", "struct_style_sheet.html", "struct_style_sheet" ],
+    [ "UserDataState", "struct_user_data_state.html", "struct_user_data_state" ],
+    [ "ValidationState", "class_validation_state.html", "class_validation_state" ]
 ];

+ 7 - 9
docs/html/apilotentry_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/apilotentry.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -122,18 +122,16 @@ $(document).ready(function(){initNavTree('apilotentry_8h_source.html',''); initR
 <div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keyword">const</span> QString name();</div>
 <div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;};</div>
 <div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#endif // APILOTENTRY_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// APILOTENTRY_H</span></div>
+<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:33</div></div>
+<div class="ttc" id="astruct_a_pilot_entry_html"><div class="ttname"><a href="struct_a_pilot_entry.html">APilotEntry</a></div><div class="ttdef"><b>Definition:</b> apilotentry.h:24</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="astruct_a_pilot_entry_html"><div class="ttname"><a href="struct_a_pilot_entry.html">APilotEntry</a></div><div class="ttdef"><b>Definition:</b> apilotentry.h:24</div></div>
-<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:40</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>apilotentry.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 8 - 8
docs/html/areadcsv_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/functions/areadcsv.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -110,17 +110,17 @@ $(document).ready(function(){initNavTree('areadcsv_8h_source.html',''); initResi
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include&lt;QtCore&gt;</span></div>
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160; </div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;QVector&lt;QStringList&gt; aReadCsv(QString filename);</div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#endif // AREADCSV_H</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;QVector&lt;QStringList&gt; aReadCsvAsRows(<span class="keyword">const</span> QString &amp;filename);</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// AREADCSV_H</span></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_e823141bb13a34caac0c96ccd0d33fcf.html">functions</a></li><li class="navelem"><b>areadcsv.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 6 - 8
docs/html/arunguard_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/arunguard.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -134,17 +134,15 @@ $(document).ready(function(){initNavTree('arunguard_8h_source.html',''); initRes
 <div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;};</div>
 <div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
 <div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; </div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#endif // ARUNGUARD_H</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ARUNGUARD_H</span></div>
+<div class="ttc" id="aclass_a_run_guard_html"><div class="ttname"><a href="class_a_run_guard.html">ARunGuard</a></div><div class="ttdoc">The RunGuard class ensures only a single instance of the application is running simultaneously.</div><div class="ttdef"><b>Definition:</b> arunguard.h:30</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="aclass_a_run_guard_html"><div class="ttname"><a href="class_a_run_guard.html">ARunGuard</a></div><div class="ttdoc">The RunGuard class ensures only a single instance of the application is running simultaneously.</div><div class="ttdef"><b>Definition:</b> arunguard.h:29</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>arunguard.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 60 - 67
docs/html/asettings_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/asettings.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -125,79 +125,72 @@ $(document).ready(function(){initNavTree('asettings_8h_source.html',''); initRes
 <div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        DisplaySelfAs,</div>
 <div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        TailSortColumn,</div>
 <div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        PilotSortColumn,</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        AcftAllowIncomplete,</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        FtlWarningThreshold,</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        CurrWarningEnabled,</div>
-<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        CurrWarningThreshold,</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        ShowToLgdCurrency,</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        ShowLicCurrency,</div>
-<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        ShowTrCurrency,</div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        ShowLckCurrency,</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        ShowMedCurrency,</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        ShowCustom1Currency,</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        ShowCustom2Currency,</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        Custom1CurrencyName,</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        Custom2CurrencyName,</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    };</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="keyword">enum class</span> FlightLogging {</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        Function,</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        Approach,</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        NightLoggingEnabled,</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        LogIFR,</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        FlightNumberPrefix,</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        NumberTakeoffs,</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        NumberLandings,</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        PilotFlying,</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        NightAngle,</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        Rules,</div>
-<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        FlightTimeFormat,</div>
-<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        FunctionComboBox,</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    };</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        FtlWarningThreshold,</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        CurrWarningThreshold,</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        ShowToLgdCurrency,</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        ShowLicCurrency,</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        ShowTrCurrency,</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        ShowLckCurrency,</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        ShowMedCurrency,</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        ShowCustom1Currency,</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        ShowCustom2Currency,</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        Custom1CurrencyName,</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        Custom2CurrencyName,</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    };</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keyword">enum class</span> FlightLogging {</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        Function,</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        Approach,</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        NightLoggingEnabled,</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        LogIFR,</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        FlightNumberPrefix,</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        PilotFlying,</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        NightAngle,</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <span class="comment">//FlightTimeFormat,</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    };</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_a_settings.html#a383ea9d59ea8878ca873465eb19bbe85">setup</a>();</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_a_settings.html#a2dbc2e3510363c09e45223f4bbdc5e59">resetToDefaults</a>();</div>
 <div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_a_settings.html#a383ea9d59ea8878ca873465eb19bbe85">setup</a>();</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_a_settings.html#a2dbc2e3510363c09e45223f4bbdc5e59">resetToDefaults</a>();</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keyword">static</span> QVariant read(<span class="keyword">const</span> Main key);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> write(<span class="keyword">const</span> Main key, <span class="keyword">const</span> QVariant &amp;val);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keyword">static</span> QVariant read(<span class="keyword">const</span> FlightLogging key);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> write(<span class="keyword">const</span> UserData key, <span class="keyword">const</span> QVariant &amp;val);</div>
 <div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; </div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keyword">static</span> QVariant read(<span class="keyword">const</span> Main key);</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> write(<span class="keyword">const</span> Main key, <span class="keyword">const</span> QVariant &amp;val);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keyword">static</span> QVariant read(<span class="keyword">const</span> UserData key);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> write(<span class="keyword">const</span> FlightLogging key, <span class="keyword">const</span> QVariant &amp;val);</div>
 <div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keyword">static</span> QVariant read(<span class="keyword">const</span> FlightLogging key);</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> write(<span class="keyword">const</span> UserData key, <span class="keyword">const</span> QVariant &amp;val);</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keyword">static</span> QVariant read(<span class="keyword">const</span> UserData key);</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> write(<span class="keyword">const</span> FlightLogging key, <span class="keyword">const</span> QVariant &amp;val);</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="keyword">static</span> QString <a class="code" href="class_a_settings.html#a6fc09922de0182271c6c1ff001792da1">groupOfKey</a>(<span class="keyword">const</span> Main key);</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keyword">static</span> QString <a class="code" href="class_a_settings.html#a6fc09922de0182271c6c1ff001792da1">groupOfKey</a>(<span class="keyword">const</span> FlightLogging key);</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keyword">static</span> QString <a class="code" href="class_a_settings.html#a6fc09922de0182271c6c1ff001792da1">groupOfKey</a>(<span class="keyword">const</span> UserData key);</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keyword">static</span> QString <a class="code" href="class_a_settings.html#af88194014c7599e8c9fe488c5b1ebf99">stringOfKey</a>(<span class="keyword">const</span> Main key);</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keyword">static</span> QString <a class="code" href="class_a_settings.html#af88194014c7599e8c9fe488c5b1ebf99">stringOfKey</a>(<span class="keyword">const</span> FlightLogging key);</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keyword">static</span> QString <a class="code" href="class_a_settings.html#af88194014c7599e8c9fe488c5b1ebf99">stringOfKey</a>(<span class="keyword">const</span> UserData key);</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keyword">static</span> QSettings settings();</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keyword">static</span> QMap&lt;Main, QString&gt; mainMap;</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keyword">static</span> QMap&lt;UserData, QString&gt; userDataMap;</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keyword">static</span> QMap&lt;FlightLogging, QString&gt; flightLoggingMap;</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;};</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#endif // ASETTINGS_H</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keyword">static</span> QString <a class="code" href="class_a_settings.html#a6fc09922de0182271c6c1ff001792da1">groupOfKey</a>(<span class="keyword">const</span> Main key);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="keyword">static</span> QString <a class="code" href="class_a_settings.html#a6fc09922de0182271c6c1ff001792da1">groupOfKey</a>(<span class="keyword">const</span> FlightLogging key);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keyword">static</span> QString <a class="code" href="class_a_settings.html#a6fc09922de0182271c6c1ff001792da1">groupOfKey</a>(<span class="keyword">const</span> UserData key);</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160; </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keyword">static</span> QString <a class="code" href="class_a_settings.html#af88194014c7599e8c9fe488c5b1ebf99">stringOfKey</a>(<span class="keyword">const</span> Main key);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keyword">static</span> QString <a class="code" href="class_a_settings.html#af88194014c7599e8c9fe488c5b1ebf99">stringOfKey</a>(<span class="keyword">const</span> FlightLogging key);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="keyword">static</span> QString <a class="code" href="class_a_settings.html#af88194014c7599e8c9fe488c5b1ebf99">stringOfKey</a>(<span class="keyword">const</span> UserData key);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <span class="keyword">static</span> QSettings settings();</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> sync() { QSettings().sync(); }</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; </div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keyword">static</span> QMap&lt;Main, QString&gt; mainMap;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="keyword">static</span> QMap&lt;UserData, QString&gt; userDataMap;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keyword">static</span> QMap&lt;FlightLogging, QString&gt; flightLoggingMap;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;};</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ASETTINGS_H</span></div>
+<div class="ttc" id="aclass_a_settings_html"><div class="ttname"><a href="class_a_settings.html">ASettings</a></div><div class="ttdoc">Thin wrapper for the QSettings class, simplifying reading and writing of settings.</div><div class="ttdef"><b>Definition:</b> asettings.h:27</div></div>
+<div class="ttc" id="aclass_a_settings_html_a2dbc2e3510363c09e45223f4bbdc5e59"><div class="ttname"><a href="class_a_settings.html#a2dbc2e3510363c09e45223f4bbdc5e59">ASettings::resetToDefaults</a></div><div class="ttdeci">static void resetToDefaults()</div><div class="ttdoc">ASettings::resetToDefaults (Re-)sets all settings to the default value.</div><div class="ttdef"><b>Definition:</b> asettings.cpp:69</div></div>
+<div class="ttc" id="aclass_a_settings_html_a383ea9d59ea8878ca873465eb19bbe85"><div class="ttname"><a href="class_a_settings.html#a383ea9d59ea8878ca873465eb19bbe85">ASettings::setup</a></div><div class="ttdeci">static void setup()</div><div class="ttdoc">Should be called after QCoreApplication::set...Name have been called.</div><div class="ttdef"><b>Definition:</b> asettings.cpp:60</div></div>
+<div class="ttc" id="aclass_a_settings_html_a6fc09922de0182271c6c1ff001792da1"><div class="ttname"><a href="class_a_settings.html#a6fc09922de0182271c6c1ff001792da1">ASettings::groupOfKey</a></div><div class="ttdeci">static QString groupOfKey(const Main key)</div><div class="ttdoc">Return string representation of group of key: &quot;ini_header/key&quot;.</div><div class="ttdef"><b>Definition:</b> asettings.cpp:119</div></div>
+<div class="ttc" id="aclass_a_settings_html_af88194014c7599e8c9fe488c5b1ebf99"><div class="ttname"><a href="class_a_settings.html#af88194014c7599e8c9fe488c5b1ebf99">ASettings::stringOfKey</a></div><div class="ttdeci">static QString stringOfKey(const Main key)</div><div class="ttdoc">Return string representation of key.</div><div class="ttdef"><b>Definition:</b> asettings.cpp:131</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="aclass_a_settings_html_a2dbc2e3510363c09e45223f4bbdc5e59"><div class="ttname"><a href="class_a_settings.html#a2dbc2e3510363c09e45223f4bbdc5e59">ASettings::resetToDefaults</a></div><div class="ttdeci">static void resetToDefaults()</div><div class="ttdoc">ASettings::resetToDefaults (Re-)sets all settings to the default value.</div><div class="ttdef"><b>Definition:</b> asettings.cpp:75</div></div>
-<div class="ttc" id="aclass_a_settings_html_a383ea9d59ea8878ca873465eb19bbe85"><div class="ttname"><a href="class_a_settings.html#a383ea9d59ea8878ca873465eb19bbe85">ASettings::setup</a></div><div class="ttdeci">static void setup()</div><div class="ttdoc">Should be called after QCoreApplication::set...Name have been called.</div><div class="ttdef"><b>Definition:</b> asettings.cpp:66</div></div>
-<div class="ttc" id="aclass_a_settings_html"><div class="ttname"><a href="class_a_settings.html">ASettings</a></div><div class="ttdoc">Thin wrapper for the QSettings class, simplifying reading and writing of settings.</div><div class="ttdef"><b>Definition:</b> asettings.h:27</div></div>
-<div class="ttc" id="aclass_a_settings_html_af88194014c7599e8c9fe488c5b1ebf99"><div class="ttname"><a href="class_a_settings.html#af88194014c7599e8c9fe488c5b1ebf99">ASettings::stringOfKey</a></div><div class="ttdeci">static QString stringOfKey(const Main key)</div><div class="ttdoc">Return string representation of key.</div><div class="ttdef"><b>Definition:</b> asettings.cpp:140</div></div>
-<div class="ttc" id="aclass_a_settings_html_a6fc09922de0182271c6c1ff001792da1"><div class="ttname"><a href="class_a_settings.html#a6fc09922de0182271c6c1ff001792da1">ASettings::groupOfKey</a></div><div class="ttdeci">static QString groupOfKey(const Main key)</div><div class="ttdoc">Return string representation of group of key: &quot;ini_header/key&quot;.</div><div class="ttdef"><b>Definition:</b> asettings.cpp:128</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>asettings.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 9 - 11
docs/html/astandardpaths_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/astandardpaths.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -136,21 +136,19 @@ $(document).ready(function(){initNavTree('astandardpaths_8h_source.html',''); in
 <div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;};</div>
 <div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
 <div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#endif // ASTANDARDPATHS_H</span></div>
-</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ASTANDARDPATHS_H</span></div>
+<div class="ttc" id="aclass_a_standard_paths_html"><div class="ttname"><a href="class_a_standard_paths.html">AStandardPaths</a></div><div class="ttdoc">The AStandardAppPaths class encapsulates a static QMap holding the standard paths of the application.</div><div class="ttdef"><b>Definition:</b> astandardpaths.h:30</div></div>
 <div class="ttc" id="aclass_a_standard_paths_html_a0df7e02331fdf09a81951657d52e0ebe"><div class="ttname"><a href="class_a_standard_paths.html#a0df7e02331fdf09a81951657d52e0ebe">AStandardPaths::directory</a></div><div class="ttdeci">static const QDir &amp; directory(Directories location)</div><div class="ttdoc">Returns the QDir for the standard directory referenced by the Directories enum 'loc'.</div><div class="ttdef"><b>Definition:</b> astandardpaths.cpp:43</div></div>
 <div class="ttc" id="aclass_a_standard_paths_html_a233dfe0411b294e64da674ff9c898c62"><div class="ttname"><a href="class_a_standard_paths.html#a233dfe0411b294e64da674ff9c898c62">AStandardPaths::setup</a></div><div class="ttdeci">static bool setup()</div><div class="ttdoc">Creates and verifies a static map of the standard paths used in the app.</div><div class="ttdef"><b>Definition:</b> astandardpaths.cpp:23</div></div>
-<div class="ttc" id="aclass_a_standard_paths_html_a775a7f2d7d99e8b7d29cc91c33c08ba8"><div class="ttname"><a href="class_a_standard_paths.html#a775a7f2d7d99e8b7d29cc91c33c08ba8">AStandardPaths::allDirectories</a></div><div class="ttdeci">static const QMap&lt; Directories, QDir &gt; &amp; allDirectories()</div><div class="ttdoc">returns the static map of all standard directories</div><div class="ttdef"><b>Definition:</b> astandardpaths.cpp:53</div></div>
 <div class="ttc" id="aclass_a_standard_paths_html_a43937baa78a53e1427e23f533024221b"><div class="ttname"><a href="class_a_standard_paths.html#a43937baa78a53e1427e23f533024221b">AStandardPaths::asChildOfDir</a></div><div class="ttdeci">static const QString asChildOfDir(Directories location, const QString &amp;filename)</div><div class="ttdoc">Returns a string of the absolute path to directory location concatenated with filename.</div><div class="ttdef"><b>Definition:</b> astandardpaths.cpp:48</div></div>
-<div class="ttc" id="aclass_a_standard_paths_html"><div class="ttname"><a href="class_a_standard_paths.html">AStandardPaths</a></div><div class="ttdoc">The AStandardAppPaths class encapsulates a static QMap holding the standard paths of the application.</div><div class="ttdef"><b>Definition:</b> astandardpaths.h:30</div></div>
+<div class="ttc" id="aclass_a_standard_paths_html_a775a7f2d7d99e8b7d29cc91c33c08ba8"><div class="ttname"><a href="class_a_standard_paths.html#a775a7f2d7d99e8b7d29cc91c33c08ba8">AStandardPaths::allDirectories</a></div><div class="ttdeci">static const QMap&lt; Directories, QDir &gt; &amp; allDirectories()</div><div class="ttdoc">returns the static map of all standard directories</div><div class="ttdef"><b>Definition:</b> astandardpaths.cpp:53</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>astandardpaths.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 5 - 7
docs/html/astat_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/functions/astat.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -126,16 +126,14 @@ $(document).ready(function(){initNavTree('astat_8h_source.html',''); initResizab
 <div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
 <div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;} <span class="comment">// namespace AStat</span></div>
 <div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#endif // ASTAT_H</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ASTAT_H</span></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_e823141bb13a34caac0c96ccd0d33fcf.html">functions</a></li><li class="navelem"><b>astat.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 53 - 45
docs/html/astyle_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/astyle.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -110,55 +110,63 @@ $(document).ready(function(){initNavTree('astyle_8h_source.html',''); initResiza
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;QFileInfo&gt;</span></div>
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;QMap&gt;</span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;QTextStream&gt;</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
-<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="struct_style_sheet.html">   29</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_style_sheet.html">StyleSheet</a></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;{</div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <a class="code" href="struct_style_sheet.html">StyleSheet</a>(QLatin1String style_sheet_name, QLatin1String file_name)</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        : styleSheetName(style_sheet_name), fileName(file_name)</div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    {}</div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    QLatin1String styleSheetName;</div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    QLatin1String fileName;</div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;};</div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> QString read_stylesheet(<span class="keyword">const</span> QString &amp;stylesheet)</div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;{</div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    QFile file(stylesheet);</div>
-<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    file.open(QFile::ReadOnly | QFile::Text);</div>
-<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    QTextStream stream(&amp;file);</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordflow">return</span> stream.readAll();</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;}</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
-<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_a_style.html">   49</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_style.html">AStyle</a></div>
-<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;{</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keyword">static</span> QString currentStyle;</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> resetStyle();</div>
-<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QStringList styles;</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString defaultStyle;</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QList&lt;StyleSheet&gt; styleSheets;</div>
-<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_a_style.html#ad061bf79f3e22640e78f8bb65ef0867c">setup</a>();</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> setStyle(<span class="keyword">const</span> QString &amp;style_key);</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> setStyle(<span class="keyword">const</span> <a class="code" href="struct_style_sheet.html">StyleSheet</a> &amp;style_sheet);</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> setStyle(<span class="keyword">const</span> QPalette &amp;palette);</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keyword">static</span> QPalette darkPalette();</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString&amp; style();</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;};</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;QComboBox&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160; </div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="struct_style_sheet.html">   30</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_style_sheet.html">StyleSheet</a></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;{</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <a class="code" href="struct_style_sheet.html">StyleSheet</a>(QLatin1String style_sheet_name, QLatin1String file_name)</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        : styleSheetName(style_sheet_name), fileName(file_name)</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    {}</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    QLatin1String styleSheetName;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    QLatin1String fileName;</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;};</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> QString read_stylesheet(<span class="keyword">const</span> QString &amp;stylesheet)</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;{</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    QFile file(stylesheet);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    file.open(QFile::ReadOnly | QFile::Text);</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    QTextStream stream(&amp;file);</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="keywordflow">return</span> stream.readAll();</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;}</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_a_style.html">   50</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_style.html">AStyle</a></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;{</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    <span class="keyword">static</span> QString currentStyle;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> resetStyle();</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QStringList styles;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString defaultStyle;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QList&lt;StyleSheet&gt; styleSheets;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160; </div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_a_style.html#ad061bf79f3e22640e78f8bb65ef0867c">setup</a>();</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> setStyle(<span class="keyword">const</span> QString &amp;style_key);</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> setStyle(<span class="keyword">const</span> <a class="code" href="struct_style_sheet.html">StyleSheet</a> &amp;style_sheet);</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> setStyle(<span class="keyword">const</span> QPalette &amp;palette);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keyword">static</span> QPalette darkPalette();</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString&amp; style();</div>
 <div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#endif // ASTYLE_H</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> loadStylesComboBox(QComboBox *combo_box){</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        combo_box-&gt;addItems(AStyle::styles);</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;style_sheet : AStyle::styleSheets) {</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;            combo_box-&gt;addItem(style_sheet.styleSheetName);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        }</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        combo_box-&gt;addItem(QStringLiteral(<span class="stringliteral">&quot;Dark-Palette&quot;</span>));</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        combo_box-&gt;model()-&gt;sort(0);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    }</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;};</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ASTYLE_H</span></div>
+<div class="ttc" id="aclass_a_style_html"><div class="ttname"><a href="class_a_style.html">AStyle</a></div><div class="ttdoc">The AStyle class encapsulates style and stylesheet logic.</div><div class="ttdef"><b>Definition:</b> astyle.h:51</div></div>
+<div class="ttc" id="aclass_a_style_html_ad061bf79f3e22640e78f8bb65ef0867c"><div class="ttname"><a href="class_a_style.html#ad061bf79f3e22640e78f8bb65ef0867c">AStyle::setup</a></div><div class="ttdeci">static void setup()</div><div class="ttdoc">Setup Application style by reading from openPilotLog.ini.</div><div class="ttdef"><b>Definition:</b> astyle.cpp:47</div></div>
+<div class="ttc" id="astruct_style_sheet_html"><div class="ttname"><a href="struct_style_sheet.html">StyleSheet</a></div><div class="ttdoc">The StyleSheet struct holds the Display Name and File Name (in the resource system) for the available...</div><div class="ttdef"><b>Definition:</b> astyle.h:31</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="astruct_style_sheet_html"><div class="ttname"><a href="struct_style_sheet.html">StyleSheet</a></div><div class="ttdoc">The StyleSheet struct holds the Display Name and File Name (in the resource system) for the available...</div><div class="ttdef"><b>Definition:</b> astyle.h:29</div></div>
-<div class="ttc" id="aclass_a_style_html_ad061bf79f3e22640e78f8bb65ef0867c"><div class="ttname"><a href="class_a_style.html#ad061bf79f3e22640e78f8bb65ef0867c">AStyle::setup</a></div><div class="ttdeci">static void setup()</div><div class="ttdoc">Setup Application style by reading from openPilotLog.ini.</div><div class="ttdef"><b>Definition:</b> astyle.cpp:47</div></div>
-<div class="ttc" id="aclass_a_style_html"><div class="ttname"><a href="class_a_style.html">AStyle</a></div><div class="ttdoc">The AStyle class encapsulates style and stylesheet logic.</div><div class="ttdef"><b>Definition:</b> astyle.h:49</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>astyle.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 7 - 9
docs/html/atailentry_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/atailentry.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -124,18 +124,16 @@ $(document).ready(function(){initNavTree('atailentry_8h_source.html',''); initRe
 <div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;};</div>
 <div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
 <div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#endif // ATAILENTRY_H</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ATAILENTRY_H</span></div>
+<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:33</div></div>
+<div class="ttc" id="astruct_a_tail_entry_html"><div class="ttname"><a href="struct_a_tail_entry.html">ATailEntry</a></div><div class="ttdef"><b>Definition:</b> atailentry.h:24</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="astruct_a_tail_entry_html"><div class="ttname"><a href="struct_a_tail_entry.html">ATailEntry</a></div><div class="ttdef"><b>Definition:</b> atailentry.h:24</div></div>
-<div class="ttc" id="aclass_a_entry_html"><div class="ttname"><a href="class_a_entry.html">AEntry</a></div><div class="ttdoc">The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...</div><div class="ttdef"><b>Definition:</b> aentry.h:40</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>atailentry.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 130 - 104
docs/html/atime_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/functions/atime.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -159,113 +159,139 @@ $(document).ready(function(){initNavTree('atime_8h_source.html',''); initResizab
 <div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keywordflow">return</span> (time.hour() * 60 + time.minute()) / 60.0;</div>
 <div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;}</div>
 <div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; </div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> toMinutes(<span class="keyword">const</span> QTime &amp;time) {<span class="keywordflow">return</span> time.hour() * 60 + time.minute();}</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="keyword">inline</span> QTime fromMinutes(<span class="keywordtype">int</span> total_minutes)</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;{</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="keywordtype">int</span> minute = total_minutes % 60;</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordtype">int</span> hour = total_minutes / 60;</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="keywordflow">return</span> QTime(hour, minute, 0);</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;}</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160; </div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> QTime fromString(QString time_string, Opl::Time::FlightTimeFormat format = Opl::Time::Default)</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;{</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="keywordflow">switch</span> (format) {</div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keywordflow">case</span> Opl::Time::Default:</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keywordflow">return</span> QTime::fromString(time_string, QStringLiteral(<span class="stringliteral">&quot;hh:mm&quot;</span>));</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keywordflow">case</span> Opl::Time::Decimal:</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    {</div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        <span class="keywordtype">double</span> decimal_time = time_string.toDouble();</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        <span class="keywordtype">int</span> hour = decimal_time;</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="keywordtype">int</span> minute = round((decimal_time - hour) * 60);</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="keywordflow">return</span> QTime(hour, minute, 0);</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    }</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <span class="keywordflow">return</span> QTime();</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    }</div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;}</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> QTime fromString(<span class="keyword">const</span> <span class="keywordtype">char</span>* time_string, Opl::Time::FlightTimeFormat format = Opl::Time::Default)</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;{</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keywordflow">switch</span> (format) {</div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordflow">case</span> Opl::Time::Default:</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <span class="keywordflow">return</span> QTime::fromString(time_string, QStringLiteral(<span class="stringliteral">&quot;hh:mm&quot;</span>));</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordflow">case</span> Opl::Time::Decimal:</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    {</div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <span class="keywordtype">double</span> decimal_time = QString(time_string).toDouble();</div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="keywordtype">int</span> hour = decimal_time;</div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <span class="keywordtype">int</span> minute = round((decimal_time - hour) * 60);</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;        <span class="keywordflow">return</span> QTime(hour, minute, 0);</div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    }</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keywordflow">return</span> QTime();</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    }</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;}</div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="keyword">inline</span> QTime <a class="code" href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">blocktime</a>(<span class="keyword">const</span> QTime &amp;tofb, <span class="keyword">const</span> QTime &amp;tonb)</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;{</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    QTime blocktime_out(0, 0); <span class="comment">// initialise return value at midnight</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <span class="keywordflow">if</span> (tonb &gt; tofb) { <span class="comment">// landing same day</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        <span class="keywordtype">int</span> block_seconds = tofb.secsTo(tonb);</div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        blocktime_out = blocktime_out.addSecs(block_seconds);</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    } <span class="keywordflow">else</span> { <span class="comment">// landing next day</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        QTime midnight(0, 0);</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        <span class="keywordtype">int</span> seconds = tofb.secsTo(midnight);</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        blocktime_out = blocktime_out.addSecs(seconds);</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        seconds = midnight.secsTo(tonb);</div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        blocktime_out = blocktime_out.addSecs(seconds);</div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;    }</div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordflow">return</span> blocktime_out;</div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;}</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> QString <a class="code" href="namespace_a_calc.html#ad088e5dd93d1938ff97f88032dc0adec">formatTimeInput</a>(QString user_input)</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;{</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    QTime temp_time; <span class="comment">//empty time object is invalid by default</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="keywordtype">bool</span> contains_seperator = user_input.contains(<span class="charliteral">&#39;:&#39;</span>);</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keywordflow">if</span> (user_input.length() == 4 &amp;&amp; !contains_seperator) {</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        temp_time = QTime::fromString(user_input, QStringLiteral(<span class="stringliteral">&quot;hhmm&quot;</span>));</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (user_input.length() == 3 &amp;&amp; !contains_seperator) {</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <span class="keywordflow">if</span> (user_input.toInt() &lt; 240) { <span class="comment">//Qtime is invalid if time is between 000 and 240 for this case</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;            QString tempstring = user_input.prepend(QStringLiteral(<span class="stringliteral">&quot;0&quot;</span>));</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;            temp_time = QTime::fromString(tempstring, QStringLiteral(<span class="stringliteral">&quot;hhmm&quot;</span>));</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;            temp_time = QTime::fromString(user_input, QStringLiteral(<span class="stringliteral">&quot;Hmm&quot;</span>));</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        }</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (user_input.length() == 4 &amp;&amp; contains_seperator) {</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        temp_time = QTime::fromString(user_input, QStringLiteral(<span class="stringliteral">&quot;h:mm&quot;</span>));</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (user_input.length() == 5 &amp;&amp; contains_seperator) {</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        temp_time = QTime::fromString(user_input, QStringLiteral(<span class="stringliteral">&quot;hh:mm&quot;</span>));</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    }</div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keyword">auto</span> output = temp_time.toString(QStringLiteral(<span class="stringliteral">&quot;hh:mm&quot;</span>));</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160; </div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <span class="keywordflow">if</span> (output.isEmpty()) {</div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        DEB &lt;&lt; <span class="stringliteral">&quot;Time input is invalid.&quot;</span>;</div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    }</div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keywordflow">return</span> output;</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;}</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160; </div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;} <span class="comment">// namespace ATime</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160; </div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="preprocessor">#endif // ATIME_H</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="keyword">inline</span> QTime qTimefromMinutes(<span class="keywordtype">int</span> total_minutes)</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;{</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="keywordtype">int</span> minute = total_minutes % 60;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordtype">int</span> hour = total_minutes / 60;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordflow">return</span> QTime(hour, minute, 0);</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;}</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> QTime fromString(QString time_string, Opl::Time::FlightTimeFormat format = Opl::Time::Default)</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;{</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordflow">switch</span> (format) {</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keywordflow">case</span> Opl::Time::Default:</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <span class="keywordflow">return</span> QTime::fromString(time_string, QStringLiteral(<span class="stringliteral">&quot;hh:mm&quot;</span>));</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keywordflow">case</span> Opl::Time::Decimal:</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    {</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="keywordtype">double</span> decimal_time = time_string.toDouble();</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <span class="keywordtype">int</span> hour = decimal_time;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        <span class="keywordtype">int</span> minute = round((decimal_time - hour) * 60);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        <span class="keywordflow">return</span> QTime(hour, minute, 0);</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    }</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <span class="keywordflow">return</span> QTime();</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    }</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;}</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> QTime fromString(<span class="keyword">const</span> <span class="keywordtype">char</span>* time_string, Opl::Time::FlightTimeFormat format = Opl::Time::Default)</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;{</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordflow">switch</span> (format) {</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordflow">case</span> Opl::Time::Default:</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <span class="keywordflow">return</span> QTime::fromString(time_string, QStringLiteral(<span class="stringliteral">&quot;hh:mm&quot;</span>));</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordflow">case</span> Opl::Time::Decimal:</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    {</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="keywordtype">double</span> decimal_time = QString(time_string).toDouble();</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <span class="keywordtype">int</span> hour = decimal_time;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        <span class="keywordtype">int</span> minute = round((decimal_time - hour) * 60);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <span class="keywordflow">return</span> QTime(hour, minute, 0);</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    }</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        <span class="keywordflow">return</span> QTime();</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    }</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;}</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160; </div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> toMinutes(<span class="keyword">const</span> QTime &amp;time) {<span class="keywordflow">return</span> time.hour() * 60 + time.minute();}</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> toMinutes(<span class="keyword">const</span> QString &amp;time_string) {<span class="keywordflow">return</span> toMinutes(fromString(time_string));}</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="keyword">inline</span> QTime <a class="code" href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">blocktime</a>(<span class="keyword">const</span> QTime &amp;tofb, <span class="keyword">const</span> QTime &amp;tonb)</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;{</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    QTime blocktime_out(0, 0); <span class="comment">// initialise return value at midnight</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keywordflow">if</span> (tonb &gt; tofb) { <span class="comment">// landing same day</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        <span class="keywordtype">int</span> block_seconds = tofb.secsTo(tonb);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        blocktime_out = blocktime_out.addSecs(block_seconds);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    } <span class="keywordflow">else</span> { <span class="comment">// landing next day</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        QTime midnight(0, 0);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        <span class="keywordtype">int</span> seconds = tofb.secsTo(midnight);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        blocktime_out = blocktime_out.addSecs(seconds);</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        seconds = midnight.secsTo(tonb);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        blocktime_out = blocktime_out.addSecs(seconds);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    }</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    <span class="keywordflow">return</span> blocktime_out;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;}</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="keyword">inline</span> QTime <a class="code" href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">blocktime</a>(<span class="keyword">const</span> QString&amp; tofb, <span class="keyword">const</span> QString&amp; tonb)</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;{</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    QTime t_tofb = ATime::fromString(tofb);</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    QTime t_tonb = ATime::fromString(tonb);</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">blocktime</a>(t_tofb, t_tonb);</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;}</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> blockMinutes(<span class="keyword">const</span> QString&amp; tofb, <span class="keyword">const</span> QString&amp; tonb)</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;{</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="keyword">const</span> QTime t_tofb = ATime::fromString(tofb);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="keyword">const</span> QTime t_tonb = ATime::fromString(tonb);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="keywordflow">if</span> (t_tofb.isValid() &amp;&amp; t_tonb.isValid()) {</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        <span class="keyword">const</span> <span class="keyword">auto</span> tblk = ATime::blocktime(t_tofb, t_tonb);</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keywordflow">return</span> ATime::toMinutes(tblk);</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;}</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> blockMinutes(<span class="keyword">const</span> QTime&amp; tofb, <span class="keyword">const</span> QTime&amp; tonb)</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;{</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <span class="keywordflow">if</span> (tofb.isValid() &amp;&amp; tonb.isValid()) {</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        <span class="keyword">const</span> <span class="keyword">auto</span> tblk = ATime::blocktime(tofb, tonb);</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        <span class="keywordflow">return</span> ATime::toMinutes(tblk);</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    } <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;}</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> QString <a class="code" href="namespace_a_calc.html#ad088e5dd93d1938ff97f88032dc0adec">formatTimeInput</a>(QString user_input)</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;{</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    QTime temp_time; <span class="comment">//empty time object is invalid by default</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160; </div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="keywordtype">bool</span> contains_seperator = user_input.contains(<span class="charliteral">&#39;:&#39;</span>);</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="keywordflow">if</span> (user_input.length() == 4 &amp;&amp; !contains_seperator) {</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;        temp_time = QTime::fromString(user_input, QStringLiteral(<span class="stringliteral">&quot;hhmm&quot;</span>));</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (user_input.length() == 3 &amp;&amp; !contains_seperator) {</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="keywordflow">if</span> (user_input.toInt() &lt; 240) { <span class="comment">//Qtime is invalid if time is between 000 and 240 for this case</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;            QString tempstring = user_input.prepend(QStringLiteral(<span class="stringliteral">&quot;0&quot;</span>));</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;            temp_time = QTime::fromString(tempstring, QStringLiteral(<span class="stringliteral">&quot;hhmm&quot;</span>));</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;            temp_time = QTime::fromString(user_input, QStringLiteral(<span class="stringliteral">&quot;Hmm&quot;</span>));</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        }</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (user_input.length() == 4 &amp;&amp; contains_seperator) {</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        temp_time = QTime::fromString(user_input, QStringLiteral(<span class="stringliteral">&quot;h:mm&quot;</span>));</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (user_input.length() == 5 &amp;&amp; contains_seperator) {</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        temp_time = QTime::fromString(user_input, QStringLiteral(<span class="stringliteral">&quot;hh:mm&quot;</span>));</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    }</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160; </div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keyword">auto</span> output = temp_time.toString(QStringLiteral(<span class="stringliteral">&quot;hh:mm&quot;</span>));</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160; </div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordflow">if</span> (output.isEmpty()) {</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        DEB &lt;&lt; <span class="stringliteral">&quot;Time input is invalid.&quot;</span>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    }</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <span class="keywordflow">return</span> output;</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;}</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160; </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;} <span class="comment">// namespace ATime</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160; </div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ATIME_H</span></div>
+<div class="ttc" id="anamespace_a_calc_html_a8ac68999097f2e28a3b4bd2709b5b19f"><div class="ttname"><a href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">ACalc::blocktime</a></div><div class="ttdeci">QT_DEPRECATED QTime blocktime(QTime tofb, QTime tonb)</div><div class="ttdoc">ACalc::blocktime Calculates Block Time for a given departure and arrival time.</div><div class="ttdef"><b>Definition:</b> acalc.h:44</div></div>
+<div class="ttc" id="anamespace_a_calc_html_ad088e5dd93d1938ff97f88032dc0adec"><div class="ttname"><a href="namespace_a_calc.html#ad088e5dd93d1938ff97f88032dc0adec">ACalc::formatTimeInput</a></div><div class="ttdeci">QString formatTimeInput(QString user_input)</div><div class="ttdoc">ACalc::formatTimeInput verifies user input and formats to hh:mm if the output is not a valid time,...</div><div class="ttdef"><b>Definition:</b> acalc.cpp:35</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="anamespace_a_calc_html_a8ac68999097f2e28a3b4bd2709b5b19f"><div class="ttname"><a href="namespace_a_calc.html#a8ac68999097f2e28a3b4bd2709b5b19f">ACalc::blocktime</a></div><div class="ttdeci">QT_DEPRECATED QTime blocktime(QTime tofb, QTime tonb)</div><div class="ttdoc">ACalc::blocktime Calculates Block Time for a given departure and arrival time.</div><div class="ttdef"><b>Definition:</b> acalc.h:43</div></div>
-<div class="ttc" id="anamespace_a_calc_html_ad088e5dd93d1938ff97f88032dc0adec"><div class="ttname"><a href="namespace_a_calc.html#ad088e5dd93d1938ff97f88032dc0adec">ACalc::formatTimeInput</a></div><div class="ttdeci">QString formatTimeInput(QString user_input)</div><div class="ttdoc">ACalc::formatTimeInput verifies user input and formats to hh:mm if the output is not a valid time,...</div><div class="ttdef"><b>Definition:</b> acalc.cpp:34</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_e823141bb13a34caac0c96ccd0d33fcf.html">functions</a></li><li class="navelem"><b>atime.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 7 - 9
docs/html/atimer_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/testing/atimer.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -133,18 +133,16 @@ $(document).ready(function(){initNavTree('atimer_8h_source.html',''); initResiza
 <div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;};</div>
 <div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
 <div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#endif // ATIMER_H</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ATIMER_H</span></div>
+<div class="ttc" id="aclass_a_timer_html"><div class="ttname"><a href="class_a_timer.html">ATimer</a></div><div class="ttdoc">The ATimer class provides an easy to use performance timer.</div><div class="ttdef"><b>Definition:</b> atimer.h:36</div></div>
+<div class="ttc" id="aclass_a_timer_html_af7ac842765bee55a3b1b266e3e4c97ba"><div class="ttname"><a href="class_a_timer.html#af7ac842765bee55a3b1b266e3e4c97ba">ATimer::timeNow</a></div><div class="ttdeci">long timeNow()</div><div class="ttdoc">timeNow takes an intermediate timing and returns miliseconds elapsed.</div><div class="ttdef"><b>Definition:</b> atimer.cpp:47</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="aclass_a_timer_html_af7ac842765bee55a3b1b266e3e4c97ba"><div class="ttname"><a href="class_a_timer.html#af7ac842765bee55a3b1b266e3e4c97ba">ATimer::timeNow</a></div><div class="ttdeci">long timeNow()</div><div class="ttdoc">timeNow takes an intermediate timing and returns miliseconds elapsed.</div><div class="ttdef"><b>Definition:</b> atimer.cpp:47</div></div>
-<div class="ttc" id="aclass_a_timer_html"><div class="ttname"><a href="class_a_timer.html">ATimer</a></div><div class="ttdoc">The ATimer class provides an easy to use performance timer.</div><div class="ttdef"><b>Definition:</b> atimer.h:35</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_3513c77e68d0de165c8b48f945306dcb.html">testing</a></li><li class="navelem"><b>atimer.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 7 - 9
docs/html/atranslator_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/classes/atranslator.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -100,18 +100,16 @@ $(document).ready(function(){initNavTree('atranslator_8h_source.html',''); initR
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keyword">static</span> QTranslator *translator;</div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;};</div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#endif // ATRANSLATOR_H</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// ATRANSLATOR_H</span></div>
+<div class="ttc" id="aclass_a_translator_html"><div class="ttname"><a href="class_a_translator.html">ATranslator</a></div><div class="ttdoc">The ATranslator class is responsible for managing the QTranslator used for providing localisations....</div><div class="ttdef"><b>Definition:</b> atranslator.h:18</div></div>
+<div class="ttc" id="aclass_a_translator_html_aeb6d08e73db4bf7bdeed793ad8c34d86"><div class="ttname"><a href="class_a_translator.html#aeb6d08e73db4bf7bdeed793ad8c34d86">ATranslator::installTranslator</a></div><div class="ttdeci">static void installTranslator(Opl::Translations language=Opl::Translations::English)</div><div class="ttdoc">Installs a QTranslator with the selected language. Defaults to English. Call this function before con...</div><div class="ttdef"><b>Definition:</b> atranslator.cpp:5</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
-<div class="ttc" id="aclass_a_translator_html_aeb6d08e73db4bf7bdeed793ad8c34d86"><div class="ttname"><a href="class_a_translator.html#aeb6d08e73db4bf7bdeed793ad8c34d86">ATranslator::installTranslator</a></div><div class="ttdeci">static void installTranslator(Opl::Translations language=Opl::Translations::English)</div><div class="ttdoc">Installs a QTranslator with the selected language. Defaults to English. Call this function before con...</div><div class="ttdef"><b>Definition:</b> atranslator.cpp:5</div></div>
-<div class="ttc" id="aclass_a_translator_html"><div class="ttname"><a href="class_a_translator.html">ATranslator</a></div><div class="ttdoc">The ATranslator class is responsible for managing the QTranslator used for providing localisations....</div><div class="ttdef"><b>Definition:</b> atranslator.h:18</div></div>
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html">classes</a></li><li class="navelem"><b>atranslator.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 47 - 50
docs/html/backupwidget_8h_source.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: src/gui/widgets/backupwidget.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -142,60 +142,57 @@ $(document).ready(function(){initNavTree('backupwidget_8h_source.html',''); init
 <div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="class_backup_widget.html">   69</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_backup_widget.html">BackupWidget</a> : <span class="keyword">public</span> QWidget</div>
 <div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;{</div>
 <div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    Q_OBJECT</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="class_backup_widget.html">BackupWidget</a>(QWidget *parent = <span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    ~<a class="code" href="class_backup_widget.html">BackupWidget</a>();</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString <a class="code" href="class_backup_widget.html#a49005440ad357c10769b9abd7be693d2">backupName</a>();</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString <a class="code" href="class_backup_widget.html#a683bff41fedc248a2bf243f5986a0fce">absoluteBackupPath</a>();</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="keyword">private</span> slots:</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    <span class="keywordtype">void</span> on_tableView_clicked(<span class="keyword">const</span> QModelIndex &amp;index);</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keywordtype">void</span> on_createLocalPushButton_clicked();</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordtype">void</span> on_restoreLocalPushButton_clicked();</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keywordtype">void</span> on_deleteSelectedPushButton_clicked();</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordtype">void</span> on_createExternalPushButton_clicked();</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordtype">void</span> on_restoreExternalPushButton_clicked();</div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordtype">void</span> on_aboutPushButton_clicked();</div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    Ui::BackupWidget *ui;</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    QStandardItemModel *model;</div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    QTableView *view;</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <a class="code" href="class_a_file_standard_item.html">AFileStandardItem</a> *selectedFileInfo = <span class="keyword">nullptr</span>;  <span class="comment">// Only the first column is necessary for</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                                                    <span class="comment">// any operation and it is encapsulated in the</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                                                    <span class="comment">// AFileStandardItem class</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <span class="keywordtype">void</span> refresh();</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_backup_widget.html#a6924f3997be9b143472fa1c61365fb2b">changeEvent</a>(QEvent* event) <span class="keyword">override</span>;</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;};</div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160; </div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor">#endif // BACKUPWIDGET_H</span></div>
-</div><!-- fragment --></div><!-- contents -->
-</div><!-- doc-content -->
-<div class="ttc" id="aclass_backup_widget_html_a49005440ad357c10769b9abd7be693d2"><div class="ttname"><a href="class_backup_widget.html#a49005440ad357c10769b9abd7be693d2">BackupWidget::backupName</a></div><div class="ttdeci">static const QString backupName()</div><div class="ttdoc">Generates a filename for creating a backup.</div><div class="ttdef"><b>Definition:</b> backupwidget.cpp:88</div></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="class_backup_widget.html">BackupWidget</a>(QWidget *parent = <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    ~<a class="code" href="class_backup_widget.html">BackupWidget</a>();</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString <a class="code" href="class_backup_widget.html#a49005440ad357c10769b9abd7be693d2">backupName</a>();</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString <a class="code" href="class_backup_widget.html#a683bff41fedc248a2bf243f5986a0fce">absoluteBackupPath</a>();</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="keyword">private</span> slots:</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keywordtype">void</span> on_tableView_clicked(<span class="keyword">const</span> QModelIndex &amp;index);</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160; </div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keywordtype">void</span> on_createLocalPushButton_clicked();</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; </div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordtype">void</span> on_restoreLocalPushButton_clicked();</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordtype">void</span> on_deleteSelectedPushButton_clicked();</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordtype">void</span> on_createExternalPushButton_clicked();</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordtype">void</span> on_restoreExternalPushButton_clicked();</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    <span class="keywordtype">void</span> on_aboutPushButton_clicked();</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    Ui::BackupWidget *ui;</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    QStandardItemModel *model;</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    QTableView *view;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    <a class="code" href="class_a_file_standard_item.html">AFileStandardItem</a> *selectedFileInfo = <span class="keyword">nullptr</span>;  <span class="comment">// Only the first column is necessary for</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;                                                    <span class="comment">// any operation and it is encapsulated in the</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;                                                    <span class="comment">// AFileStandardItem class</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <span class="keywordtype">void</span> refresh();</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_backup_widget.html#a6924f3997be9b143472fa1c61365fb2b">changeEvent</a>(QEvent* event) <span class="keyword">override</span>;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;};</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// BACKUPWIDGET_H</span></div>
 <div class="ttc" id="aclass_a_file_standard_item_html"><div class="ttname"><a href="class_a_file_standard_item.html">AFileStandardItem</a></div><div class="ttdoc">Simple QStandardItem subclass to encapsulate necessary file info. Using only a QStandardItem would me...</div><div class="ttdef"><b>Definition:</b> backupwidget.h:40</div></div>
-<div class="ttc" id="aclass_backup_widget_html"><div class="ttname"><a href="class_backup_widget.html">BackupWidget</a></div><div class="ttdoc">The BackupWidget is the interface for the user to create and restore backups of the database.</div><div class="ttdef"><b>Definition:</b> backupwidget.h:69</div></div>
-<div class="ttc" id="aclass_backup_widget_html_a683bff41fedc248a2bf243f5986a0fce"><div class="ttname"><a href="class_backup_widget.html#a683bff41fedc248a2bf243f5986a0fce">BackupWidget::absoluteBackupPath</a></div><div class="ttdeci">static const QString absoluteBackupPath()</div><div class="ttdoc">Generates the absolute path for a new local backup file.</div><div class="ttdef"><b>Definition:</b> backupwidget.cpp:80</div></div>
 <div class="ttc" id="aclass_a_standard_paths_html_a43937baa78a53e1427e23f533024221b"><div class="ttname"><a href="class_a_standard_paths.html#a43937baa78a53e1427e23f533024221b">AStandardPaths::asChildOfDir</a></div><div class="ttdeci">static const QString asChildOfDir(Directories location, const QString &amp;filename)</div><div class="ttdoc">Returns a string of the absolute path to directory location concatenated with filename.</div><div class="ttdef"><b>Definition:</b> astandardpaths.cpp:48</div></div>
+<div class="ttc" id="aclass_backup_widget_html"><div class="ttname"><a href="class_backup_widget.html">BackupWidget</a></div><div class="ttdoc">The BackupWidget is the interface for the user to create and restore backups of the database.</div><div class="ttdef"><b>Definition:</b> backupwidget.h:70</div></div>
+<div class="ttc" id="aclass_backup_widget_html_a49005440ad357c10769b9abd7be693d2"><div class="ttname"><a href="class_backup_widget.html#a49005440ad357c10769b9abd7be693d2">BackupWidget::backupName</a></div><div class="ttdeci">static const QString backupName()</div><div class="ttdoc">Generates a filename for creating a backup.</div><div class="ttdef"><b>Definition:</b> backupwidget.cpp:88</div></div>
+<div class="ttc" id="aclass_backup_widget_html_a683bff41fedc248a2bf243f5986a0fce"><div class="ttname"><a href="class_backup_widget.html#a683bff41fedc248a2bf243f5986a0fce">BackupWidget::absoluteBackupPath</a></div><div class="ttdeci">static const QString absoluteBackupPath()</div><div class="ttdoc">Generates the absolute path for a new local backup file.</div><div class="ttdef"><b>Definition:</b> backupwidget.cpp:80</div></div>
 <div class="ttc" id="aclass_backup_widget_html_a6924f3997be9b143472fa1c61365fb2b"><div class="ttname"><a href="class_backup_widget.html#a6924f3997be9b143472fa1c61365fb2b">BackupWidget::changeEvent</a></div><div class="ttdeci">void changeEvent(QEvent *event) override</div><div class="ttdoc">Handles change events, like updating the UI to new localisation.</div><div class="ttdef"><b>Definition:</b> backupwidget.cpp:50</div></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_99d0482cf009f9d97a0877749b817f19.html">gui</a></li><li class="navelem"><a class="el" href="dir_cc657b4ce13702a9d007a200bde234e1.html">widgets</a></li><li class="navelem"><b>backupwidget.h</b></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 115 - 0
docs/html/class_a_completion_data-members.html

@@ -0,0 +1,115 @@
+<!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>openPilotLog: Member List</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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.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="custom_dark_theme.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="projectlogo"><img alt="Logo" src="icon_main.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">openPilotLog
+   </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&amp;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&amp;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>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('class_a_completion_data.html',''); initResizable(); });
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- 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 class="header">
+  <div class="headertitle">
+<div class="title">ACompletionData Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_a_completion_data.html">ACompletionData</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>airportIataIdMap</b> (defined in <a class="el" href="class_a_completion_data.html">ACompletionData</a>)</td><td class="entry"><a class="el" href="class_a_completion_data.html">ACompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>airportIcaoIdMap</b> (defined in <a class="el" href="class_a_completion_data.html">ACompletionData</a>)</td><td class="entry"><a class="el" href="class_a_completion_data.html">ACompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>airportList</b> (defined in <a class="el" href="class_a_completion_data.html">ACompletionData</a>)</td><td class="entry"><a class="el" href="class_a_completion_data.html">ACompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>airportNameIdMap</b> (defined in <a class="el" href="class_a_completion_data.html">ACompletionData</a>)</td><td class="entry"><a class="el" href="class_a_completion_data.html">ACompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>current_state</b> (defined in <a class="el" href="class_a_completion_data.html">ACompletionData</a>)</td><td class="entry"><a class="el" href="class_a_completion_data.html">ACompletionData</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_a_completion_data.html#af476c92d41ac0dce50e098c25e6b035c">init</a>()</td><td class="entry"><a class="el" href="class_a_completion_data.html">ACompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>pilotList</b> (defined in <a class="el" href="class_a_completion_data.html">ACompletionData</a>)</td><td class="entry"><a class="el" href="class_a_completion_data.html">ACompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>pilotsIdMap</b> (defined in <a class="el" href="class_a_completion_data.html">ACompletionData</a>)</td><td class="entry"><a class="el" href="class_a_completion_data.html">ACompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>tailsIdMap</b> (defined in <a class="el" href="class_a_completion_data.html">ACompletionData</a>)</td><td class="entry"><a class="el" href="class_a_completion_data.html">ACompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>tailsList</b> (defined in <a class="el" href="class_a_completion_data.html">ACompletionData</a>)</td><td class="entry"><a class="el" href="class_a_completion_data.html">ACompletionData</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_completion_data.html#aeccf7bcb927ec5dbf2879c0a345161a4">update</a>()</td><td class="entry"><a class="el" href="class_a_completion_data.html">ACompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>updatePilots</b>() (defined in <a class="el" href="class_a_completion_data.html">ACompletionData</a>)</td><td class="entry"><a class="el" href="class_a_completion_data.html">ACompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>updateTails</b>() (defined in <a class="el" href="class_a_completion_data.html">ACompletionData</a>)</td><td class="entry"><a class="el" href="class_a_completion_data.html">ACompletionData</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Generated 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 </li>
+  </ul>
+</div>
+</body>
+</html>

+ 163 - 0
docs/html/class_a_completion_data.html

@@ -0,0 +1,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>openPilotLog: ACompletionData Class Reference</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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.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="custom_dark_theme.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="projectlogo"><img alt="Logo" src="icon_main.png"/></td>
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">openPilotLog
+   </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&amp;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&amp;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>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('class_a_completion_data.html',''); initResizable(); });
+/* @license-end */
+</script>
+<div id="doc-content">
+<!-- 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 class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="class_a_completion_data-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">ACompletionData Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The <a class="el" href="class_a_completion_data.html" title="The ACompletionData class provides data to QCompleters and QMaps used for mapping user input to datab...">ACompletionData</a> class provides data to QCompleters and QMaps used for mapping user input to database keys. It retreives the completer targets and mapping data from the database and caches it for fast access without the need to query the database.  
+ <a href="class_a_completion_data.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="acompletiondata_8h_source.html">acompletiondata.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:af476c92d41ac0dce50e098c25e6b035c"><td class="memItemLeft" align="right" valign="top"><a id="af476c92d41ac0dce50e098c25e6b035c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_completion_data.html#af476c92d41ac0dce50e098c25e6b035c">init</a> ()</td></tr>
+<tr class="memdesc:af476c92d41ac0dce50e098c25e6b035c"><td class="mdescLeft">&#160;</td><td class="mdescRight">init Retrieves Data and populates Lists and Maps <br /></td></tr>
+<tr class="separator:af476c92d41ac0dce50e098c25e6b035c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeccf7bcb927ec5dbf2879c0a345161a4"><td class="memItemLeft" align="right" valign="top"><a id="aeccf7bcb927ec5dbf2879c0a345161a4"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_completion_data.html#aeccf7bcb927ec5dbf2879c0a345161a4">update</a> ()</td></tr>
+<tr class="memdesc:aeccf7bcb927ec5dbf2879c0a345161a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">updates data from the user modifiable tables <br /></td></tr>
+<tr class="separator:aeccf7bcb927ec5dbf2879c0a345161a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16956446facb275fa24961b2effdd85f"><td class="memItemLeft" align="right" valign="top"><a id="a16956446facb275fa24961b2effdd85f"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>updateTails</b> ()</td></tr>
+<tr class="separator:a16956446facb275fa24961b2effdd85f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b599bce6e467d44653ed7441b226b22"><td class="memItemLeft" align="right" valign="top"><a id="a8b599bce6e467d44653ed7441b226b22"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>updatePilots</b> ()</td></tr>
+<tr class="separator:a8b599bce6e467d44653ed7441b226b22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:a172d3e1372f7d07943e4a73a21cdfd52"><td class="memItemLeft" align="right" valign="top"><a id="a172d3e1372f7d07943e4a73a21cdfd52"></a>
+QMap&lt; RowId_T, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>pilotsIdMap</b></td></tr>
+<tr class="separator:a172d3e1372f7d07943e4a73a21cdfd52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a601ce1c2e4f333322db7953575d01115"><td class="memItemLeft" align="right" valign="top"><a id="a601ce1c2e4f333322db7953575d01115"></a>
+QMap&lt; RowId_T, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>tailsIdMap</b></td></tr>
+<tr class="separator:a601ce1c2e4f333322db7953575d01115"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2b6444cc32de8bf74f91ded2a727e50"><td class="memItemLeft" align="right" valign="top"><a id="af2b6444cc32de8bf74f91ded2a727e50"></a>
+QMap&lt; RowId_T, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>airportIcaoIdMap</b></td></tr>
+<tr class="separator:af2b6444cc32de8bf74f91ded2a727e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace740694f0cc1e7a1409de8e7a5c64a2"><td class="memItemLeft" align="right" valign="top"><a id="ace740694f0cc1e7a1409de8e7a5c64a2"></a>
+QMap&lt; RowId_T, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>airportIataIdMap</b></td></tr>
+<tr class="separator:ace740694f0cc1e7a1409de8e7a5c64a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe09abc08a33efbebe47b5e24bc64f69"><td class="memItemLeft" align="right" valign="top"><a id="abe09abc08a33efbebe47b5e24bc64f69"></a>
+QMap&lt; RowId_T, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>airportNameIdMap</b></td></tr>
+<tr class="separator:abe09abc08a33efbebe47b5e24bc64f69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9965af9d815b2f22061b311677cc1282"><td class="memItemLeft" align="right" valign="top"><a id="a9965af9d815b2f22061b311677cc1282"></a>
+QStringList&#160;</td><td class="memItemRight" valign="bottom"><b>pilotList</b></td></tr>
+<tr class="separator:a9965af9d815b2f22061b311677cc1282"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a827b787c6dadfeedb50c3685d05d27f7"><td class="memItemLeft" align="right" valign="top"><a id="a827b787c6dadfeedb50c3685d05d27f7"></a>
+QStringList&#160;</td><td class="memItemRight" valign="bottom"><b>tailsList</b></td></tr>
+<tr class="separator:a827b787c6dadfeedb50c3685d05d27f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae7817ca029a70a5cc1e66b7fd345d745"><td class="memItemLeft" align="right" valign="top"><a id="ae7817ca029a70a5cc1e66b7fd345d745"></a>
+QStringList&#160;</td><td class="memItemRight" valign="bottom"><b>airportList</b></td></tr>
+<tr class="separator:ae7817ca029a70a5cc1e66b7fd345d745"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a612bf846e0d12eeae323baba191dcf75"><td class="memItemLeft" align="right" valign="top"><a id="a612bf846e0d12eeae323baba191dcf75"></a>
+<a class="el" href="struct_user_data_state.html">UserDataState</a>&#160;</td><td class="memItemRight" valign="bottom"><b>current_state</b></td></tr>
+<tr class="separator:a612bf846e0d12eeae323baba191dcf75"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The <a class="el" href="class_a_completion_data.html" title="The ACompletionData class provides data to QCompleters and QMaps used for mapping user input to datab...">ACompletionData</a> class provides data to QCompleters and QMaps used for mapping user input to database keys. It retreives the completer targets and mapping data from the database and caches it for fast access without the need to query the database. </p>
+</div><hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/classes/<a class="el" href="acompletiondata_8h_source.html">acompletiondata.h</a></li>
+<li>src/classes/acompletiondata.cpp</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="navelem"><a class="el" href="class_a_completion_data.html">ACompletionData</a></li>
+    <li class="footer">Generated 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 </li>
+  </ul>
+</div>
+</body>
+</html>

+ 16 - 0
docs/html/class_a_completion_data.js

@@ -0,0 +1,16 @@
+var class_a_completion_data =
+[
+    [ "init", "class_a_completion_data.html#af476c92d41ac0dce50e098c25e6b035c", null ],
+    [ "update", "class_a_completion_data.html#aeccf7bcb927ec5dbf2879c0a345161a4", null ],
+    [ "updatePilots", "class_a_completion_data.html#a8b599bce6e467d44653ed7441b226b22", null ],
+    [ "updateTails", "class_a_completion_data.html#a16956446facb275fa24961b2effdd85f", null ],
+    [ "airportIataIdMap", "class_a_completion_data.html#ace740694f0cc1e7a1409de8e7a5c64a2", null ],
+    [ "airportIcaoIdMap", "class_a_completion_data.html#af2b6444cc32de8bf74f91ded2a727e50", null ],
+    [ "airportList", "class_a_completion_data.html#ae7817ca029a70a5cc1e66b7fd345d745", null ],
+    [ "airportNameIdMap", "class_a_completion_data.html#abe09abc08a33efbebe47b5e24bc64f69", null ],
+    [ "current_state", "class_a_completion_data.html#a612bf846e0d12eeae323baba191dcf75", null ],
+    [ "pilotList", "class_a_completion_data.html#a9965af9d815b2f22061b311677cc1282", null ],
+    [ "pilotsIdMap", "class_a_completion_data.html#a172d3e1372f7d07943e4a73a21cdfd52", null ],
+    [ "tailsIdMap", "class_a_completion_data.html#a601ce1c2e4f333322db7953575d01115", null ],
+    [ "tailsList", "class_a_completion_data.html#a827b787c6dadfeedb50c3685d05d27f7", null ]
+];

+ 22 - 23
docs/html/class_a_database-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -92,7 +92,7 @@ $(document).ready(function(){initNavTree('class_a_database.html',''); initResiza
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ADatabase</b>(const ADatabase &amp;)=delete (defined in <a class="el" href="class_a_database.html">ADatabase</a>)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="class_a_database.html#a73382f7e897f8381371cd3da458f72cc">clear</a>()</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a652472c747c0ce68940b17c9c23666dd">commit</a>(AEntry entry)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a7d57d7696814bd013fa35e068ad909c8">commit</a>(const AEntry &amp;entry)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="class_a_database.html#aa6080200aa3f229251480bc416755fed">connect</a>()</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a0f0bffbb6cdd79975b7b5ca6c0db31a7">connectionReset</a>()</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"><span class="mlabel">signal</span></td></tr>
   <tr><td class="entry"><a class="el" href="class_a_database.html#a5ab838a62a83974f9e40c62f66adfa99">createBackup</a>(const QString &amp;dest_file)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
@@ -104,7 +104,7 @@ $(document).ready(function(){initNavTree('class_a_database.html',''); initResiza
   <tr><td class="entry"><a class="el" href="class_a_database.html#a5ed8c010ccc022687ce903cfde8ae911">dataBaseUpdated</a>()</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"><span class="mlabel">signal</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a1c026e7784b03fc5822077c7d0071330">dbRevision</a>() const</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="class_a_database.html#abc461aaa66304ca638e546f67a694935">disconnect</a>()</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a24f938e4c8d20afddb5e5651e041a7a6">exists</a>(AEntry entry)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a0c5a017dccf7bf5d4dcbfc29c8d20e12">exists</a>(const AEntry &amp;entry)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>exists</b>(DataPosition data_position) (defined in <a class="el" href="class_a_database.html">ADatabase</a>)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#ae0a3c9273431195df6295b9da24b3a3a">getAircraftEntry</a>(RowId_T row_id)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="class_a_database.html#a89de409c1828125363f46f384df47359">getCompletionList</a>(ADatabaseTarget target)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
@@ -113,8 +113,8 @@ $(document).ready(function(){initNavTree('class_a_database.html',''); initResiza
   <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#afc39f6136fc822e0649964fa22b84bf9">getEntryData</a>(DataPosition data_position)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="class_a_database.html#a7bb44738362582e4f54f68e3aa30d40a">getFlightEntry</a>(RowId_T row_id)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a0f88e121d421043f35e321d5dc49ba19">getForeignKeyConstraints</a>(RowId_T foreign_row_id, ADatabaseTable target)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="class_a_database.html#a5dba46567089112b28b16aaf985af0ba">getIdMap</a>(ADatabaseTarget target)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#abc8c302d07f5f14cf246c8b2fd1ba366">getLastEntry</a>(ADatabaseTable table)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_a_database.html#afa8ce49693abf480f296d34dfc2969f0">getIdMap</a>(ADatabaseTarget target)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a0497bb70998cea6cd60fa893880c9555">getLastEntry</a>(ADatabaseTable table)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="class_a_database.html#ab99ccce4c67591f5f58832c26cf93fc8">getMinimumDatabaseRevision</a>()</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a426026d641a594863995ec5db8312259">getPilotEntry</a>(RowId_T row_id)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="class_a_database.html#a8b38405b535d603cce2b36ca2d56368f">getTable</a>(ADatabaseTable table_name)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
@@ -122,27 +122,26 @@ $(document).ready(function(){initNavTree('class_a_database.html',''); initResiza
   <tr><td class="entry"><a class="el" href="class_a_database.html#a3deb081c5abe832a65e1792c106eb083">getTableNames</a>() const</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a356df159542705635dc3898d90682039">getTailEntry</a>(RowId_T row_id)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="class_a_database.html#ad688f0e48bea4879a81e17a584f189b1">getTemplateTableNames</a>()</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a692d7ba3abc763ee7c0d1a47236f021f">getUserTableNames</a>()</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="class_a_database.html#a4ecb6d0c9b3813c90b3165c993e69ad5">insert</a>(AEntry new_entry)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>instance</b>() (defined in <a class="el" href="class_a_database.html">ADatabase</a>)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="class_a_database.html#a88c8cb3d573d46c1ee8e5af61cf63224">lastError</a></td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const ADatabase &amp;)=delete (defined in <a class="el" href="class_a_database.html">ADatabase</a>)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="class_a_database.html#a4903909a28daed708e1a335d3be4f57b">remove</a>(AEntry entry)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a863d30e9e3a7c14adfe72787363618c8">removeMany</a>(QList&lt; DataPosition &gt;)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="class_a_database.html#a4640a4348dad468a0ff65bad05b07227">resolveForeignPilot</a>(RowId_T foreign_key)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a5878bcd4bc19e4c3fc5275ca7252860d">resolveForeignTail</a>(RowId_T foreign_key)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="class_a_database.html#a0bda52064f005f1463e56b60cd23b164">restoreBackup</a>(const QString &amp;backup_file)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a491415273a771dd7ea41452c331a34b0">sqliteVersion</a>() const</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="class_a_database.html#a910bc0c1717e9301911343c082aa1aaa">update</a>(AEntry updated_entry)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a3c0fdc84000ad397d61f0efabd032194">updateLayout</a>()</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a9da290c8488b35196ce4e49c4cfbe9f5">getUserDataState</a>()</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_a_database.html#a692d7ba3abc763ee7c0d1a47236f021f">getUserTableNames</a>()</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#aa69dcdf174e48653cdf1bef473dc5623">insert</a>(const AEntry &amp;new_entry)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>instance</b>() (defined in <a class="el" href="class_a_database.html">ADatabase</a>)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a88c8cb3d573d46c1ee8e5af61cf63224">lastError</a></td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const ADatabase &amp;)=delete (defined in <a class="el" href="class_a_database.html">ADatabase</a>)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a4deda96cfb75518f98a4a0c9996920eb">remove</a>(const AEntry &amp;entry)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_a_database.html#a863d30e9e3a7c14adfe72787363618c8">removeMany</a>(QList&lt; DataPosition &gt;)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a4640a4348dad468a0ff65bad05b07227">resolveForeignPilot</a>(RowId_T foreign_key)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_a_database.html#a5878bcd4bc19e4c3fc5275ca7252860d">resolveForeignTail</a>(RowId_T foreign_key)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#a0bda52064f005f1463e56b60cd23b164">restoreBackup</a>(const QString &amp;backup_file)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_a_database.html#a491415273a771dd7ea41452c331a34b0">sqliteVersion</a>() const</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_database.html#ac73208ba1a70af19590d53f260e7cb8c">update</a>(const AEntry &amp;updated_entry)</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_a_database.html#a3c0fdc84000ad397d61f0efabd032194">updateLayout</a>()</td><td class="entry"><a class="el" href="class_a_database.html">ADatabase</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 60 - 39
docs/html/class_a_database.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: ADatabase Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -153,10 +153,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="memitem:a2a43936d3ae28993f9f7eda0fdf4664d"><td class="memItemLeft" align="right" valign="top">QVector&lt; QVariant &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a2a43936d3ae28993f9f7eda0fdf4664d">customQuery</a> (QString statement, int return_values)</td></tr>
 <tr class="memdesc:a2a43936d3ae28993f9f7eda0fdf4664d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be used to send a complex query to the database.  <a href="class_a_database.html#a2a43936d3ae28993f9f7eda0fdf4664d">More...</a><br /></td></tr>
 <tr class="separator:a2a43936d3ae28993f9f7eda0fdf4664d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a24f938e4c8d20afddb5e5651e041a7a6"><td class="memItemLeft" align="right" valign="top"><a id="a24f938e4c8d20afddb5e5651e041a7a6"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a24f938e4c8d20afddb5e5651e041a7a6">exists</a> (<a class="el" href="class_a_entry.html">AEntry</a> entry)</td></tr>
-<tr class="memdesc:a24f938e4c8d20afddb5e5651e041a7a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if an entry exists in the database, based on position data. <br /></td></tr>
-<tr class="separator:a24f938e4c8d20afddb5e5651e041a7a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0c5a017dccf7bf5d4dcbfc29c8d20e12"><td class="memItemLeft" align="right" valign="top"><a id="a0c5a017dccf7bf5d4dcbfc29c8d20e12"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a0c5a017dccf7bf5d4dcbfc29c8d20e12">exists</a> (const <a class="el" href="class_a_entry.html">AEntry</a> &amp;entry)</td></tr>
+<tr class="memdesc:a0c5a017dccf7bf5d4dcbfc29c8d20e12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if an entry exists in the database, based on position data. <br /></td></tr>
+<tr class="separator:a0c5a017dccf7bf5d4dcbfc29c8d20e12"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a22ce31ddea49c144d85c05658f49fec5"><td class="memItemLeft" align="right" valign="top"><a id="a22ce31ddea49c144d85c05658f49fec5"></a>
 bool&#160;</td><td class="memItemRight" valign="bottom"><b>exists</b> (<a class="el" href="struct_data_position.html">DataPosition</a> data_position)</td></tr>
 <tr class="separator:a22ce31ddea49c144d85c05658f49fec5"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -164,22 +164,22 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>exists</b> (<a class=
 bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a73382f7e897f8381371cd3da458f72cc">clear</a> ()</td></tr>
 <tr class="memdesc:a73382f7e897f8381371cd3da458f72cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear resets the database, i.e. deletes all content in the tables containing userdata (pilots, flights, tails) <br /></td></tr>
 <tr class="separator:a73382f7e897f8381371cd3da458f72cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a652472c747c0ce68940b17c9c23666dd"><td class="memItemLeft" align="right" valign="top"><a id="a652472c747c0ce68940b17c9c23666dd"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a652472c747c0ce68940b17c9c23666dd">commit</a> (<a class="el" href="class_a_entry.html">AEntry</a> entry)</td></tr>
-<tr class="memdesc:a652472c747c0ce68940b17c9c23666dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">commits an entry to the database, calls either insert or update, based on position data <br /></td></tr>
-<tr class="separator:a652472c747c0ce68940b17c9c23666dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4ecb6d0c9b3813c90b3165c993e69ad5"><td class="memItemLeft" align="right" valign="top"><a id="a4ecb6d0c9b3813c90b3165c993e69ad5"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a4ecb6d0c9b3813c90b3165c993e69ad5">insert</a> (<a class="el" href="class_a_entry.html">AEntry</a> new_entry)</td></tr>
-<tr class="memdesc:a4ecb6d0c9b3813c90b3165c993e69ad5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new entry in the databse based on UserInput. <br /></td></tr>
-<tr class="separator:a4ecb6d0c9b3813c90b3165c993e69ad5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a910bc0c1717e9301911343c082aa1aaa"><td class="memItemLeft" align="right" valign="top"><a id="a910bc0c1717e9301911343c082aa1aaa"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a910bc0c1717e9301911343c082aa1aaa">update</a> (<a class="el" href="class_a_entry.html">AEntry</a> updated_entry)</td></tr>
-<tr class="memdesc:a910bc0c1717e9301911343c082aa1aaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates entry in database from existing entry tweaked by the user. <br /></td></tr>
-<tr class="separator:a910bc0c1717e9301911343c082aa1aaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4903909a28daed708e1a335d3be4f57b"><td class="memItemLeft" align="right" valign="top"><a id="a4903909a28daed708e1a335d3be4f57b"></a>
-bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a4903909a28daed708e1a335d3be4f57b">remove</a> (<a class="el" href="class_a_entry.html">AEntry</a> entry)</td></tr>
-<tr class="memdesc:a4903909a28daed708e1a335d3be4f57b"><td class="mdescLeft">&#160;</td><td class="mdescRight">deletes an entry from the database. <br /></td></tr>
-<tr class="separator:a4903909a28daed708e1a335d3be4f57b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d57d7696814bd013fa35e068ad909c8"><td class="memItemLeft" align="right" valign="top"><a id="a7d57d7696814bd013fa35e068ad909c8"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a7d57d7696814bd013fa35e068ad909c8">commit</a> (const <a class="el" href="class_a_entry.html">AEntry</a> &amp;entry)</td></tr>
+<tr class="memdesc:a7d57d7696814bd013fa35e068ad909c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">commits an entry to the database, calls either insert or update, based on position data <br /></td></tr>
+<tr class="separator:a7d57d7696814bd013fa35e068ad909c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa69dcdf174e48653cdf1bef473dc5623"><td class="memItemLeft" align="right" valign="top"><a id="aa69dcdf174e48653cdf1bef473dc5623"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#aa69dcdf174e48653cdf1bef473dc5623">insert</a> (const <a class="el" href="class_a_entry.html">AEntry</a> &amp;new_entry)</td></tr>
+<tr class="memdesc:aa69dcdf174e48653cdf1bef473dc5623"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new entry in the databse based on UserInput. <br /></td></tr>
+<tr class="separator:aa69dcdf174e48653cdf1bef473dc5623"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac73208ba1a70af19590d53f260e7cb8c"><td class="memItemLeft" align="right" valign="top"><a id="ac73208ba1a70af19590d53f260e7cb8c"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#ac73208ba1a70af19590d53f260e7cb8c">update</a> (const <a class="el" href="class_a_entry.html">AEntry</a> &amp;updated_entry)</td></tr>
+<tr class="memdesc:ac73208ba1a70af19590d53f260e7cb8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates entry in database from existing entry tweaked by the user. <br /></td></tr>
+<tr class="separator:ac73208ba1a70af19590d53f260e7cb8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4deda96cfb75518f98a4a0c9996920eb"><td class="memItemLeft" align="right" valign="top"><a id="a4deda96cfb75518f98a4a0c9996920eb"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a4deda96cfb75518f98a4a0c9996920eb">remove</a> (const <a class="el" href="class_a_entry.html">AEntry</a> &amp;entry)</td></tr>
+<tr class="memdesc:a4deda96cfb75518f98a4a0c9996920eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">deletes an entry from the database. <br /></td></tr>
+<tr class="separator:a4deda96cfb75518f98a4a0c9996920eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a863d30e9e3a7c14adfe72787363618c8"><td class="memItemLeft" align="right" valign="top"><a id="a863d30e9e3a7c14adfe72787363618c8"></a>
 bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a863d30e9e3a7c14adfe72787363618c8">removeMany</a> (QList&lt; <a class="el" href="struct_data_position.html">DataPosition</a> &gt;)</td></tr>
 <tr class="memdesc:a863d30e9e3a7c14adfe72787363618c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">deletes a list of entries from the database. Optimised for speed when deleting many entries. <br /></td></tr>
@@ -212,13 +212,13 @@ RowData_T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href=
 const QStringList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a89de409c1828125363f46f384df47359">getCompletionList</a> (ADatabaseTarget target)</td></tr>
 <tr class="memdesc:a89de409c1828125363f46f384df47359"><td class="mdescLeft">&#160;</td><td class="mdescRight">getCompletionList returns a QStringList of values for a QCompleter based on database values <br /></td></tr>
 <tr class="separator:a89de409c1828125363f46f384df47359"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5dba46567089112b28b16aaf985af0ba"><td class="memItemLeft" align="right" valign="top">const QMap&lt; QString, RowId_T &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a5dba46567089112b28b16aaf985af0ba">getIdMap</a> (ADatabaseTarget target)</td></tr>
-<tr class="memdesc:a5dba46567089112b28b16aaf985af0ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a QMap&lt;QString, RowId_t&gt; of a human-readable database value and its row id. Used in the Dialogs to map user input to unique database entries.  <a href="class_a_database.html#a5dba46567089112b28b16aaf985af0ba">More...</a><br /></td></tr>
-<tr class="separator:a5dba46567089112b28b16aaf985af0ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abc8c302d07f5f14cf246c8b2fd1ba366"><td class="memItemLeft" align="right" valign="top"><a id="abc8c302d07f5f14cf246c8b2fd1ba366"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#abc8c302d07f5f14cf246c8b2fd1ba366">getLastEntry</a> (ADatabaseTable table)</td></tr>
-<tr class="memdesc:abc8c302d07f5f14cf246c8b2fd1ba366"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the ROWID for the newest entry in the respective database. <br /></td></tr>
-<tr class="separator:abc8c302d07f5f14cf246c8b2fd1ba366"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa8ce49693abf480f296d34dfc2969f0"><td class="memItemLeft" align="right" valign="top">const QMap&lt; RowId_T, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#afa8ce49693abf480f296d34dfc2969f0">getIdMap</a> (ADatabaseTarget target)</td></tr>
+<tr class="memdesc:afa8ce49693abf480f296d34dfc2969f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a QMap of a human-readable database value and its row id. Used in the Dialogs to map user input to unique database entries.  <a href="class_a_database.html#afa8ce49693abf480f296d34dfc2969f0">More...</a><br /></td></tr>
+<tr class="separator:afa8ce49693abf480f296d34dfc2969f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0497bb70998cea6cd60fa893880c9555"><td class="memItemLeft" align="right" valign="top"><a id="a0497bb70998cea6cd60fa893880c9555"></a>
+RowId_T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a0497bb70998cea6cd60fa893880c9555">getLastEntry</a> (ADatabaseTable table)</td></tr>
+<tr class="memdesc:a0497bb70998cea6cd60fa893880c9555"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the ROWID for the newest entry in the respective database. <br /></td></tr>
+<tr class="separator:a0497bb70998cea6cd60fa893880c9555"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a0f88e121d421043f35e321d5dc49ba19"><td class="memItemLeft" align="right" valign="top"><a id="a0f88e121d421043f35e321d5dc49ba19"></a>
 QList&lt; RowId_T &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a0f88e121d421043f35e321d5dc49ba19">getForeignKeyConstraints</a> (RowId_T foreign_row_id, ADatabaseTable target)</td></tr>
 <tr class="memdesc:a0f88e121d421043f35e321d5dc49ba19"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a list of ROWID's in the flights table for which foreign key constraints exist. <br /></td></tr>
@@ -253,6 +253,9 @@ QStringList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" hre
 QStringList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#ad688f0e48bea4879a81e17a584f189b1">getTemplateTableNames</a> ()</td></tr>
 <tr class="memdesc:ad688f0e48bea4879a81e17a584f189b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">getTemplateTableNames returns a list of the table names of tables that contain template data (aiports, aircraft,..) <br /></td></tr>
 <tr class="separator:ad688f0e48bea4879a81e17a584f189b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9da290c8488b35196ce4e49c4cfbe9f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_user_data_state.html">UserDataState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a9da290c8488b35196ce4e49c4cfbe9f5">getUserDataState</a> ()</td></tr>
+<tr class="memdesc:a9da290c8488b35196ce4e49c4cfbe9f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">getUserDataState returns a struct containing the current amount of entries in the tails and pilots tables.  <a href="class_a_database.html#a9da290c8488b35196ce4e49c4cfbe9f5">More...</a><br /></td></tr>
+<tr class="separator:a9da290c8488b35196ce4e49c4cfbe9f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
 Static Public Member Functions</h2></td></tr>
@@ -270,7 +273,7 @@ static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
 <tr class="memitem:a88c8cb3d573d46c1ee8e5af61cf63224"><td class="memItemLeft" align="right" valign="top">QSqlError&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_database.html#a88c8cb3d573d46c1ee8e5af61cf63224">lastError</a></td></tr>
-<tr class="memdesc:a88c8cb3d573d46c1ee8e5af61cf63224"><td class="mdescLeft">&#160;</td><td class="mdescRight">lastError extends QSqlError. Holds information about the last error that ocurred during a SQL operation. If the error type is QSqlError::UnknownError, the error is related to data from the database (entry not found,...), otherwise the error is related to SQL execution. In this case error.type() provides further information.  <a href="class_a_database.html#a88c8cb3d573d46c1ee8e5af61cf63224">More...</a><br /></td></tr>
+<tr class="memdesc:a88c8cb3d573d46c1ee8e5af61cf63224"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds information about the last error that ocurred during a SQL operation. If the error type is QSqlError::UnknownError, the error is related to data from the database (entry not found,...), otherwise the error is related to SQL execution. In this case error.type() provides further information.  <a href="class_a_database.html#a88c8cb3d573d46c1ee8e5af61cf63224">More...</a><br /></td></tr>
 <tr class="separator:a88c8cb3d573d46c1ee8e5af61cf63224"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae1da0311f588fd269dec80389aea8644"><td class="memItemLeft" align="right" valign="top"><a id="ae1da0311f588fd269dec80389aea8644"></a>
 const QFileInfo&#160;</td><td class="memItemRight" valign="bottom"><b>databaseFile</b></td></tr>
@@ -453,14 +456,14 @@ const QFileInfo&#160;</td><td class="memItemRight" valign="bottom"><b>databaseFi
 
 </div>
 </div>
-<a id="a5dba46567089112b28b16aaf985af0ba"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5dba46567089112b28b16aaf985af0ba">&#9670;&nbsp;</a></span>getIdMap()</h2>
+<a id="afa8ce49693abf480f296d34dfc2969f0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afa8ce49693abf480f296d34dfc2969f0">&#9670;&nbsp;</a></span>getIdMap()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const QMap&lt; QString, RowId_T &gt; ADatabase::getIdMap </td>
+          <td class="memname">const QMap&lt; RowId_T, QString &gt; ADatabase::getIdMap </td>
           <td>(</td>
           <td class="paramtype">ADatabaseTarget&#160;</td>
           <td class="paramname"><em>target</em></td><td>)</td>
@@ -469,7 +472,7 @@ const QFileInfo&#160;</td><td class="memItemRight" valign="bottom"><b>databaseFi
       </table>
 </div><div class="memdoc">
 
-<p>returns a QMap&lt;QString, RowId_t&gt; of a human-readable database value and its row id. Used in the Dialogs to map user input to unique database entries. </p>
+<p>returns a QMap of a human-readable database value and its row id. Used in the Dialogs to map user input to unique database entries. </p>
 <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>What is this QString semantically? As i understand its a "QueryResult" QVariant cast to QString </dd></dl>
 
 </div>
@@ -535,6 +538,26 @@ const QFileInfo&#160;</td><td class="memItemRight" valign="bottom"><b>databaseFi
 <p>retreives a TailEntry from the database. </p>
 <p>This function is a wrapper for DataBase::getEntry(DataPosition), where the table is already set and which returns a TailEntry instead of an Entry. It allows for easy access to a tail entry with only the RowId required as input. </p>
 
+</div>
+</div>
+<a id="a9da290c8488b35196ce4e49c4cfbe9f5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9da290c8488b35196ce4e49c4cfbe9f5">&#9670;&nbsp;</a></span>getUserDataState()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="struct_user_data_state.html">UserDataState</a> ADatabase::getUserDataState </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>getUserDataState returns a struct containing the current amount of entries in the tails and pilots tables. </p>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
 </div>
 </div>
 <a id="a4640a4348dad468a0ff65bad05b07227"></a>
@@ -638,7 +661,7 @@ const QFileInfo&#160;</td><td class="memItemRight" valign="bottom"><b>databaseFi
       </table>
 </div><div class="memdoc">
 
-<p>lastError extends QSqlError. Holds information about the last error that ocurred during a SQL operation. If the error type is QSqlError::UnknownError, the error is related to data from the database (entry not found,...), otherwise the error is related to SQL execution. In this case error.type() provides further information. </p>
+<p>Holds information about the last error that ocurred during a SQL operation. If the error type is QSqlError::UnknownError, the error is related to data from the database (entry not found,...), otherwise the error is related to SQL execution. In this case error.type() provides further information. </p>
 <p>If the error type is QSqlError::NoError, the last executed database query was successful. </p>
 
 </div>
@@ -653,9 +676,7 @@ const QFileInfo&#160;</td><td class="memItemRight" valign="bottom"><b>databaseFi
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_database.html">ADatabase</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 8 - 7
docs/html/class_a_database.js

@@ -2,7 +2,7 @@ var class_a_database =
 [
     [ "ADatabase", "class_a_database.html#aad08b473425d508107bc6c872cb53334", null ],
     [ "clear", "class_a_database.html#a73382f7e897f8381371cd3da458f72cc", null ],
-    [ "commit", "class_a_database.html#a652472c747c0ce68940b17c9c23666dd", null ],
+    [ "commit", "class_a_database.html#a7d57d7696814bd013fa35e068ad909c8", null ],
     [ "connect", "class_a_database.html#aa6080200aa3f229251480bc416755fed", null ],
     [ "connectionReset", "class_a_database.html#a0f0bffbb6cdd79975b7b5ca6c0db31a7", null ],
     [ "createBackup", "class_a_database.html#a5ab838a62a83974f9e40c62f66adfa99", null ],
@@ -12,7 +12,7 @@ var class_a_database =
     [ "dataBaseUpdated", "class_a_database.html#a5ed8c010ccc022687ce903cfde8ae911", null ],
     [ "dbRevision", "class_a_database.html#a1c026e7784b03fc5822077c7d0071330", null ],
     [ "disconnect", "class_a_database.html#abc461aaa66304ca638e546f67a694935", null ],
-    [ "exists", "class_a_database.html#a24f938e4c8d20afddb5e5651e041a7a6", null ],
+    [ "exists", "class_a_database.html#a0c5a017dccf7bf5d4dcbfc29c8d20e12", null ],
     [ "exists", "class_a_database.html#a22ce31ddea49c144d85c05658f49fec5", null ],
     [ "getAircraftEntry", "class_a_database.html#ae0a3c9273431195df6295b9da24b3a3a", null ],
     [ "getCompletionList", "class_a_database.html#a89de409c1828125363f46f384df47359", null ],
@@ -21,24 +21,25 @@ var class_a_database =
     [ "getEntryData", "class_a_database.html#afc39f6136fc822e0649964fa22b84bf9", null ],
     [ "getFlightEntry", "class_a_database.html#a7bb44738362582e4f54f68e3aa30d40a", null ],
     [ "getForeignKeyConstraints", "class_a_database.html#a0f88e121d421043f35e321d5dc49ba19", null ],
-    [ "getIdMap", "class_a_database.html#a5dba46567089112b28b16aaf985af0ba", null ],
-    [ "getLastEntry", "class_a_database.html#abc8c302d07f5f14cf246c8b2fd1ba366", null ],
+    [ "getIdMap", "class_a_database.html#afa8ce49693abf480f296d34dfc2969f0", null ],
+    [ "getLastEntry", "class_a_database.html#a0497bb70998cea6cd60fa893880c9555", null ],
     [ "getPilotEntry", "class_a_database.html#a426026d641a594863995ec5db8312259", null ],
     [ "getTable", "class_a_database.html#a8b38405b535d603cce2b36ca2d56368f", null ],
     [ "getTableColumns", "class_a_database.html#a9c0dcd8c35087c8256b75d8aafa64880", null ],
     [ "getTableNames", "class_a_database.html#a3deb081c5abe832a65e1792c106eb083", null ],
     [ "getTailEntry", "class_a_database.html#a356df159542705635dc3898d90682039", null ],
     [ "getTemplateTableNames", "class_a_database.html#ad688f0e48bea4879a81e17a584f189b1", null ],
+    [ "getUserDataState", "class_a_database.html#a9da290c8488b35196ce4e49c4cfbe9f5", null ],
     [ "getUserTableNames", "class_a_database.html#a692d7ba3abc763ee7c0d1a47236f021f", null ],
-    [ "insert", "class_a_database.html#a4ecb6d0c9b3813c90b3165c993e69ad5", null ],
+    [ "insert", "class_a_database.html#aa69dcdf174e48653cdf1bef473dc5623", null ],
     [ "operator=", "class_a_database.html#a3c3e1c6b74a9e92f26f7118a6a130a64", null ],
-    [ "remove", "class_a_database.html#a4903909a28daed708e1a335d3be4f57b", null ],
+    [ "remove", "class_a_database.html#a4deda96cfb75518f98a4a0c9996920eb", null ],
     [ "removeMany", "class_a_database.html#a863d30e9e3a7c14adfe72787363618c8", null ],
     [ "resolveForeignPilot", "class_a_database.html#a4640a4348dad468a0ff65bad05b07227", null ],
     [ "resolveForeignTail", "class_a_database.html#a5878bcd4bc19e4c3fc5275ca7252860d", null ],
     [ "restoreBackup", "class_a_database.html#a0bda52064f005f1463e56b60cd23b164", null ],
     [ "sqliteVersion", "class_a_database.html#a491415273a771dd7ea41452c331a34b0", null ],
-    [ "update", "class_a_database.html#a910bc0c1717e9301911343c082aa1aaa", null ],
+    [ "update", "class_a_database.html#ac73208ba1a70af19590d53f260e7cb8c", null ],
     [ "updateLayout", "class_a_database.html#a3c0fdc84000ad397d61f0efabd032194", null ],
     [ "databaseFile", "class_a_database.html#ae1da0311f588fd269dec80389aea8644", null ],
     [ "lastError", "class_a_database.html#a88c8cb3d573d46c1ee8e5af61cf63224", null ]

+ 4 - 6
docs/html/class_a_database_error-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -99,9 +99,7 @@ $(document).ready(function(){initNavTree('class_a_database_error.html',''); init
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 5 - 8
docs/html/class_a_database_error.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: ADatabaseError Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -116,9 +116,8 @@ QString&#160;</td><td class="memItemRight" valign="bottom"><b>text</b> () const<
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Custom Database Error derived from QSqlError. Extends text() adding "Database Error: " before the text. Errors that are related to SQL are assigned their respective error codes. Errors that occur with data in the database are handled with the error code "opl" and QSqlError::UnknownError. </p>
-</div><hr/>The documentation for this class was generated from the following files:<ul>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
 <li>src/database/<a class="el" href="adatabase_8h_source.html">adatabase.h</a></li>
-<li>src/database/adatabase.cpp</li>
 </ul>
 </div><!-- contents -->
 </div><!-- doc-content -->
@@ -126,9 +125,7 @@ QString&#160;</td><td class="memItemRight" valign="bottom"><b>text</b> () const<
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_database_error.html">ADatabaseError</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 12 - 9
docs/html/class_a_date-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -90,18 +90,21 @@ $(document).ready(function(){initNavTree('class_a_date.html',''); initResizable(
 
 <p>This is the complete list of members for <a class="el" href="class_a_date.html">ADate</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="class_a_date.html#aa1c79d62d44ab503ccbc984f6f681a2d">formatInput</a>(QString user_input, Opl::Date::ADateFormat format)</td><td class="entry"><a class="el" href="class_a_date.html">ADate</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>getDisplayNames</b>() (defined in <a class="el" href="class_a_date.html">ADate</a>)</td><td class="entry"><a class="el" href="class_a_date.html">ADate</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getFormatString</b>(Opl::Date::ADateFormat format) (defined in <a class="el" href="class_a_date.html">ADate</a>)</td><td class="entry"><a class="el" href="class_a_date.html">ADate</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>addSeperators</b>(QString &amp;io_user_input, const Opl::Date::ADateFormat &amp;format) (defined in <a class="el" href="class_a_date.html">ADate</a>)</td><td class="entry"><a class="el" href="class_a_date.html">ADate</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>containsSeperator</b>(const QString &amp;user_input) (defined in <a class="el" href="class_a_date.html">ADate</a>)</td><td class="entry"><a class="el" href="class_a_date.html">ADate</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getDisplayNames</b>() (defined in <a class="el" href="class_a_date.html">ADate</a>)</td><td class="entry"><a class="el" href="class_a_date.html">ADate</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getFormatString</b>(Opl::Date::ADateFormat format) (defined in <a class="el" href="class_a_date.html">ADate</a>)</td><td class="entry"><a class="el" href="class_a_date.html">ADate</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_date.html#ac184d215183b290f4cdacde835fd5938">padCentury</a>(QString &amp;io_user_input, Opl::Date::ADateFormat format)</td><td class="entry"><a class="el" href="class_a_date.html">ADate</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_a_date.html#ac73a41e8dac47a3a2a3fcef5b3d19eee">padZeroes</a>(QString &amp;io_user_input)</td><td class="entry"><a class="el" href="class_a_date.html">ADate</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_date.html#ad678a1eed52b81d7af4d4e31ffad2c1e">parseInput</a>(QString &amp;io_user_input, Opl::Date::ADateFormat format)</td><td class="entry"><a class="el" href="class_a_date.html">ADate</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
   <tr><td class="entry"><a class="el" href="class_a_date.html#ae8a544f48462c8159748f98fe4684a56">toString</a>(const QDate &amp;date, Opl::Date::ADateFormat format=Opl::Date::ADateFormat::ISODate)</td><td class="entry"><a class="el" href="class_a_date.html">ADate</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>tryToFix</b>(QString &amp;io_user_input, Opl::Date::ADateFormat format) (defined in <a class="el" href="class_a_date.html">ADate</a>)</td><td class="entry"><a class="el" href="class_a_date.html">ADate</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 30 - 15
docs/html/class_a_date.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: ADate Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -98,9 +98,26 @@ $(document).ready(function(){initNavTree('class_a_date.html',''); initResizable(
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
 Static Public Member Functions</h2></td></tr>
-<tr class="memitem:aa1c79d62d44ab503ccbc984f6f681a2d"><td class="memItemLeft" align="right" valign="top">static QDate&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_date.html#aa1c79d62d44ab503ccbc984f6f681a2d">formatInput</a> (QString user_input, Opl::Date::ADateFormat format)</td></tr>
-<tr class="memdesc:aa1c79d62d44ab503ccbc984f6f681a2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">formatInput takes a user-provided input and tries to convert it to a QDate.  <a href="class_a_date.html#aa1c79d62d44ab503ccbc984f6f681a2d">More...</a><br /></td></tr>
-<tr class="separator:aa1c79d62d44ab503ccbc984f6f681a2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad678a1eed52b81d7af4d4e31ffad2c1e"><td class="memItemLeft" align="right" valign="top">static QDate&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_date.html#ad678a1eed52b81d7af4d4e31ffad2c1e">parseInput</a> (QString &amp;io_user_input, Opl::Date::ADateFormat format)</td></tr>
+<tr class="memdesc:ad678a1eed52b81d7af4d4e31ffad2c1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">takes a user-provided input and tries to convert it to a (valid) QDate.  <a href="class_a_date.html#ad678a1eed52b81d7af4d4e31ffad2c1e">More...</a><br /></td></tr>
+<tr class="separator:ad678a1eed52b81d7af4d4e31ffad2c1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae67e575b8e0ea5b351cd1208d401834b"><td class="memItemLeft" align="right" valign="top"><a id="ae67e575b8e0ea5b351cd1208d401834b"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>tryToFix</b> (QString &amp;io_user_input, Opl::Date::ADateFormat format)</td></tr>
+<tr class="separator:ae67e575b8e0ea5b351cd1208d401834b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac184d215183b290f4cdacde835fd5938"><td class="memItemLeft" align="right" valign="top"><a id="ac184d215183b290f4cdacde835fd5938"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_date.html#ac184d215183b290f4cdacde835fd5938">padCentury</a> (QString &amp;io_user_input, Opl::Date::ADateFormat format)</td></tr>
+<tr class="memdesc:ac184d215183b290f4cdacde835fd5938"><td class="mdescLeft">&#160;</td><td class="mdescRight">padCentury adds the century to a date where it was omitted <br /></td></tr>
+<tr class="separator:ac184d215183b290f4cdacde835fd5938"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac73a41e8dac47a3a2a3fcef5b3d19eee"><td class="memItemLeft" align="right" valign="top"><a id="ac73a41e8dac47a3a2a3fcef5b3d19eee"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_date.html#ac73a41e8dac47a3a2a3fcef5b3d19eee">padZeroes</a> (QString &amp;io_user_input)</td></tr>
+<tr class="memdesc:ac73a41e8dac47a3a2a3fcef5b3d19eee"><td class="mdescLeft">&#160;</td><td class="mdescRight">pads a user-provided date string with 0s to facilitate conversion to QDate <br /></td></tr>
+<tr class="separator:ac73a41e8dac47a3a2a3fcef5b3d19eee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d8d690389acd63098c107a223a8b7ce"><td class="memItemLeft" align="right" valign="top"><a id="a8d8d690389acd63098c107a223a8b7ce"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>addSeperators</b> (QString &amp;io_user_input, const Opl::Date::ADateFormat &amp;format)</td></tr>
+<tr class="separator:a8d8d690389acd63098c107a223a8b7ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a210af97b49e6c66f451f83a6251fe83a"><td class="memItemLeft" align="right" valign="top"><a id="a210af97b49e6c66f451f83a6251fe83a"></a>
+static bool&#160;</td><td class="memItemRight" valign="bottom"><b>containsSeperator</b> (const QString &amp;user_input)</td></tr>
+<tr class="separator:a210af97b49e6c66f451f83a6251fe83a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ae8a544f48462c8159748f98fe4684a56"><td class="memItemLeft" align="right" valign="top"><a id="ae8a544f48462c8159748f98fe4684a56"></a>
 static QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_date.html#ae8a544f48462c8159748f98fe4684a56">toString</a> (const QDate &amp;date, Opl::Date::ADateFormat format=Opl::Date::ADateFormat::ISODate)</td></tr>
 <tr class="memdesc:ae8a544f48462c8159748f98fe4684a56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reimplements QDate::toString to accept Opl::Date::ADateFormat enums. <br /></td></tr>
@@ -115,8 +132,8 @@ static const QString&#160;</td><td class="memItemRight" valign="bottom"><b>getFo
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>The <a class="el" href="class_a_date.html" title="The ADate class is responsible for input/output of Dates and handling the different Date Formats.">ADate</a> class is responsible for input/output of Dates and handling the different Date Formats. </p>
 </div><h2 class="groupheader">Member Function Documentation</h2>
-<a id="aa1c79d62d44ab503ccbc984f6f681a2d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa1c79d62d44ab503ccbc984f6f681a2d">&#9670;&nbsp;</a></span>formatInput()</h2>
+<a id="ad678a1eed52b81d7af4d4e31ffad2c1e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad678a1eed52b81d7af4d4e31ffad2c1e">&#9670;&nbsp;</a></span>parseInput()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -125,10 +142,10 @@ static const QString&#160;</td><td class="memItemRight" valign="bottom"><b>getFo
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">QDate ADate::formatInput </td>
+          <td class="memname">QDate ADate::parseInput </td>
           <td>(</td>
-          <td class="paramtype">QString&#160;</td>
-          <td class="paramname"><em>user_input</em>, </td>
+          <td class="paramtype">QString &amp;&#160;</td>
+          <td class="paramname"><em>io_user_input</em>, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
@@ -149,7 +166,7 @@ static const QString&#160;</td><td class="memItemRight" valign="bottom"><b>getFo
 </table>
 </div><div class="memdoc">
 
-<p>formatInput takes a user-provided input and tries to convert it to a QDate. </p>
+<p>takes a user-provided input and tries to convert it to a (valid) QDate. </p>
 <dl class="section return"><dt>Returns</dt><dd>QDate (invalid if input not recognized) </dd></dl>
 
 </div>
@@ -164,9 +181,7 @@ static const QString&#160;</td><td class="memItemRight" valign="bottom"><b>getFo
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_date.html">ADate</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_a_download-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -103,9 +103,7 @@ $(document).ready(function(){initNavTree('class_a_download.html',''); initResiza
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_a_download.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: ADownload Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -136,9 +136,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>download</b> ()</td><
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_download.html">ADownload</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 12 - 13
docs/html/class_a_entry-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -95,21 +95,20 @@ $(document).ready(function(){initNavTree('class_a_entry.html',''); initResizable
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AEntry</b>(DataPosition position_) (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>AEntry</b>(RowData_T table_data) (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AEntry</b>(DataPosition position_, RowData_T table_data) (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>getData</b>() (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getPosition</b>() (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const AEntry &amp;)=default (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>position</b> (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setData</b>(RowData_T table_data) (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setPosition</b>(DataPosition position_) (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>tableData</b> (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getData</b>() const (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getPosition</b>() const (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_a_entry.html#a220a7359ee6bf14ff9a483cbbea90f91">operator QString</a>() const</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const AEntry &amp;)=default (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>position</b> (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setData</b>(RowData_T table_data) (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setPosition</b>(DataPosition position_) (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>tableData</b> (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 14 - 12
docs/html/class_a_entry.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: AEntry Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -134,12 +134,16 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>setData</b> (RowData_
 <tr class="memitem:aad04dccba8fee0af4cc56883e4d67956"><td class="memItemLeft" align="right" valign="top"><a id="aad04dccba8fee0af4cc56883e4d67956"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>setPosition</b> (<a class="el" href="struct_data_position.html">DataPosition</a> position_)</td></tr>
 <tr class="separator:aad04dccba8fee0af4cc56883e4d67956"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae48f6751acfa43d9cef79ce1d8eea4be"><td class="memItemLeft" align="right" valign="top"><a id="ae48f6751acfa43d9cef79ce1d8eea4be"></a>
-const <a class="el" href="struct_data_position.html">DataPosition</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getPosition</b> ()</td></tr>
-<tr class="separator:ae48f6751acfa43d9cef79ce1d8eea4be"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a317b37d278b23a1bbe31761146afa3ae"><td class="memItemLeft" align="right" valign="top"><a id="a317b37d278b23a1bbe31761146afa3ae"></a>
-const RowData_T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getData</b> ()</td></tr>
-<tr class="separator:a317b37d278b23a1bbe31761146afa3ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1fe055c7f6073b47b01c94d41f0aa58"><td class="memItemLeft" align="right" valign="top"><a id="ac1fe055c7f6073b47b01c94d41f0aa58"></a>
+const <a class="el" href="struct_data_position.html">DataPosition</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getPosition</b> () const</td></tr>
+<tr class="separator:ac1fe055c7f6073b47b01c94d41f0aa58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab627b2b154535c8d60b2920c2a722a00"><td class="memItemLeft" align="right" valign="top"><a id="ab627b2b154535c8d60b2920c2a722a00"></a>
+const RowData_T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getData</b> () const</td></tr>
+<tr class="separator:ab627b2b154535c8d60b2920c2a722a00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a220a7359ee6bf14ff9a483cbbea90f91"><td class="memItemLeft" align="right" valign="top"><a id="a220a7359ee6bf14ff9a483cbbea90f91"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_entry.html#a220a7359ee6bf14ff9a483cbbea90f91">operator QString</a> () const</td></tr>
+<tr class="memdesc:a220a7359ee6bf14ff9a483cbbea90f91"><td class="mdescLeft">&#160;</td><td class="mdescRight">operator QString provides compatibilty with QDebug() - prints the tableData in a readable formatting to stdout <br /></td></tr>
+<tr class="separator:a220a7359ee6bf14ff9a483cbbea90f91"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
@@ -165,9 +169,7 @@ Protected Attributes</h2></td></tr>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_entry.html">AEntry</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 3 - 2
docs/html/class_a_entry.js

@@ -5,8 +5,9 @@ var class_a_entry =
     [ "AEntry", "class_a_entry.html#a557d4774ac036b8090ac1227c15e2434", null ],
     [ "AEntry", "class_a_entry.html#ae7a2533f99b4d7dfe9e0ce091df47572", null ],
     [ "AEntry", "class_a_entry.html#a2fed07f6ee63ea4a51cb3512cf44398c", null ],
-    [ "getData", "class_a_entry.html#a317b37d278b23a1bbe31761146afa3ae", null ],
-    [ "getPosition", "class_a_entry.html#ae48f6751acfa43d9cef79ce1d8eea4be", null ],
+    [ "getData", "class_a_entry.html#ab627b2b154535c8d60b2920c2a722a00", null ],
+    [ "getPosition", "class_a_entry.html#ac1fe055c7f6073b47b01c94d41f0aa58", null ],
+    [ "operator QString", "class_a_entry.html#a220a7359ee6bf14ff9a483cbbea90f91", null ],
     [ "operator=", "class_a_entry.html#a9984a85a351159926705f037e01bc3f6", null ],
     [ "setData", "class_a_entry.html#a71173e7faa3019c6f18e8bdf3eb39fe0", null ],
     [ "setPosition", "class_a_entry.html#aad04dccba8fee0af4cc56883e4d67956", null ],

+ 4 - 6
docs/html/class_a_file_standard_item-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -98,9 +98,7 @@ $(document).ready(function(){initNavTree('class_a_file_standard_item.html','');
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_a_file_standard_item.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: AFileStandardItem Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -125,9 +125,7 @@ const QFileInfo &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>info
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_file_standard_item.html">AFileStandardItem</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 15 - 16
docs/html/class_a_flight_entry-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -99,26 +99,25 @@ $(document).ready(function(){initNavTree('class_a_flight_entry.html',''); initRe
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AFlightEntry</b>(RowId_T row_id) (defined in <a class="el" href="class_a_flight_entry.html">AFlightEntry</a>)</td><td class="entry"><a class="el" href="class_a_flight_entry.html">AFlightEntry</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>AFlightEntry</b>(RowData_T table_data) (defined in <a class="el" href="class_a_flight_entry.html">AFlightEntry</a>)</td><td class="entry"><a class="el" href="class_a_flight_entry.html">AFlightEntry</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AFlightEntry</b>(const AFlightEntry &amp;pe)=default (defined in <a class="el" href="class_a_flight_entry.html">AFlightEntry</a>)</td><td class="entry"><a class="el" href="class_a_flight_entry.html">AFlightEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>getData</b>() (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getData</b>() const (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_a_flight_entry.html#a24e526b17cedbe7fdf5af3a1ebe58648">getPilotName</a>(pilotPosition)</td><td class="entry"><a class="el" href="class_a_flight_entry.html">AFlightEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>getPosition</b>() (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getPosition</b>() const (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_a_flight_entry.html#a603aa9ca029e7d3ecbe77d40e02b8b1c">getRegistration</a>()</td><td class="entry"><a class="el" href="class_a_flight_entry.html">AFlightEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const AFlightEntry &amp;pe)=default (defined in <a class="el" href="class_a_flight_entry.html">AFlightEntry</a>)</td><td class="entry"><a class="el" href="class_a_flight_entry.html">AFlightEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const AEntry &amp;)=default (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>pilotPosition</b> enum name (defined in <a class="el" href="class_a_flight_entry.html">AFlightEntry</a>)</td><td class="entry"><a class="el" href="class_a_flight_entry.html">AFlightEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>position</b> (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setData</b>(RowData_T table_data) (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setPosition</b>(DataPosition position_) (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="class_a_flight_entry.html#a83b4a71633e5f3cd44e266d44f117412">summary</a>()</td><td class="entry"><a class="el" href="class_a_flight_entry.html">AFlightEntry</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>tableData</b> (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_a_entry.html#a220a7359ee6bf14ff9a483cbbea90f91">operator QString</a>() const</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const AFlightEntry &amp;pe)=default (defined in <a class="el" href="class_a_flight_entry.html">AFlightEntry</a>)</td><td class="entry"><a class="el" href="class_a_flight_entry.html">AFlightEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const AEntry &amp;)=default (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>pilotPosition</b> enum name (defined in <a class="el" href="class_a_flight_entry.html">AFlightEntry</a>)</td><td class="entry"><a class="el" href="class_a_flight_entry.html">AFlightEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>position</b> (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setData</b>(RowData_T table_data) (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setPosition</b>(DataPosition position_) (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_flight_entry.html#a83b4a71633e5f3cd44e266d44f117412">summary</a>()</td><td class="entry"><a class="el" href="class_a_flight_entry.html">AFlightEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>tableData</b> (defined in <a class="el" href="class_a_entry.html">AEntry</a>)</td><td class="entry"><a class="el" href="class_a_entry.html">AEntry</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 17 - 15
docs/html/class_a_flight_entry.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: AFlightEntry Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -103,9 +103,9 @@ Inheritance diagram for AFlightEntry:</div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
 Public Types</h2></td></tr>
-<tr class="memitem:ad5f2dac8ecce6f6c045d957185c890e3"><td class="memItemLeft" align="right" valign="top"><a id="ad5f2dac8ecce6f6c045d957185c890e3"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>pilotPosition</b> { <b>pic</b>, 
-<b>secondPilot</b>, 
-<b>thirdPilot</b>
+<tr class="memitem:ad5f2dac8ecce6f6c045d957185c890e3"><td class="memItemLeft" align="right" valign="top"><a id="ad5f2dac8ecce6f6c045d957185c890e3"></a>enum class &#160;</td><td class="memItemRight" valign="bottom"><b>pilotPosition</b> { <b>pic</b>
+, <b>secondPilot</b>
+, <b>thirdPilot</b>
  }</td></tr>
 <tr class="separator:ad5f2dac8ecce6f6c045d957185c890e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
@@ -155,12 +155,16 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>setData</b> (RowData_
 <tr class="memitem:aad04dccba8fee0af4cc56883e4d67956 inherit pub_methods_class_a_entry"><td class="memItemLeft" align="right" valign="top"><a id="aad04dccba8fee0af4cc56883e4d67956"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><b>setPosition</b> (<a class="el" href="struct_data_position.html">DataPosition</a> position_)</td></tr>
 <tr class="separator:aad04dccba8fee0af4cc56883e4d67956 inherit pub_methods_class_a_entry"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae48f6751acfa43d9cef79ce1d8eea4be inherit pub_methods_class_a_entry"><td class="memItemLeft" align="right" valign="top"><a id="ae48f6751acfa43d9cef79ce1d8eea4be"></a>
-const <a class="el" href="struct_data_position.html">DataPosition</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getPosition</b> ()</td></tr>
-<tr class="separator:ae48f6751acfa43d9cef79ce1d8eea4be inherit pub_methods_class_a_entry"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a317b37d278b23a1bbe31761146afa3ae inherit pub_methods_class_a_entry"><td class="memItemLeft" align="right" valign="top"><a id="a317b37d278b23a1bbe31761146afa3ae"></a>
-const RowData_T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getData</b> ()</td></tr>
-<tr class="separator:a317b37d278b23a1bbe31761146afa3ae inherit pub_methods_class_a_entry"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1fe055c7f6073b47b01c94d41f0aa58 inherit pub_methods_class_a_entry"><td class="memItemLeft" align="right" valign="top"><a id="ac1fe055c7f6073b47b01c94d41f0aa58"></a>
+const <a class="el" href="struct_data_position.html">DataPosition</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getPosition</b> () const</td></tr>
+<tr class="separator:ac1fe055c7f6073b47b01c94d41f0aa58 inherit pub_methods_class_a_entry"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab627b2b154535c8d60b2920c2a722a00 inherit pub_methods_class_a_entry"><td class="memItemLeft" align="right" valign="top"><a id="ab627b2b154535c8d60b2920c2a722a00"></a>
+const RowData_T &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getData</b> () const</td></tr>
+<tr class="separator:ab627b2b154535c8d60b2920c2a722a00 inherit pub_methods_class_a_entry"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a220a7359ee6bf14ff9a483cbbea90f91 inherit pub_methods_class_a_entry"><td class="memItemLeft" align="right" valign="top"><a id="a220a7359ee6bf14ff9a483cbbea90f91"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_entry.html#a220a7359ee6bf14ff9a483cbbea90f91">operator QString</a> () const</td></tr>
+<tr class="memdesc:a220a7359ee6bf14ff9a483cbbea90f91 inherit pub_methods_class_a_entry"><td class="mdescLeft">&#160;</td><td class="mdescRight">operator QString provides compatibilty with QDebug() - prints the tableData in a readable formatting to stdout <br /></td></tr>
+<tr class="separator:a220a7359ee6bf14ff9a483cbbea90f91 inherit pub_methods_class_a_entry"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
@@ -231,9 +235,7 @@ RowData_T&#160;</td><td class="memItemRight" valign="bottom"><b>tableData</b></t
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_flight_entry.html">AFlightEntry</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_a_hash-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -99,9 +99,7 @@ $(document).ready(function(){initNavTree('class_a_hash.html',''); initResizable(
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_a_hash.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: AHash Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -157,9 +157,7 @@ QByteArray&#160;</td><td class="memItemRight" valign="bottom"><b>checksum</b></t
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_hash.html">AHash</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_a_json-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -101,9 +101,7 @@ $(document).ready(function(){initNavTree('class_a_json.html',''); initResizable(
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_a_json.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: AJson Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -195,9 +195,7 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" hre
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_json.html">AJson</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_a_run_guard-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -100,9 +100,7 @@ $(document).ready(function(){initNavTree('class_a_run_guard.html',''); initResiz
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_a_run_guard.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: ARunGuard Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -123,9 +123,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>release</b> ()</td></
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_run_guard.html">ARunGuard</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 9 - 10
docs/html/class_a_settings-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -104,18 +104,17 @@ $(document).ready(function(){initNavTree('class_a_settings.html',''); initResiza
   <tr><td class="entry"><a class="el" href="class_a_settings.html#af88194014c7599e8c9fe488c5b1ebf99">stringOfKey</a>(const Main key)</td><td class="entry"><a class="el" href="class_a_settings.html">ASettings</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>stringOfKey</b>(const FlightLogging key) (defined in <a class="el" href="class_a_settings.html">ASettings</a>)</td><td class="entry"><a class="el" href="class_a_settings.html">ASettings</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>stringOfKey</b>(const UserData key) (defined in <a class="el" href="class_a_settings.html">ASettings</a>)</td><td class="entry"><a class="el" href="class_a_settings.html">ASettings</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>UserData</b> enum name (defined in <a class="el" href="class_a_settings.html">ASettings</a>)</td><td class="entry"><a class="el" href="class_a_settings.html">ASettings</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>write</b>(const Main key, const QVariant &amp;val) (defined in <a class="el" href="class_a_settings.html">ASettings</a>)</td><td class="entry"><a class="el" href="class_a_settings.html">ASettings</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>write</b>(const UserData key, const QVariant &amp;val) (defined in <a class="el" href="class_a_settings.html">ASettings</a>)</td><td class="entry"><a class="el" href="class_a_settings.html">ASettings</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>write</b>(const FlightLogging key, const QVariant &amp;val) (defined in <a class="el" href="class_a_settings.html">ASettings</a>)</td><td class="entry"><a class="el" href="class_a_settings.html">ASettings</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>sync</b>() (defined in <a class="el" href="class_a_settings.html">ASettings</a>)</td><td class="entry"><a class="el" href="class_a_settings.html">ASettings</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>UserData</b> enum name (defined in <a class="el" href="class_a_settings.html">ASettings</a>)</td><td class="entry"><a class="el" href="class_a_settings.html">ASettings</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>write</b>(const Main key, const QVariant &amp;val) (defined in <a class="el" href="class_a_settings.html">ASettings</a>)</td><td class="entry"><a class="el" href="class_a_settings.html">ASettings</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>write</b>(const UserData key, const QVariant &amp;val) (defined in <a class="el" href="class_a_settings.html">ASettings</a>)</td><td class="entry"><a class="el" href="class_a_settings.html">ASettings</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>write</b>(const FlightLogging key, const QVariant &amp;val) (defined in <a class="el" href="class_a_settings.html">ASettings</a>)</td><td class="entry"><a class="el" href="class_a_settings.html">ASettings</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 43 - 50
docs/html/class_a_settings.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: ASettings Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -99,56 +99,48 @@ $(document).ready(function(){initNavTree('class_a_settings.html',''); initResiza
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
 Public Types</h2></td></tr>
-<tr class="memitem:aba5614e128b0474ef4830842e5054c5c"><td class="memItemLeft" align="right" valign="top"><a id="aba5614e128b0474ef4830842e5054c5c"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>Main</b> { <br />
-&#160;&#160;<b>SetupComplete</b>, 
-<b>Style</b>, 
-<b>Font</b>, 
-<b>FontSize</b>, 
-<br />
-&#160;&#160;<b>UseSystemFont</b>, 
-<b>LogbookView</b>, 
-<b>DateFormat</b>
+<tr class="memitem:aba5614e128b0474ef4830842e5054c5c"><td class="memItemLeft" align="right" valign="top"><a id="aba5614e128b0474ef4830842e5054c5c"></a>enum class &#160;</td><td class="memItemRight" valign="bottom"><b>Main</b> { <br />
+&#160;&#160;<b>SetupComplete</b>
+, <b>Style</b>
+, <b>Font</b>
+, <b>FontSize</b>
+, <br />
+&#160;&#160;<b>UseSystemFont</b>
+, <b>LogbookView</b>
+, <b>DateFormat</b>
 <br />
  }</td></tr>
 <tr class="separator:aba5614e128b0474ef4830842e5054c5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad5929c2e477b65d82afd89afa7c8af48"><td class="memItemLeft" align="right" valign="top"><a id="ad5929c2e477b65d82afd89afa7c8af48"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>UserData</b> { <br />
-&#160;&#160;<b>DisplaySelfAs</b>, 
-<b>TailSortColumn</b>, 
-<b>PilotSortColumn</b>, 
-<b>AcftAllowIncomplete</b>, 
-<br />
-&#160;&#160;<b>FtlWarningThreshold</b>, 
-<b>CurrWarningEnabled</b>, 
-<b>CurrWarningThreshold</b>, 
-<b>ShowToLgdCurrency</b>, 
-<br />
-&#160;&#160;<b>ShowLicCurrency</b>, 
-<b>ShowTrCurrency</b>, 
-<b>ShowLckCurrency</b>, 
-<b>ShowMedCurrency</b>, 
-<br />
-&#160;&#160;<b>ShowCustom1Currency</b>, 
-<b>ShowCustom2Currency</b>, 
-<b>Custom1CurrencyName</b>, 
-<b>Custom2CurrencyName</b>
+<tr class="memitem:ad5929c2e477b65d82afd89afa7c8af48"><td class="memItemLeft" align="right" valign="top"><a id="ad5929c2e477b65d82afd89afa7c8af48"></a>enum class &#160;</td><td class="memItemRight" valign="bottom"><b>UserData</b> { <br />
+&#160;&#160;<b>DisplaySelfAs</b>
+, <b>TailSortColumn</b>
+, <b>PilotSortColumn</b>
+, <b>FtlWarningThreshold</b>
+, <br />
+&#160;&#160;<b>CurrWarningThreshold</b>
+, <b>ShowToLgdCurrency</b>
+, <b>ShowLicCurrency</b>
+, <b>ShowTrCurrency</b>
+, <br />
+&#160;&#160;<b>ShowLckCurrency</b>
+, <b>ShowMedCurrency</b>
+, <b>ShowCustom1Currency</b>
+, <b>ShowCustom2Currency</b>
+, <br />
+&#160;&#160;<b>Custom1CurrencyName</b>
+, <b>Custom2CurrencyName</b>
 <br />
  }</td></tr>
 <tr class="separator:ad5929c2e477b65d82afd89afa7c8af48"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a14b8b4d54cec3c1474f7a4402223a59a"><td class="memItemLeft" align="right" valign="top"><a id="a14b8b4d54cec3c1474f7a4402223a59a"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>FlightLogging</b> { <br />
-&#160;&#160;<b>Function</b>, 
-<b>Approach</b>, 
-<b>NightLoggingEnabled</b>, 
-<b>LogIFR</b>, 
-<br />
-&#160;&#160;<b>FlightNumberPrefix</b>, 
-<b>NumberTakeoffs</b>, 
-<b>NumberLandings</b>, 
-<b>PilotFlying</b>, 
-<br />
-&#160;&#160;<b>NightAngle</b>, 
-<b>Rules</b>, 
-<b>FlightTimeFormat</b>, 
-<b>FunctionComboBox</b>
+<tr class="memitem:a14b8b4d54cec3c1474f7a4402223a59a"><td class="memItemLeft" align="right" valign="top"><a id="a14b8b4d54cec3c1474f7a4402223a59a"></a>enum class &#160;</td><td class="memItemRight" valign="bottom"><b>FlightLogging</b> { <br />
+&#160;&#160;<b>Function</b>
+, <b>Approach</b>
+, <b>NightLoggingEnabled</b>
+, <b>LogIFR</b>
+, <br />
+&#160;&#160;<b>FlightNumberPrefix</b>
+, <b>PilotFlying</b>
+, <b>NightAngle</b>
 <br />
  }</td></tr>
 <tr class="separator:a14b8b4d54cec3c1474f7a4402223a59a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -204,6 +196,9 @@ static QString&#160;</td><td class="memItemRight" valign="bottom"><b>stringOfKey
 <tr class="memitem:ab1c6651ff2fd050d7759557f9cfe0054"><td class="memItemLeft" align="right" valign="top"><a id="ab1c6651ff2fd050d7759557f9cfe0054"></a>
 static QSettings&#160;</td><td class="memItemRight" valign="bottom"><b>settings</b> ()</td></tr>
 <tr class="separator:ab1c6651ff2fd050d7759557f9cfe0054"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a560e190e45b15bcf8d1b7dde264a651e"><td class="memItemLeft" align="right" valign="top"><a id="a560e190e45b15bcf8d1b7dde264a651e"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>sync</b> ()</td></tr>
+<tr class="separator:a560e190e45b15bcf8d1b7dde264a651e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Thin wrapper for the QSettings class, simplifying reading and writing of settings. </p>
@@ -217,9 +212,7 @@ static QSettings&#160;</td><td class="memItemRight" valign="bottom"><b>settings<
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_settings.html">ASettings</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 1 - 8
docs/html/class_a_settings.js

@@ -6,13 +6,8 @@ var class_a_settings =
       [ "NightLoggingEnabled", "class_a_settings.html#a14b8b4d54cec3c1474f7a4402223a59aa7bea0d4834668bee4677e83aa843caae", null ],
       [ "LogIFR", "class_a_settings.html#a14b8b4d54cec3c1474f7a4402223a59aabd796a26bc69f9f4a9b63784a6214872", null ],
       [ "FlightNumberPrefix", "class_a_settings.html#a14b8b4d54cec3c1474f7a4402223a59aac8420fd63340c2098adc389092ffe66d", null ],
-      [ "NumberTakeoffs", "class_a_settings.html#a14b8b4d54cec3c1474f7a4402223a59aabbff13aa9db52d6bbca5cd556aea1e35", null ],
-      [ "NumberLandings", "class_a_settings.html#a14b8b4d54cec3c1474f7a4402223a59aa24927525727717c0bf5738f79bbcccf3", null ],
       [ "PilotFlying", "class_a_settings.html#a14b8b4d54cec3c1474f7a4402223a59aae1546c76296d4f9f7c8a98dd909ed399", null ],
-      [ "NightAngle", "class_a_settings.html#a14b8b4d54cec3c1474f7a4402223a59aad841dbf1846b8323fac804ddc11bbc10", null ],
-      [ "Rules", "class_a_settings.html#a14b8b4d54cec3c1474f7a4402223a59aa1f4da964f8eab62e96e8cfe406e44364", null ],
-      [ "FlightTimeFormat", "class_a_settings.html#a14b8b4d54cec3c1474f7a4402223a59aaec382f97ca538721fe75b6b25bb9e1d2", null ],
-      [ "FunctionComboBox", "class_a_settings.html#a14b8b4d54cec3c1474f7a4402223a59aa8d641f4bcc4ff423997041b5b64c50a2", null ]
+      [ "NightAngle", "class_a_settings.html#a14b8b4d54cec3c1474f7a4402223a59aad841dbf1846b8323fac804ddc11bbc10", null ]
     ] ],
     [ "Main", "class_a_settings.html#aba5614e128b0474ef4830842e5054c5c", [
       [ "SetupComplete", "class_a_settings.html#aba5614e128b0474ef4830842e5054c5ca465f4940754b9cb1b62232d75053aa80", null ],
@@ -27,9 +22,7 @@ var class_a_settings =
       [ "DisplaySelfAs", "class_a_settings.html#ad5929c2e477b65d82afd89afa7c8af48acdfab00be76e8e38f6a73b5c2e894c6d", null ],
       [ "TailSortColumn", "class_a_settings.html#ad5929c2e477b65d82afd89afa7c8af48aaf504a921bd6cad3add5e2da5655aaf4", null ],
       [ "PilotSortColumn", "class_a_settings.html#ad5929c2e477b65d82afd89afa7c8af48ac188e1b64598779ccd496fc6a5b620b5", null ],
-      [ "AcftAllowIncomplete", "class_a_settings.html#ad5929c2e477b65d82afd89afa7c8af48ab5d20cbcdb866885f8bd78e2da9c4b57", null ],
       [ "FtlWarningThreshold", "class_a_settings.html#ad5929c2e477b65d82afd89afa7c8af48a883d0827b94a2cb6812a8cb2f6bc6cda", null ],
-      [ "CurrWarningEnabled", "class_a_settings.html#ad5929c2e477b65d82afd89afa7c8af48a90c757063e8673c23672ee56dda49722", null ],
       [ "CurrWarningThreshold", "class_a_settings.html#ad5929c2e477b65d82afd89afa7c8af48a1b60d9b99c6105e90ce58c416c9677ae", null ],
       [ "ShowToLgdCurrency", "class_a_settings.html#ad5929c2e477b65d82afd89afa7c8af48ab51d51de79eb573914075813b9562d2a", null ],
       [ "ShowLicCurrency", "class_a_settings.html#ad5929c2e477b65d82afd89afa7c8af48abb117d8d2652912e2bd198d9ea538a9c", null ],

+ 4 - 6
docs/html/class_a_standard_paths-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -105,9 +105,7 @@ $(document).ready(function(){initNavTree('class_a_standard_paths.html',''); init
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 9 - 11
docs/html/class_a_standard_paths.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: AStandardPaths Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -100,11 +100,11 @@ $(document).ready(function(){initNavTree('class_a_standard_paths.html',''); init
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
 Public Types</h2></td></tr>
 <tr class="memitem:ae24b6142fdf46d370f94c03582e37e0e"><td class="memItemLeft" align="right" valign="top"><a id="ae24b6142fdf46d370f94c03582e37e0e"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>Directories</b> { <br />
-&#160;&#160;<b>Database</b>, 
-<b>Templates</b>, 
-<b>Backup</b>, 
-<b>Log</b>, 
-<br />
+&#160;&#160;<b>Database</b>
+, <b>Templates</b>
+, <b>Backup</b>
+, <b>Log</b>
+, <br />
 &#160;&#160;<b>JSON</b>
 <br />
  }</td></tr>
@@ -169,9 +169,7 @@ static const QString&#160;</td><td class="memItemRight" valign="bottom"><a class
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_standard_paths.html">AStandardPaths</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 12 - 13
docs/html/class_a_style-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -92,21 +92,20 @@ $(document).ready(function(){initNavTree('class_a_style.html',''); initResizable
 <table class="directory">
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>darkPalette</b>() (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>defaultStyle</b> (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setStyle</b>(const QString &amp;style_key) (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>setStyle</b>(const StyleSheet &amp;style_sheet) (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setStyle</b>(const QPalette &amp;palette) (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="class_a_style.html#ad061bf79f3e22640e78f8bb65ef0867c">setup</a>()</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>style</b>() (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>styles</b> (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>styleSheets</b> (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>loadStylesComboBox</b>(QComboBox *combo_box) (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setStyle</b>(const QString &amp;style_key) (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setStyle</b>(const StyleSheet &amp;style_sheet) (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setStyle</b>(const QPalette &amp;palette) (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_style.html#ad061bf79f3e22640e78f8bb65ef0867c">setup</a>()</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>style</b>() (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>styles</b> (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>styleSheets</b> (defined in <a class="el" href="class_a_style.html">AStyle</a>)</td><td class="entry"><a class="el" href="class_a_style.html">AStyle</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 7 - 6
docs/html/class_a_style.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: AStyle Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -118,6 +118,9 @@ static QPalette&#160;</td><td class="memItemRight" valign="bottom"><b>darkPalett
 <tr class="memitem:ade8977d8e80fc995ab593a11d17d640a"><td class="memItemLeft" align="right" valign="top"><a id="ade8977d8e80fc995ab593a11d17d640a"></a>
 static const QString &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>style</b> ()</td></tr>
 <tr class="separator:ade8977d8e80fc995ab593a11d17d640a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2f47ea404f6b3a5621dee9d07a85c9c"><td class="memItemLeft" align="right" valign="top"><a id="af2f47ea404f6b3a5621dee9d07a85c9c"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>loadStylesComboBox</b> (QComboBox *combo_box)</td></tr>
+<tr class="separator:af2f47ea404f6b3a5621dee9d07a85c9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
 Static Public Attributes</h2></td></tr>
@@ -170,9 +173,7 @@ static const QString&#160;</td><td class="memItemRight" valign="bottom"><b>defau
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_style.html">AStyle</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_a_timer-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -98,9 +98,7 @@ $(document).ready(function(){initNavTree('class_a_timer.html',''); initResizable
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_a_timer.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: ATimer Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -126,9 +126,7 @@ long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_timer.html">ATimer</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_a_translator-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -96,9 +96,7 @@ $(document).ready(function(){initNavTree('class_a_translator.html',''); initResi
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_a_translator.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: ATranslator Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -123,9 +123,7 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" hre
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_a_translator.html">ATranslator</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_aircraft_widget-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -101,9 +101,7 @@ $(document).ready(function(){initNavTree('class_aircraft_widget.html',''); initR
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 5 - 7
docs/html/class_aircraft_widget.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: AircraftWidget Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -137,7 +137,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <p>The widget consists of two main parts, a <em>QTableView</em> on the left side and a <em>QStackedWidget</em> on the right side.</p>
 <p>In the QTableView, a QSqlTableModel is used to access a view from the database, which holds a tails' Registration, Type and Company.</p>
 <p>The welcome page shown on the QStackedWidget on the right side has a QLineEdit that functions as a search box and a QCombobox holding the possible columns that can be used to filter what is displayed. The text of the QLineEdit is used as a filter for the QSqlTableModel, so the view is updated in real time.</p>
-<p>The <em><a class="el" href="class_new_tail_dialog.html" title="The NewTail class is a dialog for adding a new tail to the database or editing an existing one.">NewTailDialog</a></em> is used for creating a new entry as well as for editing an existing entry. If the user selects a row in the QTableView, the NewTailDilog is displayed on the right side of the Widget, inside the QStackedWidget. In order to avoid leaks from any previously made selections, existing Dialogs are deleted before a new one is created. The <a class="el" href="class_new_tail_dialog.html" title="The NewTail class is a dialog for adding a new tail to the database or editing an existing one.">NewTailDialog</a>'s <code>accepted</code> and <code>rejected</code> signals are connected to refresh the view as required.</p>
+<p>The <em><a class="el" href="class_new_tail_dialog.html" title="The NewTailDialog enables adding new Tail entries to the database or editing existing ones.">NewTailDialog</a></em> is used for creating a new entry as well as for editing an existing entry. If the user selects a row in the QTableView, the NewTailDilog is displayed on the right side of the Widget, inside the QStackedWidget. In order to avoid leaks from any previously made selections, existing Dialogs are deleted before a new one is created. The <a class="el" href="class_new_tail_dialog.html" title="The NewTailDialog enables adding new Tail entries to the database or editing existing ones.">NewTailDialog</a>'s <code>accepted</code> and <code>rejected</code> signals are connected to refresh the view as required.</p>
 <p>Note: The <a class="el" href="struct_a_tail_entry.html">ATailEntry</a> class is used to operate on individual aircraft, whereas the <a class="el" href="struct_a_aircraft_entry.html">AAircraftEntry</a> class is used to retreive templates of aircraft types. For example, 'D-ABCD' and 'N-XYZ' are different tails (Registrations), but they might be the same type of aircraft, for example 'Boeing 737-800'. </p>
 </div><hr/>The documentation for this class was generated from the following files:<ul>
 <li>src/gui/widgets/<a class="el" href="aircraftwidget_8h_source.html">aircraftwidget.h</a></li>
@@ -149,9 +149,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_aircraft_widget.html">AircraftWidget</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_backup_widget-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -100,9 +100,7 @@ $(document).ready(function(){initNavTree('class_backup_widget.html',''); initRes
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_backup_widget.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: BackupWidget Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -144,9 +144,7 @@ Local backups are automatically stored in a folder determined by AStandardpaths
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_backup_widget.html">BackupWidget</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_debug_widget-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -98,9 +98,7 @@ $(document).ready(function(){initNavTree('class_debug_widget.html',''); initResi
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_debug_widget.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: DebugWidget Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -120,9 +120,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>changeEvent</b> (QEve
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_debug_widget.html">DebugWidget</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_first_run_dialog-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -99,9 +99,7 @@ $(document).ready(function(){initNavTree('class_first_run_dialog.html',''); init
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 34 - 7
docs/html/class_first_run_dialog.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: FirstRunDialog Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -91,6 +91,11 @@ $(document).ready(function(){initNavTree('class_first_run_dialog.html',''); init
 <div class="title">FirstRunDialog Class Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
+
+<p>The <a class="el" href="class_first_run_dialog.html" title="The FirstRunDialog is used as a set-up wizard for the application.">FirstRunDialog</a> is used as a set-up wizard for the application.  
+ <a href="class_first_run_dialog.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="firstrundialog_8h_source.html">firstrundialog.h</a>&gt;</code></p>
 <div class="dynheader">
 Inheritance diagram for FirstRunDialog:</div>
 <div class="dyncontent">
@@ -113,7 +118,31 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>reject</b> () overrid
 <tr class="memdesc:a314dfc62070d7d88b9a98a5c18c31e74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shows the debug widget by pressing &lt;ctrl + t&gt;  <a href="class_first_run_dialog.html#a314dfc62070d7d88b9a98a5c18c31e74">More...</a><br /></td></tr>
 <tr class="separator:a314dfc62070d7d88b9a98a5c18c31e74"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
-<h2 class="groupheader">Member Function Documentation</h2>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The <a class="el" href="class_first_run_dialog.html" title="The FirstRunDialog is used as a set-up wizard for the application.">FirstRunDialog</a> is used as a set-up wizard for the application. </p>
+<p>The Application does not ship with a database, it is created on the fly. This is the main purpose of the <a class="el" href="class_first_run_dialog.html" title="The FirstRunDialog is used as a set-up wizard for the application.">FirstRunDialog</a>. Apart from this main task, user details and preferences are gathered and saved using <a class="el" href="class_a_settings.html" title="Thin wrapper for the QSettings class, simplifying reading and writing of settings.">ASettings</a>.</p>
+<p>The Dialog contains a tabbed widget which guides the user through the set up process.</p>
+<h3><a class="anchor" id="autotoc_md7"></a>
+1 - Welcome</h3>
+<p>In this tab, the user is greeted and has the option to import an existing database instead of creating a new one.</p>
+<h3><a class="anchor" id="autotoc_md8"></a>
+2 - Personal Data</h3>
+<p>In this tab, the users personal data is collected, which is used to create the first Pilot Entry in the database. ROW ID (1) identifies the logbook owner, which is also referred to as "self" in the application.</p>
+<h3><a class="anchor" id="autotoc_md9"></a>
+3 - Currencies</h3>
+<p>In this tab, the user can enter the expiration dates of his licenses, medical or other currencies that he wishes to keep track of. These are stored in the database within the currencies table.</p>
+<h3><a class="anchor" id="autotoc_md10"></a>
+4 - Flight Logging</h3>
+<p>In this tab, the user can determine what the defualt selections for logging a new flight will be. These selections (Pilot Function, Flight Rules,...) are stored in an INI file using the <a class="el" href="class_a_settings.html" title="Thin wrapper for the QSettings class, simplifying reading and writing of settings.">ASettings</a> class.</p>
+<h3><a class="anchor" id="autotoc_md11"></a>
+5 - Customization</h3>
+<p>In this tab, the user can make selections regarding the application layout and theming, as well as with regards to how data is being displayed. These settings are stored in an INI file using the <a class="el" href="class_a_settings.html" title="Thin wrapper for the QSettings class, simplifying reading and writing of settings.">ASettings</a> class.</p>
+<h3><a class="anchor" id="autotoc_md12"></a>
+6 - Finish / Database creation</h3>
+<p>In this tab the user can select how the database is created. There are two options, either downloading database templates from the github repository, or to fall back to a set of JSON files inclnuded in the application ressources (see templates.qrc). These built in files are probably not as up-to-date, but enable the application to function if no internet connection is available or the links to the online ressources are broken.</p>
+<p>For Debug purcposes, pressing &lt;ctrl+t&gt; will enable a line edit in which a different branch than main can be selected from which the database templates are to be pulled.</p>
+<p>Upon successful completion of the <a class="el" href="class_first_run_dialog.html" title="The FirstRunDialog is used as a set-up wizard for the application.">FirstRunDialog</a>, a Setting is written so that the dialog is not shown on subsequent runs. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
 <a id="a314dfc62070d7d88b9a98a5c18c31e74"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a314dfc62070d7d88b9a98a5c18c31e74">&#9670;&nbsp;</a></span>keyPressEvent()</h2>
 
@@ -158,9 +187,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>reject</b> () overrid
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_first_run_dialog.html">FirstRunDialog</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_home_widget-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -99,9 +99,7 @@ $(document).ready(function(){initNavTree('class_home_widget.html',''); initResiz
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 6
docs/html/class_home_widget.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: HomeWidget Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -136,9 +136,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_home_widget.html">HomeWidget</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 5 - 7
docs/html/class_logbook_widget-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('class_logbook_widget.html',''); initRe
 <p>This is the complete list of members for <a class="el" href="class_logbook_widget.html">LogbookWidget</a>, including all inherited members.</p>
 <table class="directory">
   <tr class="even"><td class="entry"><a class="el" href="class_logbook_widget.html#a16abfcb25c7ae304728acb6c3554fdb0">changeEvent</a>(QEvent *event) override</td><td class="entry"><a class="el" href="class_logbook_widget.html">LogbookWidget</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>LogbookWidget</b>(QWidget *parent=nullptr) (defined in <a class="el" href="class_logbook_widget.html">LogbookWidget</a>)</td><td class="entry"><a class="el" href="class_logbook_widget.html">LogbookWidget</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>LogbookWidget</b>(ACompletionData &amp;completion_data, QWidget *parent=nullptr) (defined in <a class="el" href="class_logbook_widget.html">LogbookWidget</a>)</td><td class="entry"><a class="el" href="class_logbook_widget.html">LogbookWidget</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>onLogbookWidget_viewSelectionChanged</b>(SettingsWidget::SettingSignal signal) (defined in <a class="el" href="class_logbook_widget.html">LogbookWidget</a>)</td><td class="entry"><a class="el" href="class_logbook_widget.html">LogbookWidget</a></td><td class="entry"><span class="mlabel">slot</span></td></tr>
   <tr><td class="entry"><a class="el" href="class_logbook_widget.html#a45048f4dd6ffb82da6a725503df97cf1">refresh</a>()</td><td class="entry"><a class="el" href="class_logbook_widget.html">LogbookWidget</a></td><td class="entry"><span class="mlabel">slot</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="class_logbook_widget.html#ac64b38cc2f5dd012ec1d12647457a8f1">repopulateModel</a>()</td><td class="entry"><a class="el" href="class_logbook_widget.html">LogbookWidget</a></td><td class="entry"><span class="mlabel">slot</span></td></tr>
@@ -101,9 +101,7 @@ $(document).ready(function(){initNavTree('class_logbook_widget.html',''); initRe
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 7 - 9
docs/html/class_logbook_widget.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: LogbookWidget Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -120,9 +120,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:aaf8316b43f9bddae7c9ad5cb6b993887"><td class="memItemLeft" align="right" valign="top"><a id="aaf8316b43f9bddae7c9ad5cb6b993887"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>LogbookWidget</b> (QWidget *parent=nullptr)</td></tr>
-<tr class="separator:aaf8316b43f9bddae7c9ad5cb6b993887"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0909eeda0cb51c94eb493a05d44876e4"><td class="memItemLeft" align="right" valign="top"><a id="a0909eeda0cb51c94eb493a05d44876e4"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>LogbookWidget</b> (<a class="el" href="class_a_completion_data.html">ACompletionData</a> &amp;completion_data, QWidget *parent=nullptr)</td></tr>
+<tr class="separator:a0909eeda0cb51c94eb493a05d44876e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
 Protected Member Functions</h2></td></tr>
@@ -145,9 +145,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_logbook_widget.html">LogbookWidget</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 1 - 1
docs/html/class_logbook_widget.js

@@ -1,6 +1,6 @@
 var class_logbook_widget =
 [
-    [ "LogbookWidget", "class_logbook_widget.html#aaf8316b43f9bddae7c9ad5cb6b993887", null ],
+    [ "LogbookWidget", "class_logbook_widget.html#a0909eeda0cb51c94eb493a05d44876e4", null ],
     [ "~LogbookWidget", "class_logbook_widget.html#a7d7716c7a9506e70b9ce53a5a27753ea", null ],
     [ "changeEvent", "class_logbook_widget.html#a16abfcb25c7ae304728acb6c3554fdb0", null ],
     [ "onLogbookWidget_viewSelectionChanged", "class_logbook_widget.html#a72b4eb07e8517a138ad731c32e8a3aff", null ],

+ 8 - 9
docs/html/class_new_flight_dialog-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -90,17 +90,16 @@ $(document).ready(function(){initNavTree('class_new_flight_dialog.html',''); ini
 
 <p>This is the complete list of members for <a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="class_new_flight_dialog.html#a28d14d3bf3c2a283c43456a25d97899d">NewFlightDialog</a>(QWidget *parent=nullptr)</td><td class="entry"><a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
-  <tr><td class="entry"><a class="el" href="class_new_flight_dialog.html#ad60b284ebebae287c00f0c9f30105f28">NewFlightDialog</a>(int row_id, QWidget *parent=nullptr)</td><td class="entry"><a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~NewFlightDialog</b>() (defined in <a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a>)</td><td class="entry"><a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_new_flight_dialog.html#a22f8f768399ceb22f064fb8cb24c3c28">eventFilter</a>(QObject *object, QEvent *event) override</td><td class="entry"><a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_new_flight_dialog.html#a69fe866923d7456caf890a8aa2fa0aaa">NewFlightDialog</a>(ACompletionData &amp;completion_data, QWidget *parent=nullptr)</td><td class="entry"><a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_new_flight_dialog.html#a40c7259679534de33230b5e3c45539e1">NewFlightDialog</a>(ACompletionData &amp;completion_data, RowId_T row_id, QWidget *parent=nullptr)</td><td class="entry"><a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~NewFlightDialog</b>() (defined in <a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a>)</td><td class="entry"><a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 141 - 33
docs/html/class_new_flight_dialog.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: NewFlightDialog Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -84,13 +84,18 @@ $(document).ready(function(){initNavTree('class_new_flight_dialog.html',''); ini
 
 <div class="header">
   <div class="summary">
-<a href="#nested-classes">Classes</a> &#124;
 <a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
 <a href="class_new_flight_dialog-members.html">List of all members</a>  </div>
   <div class="headertitle">
 <div class="title">NewFlightDialog Class Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
+
+<p>The <a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a> is used to add or edit entries from the flights table in the database.  
+ <a href="class_new_flight_dialog.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="newflightdialog_8h_source.html">newflightdialog.h</a>&gt;</code></p>
 <div class="dynheader">
 Inheritance diagram for NewFlightDialog:</div>
 <div class="dyncontent">
@@ -100,17 +105,29 @@ Inheritance diagram for NewFlightDialog:</div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a28d14d3bf3c2a283c43456a25d97899d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_new_flight_dialog.html#a28d14d3bf3c2a283c43456a25d97899d">NewFlightDialog</a> (QWidget *parent=nullptr)</td></tr>
-<tr class="memdesc:a28d14d3bf3c2a283c43456a25d97899d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a> create a new flight and add it to the logbook.  <a href="class_new_flight_dialog.html#a28d14d3bf3c2a283c43456a25d97899d">More...</a><br /></td></tr>
-<tr class="separator:a28d14d3bf3c2a283c43456a25d97899d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad60b284ebebae287c00f0c9f30105f28"><td class="memItemLeft" align="right" valign="top"><a id="ad60b284ebebae287c00f0c9f30105f28"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_new_flight_dialog.html#ad60b284ebebae287c00f0c9f30105f28">NewFlightDialog</a> (int row_id, QWidget *parent=nullptr)</td></tr>
-<tr class="memdesc:ad60b284ebebae287c00f0c9f30105f28"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a> Edit an existing logbook entry. <br /></td></tr>
-<tr class="separator:ad60b284ebebae287c00f0c9f30105f28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69fe866923d7456caf890a8aa2fa0aaa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_new_flight_dialog.html#a69fe866923d7456caf890a8aa2fa0aaa">NewFlightDialog</a> (<a class="el" href="class_a_completion_data.html">ACompletionData</a> &amp;completion_data, QWidget *parent=nullptr)</td></tr>
+<tr class="memdesc:a69fe866923d7456caf890a8aa2fa0aaa"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a> - Creates a <a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a> that can be used to add a new flight entry to the logbook.  <a href="class_new_flight_dialog.html#a69fe866923d7456caf890a8aa2fa0aaa">More...</a><br /></td></tr>
+<tr class="separator:a69fe866923d7456caf890a8aa2fa0aaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40c7259679534de33230b5e3c45539e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_new_flight_dialog.html#a40c7259679534de33230b5e3c45539e1">NewFlightDialog</a> (<a class="el" href="class_a_completion_data.html">ACompletionData</a> &amp;completion_data, RowId_T row_id, QWidget *parent=nullptr)</td></tr>
+<tr class="memdesc:a40c7259679534de33230b5e3c45539e1"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a> - Creates a <a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a> that can be used to edit an existing entry in the logbook.  <a href="class_new_flight_dialog.html#a40c7259679534de33230b5e3c45539e1">More...</a><br /></td></tr>
+<tr class="separator:a40c7259679534de33230b5e3c45539e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a22f8f768399ceb22f064fb8cb24c3c28"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_new_flight_dialog.html#a22f8f768399ceb22f064fb8cb24c3c28">eventFilter</a> (QObject *object, QEvent *event) override</td></tr>
+<tr class="memdesc:a22f8f768399ceb22f064fb8cb24c3c28"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_new_flight_dialog.html#a22f8f768399ceb22f064fb8cb24c3c28" title="NewFlightDialog::eventFilter invalidates mandatory line edits on focus in.">NewFlightDialog::eventFilter</a> invalidates mandatory line edits on focus in.  <a href="class_new_flight_dialog.html#a22f8f768399ceb22f064fb8cb24c3c28">More...</a><br /></td></tr>
+<tr class="separator:a22f8f768399ceb22f064fb8cb24c3c28"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
-<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a28d14d3bf3c2a283c43456a25d97899d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a28d14d3bf3c2a283c43456a25d97899d">&#9670;&nbsp;</a></span>NewFlightDialog()</h2>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The <a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a> is used to add or edit entries from the flights table in the database. </p>
+<p><a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a> offers two constructors, one is used to create a new flight entry from scratch, where the other one is used to edit an existing entry. This entry is identified by its ROW ID, which is used to retreive the entry data and pre-populate the user interface with the data from the database.</p>
+<p>The flights table is the core of the application's database and care needs to be taken when interfacing with it.</p>
+<p>To ensure only good data is written to the database, the <a class="el" href="class_validation_state.html" title="The ValidationState class encapsulates a QBitArray that has a bit set (or unset) depending on wether ...">ValidationState</a> class is used. It contains a QBitArray with each bit representing a mandatory data point. The array is initialized to all false and progressively changed to true as entry data is validated. An entry can only be submitted if all the verification bits are set.</p>
+<p>Inputs from the user are verified with a two-step process. The first level of verification is accomplished by QRegularExpressionValidator, which limits the user to only inputting generally acceptable data (like numbers for date or time, or characters for airport identifiers). If the input passes this sanity check, the line edits emit the editingFinished() signal, which triggers a more granular and sophisticated set of input verification, broadly based on cross-checking the entered data against known good values. The <a class="el" href="class_a_completion_data.html" title="The ACompletionData class provides data to QCompleters and QMaps used for mapping user input to datab...">ACompletionData</a> class is used to provide QMaps of known good values from the database and their respective ROW_IDs. If user-entered data has been matched to a known good database value, the data is considered acceptable. This means that in order to, for example, log a flight with a certain Pilot, that this pilot already has to exist in the pilots table. If this is not the case, the user is prompted to add a new pilot (or aircraft) to the database before proceeding. In order to make this matching process seamless for the user, the completionData also contains a set of QStringLists for each of the database tables which are used to create QCompleters that provide pop-up completion on the respective QLineEdits.</p>
+<p>Once the user is satisfied with his entries, a final set of input verification is triggered and the entry is submitted to the database, see on_buttonBox_accepted() and <a class="el" href="class_a_database.html#a7d57d7696814bd013fa35e068ad909c8" title="commits an entry to the database, calls either insert or update, based on position data">ADatabase::commit()</a> </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a69fe866923d7456caf890a8aa2fa0aaa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a69fe866923d7456caf890a8aa2fa0aaa">&#9670;&nbsp;</a></span>NewFlightDialog() <span class="overload">[1/2]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -121,9 +138,19 @@ Public Member Functions</h2></td></tr>
         <tr>
           <td class="memname">NewFlightDialog::NewFlightDialog </td>
           <td>(</td>
+          <td class="paramtype"><a class="el" href="class_a_completion_data.html">ACompletionData</a> &amp;&#160;</td>
+          <td class="paramname"><em>completion_data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
           <td class="paramtype">QWidget *&#160;</td>
-          <td class="paramname"><em>parent</em> = <code>nullptr</code></td><td>)</td>
+          <td class="paramname"><em>parent</em> = <code>nullptr</code>&#160;</td>
+        </tr>
+        <tr>
           <td></td>
+          <td>)</td>
+          <td></td><td></td>
         </tr>
       </table>
   </td>
@@ -133,21 +160,104 @@ Public Member Functions</h2></td></tr>
 </table>
 </div><div class="memdoc">
 
-<p><a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a> create a new flight and add it to the logbook. </p>
-<p>Construction ///.</p>
-<p>[F] The general idea for this dialog is this:</p><ul>
-<li>Most line edits have validators and completers.</li>
-<li>Validators are based on regular expressions, serving as raw input validation</li>
-<li>The Completers are based off the database and provide auto-completion</li>
-<li>mandatory line edits only emit editing finished if their content has passed raw input validation or focus is lost.</li>
-<li>Editing finished triggers validating inputs by mapping them to Database values where required and results in either pass or fail.</li>
-<li>A QBitArray is mainained containing the state of validity of the mandatory line edits</li>
-<li>The deducted entries are automatically filled if all mandatory entries are valid.</li>
-<li>Comitting an entry to the database is only allowed if all mandatory inputs are valid.</li>
-</ul>
-<p>if the user presses "OK", check if all mandatory inputs are valid, check if optional user inputs are valid and commit.</p>
-<p>For the completion and mapping, I have settled on a more low-level approach using Completers based on QStringLists and mapping with QMaps.</p>
-<p>I implemented the Completers and mapping based on a QSqlTableModel which would have been quite nice, since it would keep all data in one place, providing both completion and mapping in one model. But as we have seen before with the more high-level qt classes, they are quite slow on execution when used for tasks they were probably not designed to do. Mapping a registration to an ID for example took around 300ms, which is very noticeable in the UI and not an acceptable user experience. Using QStringLists and QMaps this goes down to around 5ms. </p>
+<p><a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a> - Creates a <a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a> that can be used to add a new flight entry to the logbook. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">completion_data</td><td>- contains QStringLists for the QCompleter to autocomplete Airport Codes, Pilot Names and aircraft registrationsn </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a40c7259679534de33230b5e3c45539e1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a40c7259679534de33230b5e3c45539e1">&#9670;&nbsp;</a></span>NewFlightDialog() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">NewFlightDialog::NewFlightDialog </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="class_a_completion_data.html">ACompletionData</a> &amp;&#160;</td>
+          <td class="paramname"><em>completion_data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">RowId_T&#160;</td>
+          <td class="paramname"><em>row_id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">QWidget *&#160;</td>
+          <td class="paramname"><em>parent</em> = <code>nullptr</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p><a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a> - Creates a <a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a> that can be used to edit an existing entry in the logbook. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">completion_data</td><td>- contains QStringLists for the QCompleter to autocomplete Airport Codes, Pilot Names and aircraft registrationsn </td></tr>
+    <tr><td class="paramname">row_id</td><td>- The database ROW ID of the entry to be edited </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a22f8f768399ceb22f064fb8cb24c3c28"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a22f8f768399ceb22f064fb8cb24c3c28">&#9670;&nbsp;</a></span>eventFilter()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool NewFlightDialog::eventFilter </td>
+          <td>(</td>
+          <td class="paramtype">QObject *&#160;</td>
+          <td class="paramname"><em>object</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">QEvent *&#160;</td>
+          <td class="paramname"><em>event</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p><a class="el" href="class_new_flight_dialog.html#a22f8f768399ceb22f064fb8cb24c3c28" title="NewFlightDialog::eventFilter invalidates mandatory line edits on focus in.">NewFlightDialog::eventFilter</a> invalidates mandatory line edits on focus in. </p>
+<p>Some of the QLineEdits have validators set that provide raw input validation. These validators have the side effect that if an input does not meet the raw input validation criteria, onEditingFinished() is not emitted when the line edit loses focus. This could lead to a line edit that previously had good input to be changed to bad input without the validation bit in validationState being unset, because the second step of input validation is only triggered when editingFinished() is emitted. </p>
 
 </div>
 </div>
@@ -161,9 +271,7 @@ Public Member Functions</h2></td></tr>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 4 - 3
docs/html/class_new_flight_dialog.js

@@ -1,6 +1,7 @@
 var class_new_flight_dialog =
 [
-    [ "NewFlightDialog", "class_new_flight_dialog.html#a28d14d3bf3c2a283c43456a25d97899d", null ],
-    [ "NewFlightDialog", "class_new_flight_dialog.html#ad60b284ebebae287c00f0c9f30105f28", null ],
-    [ "~NewFlightDialog", "class_new_flight_dialog.html#a1f849b4b3c4c05237715a0fab479cef2", null ]
+    [ "NewFlightDialog", "class_new_flight_dialog.html#a69fe866923d7456caf890a8aa2fa0aaa", null ],
+    [ "NewFlightDialog", "class_new_flight_dialog.html#a40c7259679534de33230b5e3c45539e1", null ],
+    [ "~NewFlightDialog", "class_new_flight_dialog.html#a1f849b4b3c4c05237715a0fab479cef2", null ],
+    [ "eventFilter", "class_new_flight_dialog.html#a22f8f768399ceb22f064fb8cb24c3c28", null ]
 ];

+ 6 - 8
docs/html/class_new_pilot_dialog-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -90,17 +90,15 @@ $(document).ready(function(){initNavTree('class_new_pilot_dialog.html',''); init
 
 <p>This is the complete list of members for <a class="el" href="class_new_pilot_dialog.html">NewPilotDialog</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewPilotDialog</b>(QWidget *parent=nullptr) (defined in <a class="el" href="class_new_pilot_dialog.html">NewPilotDialog</a>)</td><td class="entry"><a class="el" href="class_new_pilot_dialog.html">NewPilotDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>NewPilotDialog</b>(int rowId, QWidget *parent=nullptr) (defined in <a class="el" href="class_new_pilot_dialog.html">NewPilotDialog</a>)</td><td class="entry"><a class="el" href="class_new_pilot_dialog.html">NewPilotDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_new_pilot_dialog.html#ad410c1f4e504c92fe43084a7d10e1ea0">NewPilotDialog</a>(QWidget *parent=nullptr)</td><td class="entry"><a class="el" href="class_new_pilot_dialog.html">NewPilotDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_new_pilot_dialog.html#a1ab8e67282e910895a544e8dea51cb91">NewPilotDialog</a>(int rowId, QWidget *parent=nullptr)</td><td class="entry"><a class="el" href="class_new_pilot_dialog.html">NewPilotDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~NewPilotDialog</b>() (defined in <a class="el" href="class_new_pilot_dialog.html">NewPilotDialog</a>)</td><td class="entry"><a class="el" href="class_new_pilot_dialog.html">NewPilotDialog</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 63 - 9
docs/html/class_new_pilot_dialog.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: NewPilotDialog Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -90,6 +90,11 @@ $(document).ready(function(){initNavTree('class_new_pilot_dialog.html',''); init
 <div class="title">NewPilotDialog Class Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
+
+<p>The <a class="el" href="class_new_pilot_dialog.html" title="The NewPilotDialog enables adding new entries to the pilot table in the database.">NewPilotDialog</a> enables adding new entries to the pilot table in the database.  
+ <a href="class_new_pilot_dialog.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="newpilotdialog_8h_source.html">newpilotdialog.h</a>&gt;</code></p>
 <div class="dynheader">
 Inheritance diagram for NewPilotDialog:</div>
 <div class="dyncontent">
@@ -100,12 +105,63 @@ Inheritance diagram for NewPilotDialog:</div>
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
 <tr class="memitem:ad410c1f4e504c92fe43084a7d10e1ea0"><td class="memItemLeft" align="right" valign="top"><a id="ad410c1f4e504c92fe43084a7d10e1ea0"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>NewPilotDialog</b> (QWidget *parent=nullptr)</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_new_pilot_dialog.html#ad410c1f4e504c92fe43084a7d10e1ea0">NewPilotDialog</a> (QWidget *parent=nullptr)</td></tr>
+<tr class="memdesc:ad410c1f4e504c92fe43084a7d10e1ea0"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_new_pilot_dialog.html#ad410c1f4e504c92fe43084a7d10e1ea0" title="NewPilotDialog::NewPilotDialog - creates a new pilot dialog which can be used to add a new entry to t...">NewPilotDialog::NewPilotDialog</a> - creates a new pilot dialog which can be used to add a new entry to the database. <br /></td></tr>
 <tr class="separator:ad410c1f4e504c92fe43084a7d10e1ea0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1ab8e67282e910895a544e8dea51cb91"><td class="memItemLeft" align="right" valign="top"><a id="a1ab8e67282e910895a544e8dea51cb91"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>NewPilotDialog</b> (int rowId, QWidget *parent=nullptr)</td></tr>
+<tr class="memitem:a1ab8e67282e910895a544e8dea51cb91"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_new_pilot_dialog.html#a1ab8e67282e910895a544e8dea51cb91">NewPilotDialog</a> (int rowId, QWidget *parent=nullptr)</td></tr>
+<tr class="memdesc:a1ab8e67282e910895a544e8dea51cb91"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_new_pilot_dialog.html#ad410c1f4e504c92fe43084a7d10e1ea0" title="NewPilotDialog::NewPilotDialog - creates a new pilot dialog which can be used to add a new entry to t...">NewPilotDialog::NewPilotDialog</a> - creates a new pilot dialog which can be used to edit an existing entry in the database.  <a href="class_new_pilot_dialog.html#a1ab8e67282e910895a544e8dea51cb91">More...</a><br /></td></tr>
 <tr class="separator:a1ab8e67282e910895a544e8dea51cb91"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The <a class="el" href="class_new_pilot_dialog.html" title="The NewPilotDialog enables adding new entries to the pilot table in the database.">NewPilotDialog</a> enables adding new entries to the pilot table in the database. </p>
+<p>The <a class="el" href="class_new_pilot_dialog.html" title="The NewPilotDialog enables adding new entries to the pilot table in the database.">NewPilotDialog</a> offers two constructors, one is used to create a new Pilot Entry from scratch, while the other one is used to edit an existing entry. The existing entry is identified by its ROW ID in the database and is then retreived, its data being used to pre-fill the UI to enable editing the existing data.</p>
+<p>A QCompleter provides in-line completion for the company field.</p>
+<p>No verification is done on the user input. Sqlite has full unicode support and names come in all different forms and shapes around the world. In order to maintain a maximum amount of flexibility, any unicode input is allowed. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a1ab8e67282e910895a544e8dea51cb91"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1ab8e67282e910895a544e8dea51cb91">&#9670;&nbsp;</a></span>NewPilotDialog()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">NewPilotDialog::NewPilotDialog </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>rowId</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">QWidget *&#160;</td>
+          <td class="paramname"><em>parent</em> = <code>nullptr</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p><a class="el" href="class_new_pilot_dialog.html#ad410c1f4e504c92fe43084a7d10e1ea0" title="NewPilotDialog::NewPilotDialog - creates a new pilot dialog which can be used to add a new entry to t...">NewPilotDialog::NewPilotDialog</a> - creates a new pilot dialog which can be used to edit an existing entry in the database. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">rowId</td><td>- the rowid of the entry to be edited in the database </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
 <hr/>The documentation for this class was generated from the following files:<ul>
 <li>src/gui/dialogues/<a class="el" href="newpilotdialog_8h_source.html">newpilotdialog.h</a></li>
 <li>src/gui/dialogues/newpilotdialog.cpp</li>
@@ -116,9 +172,7 @@ Public Member Functions</h2></td></tr>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_new_pilot_dialog.html">NewPilotDialog</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 6 - 8
docs/html/class_new_tail_dialog-members.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -90,17 +90,15 @@ $(document).ready(function(){initNavTree('class_new_tail_dialog.html',''); initR
 
 <p>This is the complete list of members for <a class="el" href="class_new_tail_dialog.html">NewTailDialog</a>, including all inherited members.</p>
 <table class="directory">
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewTailDialog</b>(QString new_registration, QWidget *parent=nullptr) (defined in <a class="el" href="class_new_tail_dialog.html">NewTailDialog</a>)</td><td class="entry"><a class="el" href="class_new_tail_dialog.html">NewTailDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>NewTailDialog</b>(int row_id, QWidget *parent=nullptr) (defined in <a class="el" href="class_new_tail_dialog.html">NewTailDialog</a>)</td><td class="entry"><a class="el" href="class_new_tail_dialog.html">NewTailDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_new_tail_dialog.html#a2349c6dcafed3357051991dfc246f92d">NewTailDialog</a>(const QString &amp;new_registration, QWidget *parent=nullptr)</td><td class="entry"><a class="el" href="class_new_tail_dialog.html">NewTailDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_new_tail_dialog.html#abac4f77a4b8a80ef7d14790d4ed6700e">NewTailDialog</a>(int row_id, QWidget *parent=nullptr)</td><td class="entry"><a class="el" href="class_new_tail_dialog.html">NewTailDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~NewTailDialog</b>() (defined in <a class="el" href="class_new_tail_dialog.html">NewTailDialog</a>)</td><td class="entry"><a class="el" href="class_new_tail_dialog.html">NewTailDialog</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

+ 106 - 15
docs/html/class_new_tail_dialog.html

@@ -3,7 +3,7 @@
 <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.8.17"/>
+<meta name="generator" content="Doxygen 1.9.1"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>openPilotLog: NewTailDialog Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
@@ -35,10 +35,10 @@
 </table>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.17 -->
+<!-- Generated by Doxygen 1.9.1 -->
 <script type="text/javascript">
 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('class_new_tail_dialog.html',''); initR
 </div><!--header-->
 <div class="contents">
 
-<p>The NewTail class is a dialog for adding a new tail to the database or editing an existing one.  
+<p>The <a class="el" href="class_new_tail_dialog.html" title="The NewTailDialog enables adding new Tail entries to the database or editing existing ones.">NewTailDialog</a> enables adding new Tail entries to the database or editing existing ones.  
  <a href="class_new_tail_dialog.html#details">More...</a></p>
 
 <p><code>#include &lt;<a class="el" href="newtaildialog_8h_source.html">newtaildialog.h</a>&gt;</code></p>
@@ -104,17 +104,110 @@ Inheritance diagram for NewTailDialog:</div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a0ec163dd98a7650a3c8601ec09f44f73"><td class="memItemLeft" align="right" valign="top"><a id="a0ec163dd98a7650a3c8601ec09f44f73"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>NewTailDialog</b> (QString new_registration, QWidget *parent=nullptr)</td></tr>
-<tr class="separator:a0ec163dd98a7650a3c8601ec09f44f73"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abac4f77a4b8a80ef7d14790d4ed6700e"><td class="memItemLeft" align="right" valign="top"><a id="abac4f77a4b8a80ef7d14790d4ed6700e"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>NewTailDialog</b> (int row_id, QWidget *parent=nullptr)</td></tr>
+<tr class="memitem:a2349c6dcafed3357051991dfc246f92d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_new_tail_dialog.html#a2349c6dcafed3357051991dfc246f92d">NewTailDialog</a> (const QString &amp;new_registration, QWidget *parent=nullptr)</td></tr>
+<tr class="memdesc:a2349c6dcafed3357051991dfc246f92d"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_new_tail_dialog.html" title="The NewTailDialog enables adding new Tail entries to the database or editing existing ones.">NewTailDialog</a> - create a new <a class="el" href="struct_a_tail_entry.html">ATailEntry</a> and submit it to the database.  <a href="class_new_tail_dialog.html#a2349c6dcafed3357051991dfc246f92d">More...</a><br /></td></tr>
+<tr class="separator:a2349c6dcafed3357051991dfc246f92d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abac4f77a4b8a80ef7d14790d4ed6700e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_new_tail_dialog.html#abac4f77a4b8a80ef7d14790d4ed6700e">NewTailDialog</a> (int row_id, QWidget *parent=nullptr)</td></tr>
+<tr class="memdesc:abac4f77a4b8a80ef7d14790d4ed6700e"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_new_tail_dialog.html" title="The NewTailDialog enables adding new Tail entries to the database or editing existing ones.">NewTailDialog</a> - edit an existing Tail Entry.  <a href="class_new_tail_dialog.html#abac4f77a4b8a80ef7d14790d4ed6700e">More...</a><br /></td></tr>
 <tr class="separator:abac4f77a4b8a80ef7d14790d4ed6700e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>The NewTail class is a dialog for adding a new tail to the database or editing an existing one. </p>
-<p>For a new tail, construct using QString reg. For editing an existing tail, provide the aircraft object. </p>
-</div><hr/>The documentation for this class was generated from the following files:<ul>
+<div class="textblock"><p>The <a class="el" href="class_new_tail_dialog.html" title="The NewTailDialog enables adding new Tail entries to the database or editing existing ones.">NewTailDialog</a> enables adding new Tail entries to the database or editing existing ones. </p>
+<p>The <a class="el" href="class_new_tail_dialog.html" title="The NewTailDialog enables adding new Tail entries to the database or editing existing ones.">NewTailDialog</a> offers two constructors, one is used to create a new Tail Entry from scratch, while the other one is used to edit an existing entry. The existing entry is identified by its ROW ID in the database and is then retreived, its data being used to pre-fill the UI to enable editing the existing data.</p>
+<p>The Dialog is headed by a search-field containing template data retreived from the aircraft table. This enables a fast and convenient way of rapidly filling out all the details for a given aircraft type.</p>
+<p>Think of aircraft and tails as classes and instances. The tail refers to the actual aircraft, which is identified by its registration, normally a 5-letter alphanumeric, e.g. D-AIDB or LN-NEN. The aircraft table in the database holds templates for the aircraft type, for example a Boeing 737 or Airbus 320. A typical operator has several aircraft of the same type, for example OE-ABC, OE-DEF and OE-GHI, all of which are of the aircraft type Airbus 320.</p>
+<p>The Dialog contains 4 QComboBoxes that have to be filled out before an entry can be submitted, since this data is being used to deduct certain types of hours that have to be logged depending on the number or type of engines.</p>
+<p>A set of QValidators provides raw input validation for the line edits. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a2349c6dcafed3357051991dfc246f92d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2349c6dcafed3357051991dfc246f92d">&#9670;&nbsp;</a></span>NewTailDialog() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">NewTailDialog::NewTailDialog </td>
+          <td>(</td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>new_registration</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">QWidget *&#160;</td>
+          <td class="paramname"><em>parent</em> = <code>nullptr</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p><a class="el" href="class_new_tail_dialog.html" title="The NewTailDialog enables adding new Tail entries to the database or editing existing ones.">NewTailDialog</a> - create a new <a class="el" href="struct_a_tail_entry.html">ATailEntry</a> and submit it to the database. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">new_registration</td><td>- when called from the <a class="el" href="class_new_flight_dialog.html" title="The NewFlightDialog is used to add or edit entries from the flights table in the database.">NewFlightDialog</a>, pre-fills the registration already entered. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="abac4f77a4b8a80ef7d14790d4ed6700e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abac4f77a4b8a80ef7d14790d4ed6700e">&#9670;&nbsp;</a></span>NewTailDialog() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">NewTailDialog::NewTailDialog </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>row_id</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">QWidget *&#160;</td>
+          <td class="paramname"><em>parent</em> = <code>nullptr</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p><a class="el" href="class_new_tail_dialog.html" title="The NewTailDialog enables adding new Tail entries to the database or editing existing ones.">NewTailDialog</a> - edit an existing Tail Entry. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">row_id</td><td>- the ROW_ID of the entry to be edited in the database </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
 <li>src/gui/dialogues/<a class="el" href="newtaildialog_8h_source.html">newtaildialog.h</a></li>
 <li>src/gui/dialogues/newtaildialog.cpp</li>
 </ul>
@@ -124,9 +217,7 @@ Public Member Functions</h2></td></tr>
 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
   <ul>
     <li class="navelem"><a class="el" href="class_new_tail_dialog.html">NewTailDialog</a></li>
-    <li class="footer">Generated by
-    <a href="http://www.doxygen.org/index.html">
-    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
+    <li class="footer">Generated 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 </li>
   </ul>
 </div>
 </body>

Some files were not shown because too many files changed in this diff