Bläddra i källkod

Updated Doxygen

Felix Turo 2 år sedan
förälder
incheckning
1a8c431670
100 ändrade filer med 6105 tillägg och 363 borttagningar
  1. 2 3
      docs/html/aaircraftentry_8h_source.html
  2. 7 8
      docs/html/acompletiondata_8h_source.html
  3. 20 16
      docs/html/adate_8h_source.html
  4. 3 3
      docs/html/adatetime_8h_source.html
  5. 19 13
      docs/html/aircraftwidget_8h_source.html
  6. 151 0
      docs/html/airportwidget_8h_source.html
  7. 15 10
      docs/html/ajson_8h_source.html
  8. 44 38
      docs/html/annotated.html
  9. 17 11
      docs/html/annotated_dup.js
  10. 54 48
      docs/html/astyle_8h_source.html
  11. 12 12
      docs/html/atime_8h_source.html
  12. 3 2
      docs/html/atranslator_8h_source.html
  13. 3 3
      docs/html/backupwidget_8h_source.html
  14. 16 16
      docs/html/class_a_completion_data.html
  15. 5 5
      docs/html/class_a_completion_data.js
  16. 9 8
      docs/html/class_a_date-members.html
  17. 54 23
      docs/html/class_a_date.html
  18. 2 0
      docs/html/class_a_style-members.html
  19. 6 0
      docs/html/class_a_style.html
  20. 1 1
      docs/html/class_a_translator-members.html
  21. 5 5
      docs/html/class_a_translator.html
  22. 1 1
      docs/html/class_aircraft_widget.html
  23. 104 0
      docs/html/class_airport_widget-members.html
  24. 120 0
      docs/html/class_airport_widget.html
  25. 5 0
      docs/html/class_airport_widget.js
  26. BIN
      docs/html/class_airport_widget.png
  27. 1 1
      docs/html/class_home_widget.html
  28. 1 1
      docs/html/class_logbook_widget-members.html
  29. 3 3
      docs/html/class_logbook_widget.html
  30. 1 1
      docs/html/class_logbook_widget.js
  31. 104 0
      docs/html/class_new_airport_dialog-members.html
  32. 120 0
      docs/html/class_new_airport_dialog.html
  33. 5 0
      docs/html/class_new_airport_dialog.js
  34. BIN
      docs/html/class_new_airport_dialog.png
  35. 2 2
      docs/html/class_new_flight_dialog-members.html
  36. 14 14
      docs/html/class_new_flight_dialog.html
  37. 2 2
      docs/html/class_new_flight_dialog.js
  38. 105 0
      docs/html/class_new_sim_dialog-members.html
  39. 178 0
      docs/html/class_new_sim_dialog.html
  40. 6 0
      docs/html/class_new_sim_dialog.js
  41. BIN
      docs/html/class_new_sim_dialog.png
  42. 2 2
      docs/html/class_new_tail_dialog.html
  43. 105 0
      docs/html/class_o_p_l_1_1_a_notification_handler-members.html
  44. 126 0
      docs/html/class_o_p_l_1_1_a_notification_handler.html
  45. 120 0
      docs/html/class_o_p_l_1_1_aircraft_entry-members.html
  46. 173 0
      docs/html/class_o_p_l_1_1_aircraft_entry.html
  47. 6 0
      docs/html/class_o_p_l_1_1_aircraft_entry.js
  48. BIN
      docs/html/class_o_p_l_1_1_aircraft_entry.png
  49. 120 0
      docs/html/class_o_p_l_1_1_currency_entry-members.html
  50. 173 0
      docs/html/class_o_p_l_1_1_currency_entry.html
  51. 6 0
      docs/html/class_o_p_l_1_1_currency_entry.js
  52. BIN
      docs/html/class_o_p_l_1_1_currency_entry.png
  53. 145 0
      docs/html/class_o_p_l_1_1_database-members.html
  54. 708 0
      docs/html/class_o_p_l_1_1_database.html
  55. 44 0
      docs/html/class_o_p_l_1_1_database.js
  56. BIN
      docs/html/class_o_p_l_1_1_database.png
  57. 117 0
      docs/html/class_o_p_l_1_1_db_completion_data-members.html
  58. 176 0
      docs/html/class_o_p_l_1_1_db_completion_data.html
  59. 16 0
      docs/html/class_o_p_l_1_1_db_completion_data.js
  60. 105 0
      docs/html/class_o_p_l_1_1_db_summary-members.html
  61. 162 0
      docs/html/class_o_p_l_1_1_db_summary.html
  62. 4 0
      docs/html/class_o_p_l_1_1_db_summary.js
  63. BIN
      docs/html/class_o_p_l_1_1_db_summary.png
  64. 120 0
      docs/html/class_o_p_l_1_1_flight_entry-members.html
  65. 173 0
      docs/html/class_o_p_l_1_1_flight_entry.html
  66. 6 0
      docs/html/class_o_p_l_1_1_flight_entry.js
  67. BIN
      docs/html/class_o_p_l_1_1_flight_entry.png
  68. 112 0
      docs/html/class_o_p_l_1_1_opl_globals-members.html
  69. 151 0
      docs/html/class_o_p_l_1_1_opl_globals.html
  70. 13 0
      docs/html/class_o_p_l_1_1_opl_globals.js
  71. BIN
      docs/html/class_o_p_l_1_1_opl_globals.png
  72. 120 0
      docs/html/class_o_p_l_1_1_pilot_entry-members.html
  73. 173 0
      docs/html/class_o_p_l_1_1_pilot_entry.html
  74. 6 0
      docs/html/class_o_p_l_1_1_pilot_entry.js
  75. BIN
      docs/html/class_o_p_l_1_1_pilot_entry.png
  76. 117 0
      docs/html/class_o_p_l_1_1_row-members.html
  77. 178 0
      docs/html/class_o_p_l_1_1_row.html
  78. 18 0
      docs/html/class_o_p_l_1_1_row.js
  79. BIN
      docs/html/class_o_p_l_1_1_row.png
  80. 120 0
      docs/html/class_o_p_l_1_1_simulator_entry-members.html
  81. 173 0
      docs/html/class_o_p_l_1_1_simulator_entry.html
  82. 6 0
      docs/html/class_o_p_l_1_1_simulator_entry.js
  83. BIN
      docs/html/class_o_p_l_1_1_simulator_entry.png
  84. 122 0
      docs/html/class_o_p_l_1_1_tail_entry-members.html
  85. 179 0
      docs/html/class_o_p_l_1_1_tail_entry.html
  86. 8 0
      docs/html/class_o_p_l_1_1_tail_entry.js
  87. BIN
      docs/html/class_o_p_l_1_1_tail_entry.png
  88. 6 5
      docs/html/class_settings_widget-members.html
  89. 9 5
      docs/html/class_settings_widget.html
  90. 3 2
      docs/html/class_settings_widget.js
  91. 24 12
      docs/html/classes.html
  92. 359 0
      docs/html/database_8h_source.html
  93. 158 0
      docs/html/dbcompletiondata_8h_source.html
  94. 139 0
      docs/html/dbsummary_8h_source.html
  95. 44 45
      docs/html/debugwidget_8h_source.html
  96. 0 5
      docs/html/dir_018e9aafb459e6e1a4953404cb0c0b1d.js
  97. 2 0
      docs/html/dir_22d8b8621769acf8e49801a1050c5c94.js
  98. 4 3
      docs/html/dir_803ee67260c130b45d29089798491ab2.js
  99. 1 0
      docs/html/dir_cc657b4ce13702a9d007a200bde234e1.js
  100. 33 34
      docs/html/files.html

+ 2 - 3
docs/html/aaircraftentry_8h_source.html

@@ -108,9 +108,9 @@ $(document).ready(function(){initNavTree('aaircraftentry_8h_source.html',''); in
 <div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define AAIRCRAFTENTRY_H</span></div>
 <div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
 <div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;src/classes/aentry.h&quot;</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;src/database/adatabasetypes.h&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;src/database/databasetypes.h&quot;</span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
-<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="struct_a_aircraft_entry.html">   24</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_a_aircraft_entry.html">AAircraftEntry</a> : <span class="keyword">public</span> <a class="code" href="class_a_entry.html">AEntry</a> {</div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="struct_a_aircraft_entry.html">   24</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_a_aircraft_entry.html">AAircraftEntry</a> : <span class="keyword">public</span> AEntry {</div>
 <div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="keyword">public</span>:</div>
 <div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    <a class="code" href="struct_a_aircraft_entry.html">AAircraftEntry</a>();</div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <a class="code" href="struct_a_aircraft_entry.html">AAircraftEntry</a>(RowId_T row_id);</div>
@@ -121,7 +121,6 @@ $(document).ready(function(){initNavTree('aaircraftentry_8h_source.html',''); in
 <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 </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 -->

+ 7 - 8
docs/html/acompletiondata_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('acompletiondata_8h_source.html',''); i
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;src/database/database.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>
@@ -102,24 +102,23 @@ $(document).ready(function(){initNavTree('acompletiondata_8h_source.html',''); i
 <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;    QHash&lt;RowId_T, QString&gt; pilotsIdMap;</div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    QHash&lt;RowId_T, QString&gt; tailsIdMap;</div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    QHash&lt;RowId_T, QString&gt; airportIcaoIdMap;</div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    QHash&lt;RowId_T, QString&gt; airportIataIdMap;</div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    QHash&lt;RowId_T, QString&gt; airportNameIdMap;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    QHash&lt;int, QString&gt; pilotsIdMap;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    QHash&lt;int, QString&gt; tailsIdMap;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    QHash&lt;int, QString&gt; airportIcaoIdMap;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    QHash&lt;int, QString&gt; airportIataIdMap;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    QHash&lt;int, 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="l00038"></a><span class="lineno">   38</span>&#160;    UserDataState 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 QHashs used for mapping user input to data...</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 -->

+ 20 - 16
docs/html/adate_8h_source.html

@@ -95,10 +95,10 @@ $(document).ready(function(){initNavTree('adate_8h_source.html',''); initResizab
 <div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">const</span> <span class="keyword">static</span> <span class="keyword">auto</span> DE = QStringLiteral(<span class="stringliteral">&quot;dd.MM.yyyy&quot;</span>);</div>
 <div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="keyword">const</span> <span class="keyword">static</span> <span class="keyword">auto</span> EN = QStringLiteral(<span class="stringliteral">&quot;MM/dd/yyyy&quot;</span>);</div>
 <div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160; </div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="keyword">const</span> <span class="keyword">static</span> QHash&lt;Opl::Date::ADateFormat, QString&gt; ADATEFORMATSMAP = {</div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {Opl::Date::ADateFormat::ISODate, ISO},</div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    {Opl::Date::ADateFormat::DE,      DE },</div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    {Opl::Date::ADateFormat::EN,      EN },</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="keyword">const</span> <span class="keyword">static</span> QMap&lt;OPL::DateFormat, QString&gt; ADATEFORMATSMAP = {</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {OPL::DateFormat::ISODate, ISO},</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    {OPL::DateFormat::DE,      DE },</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    {OPL::DateFormat::EN,      EN },</div>
 <div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160; </div>
 <div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;};</div>
 <div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div>
@@ -111,35 +111,39 @@ $(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#ad678a1eed52b81d7af4d4e31ffad2c1e">parseInput</a>(QString &amp;io_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#a607fa6f1a9d893c5a24e2800c32e69c1">parseInput</a>(QString &amp;io_user_input, <a class="code" href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a> format);</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;    <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="l00035"></a><span class="lineno">   35</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> tryToFix(QString &amp;io_user_input, <a class="code" href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a> 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="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#a1cf78be9174827b409376e6df298e905">padCentury</a>(QString &amp;io_user_input, <a class="code" href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a> 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;    <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="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> <a class="code" href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a> &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="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="l00054"></a><span class="lineno"><a class="line" href="class_a_date.html#a8d8378c2f02e85235852386a49972306">   54</a></span>&#160;    <span class="keyword">inline</span> <span class="keyword">static</span> QString <a class="code" href="class_a_date.html#a8d8378c2f02e85235852386a49972306">toString</a>(<span class="keyword">const</span> QDate &amp;date, <a class="code" href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a> format = OPL::DateFormat::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="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString getFormatString(<a class="code" href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a> 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="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString <a class="code" href="class_a_date.html#a66f239a67221f4922f34e1a977c90058">currentDate</a>();</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;};</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="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_a1cf78be9174827b409376e6df298e905"><div class="ttname"><a href="class_a_date.html#a1cf78be9174827b409376e6df298e905">ADate::padCentury</a></div><div class="ttdeci">static void padCentury(QString &amp;io_user_input, OPL::DateFormat 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_a607fa6f1a9d893c5a24e2800c32e69c1"><div class="ttname"><a href="class_a_date.html#a607fa6f1a9d893c5a24e2800c32e69c1">ADate::parseInput</a></div><div class="ttdeci">static QDate parseInput(QString &amp;io_user_input, OPL::DateFormat 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_a66f239a67221f4922f34e1a977c90058"><div class="ttname"><a href="class_a_date.html#a66f239a67221f4922f34e1a977c90058">ADate::currentDate</a></div><div class="ttdeci">static const QString currentDate()</div><div class="ttdoc">today Returns a string containing the current date in ISO format</div><div class="ttdef"><b>Definition:</b> adate.cpp:135</div></div>
+<div class="ttc" id="aclass_a_date_html_a8d8378c2f02e85235852386a49972306"><div class="ttname"><a href="class_a_date.html#a8d8378c2f02e85235852386a49972306">ADate::toString</a></div><div class="ttdeci">static QString toString(const QDate &amp;date, OPL::DateFormat format=OPL::DateFormat::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 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 class="ttc" id="anamespace_o_p_l_html_af7cd691b5d236d3e846193464e9cba28"><div class="ttname"><a href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a></div><div class="ttdeci">DateFormat</div><div class="ttdoc">ADateFormats enumerates the accepted date formats for QDateEdits.</div><div class="ttdef"><b>Definition:</b> opl.h:92</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->

+ 3 - 3
docs/html/adatetime_8h_source.html

@@ -111,11 +111,11 @@ $(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&amp; 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::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="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keywordflow">case</span> OPL::DateTimeFormat::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>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keywordflow">case</span> Opl::Datetime::Backup:</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keywordflow">case</span> OPL::DateTimeFormat::Backup:</div>
 <div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keywordflow">return</span> date_time.toString(QStringLiteral(<span class="stringliteral">&quot;yyyy_MM_dd_T_hh_mm&quot;</span>));</div>
 <div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="keywordflow">default</span>:</div>
 <div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="keywordflow">return</span> QString();</div>

+ 19 - 13
docs/html/aircraftwidget_8h_source.html

@@ -157,24 +157,30 @@ $(document).ready(function(){initNavTree('aircraftwidget_8h_source.html',''); in
 <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="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keyword">const</span> QString getAircraftTypeString(<span class="keyword">const</span> <a class="code" href="class_o_p_l_1_1_row.html">OPL::Row</a> &amp;row) <span class="keyword">const</span>;</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="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keyword">const</span> QString getFlightSummary(<span class="keyword">const</span> <a class="code" href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a> &amp;flight) <span class="keyword">const</span>;</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="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">void</span> setupModelAndView();</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="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keywordtype">void</span> connectSignalsAndSlots();</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="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;    <span class="keywordtype">void</span> onDeleteUnsuccessful();</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;    <span class="keyword">inline</span> <span class="keywordtype">void</span> refreshView(){model-&gt;select();}</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="keyword">protected</span>:</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</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="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;<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_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>
+<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:83</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:96</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:91</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_flight_entry_html"><div class="ttname"><a href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a></div><div class="ttdef"><b>Definition:</b> row.h:81</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_row_html"><div class="ttname"><a href="class_o_p_l_1_1_row.html">OPL::Row</a></div><div class="ttdoc">The Row class provides an interface for retreiving and submitting entries from the database....</div><div class="ttdef"><b>Definition:</b> row.h:13</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 -->

+ 151 - 0
docs/html/airportwidget_8h_source.html

@@ -0,0 +1,151 @@
+<!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/gui/widgets/airportwidget.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('airportwidget_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">airportwidget.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 AIRPORTWIDGET_H</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define AIRPORTWIDGET_H</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &lt;QWidget&gt;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &lt;QSqlTableModel&gt;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &lt;QTableView&gt;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">namespace </span>Ui {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="keyword">class </span><a class="code" href="class_airport_widget.html">AirportWidget</a>;</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;}</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="class_airport_widget.html">   12</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_airport_widget.html">AirportWidget</a> : <span class="keyword">public</span> QWidget</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    Q_OBJECT</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160; </div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="class_airport_widget.html">AirportWidget</a>(QWidget *parent = <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    ~<a class="code" href="class_airport_widget.html">AirportWidget</a>();</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160; </div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">private</span> slots:</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    <span class="keywordtype">void</span> on_searchLineEdit_textChanged(<span class="keyword">const</span> QString &amp;arg1);</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;    <span class="keywordtype">void</span> on_searchComboBox_currentIndexChanged(<span class="keywordtype">int</span> index);</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="keywordtype">void</span> on_newAirportPushButton_clicked();</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="keyword">private</span>:</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    Ui::AirportWidget *ui;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    QSqlTableModel *model;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    QTableView *view;</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;    <span class="keywordtype">void</span> setupModelAndeView();</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="keywordtype">void</span> setupSearch();</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;    <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keyword">static</span> QString TABLE_NAME = QStringLiteral(<span class="stringliteral">&quot;airports&quot;</span>);</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keyword">static</span> QHash&lt;int, QString&gt; FILTER_MAP = {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        {0, QStringLiteral(<span class="stringliteral">&quot;icao LIKE \&quot;%&quot;</span>)},</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        {1, QStringLiteral(<span class="stringliteral">&quot;iata LIKE \&quot;%&quot;</span>)},</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        {2, QStringLiteral(<span class="stringliteral">&quot;name LIKE \&quot;%&quot;</span>)},</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        {3, QStringLiteral(<span class="stringliteral">&quot;country LIKE \&quot;%&quot;</span>)},</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">inline</span> <span class="keyword">const</span> <span class="keyword">static</span> QHash&lt;int, QString&gt; HEADER_MAP = {</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        {0, QStringLiteral(<span class="stringliteral">&quot;ICAO&quot;</span>)},</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        {1, QStringLiteral(<span class="stringliteral">&quot;IATA&quot;</span>)},</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        {2, QStringLiteral(<span class="stringliteral">&quot;Name&quot;</span>)},</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        {3, QStringLiteral(<span class="stringliteral">&quot;Country&quot;</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;};</div>
+<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;<span class="preprocessor">#endif </span><span class="comment">// AIRPORTWIDGET_H</span></div>
+<div class="ttc" id="aclass_airport_widget_html"><div class="ttname"><a href="class_airport_widget.html">AirportWidget</a></div><div class="ttdef"><b>Definition:</b> airportwidget.h:13</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>airportwidget.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>

+ 15 - 10
docs/html/ajson_8h_source.html

@@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('ajson_8h_source.html',''); initResizab
 <div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#ifndef AJSON_H</span></div>
 <div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define AJSON_H</span></div>
 <div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &quot;src/opl.h&quot;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;src/database/adatabase.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;src/database/database.h&quot;</span></div>
 <div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;QJsonDocument&gt;</span></div>
 <div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;QJsonValue&gt;</span></div>
 <div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;QJsonObject&gt;</span></div>
@@ -128,16 +128,21 @@ $(document).ready(function(){initNavTree('ajson_8h_source.html',''); initResizab
 <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>:</div>
 <div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160; </div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keyword">const</span> <span class="keyword">static</span> QList&lt;QPair&lt;TableName_T, ADatabaseTable&gt;&gt; tables;</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;};</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 </span><span class="comment">// AJSON_H</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keyword">const</span> <span class="keyword">static</span> <span class="keyword">inline</span> QList&lt;OPL::DbTable&gt; TABLES = {</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        OPL::DbTable::Tails,</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        OPL::DbTable::Pilots,</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        OPL::DbTable::Currencies,</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        OPL::DbTable::Flights,</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;};</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="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_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_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_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:56</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:67</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:23</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:37</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->

+ 44 - 38
docs/html/annotated.html

@@ -91,46 +91,52 @@ $(document).ready(function(){initNavTree('annotated.html',''); initResizable();
 <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_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_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_o_p_l.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="struct_o_p_l_1_1_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_1_1_" class="even"><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_o_p_l_1_1_database.html" target="_self">Database</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_1_2_"><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_o_p_l_1_1_db_completion_data.html" target="_self">DbCompletionData</a></td><td class="desc">Provides data for QCompleters and QHashs </td></tr>
+<tr id="row_1_3_" class="even"><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_o_p_l_1_1_db_summary.html" target="_self">DbSummary</a></td><td class="desc">Collects summaries of entries and relevant data from the database </td></tr>
+<tr id="row_1_4_"><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_o_p_l_1_1_row.html" target="_self">Row</a></td><td class="desc">Interface for retreiving and submitting entries from the database. It is a bass class and when instantiated, the appropriate subclass should be used </td></tr>
+<tr id="row_1_5_" class="even"><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_o_p_l_1_1_aircraft_entry.html" target="_self">AircraftEntry</a></td><td class="desc"></td></tr>
+<tr id="row_1_6_"><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_o_p_l_1_1_tail_entry.html" target="_self">TailEntry</a></td><td class="desc"></td></tr>
+<tr id="row_1_7_" class="even"><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_o_p_l_1_1_pilot_entry.html" target="_self">PilotEntry</a></td><td class="desc"></td></tr>
+<tr id="row_1_8_"><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_o_p_l_1_1_simulator_entry.html" target="_self">SimulatorEntry</a></td><td class="desc"></td></tr>
+<tr id="row_1_9_" class="even"><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_o_p_l_1_1_flight_entry.html" target="_self">FlightEntry</a></td><td class="desc"></td></tr>
+<tr id="row_1_10_"><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_o_p_l_1_1_currency_entry.html" target="_self">CurrencyEntry</a></td><td class="desc"></td></tr>
+<tr id="row_1_11_" class="even"><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_o_p_l_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_1_12_"><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_o_p_l_1_1_opl_globals.html" target="_self">OplGlobals</a></td><td class="desc">Encapsulates non-POD globals to avoid making them static. It is available as a global static object via the OPL::GLOBAL makro and may be used as if it were a pointer, guaranteed to be initialized exactly once. For more information, see (Q_GLOBAL_STATIC)[<a href="https://doc.qt.io/qt-5/qglobalstatic.html#details">https://doc.qt.io/qt-5/qglobalstatic.html#details</a>] </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 QHashs 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 QHash 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>
+<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="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_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_download.html" target="_self">ADownload</a></td><td class="desc"></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_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_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_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_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_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_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_airport_widget.html" target="_self">AirportWidget</a></td><td class="desc"></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_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_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_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_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_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_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_a_standard_paths.html" target="_self">AStandardPaths</a></td><td class="desc">The AStandardAppPaths class encapsulates a static QHash holding the standard paths of the application </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_style.html" target="_self">AStyle</a></td><td class="desc">Encapsulates style and stylesheet logic </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="class_a_timer.html" target="_self">ATimer</a></td><td class="desc">Easy to use performance timer </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_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_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_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_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_debug_widget.html" target="_self">DebugWidget</a></td><td class="desc"></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_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_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="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_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_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_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_new_airport_dialog.html" target="_self">NewAirportDialog</a></td><td class="desc"></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_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_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="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_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_new_sim_dialog.html" target="_self">NewSimDialog</a></td><td class="desc">Enables adding a new Simulator Session to the database or editing an existing one </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_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_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_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_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_process_aircraft.html" target="_self">ProcessAircraft</a></td><td class="desc"></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_process_flights.html" target="_self">ProcessFlights</a></td><td class="desc"></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_process_pilots.html" target="_self">ProcessPilots</a></td><td class="desc"></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_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_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="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_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_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 -->

+ 17 - 11
docs/html/annotated_dup.js

@@ -3,38 +3,45 @@ var annotated_dup =
     [ "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 ]
+    [ "OPL", "namespace_o_p_l.html", [
+      [ "UserDataState", "struct_o_p_l_1_1_user_data_state.html", "struct_o_p_l_1_1_user_data_state" ],
+      [ "Database", "class_o_p_l_1_1_database.html", "class_o_p_l_1_1_database" ],
+      [ "DbCompletionData", "class_o_p_l_1_1_db_completion_data.html", "class_o_p_l_1_1_db_completion_data" ],
+      [ "DbSummary", "class_o_p_l_1_1_db_summary.html", "class_o_p_l_1_1_db_summary" ],
+      [ "Row", "class_o_p_l_1_1_row.html", "class_o_p_l_1_1_row" ],
+      [ "AircraftEntry", "class_o_p_l_1_1_aircraft_entry.html", "class_o_p_l_1_1_aircraft_entry" ],
+      [ "TailEntry", "class_o_p_l_1_1_tail_entry.html", "class_o_p_l_1_1_tail_entry" ],
+      [ "PilotEntry", "class_o_p_l_1_1_pilot_entry.html", "class_o_p_l_1_1_pilot_entry" ],
+      [ "SimulatorEntry", "class_o_p_l_1_1_simulator_entry.html", "class_o_p_l_1_1_simulator_entry" ],
+      [ "FlightEntry", "class_o_p_l_1_1_flight_entry.html", "class_o_p_l_1_1_flight_entry" ],
+      [ "CurrencyEntry", "class_o_p_l_1_1_currency_entry.html", "class_o_p_l_1_1_currency_entry" ],
+      [ "ANotificationHandler", "class_o_p_l_1_1_a_notification_handler.html", null ],
+      [ "OplGlobals", "class_o_p_l_1_1_opl_globals.html", "class_o_p_l_1_1_opl_globals" ]
     ] ],
     [ "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" ],
     [ "ADate", "class_a_date.html", null ],
     [ "ADownload", "class_a_download.html", "class_a_download" ],
-    [ "AEntry", "class_a_entry.html", "class_a_entry" ],
     [ "AFileStandardItem", "class_a_file_standard_item.html", "class_a_file_standard_item" ],
-    [ "AFlightEntry", "class_a_flight_entry.html", "class_a_flight_entry" ],
     [ "AHash", "class_a_hash.html", "class_a_hash" ],
     [ "AircraftWidget", "class_aircraft_widget.html", "class_aircraft_widget" ],
+    [ "AirportWidget", "class_airport_widget.html", "class_airport_widget" ],
     [ "AJson", "class_a_json.html", "class_a_json" ],
-    [ "APilotEntry", "struct_a_pilot_entry.html", "struct_a_pilot_entry" ],
     [ "ARunGuard", "class_a_run_guard.html", "class_a_run_guard" ],
     [ "ASettings", "class_a_settings.html", "class_a_settings" ],
     [ "AStandardPaths", "class_a_standard_paths.html", "class_a_standard_paths" ],
     [ "AStyle", "class_a_style.html", null ],
-    [ "ATailEntry", "struct_a_tail_entry.html", "struct_a_tail_entry" ],
     [ "ATimer", "class_a_timer.html", "class_a_timer" ],
     [ "ATranslator", "class_a_translator.html", null ],
     [ "BackupWidget", "class_backup_widget.html", "class_backup_widget" ],
-    [ "DataPosition", "struct_data_position.html", "struct_data_position" ],
     [ "DebugWidget", "class_debug_widget.html", "class_debug_widget" ],
     [ "FirstRunDialog", "class_first_run_dialog.html", "class_first_run_dialog" ],
     [ "HomeWidget", "class_home_widget.html", "class_home_widget" ],
     [ "LogbookWidget", "class_logbook_widget.html", "class_logbook_widget" ],
+    [ "NewAirportDialog", "class_new_airport_dialog.html", "class_new_airport_dialog" ],
     [ "NewFlightDialog", "class_new_flight_dialog.html", "class_new_flight_dialog" ],
     [ "NewPilotDialog", "class_new_pilot_dialog.html", "class_new_pilot_dialog" ],
+    [ "NewSimDialog", "class_new_sim_dialog.html", "class_new_sim_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" ],
@@ -42,6 +49,5 @@ var annotated_dup =
     [ "ProcessPilots", "class_process_pilots.html", "class_process_pilots" ],
     [ "SettingsWidget", "class_settings_widget.html", "class_settings_widget" ],
     [ "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" ]
 ];

+ 54 - 48
docs/html/astyle_8h_source.html

@@ -112,54 +112,60 @@ $(document).ready(function(){initNavTree('astyle_8h_source.html',''); initResiza
 <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;<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="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 class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="keyword">enum class</span> StyleType {Light, Dark};</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="struct_style_sheet.html">   32</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_style_sheet.html">StyleSheet</a></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;    <a class="code" href="struct_style_sheet.html">StyleSheet</a>(QLatin1String style_sheet_name, QLatin1String file_name)</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        : styleSheetName(style_sheet_name), fileName(file_name)</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;    QLatin1String styleSheetName;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    QLatin1String fileName;</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="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="l00042"></a><span class="lineno">   42</span>&#160;{</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    QFile file(stylesheet);</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    file.open(QFile::ReadOnly | QFile::Text);</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    QTextStream stream(&amp;file);</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keywordflow">return</span> stream.readAll();</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="l00052"></a><span class="lineno"><a class="line" href="class_a_style.html">   52</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_style.html">AStyle</a></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="keyword">private</span>:</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    <span class="keyword">static</span> QString currentStyle;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    <span class="keyword">static</span> QLatin1String DARK_PALETTE;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> resetStyle();</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keyword">public</span>:</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 styles;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString defaultStyle;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QList&lt;StyleSheet&gt; styleSheets;</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="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="l00064"></a><span class="lineno">   64</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="l00065"></a><span class="lineno">   65</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="l00066"></a><span class="lineno">   66</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="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keyword">static</span> QString getCurrentStyle() {<span class="keywordflow">return</span> currentStyle;}</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="keyword">static</span> StyleType getStyleType();</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keyword">static</span> QPalette darkPalette();</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QString&amp; style();</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="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> loadStylesComboBox(QComboBox *combo_box){</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        <span class="keyword">const</span> QSignalBlocker blocker(combo_box);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        combo_box-&gt;addItems(AStyle::styles);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</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="l00076"></a><span class="lineno">   76</span>&#160;            combo_box-&gt;addItem(style_sheet.styleSheetName);</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;        combo_box-&gt;addItem(QStringLiteral(<span class="stringliteral">&quot;Dark-Palette&quot;</span>));</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        combo_box-&gt;model()-&gt;sort(0);</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;};</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="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:53</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:52</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:33</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->

+ 12 - 12
docs/html/atime_8h_source.html

@@ -114,13 +114,13 @@ $(document).ready(function(){initNavTree('atime_8h_source.html',''); initResizab
 <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;<span class="keyword">namespace </span>ATime {</div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160; </div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> QString toString(<span class="keyword">const</span> QTime &amp;time, Opl::Time::FlightTimeFormat format = Opl::Time::Default)</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> QString toString(<span class="keyword">const</span> QTime &amp;time, OPL::FlightTimeFormat format = OPL::FlightTimeFormat::Default)</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;    <span class="keywordflow">switch</span> (format) {</div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keywordflow">case</span> Opl::Time::Default:</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="keywordflow">case</span> OPL::FlightTimeFormat::Default:</div>
 <div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        <span class="keywordflow">return</span> time.toString(QStringLiteral(<span class="stringliteral">&quot;hh:mm&quot;</span>));</div>
 <div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="keywordflow">case</span> Opl::Time::Decimal:</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    <span class="keywordflow">case</span> OPL::FlightTimeFormat::Decimal:</div>
 <div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        <span class="keywordflow">return</span> QString::number(((time.hour() * 60 + time.minute() )/60.0), <span class="charliteral">&#39;f&#39;</span>, 2);</div>
 <div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        <span class="keywordflow">break</span>;</div>
 <div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="keywordflow">default</span>:</div>
@@ -128,10 +128,10 @@ $(document).ready(function(){initNavTree('atime_8h_source.html',''); initResizab
 <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;}</div>
 <div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> QString toString(<span class="keywordtype">int</span> minutes_in, Opl::Time::FlightTimeFormat format = Opl::Time::Default)</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> QString toString(<span class="keywordtype">int</span> minutes_in, OPL::FlightTimeFormat format = OPL::FlightTimeFormat::Default)</div>
 <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;    <span class="keywordflow">switch</span> (format) {</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordflow">case</span> Opl::Time::Default:</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordflow">case</span> OPL::FlightTimeFormat::Default:</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;        QString hour = QString::number(minutes_in / 60);</div>
 <div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="keywordflow">if</span> (hour.size() &lt; 2) {</div>
@@ -143,7 +143,7 @@ $(document).ready(function(){initNavTree('atime_8h_source.html',''); initResizab
 <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="keywordflow">return</span> hour + <span class="charliteral">&#39;:&#39;</span> + minute;</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="keywordflow">case</span> Opl::Time::Decimal:</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="keywordflow">case</span> OPL::FlightTimeFormat::Decimal:</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">int</span> hour = minutes_in / 60;</div>
 <div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keywordtype">double</span> minute = (minutes_in % 60) / 60.0;</div>
@@ -167,13 +167,13 @@ $(document).ready(function(){initNavTree('atime_8h_source.html',''); initResizab
 <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="l00087"></a><span class="lineno">   87</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> QTime fromString(QString time_string, OPL::FlightTimeFormat format = OPL::FlightTimeFormat::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="l00090"></a><span class="lineno">   90</span>&#160;    <span class="keywordflow">case</span> OPL::FlightTimeFormat::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="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keywordflow">case</span> OPL::FlightTimeFormat::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>
@@ -186,13 +186,13 @@ $(document).ready(function(){initNavTree('atime_8h_source.html',''); initResizab
 <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="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::FlightTimeFormat format = OPL::FlightTimeFormat::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="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordflow">case</span> OPL::FlightTimeFormat::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="l00112"></a><span class="lineno">  112</span>&#160;    <span class="keywordflow">case</span> OPL::FlightTimeFormat::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>

+ 3 - 2
docs/html/atranslator_8h_source.html

@@ -94,7 +94,7 @@ $(document).ready(function(){initNavTree('atranslator_8h_source.html',''); initR
 <div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_a_translator.html">   18</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_translator.html">ATranslator</a>  : <span class="keyword">public</span> QObject {</div>
 <div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    Q_OBJECT</div>
 <div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_a_translator.html#aeb6d08e73db4bf7bdeed793ad8c34d86">installTranslator</a>(Opl::Translations language = Opl::Translations::English);</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_a_translator.html#a73cf61e2303187b6985e727197b03c69">installTranslator</a>(<a class="code" href="namespace_o_p_l.html#a5bd3211ed824e4526fd117ffb667aacc">OPL::Translation</a> language = OPL::Translation::English);</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;<span class="keyword">private</span>:</div>
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keyword">static</span> QTranslator *translator;</div>
@@ -102,7 +102,8 @@ $(document).ready(function(){initNavTree('atranslator_8h_source.html',''); initR
 <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 </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 class="ttc" id="aclass_a_translator_html_a73cf61e2303187b6985e727197b03c69"><div class="ttname"><a href="class_a_translator.html#a73cf61e2303187b6985e727197b03c69">ATranslator::installTranslator</a></div><div class="ttdeci">static void installTranslator(OPL::Translation language=OPL::Translation::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="anamespace_o_p_l_html_a5bd3211ed824e4526fd117ffb667aacc"><div class="ttname"><a href="namespace_o_p_l.html#a5bd3211ed824e4526fd117ffb667aacc">OPL::Translation</a></div><div class="ttdeci">Translation</div><div class="ttdoc">Enumerates the available translations.</div><div class="ttdef"><b>Definition:</b> opl.h:107</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->

+ 3 - 3
docs/html/backupwidget_8h_source.html

@@ -183,9 +183,9 @@ $(document).ready(function(){initNavTree('backupwidget_8h_source.html',''); init
 <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_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 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:89</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:81</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:51</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->

+ 16 - 16
docs/html/class_a_completion_data.html

@@ -116,21 +116,21 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>updatePilots</b> ()</
 </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:af4cc9aa54dd7bf9814af90fd5fd36d16"><td class="memItemLeft" align="right" valign="top"><a id="af4cc9aa54dd7bf9814af90fd5fd36d16"></a>
-QHash&lt; RowId_T, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>pilotsIdMap</b></td></tr>
-<tr class="separator:af4cc9aa54dd7bf9814af90fd5fd36d16"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa72061810010cad858efc7619bce8abd"><td class="memItemLeft" align="right" valign="top"><a id="aa72061810010cad858efc7619bce8abd"></a>
-QHash&lt; RowId_T, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>tailsIdMap</b></td></tr>
-<tr class="separator:aa72061810010cad858efc7619bce8abd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a79dd0d7f80a5116a308ced917fc95196"><td class="memItemLeft" align="right" valign="top"><a id="a79dd0d7f80a5116a308ced917fc95196"></a>
-QHash&lt; RowId_T, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>airportIcaoIdMap</b></td></tr>
-<tr class="separator:a79dd0d7f80a5116a308ced917fc95196"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a504a3efc00d3dc4e184927fe291c00aa"><td class="memItemLeft" align="right" valign="top"><a id="a504a3efc00d3dc4e184927fe291c00aa"></a>
-QHash&lt; RowId_T, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>airportIataIdMap</b></td></tr>
-<tr class="separator:a504a3efc00d3dc4e184927fe291c00aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1f3c332e66663a75da8bebe2f91431b2"><td class="memItemLeft" align="right" valign="top"><a id="a1f3c332e66663a75da8bebe2f91431b2"></a>
-QHash&lt; RowId_T, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>airportNameIdMap</b></td></tr>
-<tr class="separator:a1f3c332e66663a75da8bebe2f91431b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abfcba1a1d15058e6e3cc0d6638d72ffe"><td class="memItemLeft" align="right" valign="top"><a id="abfcba1a1d15058e6e3cc0d6638d72ffe"></a>
+QHash&lt; int, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>pilotsIdMap</b></td></tr>
+<tr class="separator:abfcba1a1d15058e6e3cc0d6638d72ffe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9dd023bcf590bac33cc823a8276f48e8"><td class="memItemLeft" align="right" valign="top"><a id="a9dd023bcf590bac33cc823a8276f48e8"></a>
+QHash&lt; int, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>tailsIdMap</b></td></tr>
+<tr class="separator:a9dd023bcf590bac33cc823a8276f48e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1bc7e06999d13432c16e81ddedda832d"><td class="memItemLeft" align="right" valign="top"><a id="a1bc7e06999d13432c16e81ddedda832d"></a>
+QHash&lt; int, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>airportIcaoIdMap</b></td></tr>
+<tr class="separator:a1bc7e06999d13432c16e81ddedda832d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5c929477d26f65a6a8749a033a75c284"><td class="memItemLeft" align="right" valign="top"><a id="a5c929477d26f65a6a8749a033a75c284"></a>
+QHash&lt; int, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>airportIataIdMap</b></td></tr>
+<tr class="separator:a5c929477d26f65a6a8749a033a75c284"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1a8786f11ced9a00c52bcb5a9dafe6f"><td class="memItemLeft" align="right" valign="top"><a id="aa1a8786f11ced9a00c52bcb5a9dafe6f"></a>
+QHash&lt; int, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>airportNameIdMap</b></td></tr>
+<tr class="separator:aa1a8786f11ced9a00c52bcb5a9dafe6f"><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>
@@ -141,7 +141,7 @@ QStringList&#160;</td><td class="memItemRight" valign="bottom"><b>tailsList</b><
 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>
+UserDataState&#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>

+ 5 - 5
docs/html/class_a_completion_data.js

@@ -4,13 +4,13 @@ var class_a_completion_data =
     [ "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#a504a3efc00d3dc4e184927fe291c00aa", null ],
-    [ "airportIcaoIdMap", "class_a_completion_data.html#a79dd0d7f80a5116a308ced917fc95196", null ],
+    [ "airportIataIdMap", "class_a_completion_data.html#a5c929477d26f65a6a8749a033a75c284", null ],
+    [ "airportIcaoIdMap", "class_a_completion_data.html#a1bc7e06999d13432c16e81ddedda832d", null ],
     [ "airportList", "class_a_completion_data.html#ae7817ca029a70a5cc1e66b7fd345d745", null ],
-    [ "airportNameIdMap", "class_a_completion_data.html#a1f3c332e66663a75da8bebe2f91431b2", null ],
+    [ "airportNameIdMap", "class_a_completion_data.html#aa1a8786f11ced9a00c52bcb5a9dafe6f", null ],
     [ "current_state", "class_a_completion_data.html#a612bf846e0d12eeae323baba191dcf75", null ],
     [ "pilotList", "class_a_completion_data.html#a9965af9d815b2f22061b311677cc1282", null ],
-    [ "pilotsIdMap", "class_a_completion_data.html#af4cc9aa54dd7bf9814af90fd5fd36d16", null ],
-    [ "tailsIdMap", "class_a_completion_data.html#aa72061810010cad858efc7619bce8abd", null ],
+    [ "pilotsIdMap", "class_a_completion_data.html#abfcba1a1d15058e6e3cc0d6638d72ffe", null ],
+    [ "tailsIdMap", "class_a_completion_data.html#a9dd023bcf590bac33cc823a8276f48e8", null ],
     [ "tailsList", "class_a_completion_data.html#a827b787c6dadfeedb50c3685d05d27f7", null ]
 ];

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

@@ -90,15 +90,16 @@ $(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 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" class="even"><td class="entry"><b>addSeperators</b>(QString &amp;io_user_input, const OPL::DateFormat &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>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_date.html#a66f239a67221f4922f34e1a977c90058">currentDate</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>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::DateFormat 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><td class="entry"><a class="el" href="class_a_date.html#a1cf78be9174827b409376e6df298e905">padCentury</a>(QString &amp;io_user_input, OPL::DateFormat 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 class="even"><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><td class="entry"><a class="el" href="class_a_date.html#a607fa6f1a9d893c5a24e2800c32e69c1">parseInput</a>(QString &amp;io_user_input, OPL::DateFormat 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 class="even"><td class="entry"><a class="el" href="class_a_date.html#a8d8378c2f02e85235852386a49972306">toString</a>(const QDate &amp;date, OPL::DateFormat format=OPL::DateFormat::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"><td class="entry"><b>tryToFix</b>(QString &amp;io_user_input, OPL::DateFormat 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 -->

+ 54 - 23
docs/html/class_a_date.html

@@ -98,42 +98,73 @@ $(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: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:a607fa6f1a9d893c5a24e2800c32e69c1"><td class="memItemLeft" align="right" valign="top">static QDate&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_date.html#a607fa6f1a9d893c5a24e2800c32e69c1">parseInput</a> (QString &amp;io_user_input, <a class="el" href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a> format)</td></tr>
+<tr class="memdesc:a607fa6f1a9d893c5a24e2800c32e69c1"><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#a607fa6f1a9d893c5a24e2800c32e69c1">More...</a><br /></td></tr>
+<tr class="separator:a607fa6f1a9d893c5a24e2800c32e69c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aece227f9f64b6fe05cbef4fe9c9a40c0"><td class="memItemLeft" align="right" valign="top"><a id="aece227f9f64b6fe05cbef4fe9c9a40c0"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>tryToFix</b> (QString &amp;io_user_input, <a class="el" href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a> format)</td></tr>
+<tr class="separator:aece227f9f64b6fe05cbef4fe9c9a40c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1cf78be9174827b409376e6df298e905"><td class="memItemLeft" align="right" valign="top"><a id="a1cf78be9174827b409376e6df298e905"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_date.html#a1cf78be9174827b409376e6df298e905">padCentury</a> (QString &amp;io_user_input, <a class="el" href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a> format)</td></tr>
+<tr class="memdesc:a1cf78be9174827b409376e6df298e905"><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:a1cf78be9174827b409376e6df298e905"><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:aadac6b9e484c56381b8a52da79456926"><td class="memItemLeft" align="right" valign="top"><a id="aadac6b9e484c56381b8a52da79456926"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>addSeperators</b> (QString &amp;io_user_input, const <a class="el" href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a> &amp;format)</td></tr>
+<tr class="separator:aadac6b9e484c56381b8a52da79456926"><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>
-<tr class="separator:ae8a544f48462c8159748f98fe4684a56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8d8378c2f02e85235852386a49972306"><td class="memItemLeft" align="right" valign="top"><a id="a8d8378c2f02e85235852386a49972306"></a>
+static QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_date.html#a8d8378c2f02e85235852386a49972306">toString</a> (const QDate &amp;date, <a class="el" href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a> format=OPL::DateFormat::ISODate)</td></tr>
+<tr class="memdesc:a8d8378c2f02e85235852386a49972306"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reimplements QDate::toString to accept OPL::Date::ADateFormat enums. <br /></td></tr>
+<tr class="separator:a8d8378c2f02e85235852386a49972306"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa796e1c6b429ff2324d7392c6267d125"><td class="memItemLeft" align="right" valign="top"><a id="aa796e1c6b429ff2324d7392c6267d125"></a>
 static const QStringList &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getDisplayNames</b> ()</td></tr>
 <tr class="separator:aa796e1c6b429ff2324d7392c6267d125"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a06dc3bd7d9d59a56a1d867bb05d0ecce"><td class="memItemLeft" align="right" valign="top"><a id="a06dc3bd7d9d59a56a1d867bb05d0ecce"></a>
-static const QString&#160;</td><td class="memItemRight" valign="bottom"><b>getFormatString</b> (Opl::Date::ADateFormat format)</td></tr>
-<tr class="separator:a06dc3bd7d9d59a56a1d867bb05d0ecce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2658f9943fa085c31ac5384ac32e8ea"><td class="memItemLeft" align="right" valign="top"><a id="ad2658f9943fa085c31ac5384ac32e8ea"></a>
+static const QString&#160;</td><td class="memItemRight" valign="bottom"><b>getFormatString</b> (<a class="el" href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a> format)</td></tr>
+<tr class="separator:ad2658f9943fa085c31ac5384ac32e8ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66f239a67221f4922f34e1a977c90058"><td class="memItemLeft" align="right" valign="top">static const QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_date.html#a66f239a67221f4922f34e1a977c90058">currentDate</a> ()</td></tr>
+<tr class="memdesc:a66f239a67221f4922f34e1a977c90058"><td class="mdescLeft">&#160;</td><td class="mdescRight">today Returns a string containing the current date in ISO format  <a href="class_a_date.html#a66f239a67221f4922f34e1a977c90058">More...</a><br /></td></tr>
+<tr class="separator:a66f239a67221f4922f34e1a977c90058"><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_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="ad678a1eed52b81d7af4d4e31ffad2c1e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad678a1eed52b81d7af4d4e31ffad2c1e">&#9670;&nbsp;</a></span>parseInput()</h2>
+<a id="a66f239a67221f4922f34e1a977c90058"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a66f239a67221f4922f34e1a977c90058">&#9670;&nbsp;</a></span>currentDate()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">const QString ADate::currentDate </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>today Returns a string containing the current date in ISO format </p>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="a607fa6f1a9d893c5a24e2800c32e69c1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a607fa6f1a9d893c5a24e2800c32e69c1">&#9670;&nbsp;</a></span>parseInput()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -150,7 +181,7 @@ static const QString&#160;</td><td class="memItemRight" valign="bottom"><b>getFo
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype">Opl::Date::ADateFormat&#160;</td>
+          <td class="paramtype"><a class="el" href="namespace_o_p_l.html#af7cd691b5d236d3e846193464e9cba28">OPL::DateFormat</a>&#160;</td>
           <td class="paramname"><em>format</em>&#160;</td>
         </tr>
         <tr>

+ 2 - 0
docs/html/class_a_style-members.html

@@ -92,6 +92,8 @@ $(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>getCurrentStyle</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">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getStyleType</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>

+ 6 - 0
docs/html/class_a_style.html

@@ -112,6 +112,12 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><b>setStyle</b> (
 <tr class="memitem:a4bf787daa36e8fdcf3bf5b18b2b552a6"><td class="memItemLeft" align="right" valign="top"><a id="a4bf787daa36e8fdcf3bf5b18b2b552a6"></a>
 static void&#160;</td><td class="memItemRight" valign="bottom"><b>setStyle</b> (const QPalette &amp;palette)</td></tr>
 <tr class="separator:a4bf787daa36e8fdcf3bf5b18b2b552a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae52529d2db7b7735781423694fd5f2f2"><td class="memItemLeft" align="right" valign="top"><a id="ae52529d2db7b7735781423694fd5f2f2"></a>
+static QString&#160;</td><td class="memItemRight" valign="bottom"><b>getCurrentStyle</b> ()</td></tr>
+<tr class="separator:ae52529d2db7b7735781423694fd5f2f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a368fcdd6855cf72f22e3b074dfda9916"><td class="memItemLeft" align="right" valign="top"><a id="a368fcdd6855cf72f22e3b074dfda9916"></a>
+static StyleType&#160;</td><td class="memItemRight" valign="bottom"><b>getStyleType</b> ()</td></tr>
+<tr class="separator:a368fcdd6855cf72f22e3b074dfda9916"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa9022801d4c3ecd17adcd7e7dd72ee0b"><td class="memItemLeft" align="right" valign="top"><a id="aa9022801d4c3ecd17adcd7e7dd72ee0b"></a>
 static QPalette&#160;</td><td class="memItemRight" valign="bottom"><b>darkPalette</b> ()</td></tr>
 <tr class="separator:aa9022801d4c3ecd17adcd7e7dd72ee0b"><td class="memSeparator" colspan="2">&#160;</td></tr>

+ 1 - 1
docs/html/class_a_translator-members.html

@@ -90,7 +90,7 @@ $(document).ready(function(){initNavTree('class_a_translator.html',''); initResi
 
 <p>This is the complete list of members for <a class="el" href="class_a_translator.html">ATranslator</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="class_a_translator.html#aeb6d08e73db4bf7bdeed793ad8c34d86">installTranslator</a>(Opl::Translations language=Opl::Translations::English)</td><td class="entry"><a class="el" href="class_a_translator.html">ATranslator</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_a_translator.html#a73cf61e2303187b6985e727197b03c69">installTranslator</a>(OPL::Translation language=OPL::Translation::English)</td><td class="entry"><a class="el" href="class_a_translator.html">ATranslator</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->

+ 5 - 5
docs/html/class_a_translator.html

@@ -104,14 +104,14 @@ Inheritance diagram for ATranslator:</div>
 <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:aeb6d08e73db4bf7bdeed793ad8c34d86"><td class="memItemLeft" align="right" valign="top"><a id="aeb6d08e73db4bf7bdeed793ad8c34d86"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_translator.html#aeb6d08e73db4bf7bdeed793ad8c34d86">installTranslator</a> (Opl::Translations language=Opl::Translations::English)</td></tr>
-<tr class="memdesc:aeb6d08e73db4bf7bdeed793ad8c34d86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Installs a QTranslator with the selected language. Defaults to English. Call this function before constructing the Main Window. <br /></td></tr>
-<tr class="separator:aeb6d08e73db4bf7bdeed793ad8c34d86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a73cf61e2303187b6985e727197b03c69"><td class="memItemLeft" align="right" valign="top"><a id="a73cf61e2303187b6985e727197b03c69"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_translator.html#a73cf61e2303187b6985e727197b03c69">installTranslator</a> (<a class="el" href="namespace_o_p_l.html#a5bd3211ed824e4526fd117ffb667aacc">OPL::Translation</a> language=OPL::Translation::English)</td></tr>
+<tr class="memdesc:a73cf61e2303187b6985e727197b03c69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Installs a QTranslator with the selected language. Defaults to English. Call this function before constructing the Main Window. <br /></td></tr>
+<tr class="separator:a73cf61e2303187b6985e727197b03c69"><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_translator.html" title="The ATranslator class is responsible for managing the QTranslator used for providing localisations....">ATranslator</a> class is 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. </p>
-<p>The translation source files (.ts) are located at /l10n and once compiled, the translation binaries are at <code>$BINDIR/l10n/</code> and can be accessed via <code>Opl::L10N_FILES</code>.</p>
+<p>The translation source files (.ts) are located at /l10n and once compiled, the translation binaries are at <code>$BINDIR/l10n/</code> and can be accessed via <code>OPL::L10N_FILES</code>.</p>
 <p>When a QTranslator is installed, the UI is updated through <a href="https://doc.qt.io/qt-5/qwidget.html#changeEvent">QWidget::changeEvent()</a>. </p>
 </div><hr/>The documentation for this class was generated from the following files:<ul>
 <li>src/classes/<a class="el" href="atranslator_8h_source.html">atranslator.h</a></li>

+ 1 - 1
docs/html/class_aircraft_widget.html

@@ -138,7 +138,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <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 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>
+<p>Note: The ATailEntry 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>
 <li>src/gui/widgets/aircraftwidget.cpp</li>

+ 104 - 0
docs/html/class_airport_widget-members.html

@@ -0,0 +1,104 @@
+<!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_airport_widget.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">AirportWidget Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_airport_widget.html">AirportWidget</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AirportWidget</b>(QWidget *parent=nullptr) (defined in <a class="el" href="class_airport_widget.html">AirportWidget</a>)</td><td class="entry"><a class="el" href="class_airport_widget.html">AirportWidget</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~AirportWidget</b>() (defined in <a class="el" href="class_airport_widget.html">AirportWidget</a>)</td><td class="entry"><a class="el" href="class_airport_widget.html">AirportWidget</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>

+ 120 - 0
docs/html/class_airport_widget.html

@@ -0,0 +1,120 @@
+<!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: AirportWidget 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_airport_widget.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="class_airport_widget-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">AirportWidget Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for AirportWidget:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_airport_widget.png" alt=""/>
+ </div></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:afe0624a8f03813501d6b0c07fde380fb"><td class="memItemLeft" align="right" valign="top"><a id="afe0624a8f03813501d6b0c07fde380fb"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>AirportWidget</b> (QWidget *parent=nullptr)</td></tr>
+<tr class="separator:afe0624a8f03813501d6b0c07fde380fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/gui/widgets/<a class="el" href="airportwidget_8h_source.html">airportwidget.h</a></li>
+<li>src/gui/widgets/airportwidget.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_airport_widget.html">AirportWidget</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>

+ 5 - 0
docs/html/class_airport_widget.js

@@ -0,0 +1,5 @@
+var class_airport_widget =
+[
+    [ "AirportWidget", "class_airport_widget.html#afe0624a8f03813501d6b0c07fde380fb", null ],
+    [ "~AirportWidget", "class_airport_widget.html#a5cf229cfbf3f967e24bb083dca980452", null ]
+];

BIN
docs/html/class_airport_widget.png


+ 1 - 1
docs/html/class_home_widget.html

@@ -125,7 +125,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>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. </p>
-<p>The <a class="el" href="class_home_widget.html" title="The HomeWidget is the welcome screen of the application.">HomeWidget</a> shows total flight times and a user-configurable set of currencies (expiry dates for licenses, ratings, medicals,...). Most data is provided by the AStat class and the <a class="el" href="struct_a_currency_entry.html">ACurrencyEntry</a> class. Notifications are provided by means of pop-up warnings on application start via QMessageBox and the INFO/WARN interfaces, as well as by colouring the labels according to the warning level (orange/red). </p>
+<p>The <a class="el" href="class_home_widget.html" title="The HomeWidget is the welcome screen of the application.">HomeWidget</a> shows total flight times and a user-configurable set of currencies (expiry dates for licenses, ratings, medicals,...). Most data is provided by the AStat class and the ACurrencyEntry class. Notifications are provided by means of pop-up warnings on application start via QMessageBox and the INFO/WARN interfaces, as well as by colouring the labels according to the warning level (orange/red). </p>
 </div><hr/>The documentation for this class was generated from the following files:<ul>
 <li>src/gui/widgets/<a class="el" href="homewidget_8h_source.html">homewidget.h</a></li>
 <li>src/gui/widgets/homewidget.cpp</li>

+ 1 - 1
docs/html/class_logbook_widget-members.html

@@ -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>(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"><td class="entry"><b>LogbookWidget</b>(OPL::DbCompletionData &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>

+ 3 - 3
docs/html/class_logbook_widget.html

@@ -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: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>
+<tr class="memitem:abbca36fc088a36499b199fa8424e2a74"><td class="memItemLeft" align="right" valign="top"><a id="abbca36fc088a36499b199fa8424e2a74"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>LogbookWidget</b> (<a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a> &amp;completion_data, QWidget *parent=nullptr)</td></tr>
+<tr class="separator:abbca36fc088a36499b199fa8424e2a74"><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>

+ 1 - 1
docs/html/class_logbook_widget.js

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

+ 104 - 0
docs/html/class_new_airport_dialog-members.html

@@ -0,0 +1,104 @@
+<!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_new_airport_dialog.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">NewAirportDialog Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_new_airport_dialog.html">NewAirportDialog</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NewAirportDialog</b>(QWidget *parent=nullptr) (defined in <a class="el" href="class_new_airport_dialog.html">NewAirportDialog</a>)</td><td class="entry"><a class="el" href="class_new_airport_dialog.html">NewAirportDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~NewAirportDialog</b>() (defined in <a class="el" href="class_new_airport_dialog.html">NewAirportDialog</a>)</td><td class="entry"><a class="el" href="class_new_airport_dialog.html">NewAirportDialog</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>

+ 120 - 0
docs/html/class_new_airport_dialog.html

@@ -0,0 +1,120 @@
+<!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: NewAirportDialog 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_new_airport_dialog.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="class_new_airport_dialog-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">NewAirportDialog Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for NewAirportDialog:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_new_airport_dialog.png" alt=""/>
+ </div></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:a1aacafd0c37b983211814d7e555fba2e"><td class="memItemLeft" align="right" valign="top"><a id="a1aacafd0c37b983211814d7e555fba2e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>NewAirportDialog</b> (QWidget *parent=nullptr)</td></tr>
+<tr class="separator:a1aacafd0c37b983211814d7e555fba2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/gui/dialogues/<a class="el" href="newairportdialog_8h_source.html">newairportdialog.h</a></li>
+<li>src/gui/dialogues/newairportdialog.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_new_airport_dialog.html">NewAirportDialog</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>

+ 5 - 0
docs/html/class_new_airport_dialog.js

@@ -0,0 +1,5 @@
+var class_new_airport_dialog =
+[
+    [ "NewAirportDialog", "class_new_airport_dialog.html#a1aacafd0c37b983211814d7e555fba2e", null ],
+    [ "~NewAirportDialog", "class_new_airport_dialog.html#a1b328c984cca329b4a8d9d67c107adbe", null ]
+];

BIN
docs/html/class_new_airport_dialog.png


+ 2 - 2
docs/html/class_new_flight_dialog-members.html

@@ -91,8 +91,8 @@ $(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#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><td class="entry"><a class="el" href="class_new_flight_dialog.html#abb96717e143dac3ea5f3d7f11fc30a5b">NewFlightDialog</a>(OPL::DbCompletionData &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#a6743b82918ae8af325723c86bdf31688">NewFlightDialog</a>(OPL::DbCompletionData &amp;completion_data, 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"><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 -->

+ 14 - 14
docs/html/class_new_flight_dialog.html

@@ -105,12 +105,12 @@ 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: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>
+<tr class="memitem:abb96717e143dac3ea5f3d7f11fc30a5b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_new_flight_dialog.html#abb96717e143dac3ea5f3d7f11fc30a5b">NewFlightDialog</a> (<a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a> &amp;completion_data, QWidget *parent=nullptr)</td></tr>
+<tr class="memdesc:abb96717e143dac3ea5f3d7f11fc30a5b"><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#abb96717e143dac3ea5f3d7f11fc30a5b">More...</a><br /></td></tr>
+<tr class="separator:abb96717e143dac3ea5f3d7f11fc30a5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6743b82918ae8af325723c86bdf31688"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_new_flight_dialog.html#a6743b82918ae8af325723c86bdf31688">NewFlightDialog</a> (<a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a> &amp;completion_data, int row_id, QWidget *parent=nullptr)</td></tr>
+<tr class="memdesc:a6743b82918ae8af325723c86bdf31688"><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#a6743b82918ae8af325723c86bdf31688">More...</a><br /></td></tr>
+<tr class="separator:a6743b82918ae8af325723c86bdf31688"><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>
@@ -124,10 +124,10 @@ Protected Member Functions</h2></td></tr>
 <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 QHashs used for mapping user input to data...">ACompletionData</a> class is used to provide QHashs 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>
+<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 Database::commit() </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>
+<a id="abb96717e143dac3ea5f3d7f11fc30a5b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abb96717e143dac3ea5f3d7f11fc30a5b">&#9670;&nbsp;</a></span>NewFlightDialog() <span class="overload">[1/2]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -138,7 +138,7 @@ Protected 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="paramtype"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a> &amp;&#160;</td>
           <td class="paramname"><em>completion_data</em>, </td>
         </tr>
         <tr>
@@ -170,8 +170,8 @@ Protected Member Functions</h2></td></tr>
 
 </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>
+<a id="a6743b82918ae8af325723c86bdf31688"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6743b82918ae8af325723c86bdf31688">&#9670;&nbsp;</a></span>NewFlightDialog() <span class="overload">[2/2]</span></h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -182,13 +182,13 @@ Protected 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="paramtype"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</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="paramtype">int&#160;</td>
           <td class="paramname"><em>row_id</em>, </td>
         </tr>
         <tr>

+ 2 - 2
docs/html/class_new_flight_dialog.js

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

+ 105 - 0
docs/html/class_new_sim_dialog-members.html

@@ -0,0 +1,105 @@
+<!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_new_sim_dialog.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">NewSimDialog Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_new_sim_dialog.html">NewSimDialog</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="class_new_sim_dialog.html#a657c5a974303a1d7b8ad14a6085f488f">NewSimDialog</a>(QWidget *parent=nullptr)</td><td class="entry"><a class="el" href="class_new_sim_dialog.html">NewSimDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_new_sim_dialog.html#a1657b57c5b212319ad1db8a5aea44930">NewSimDialog</a>(int row_id, QWidget *parent=nullptr)</td><td class="entry"><a class="el" href="class_new_sim_dialog.html">NewSimDialog</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~NewSimDialog</b>() (defined in <a class="el" href="class_new_sim_dialog.html">NewSimDialog</a>)</td><td class="entry"><a class="el" href="class_new_sim_dialog.html">NewSimDialog</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>

+ 178 - 0
docs/html/class_new_sim_dialog.html

@@ -0,0 +1,178 @@
+<!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: NewSimDialog 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_new_sim_dialog.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="class_new_sim_dialog-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">NewSimDialog Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The <a class="el" href="class_new_sim_dialog.html" title="The NewSimDialog class enables adding a new Simulator Session to the database or editing an existing ...">NewSimDialog</a> class enables adding a new Simulator Session to the database or editing an existing one.  
+ <a href="class_new_sim_dialog.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="newsimdialog_8h_source.html">newsimdialog.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for NewSimDialog:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_new_sim_dialog.png" alt=""/>
+ </div></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:a657c5a974303a1d7b8ad14a6085f488f"><td class="memItemLeft" align="right" valign="top"><a id="a657c5a974303a1d7b8ad14a6085f488f"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_new_sim_dialog.html#a657c5a974303a1d7b8ad14a6085f488f">NewSimDialog</a> (QWidget *parent=nullptr)</td></tr>
+<tr class="memdesc:a657c5a974303a1d7b8ad14a6085f488f"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a <a class="el" href="class_new_sim_dialog.html" title="The NewSimDialog class enables adding a new Simulator Session to the database or editing an existing ...">NewSimDialog</a> to add a new Simulator Entry to the database <br /></td></tr>
+<tr class="separator:a657c5a974303a1d7b8ad14a6085f488f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1657b57c5b212319ad1db8a5aea44930"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_new_sim_dialog.html#a1657b57c5b212319ad1db8a5aea44930">NewSimDialog</a> (int row_id, QWidget *parent=nullptr)</td></tr>
+<tr class="memdesc:a1657b57c5b212319ad1db8a5aea44930"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a <a class="el" href="class_new_sim_dialog.html" title="The NewSimDialog class enables adding a new Simulator Session to the database or editing an existing ...">NewSimDialog</a> to edit an existing Simulator Entry  <a href="class_new_sim_dialog.html#a1657b57c5b212319ad1db8a5aea44930">More...</a><br /></td></tr>
+<tr class="separator:a1657b57c5b212319ad1db8a5aea44930"><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_sim_dialog.html" title="The NewSimDialog class enables adding a new Simulator Session to the database or editing an existing ...">NewSimDialog</a> class enables adding a new Simulator Session to the database or editing an existing one. </p>
+<p>The <a class="el" href="class_new_sim_dialog.html" title="The NewSimDialog class enables adding a new Simulator Session to the database or editing an existing ...">NewSimDialog</a> offers two constructors, one is used to create a new Simulator 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 aircraft type field. </p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="a1657b57c5b212319ad1db8a5aea44930"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1657b57c5b212319ad1db8a5aea44930">&#9670;&nbsp;</a></span>NewSimDialog()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">NewSimDialog::NewSimDialog </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>create a <a class="el" href="class_new_sim_dialog.html" title="The NewSimDialog class enables adding a new Simulator Session to the database or editing an existing ...">NewSimDialog</a> to edit an existing Simulator Entry </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">row_id</td><td>of the entry to be edited </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="newsimdialog_8h_source.html">newsimdialog.h</a></li>
+<li>src/gui/dialogues/newsimdialog.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_new_sim_dialog.html">NewSimDialog</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>

+ 6 - 0
docs/html/class_new_sim_dialog.js

@@ -0,0 +1,6 @@
+var class_new_sim_dialog =
+[
+    [ "NewSimDialog", "class_new_sim_dialog.html#a657c5a974303a1d7b8ad14a6085f488f", null ],
+    [ "NewSimDialog", "class_new_sim_dialog.html#a1657b57c5b212319ad1db8a5aea44930", null ],
+    [ "~NewSimDialog", "class_new_sim_dialog.html#a9307de0e99bf25346fce272e08aa3b4e", null ]
+];

BIN
docs/html/class_new_sim_dialog.png


+ 2 - 2
docs/html/class_new_tail_dialog.html

@@ -105,7 +105,7 @@ Inheritance diagram for NewTailDialog:</div>
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></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="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 ATailEntry 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>
@@ -153,7 +153,7 @@ Public Member Functions</h2></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>
+<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 ATailEntry 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>

+ 105 - 0
docs/html/class_o_p_l_1_1_a_notification_handler-members.html

@@ -0,0 +1,105 @@
+<!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_o_p_l_1_1_a_notification_handler.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">OPL::ANotificationHandler Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_o_p_l_1_1_a_notification_handler.html">OPL::ANotificationHandler</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>crit</b>(const QString msg, QWidget *parent=nullptr) (defined in <a class="el" href="class_o_p_l_1_1_a_notification_handler.html">OPL::ANotificationHandler</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_a_notification_handler.html">OPL::ANotificationHandler</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>info</b>(const QString msg, QWidget *parent=nullptr) (defined in <a class="el" href="class_o_p_l_1_1_a_notification_handler.html">OPL::ANotificationHandler</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_a_notification_handler.html">OPL::ANotificationHandler</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>warn</b>(const QString msg, QWidget *parent=nullptr) (defined in <a class="el" href="class_o_p_l_1_1_a_notification_handler.html">OPL::ANotificationHandler</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_a_notification_handler.html">OPL::ANotificationHandler</a></td><td class="entry"><span class="mlabel">inline</span><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="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>

+ 126 - 0
docs/html/class_o_p_l_1_1_a_notification_handler.html

@@ -0,0 +1,126 @@
+<!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: OPL::ANotificationHandler 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_o_p_l_1_1_a_notification_handler.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-static-methods">Static Public Member Functions</a> &#124;
+<a href="class_o_p_l_1_1_a_notification_handler-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">OPL::ANotificationHandler Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The <a class="el" href="class_o_p_l_1_1_a_notification_handler.html" title="The ANotificationHandler class handles displaying of user-directed messages. It displays information ...">ANotificationHandler</a> class 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.  
+ <a href="class_o_p_l_1_1_a_notification_handler.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="opl_8h_source.html">opl.h</a>&gt;</code></p>
+<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:a92443f9f3e7ed1433c255db200e1fadd"><td class="memItemLeft" align="right" valign="top"><a id="a92443f9f3e7ed1433c255db200e1fadd"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>info</b> (const QString msg, QWidget *parent=nullptr)</td></tr>
+<tr class="separator:a92443f9f3e7ed1433c255db200e1fadd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afafa969a35bd48791033d79531e6dc5e"><td class="memItemLeft" align="right" valign="top"><a id="afafa969a35bd48791033d79531e6dc5e"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>warn</b> (const QString msg, QWidget *parent=nullptr)</td></tr>
+<tr class="separator:afafa969a35bd48791033d79531e6dc5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8683fa5934729e4f3205941af3ee27a"><td class="memItemLeft" align="right" valign="top"><a id="ab8683fa5934729e4f3205941af3ee27a"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>crit</b> (const QString msg, QWidget *parent=nullptr)</td></tr>
+<tr class="separator:ab8683fa5934729e4f3205941af3ee27a"><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_o_p_l_1_1_a_notification_handler.html" title="The ANotificationHandler class handles displaying of user-directed messages. It displays information ...">ANotificationHandler</a> class 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. </p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+<li>src/<a class="el" href="opl_8h_source.html">opl.h</a></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="namespace_o_p_l.html">OPL</a></li><li class="navelem"><a class="el" href="class_o_p_l_1_1_a_notification_handler.html">ANotificationHandler</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>

+ 120 - 0
docs/html/class_o_p_l_1_1_aircraft_entry-members.html

@@ -0,0 +1,120 @@
+<!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_o_p_l_1_1_aircraft_entry.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">OPL::AircraftEntry Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_o_p_l_1_1_aircraft_entry.html">OPL::AircraftEntry</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AircraftEntry</b>() (defined in <a class="el" href="class_o_p_l_1_1_aircraft_entry.html">OPL::AircraftEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_aircraft_entry.html">OPL::AircraftEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>AircraftEntry</b>(const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_aircraft_entry.html">OPL::AircraftEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_aircraft_entry.html">OPL::AircraftEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>AircraftEntry</b>(int row_id, const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_aircraft_entry.html">OPL::AircraftEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_aircraft_entry.html">OPL::AircraftEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getData</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getRowId</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getTableName</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>hasData</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>isValid</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator QString</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>() (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id, const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(OPL::DbTable table_name) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setData</b>(const RowData_T &amp;value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setRowId</b>(int value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>valid</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</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="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>

+ 173 - 0
docs/html/class_o_p_l_1_1_aircraft_entry.html

@@ -0,0 +1,173 @@
+<!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: OPL::AircraftEntry 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_o_p_l_1_1_aircraft_entry.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="class_o_p_l_1_1_aircraft_entry-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">OPL::AircraftEntry Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for OPL::AircraftEntry:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_o_p_l_1_1_aircraft_entry.png" usemap="#OPL::AircraftEntry_map" alt=""/>
+  <map id="OPL::AircraftEntry_map" name="OPL::AircraftEntry_map">
+<area href="class_o_p_l_1_1_row.html" title="The Row class provides an interface for retreiving and submitting entries from the database...." alt="OPL::Row" shape="rect" coords="0,0,116,24"/>
+  </map>
+</div></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:adde4940405a7596239d8e629e2fc100a"><td class="memItemLeft" align="right" valign="top"><a id="adde4940405a7596239d8e629e2fc100a"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>AircraftEntry</b> (const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:adde4940405a7596239d8e629e2fc100a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4007dea5b0d95b3a44c7e38edfac715d"><td class="memItemLeft" align="right" valign="top"><a id="a4007dea5b0d95b3a44c7e38edfac715d"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>AircraftEntry</b> (int row_id, const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a4007dea5b0d95b3a44c7e38edfac715d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_o_p_l_1_1_row"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_o_p_l_1_1_row')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td></tr>
+<tr class="memitem:a003f47f80870a64052f9f800aa533c6e inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a003f47f80870a64052f9f800aa533c6e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id, const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a003f47f80870a64052f9f800aa533c6e inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7de776b1e5ec66ae704735027f7f9838 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a7de776b1e5ec66ae704735027f7f9838"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id)</td></tr>
+<tr class="separator:a7de776b1e5ec66ae704735027f7f9838 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c590facaf2f2c45086b756c67ab2415 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a9c590facaf2f2c45086b756c67ab2415"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name)</td></tr>
+<tr class="separator:a9c590facaf2f2c45086b756c67ab2415 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a043692e09011cacbcaeb0e88c1802fd1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a043692e09011cacbcaeb0e88c1802fd1"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a043692e09011cacbcaeb0e88c1802fd1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e97ce33358fb9a011441341646bd46b inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a2e97ce33358fb9a011441341646bd46b"></a>
+<a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a2e97ce33358fb9a011441341646bd46b inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799fbf35c18c0d8dc824d6d1a11902c3 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a799fbf35c18c0d8dc824d6d1a11902c3"></a>
+RowData_T&#160;</td><td class="memItemRight" valign="bottom"><b>getData</b> () const</td></tr>
+<tr class="separator:a799fbf35c18c0d8dc824d6d1a11902c3 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3ae77fc913896d00e6b947254b06ce9 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="ad3ae77fc913896d00e6b947254b06ce9"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setData</b> (const RowData_T &amp;value)</td></tr>
+<tr class="separator:ad3ae77fc913896d00e6b947254b06ce9 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa70580fe157b6e0a408fc975e833e85e inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa70580fe157b6e0a408fc975e833e85e"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>getRowId</b> () const</td></tr>
+<tr class="separator:aa70580fe157b6e0a408fc975e833e85e inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa029e0507bbf31d2b190eaf218fb6a2c inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa029e0507bbf31d2b190eaf218fb6a2c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setRowId</b> (int value)</td></tr>
+<tr class="separator:aa029e0507bbf31d2b190eaf218fb6a2c inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab56a4e790ecf59dfbe04e9302d995884 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="ab56a4e790ecf59dfbe04e9302d995884"></a>
+<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getTableName</b> () const</td></tr>
+<tr class="separator:ab56a4e790ecf59dfbe04e9302d995884 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2edff39e0fc3f65181e8c5c9227c7a1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa2edff39e0fc3f65181e8c5c9227c7a1"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>isValid</b> () const</td></tr>
+<tr class="separator:aa2edff39e0fc3f65181e8c5c9227c7a1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f39ccb98dd4ad8a9ee3d72c65144e80 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a2f39ccb98dd4ad8a9ee3d72c65144e80"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>operator QString</b> () const</td></tr>
+<tr class="separator:a2f39ccb98dd4ad8a9ee3d72c65144e80 inherit pub_methods_class_o_p_l_1_1_row"><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>
+<tr class="inherit_header pro_attribs_class_o_p_l_1_1_row"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_o_p_l_1_1_row')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td></tr>
+<tr class="memitem:af03987eb9f44d2feb3a9f155ed1f2cce inherit pro_attribs_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="af03987eb9f44d2feb3a9f155ed1f2cce"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>hasData</b></td></tr>
+<tr class="separator:af03987eb9f44d2feb3a9f155ed1f2cce inherit pro_attribs_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4adb1dca9ed05fb35e02c6bd464411aa inherit pro_attribs_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a4adb1dca9ed05fb35e02c6bd464411aa"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>valid</b> = true</td></tr>
+<tr class="separator:a4adb1dca9ed05fb35e02c6bd464411aa inherit pro_attribs_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/database/<a class="el" href="row_8h_source.html">row.h</a></li>
+<li>src/database/row.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="namespace_o_p_l.html">OPL</a></li><li class="navelem"><a class="el" href="class_o_p_l_1_1_aircraft_entry.html">AircraftEntry</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>

+ 6 - 0
docs/html/class_o_p_l_1_1_aircraft_entry.js

@@ -0,0 +1,6 @@
+var class_o_p_l_1_1_aircraft_entry =
+[
+    [ "AircraftEntry", "class_o_p_l_1_1_aircraft_entry.html#a985a2a62cfce24631e8e51ee30bf4a49", null ],
+    [ "AircraftEntry", "class_o_p_l_1_1_aircraft_entry.html#adde4940405a7596239d8e629e2fc100a", null ],
+    [ "AircraftEntry", "class_o_p_l_1_1_aircraft_entry.html#a4007dea5b0d95b3a44c7e38edfac715d", null ]
+];

BIN
docs/html/class_o_p_l_1_1_aircraft_entry.png


+ 120 - 0
docs/html/class_o_p_l_1_1_currency_entry-members.html

@@ -0,0 +1,120 @@
+<!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_o_p_l_1_1_currency_entry.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">OPL::CurrencyEntry Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_o_p_l_1_1_currency_entry.html">OPL::CurrencyEntry</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CurrencyEntry</b>() (defined in <a class="el" href="class_o_p_l_1_1_currency_entry.html">OPL::CurrencyEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_currency_entry.html">OPL::CurrencyEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>CurrencyEntry</b>(const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_currency_entry.html">OPL::CurrencyEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_currency_entry.html">OPL::CurrencyEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CurrencyEntry</b>(int row_id, const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_currency_entry.html">OPL::CurrencyEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_currency_entry.html">OPL::CurrencyEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getData</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getRowId</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getTableName</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>hasData</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>isValid</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator QString</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>() (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id, const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(OPL::DbTable table_name) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setData</b>(const RowData_T &amp;value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setRowId</b>(int value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>valid</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</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="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>

+ 173 - 0
docs/html/class_o_p_l_1_1_currency_entry.html

@@ -0,0 +1,173 @@
+<!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: OPL::CurrencyEntry 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_o_p_l_1_1_currency_entry.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="class_o_p_l_1_1_currency_entry-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">OPL::CurrencyEntry Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for OPL::CurrencyEntry:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_o_p_l_1_1_currency_entry.png" usemap="#OPL::CurrencyEntry_map" alt=""/>
+  <map id="OPL::CurrencyEntry_map" name="OPL::CurrencyEntry_map">
+<area href="class_o_p_l_1_1_row.html" title="The Row class provides an interface for retreiving and submitting entries from the database...." alt="OPL::Row" shape="rect" coords="0,0,127,24"/>
+  </map>
+</div></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:afbf1d454814cd9d202bc2a1d769d9102"><td class="memItemLeft" align="right" valign="top"><a id="afbf1d454814cd9d202bc2a1d769d9102"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CurrencyEntry</b> (const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:afbf1d454814cd9d202bc2a1d769d9102"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab169d5c0bd9dd90cb7ca86329aec11a2"><td class="memItemLeft" align="right" valign="top"><a id="ab169d5c0bd9dd90cb7ca86329aec11a2"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CurrencyEntry</b> (int row_id, const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:ab169d5c0bd9dd90cb7ca86329aec11a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_o_p_l_1_1_row"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_o_p_l_1_1_row')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td></tr>
+<tr class="memitem:a003f47f80870a64052f9f800aa533c6e inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a003f47f80870a64052f9f800aa533c6e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id, const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a003f47f80870a64052f9f800aa533c6e inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7de776b1e5ec66ae704735027f7f9838 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a7de776b1e5ec66ae704735027f7f9838"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id)</td></tr>
+<tr class="separator:a7de776b1e5ec66ae704735027f7f9838 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c590facaf2f2c45086b756c67ab2415 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a9c590facaf2f2c45086b756c67ab2415"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name)</td></tr>
+<tr class="separator:a9c590facaf2f2c45086b756c67ab2415 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a043692e09011cacbcaeb0e88c1802fd1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a043692e09011cacbcaeb0e88c1802fd1"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a043692e09011cacbcaeb0e88c1802fd1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e97ce33358fb9a011441341646bd46b inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a2e97ce33358fb9a011441341646bd46b"></a>
+<a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a2e97ce33358fb9a011441341646bd46b inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799fbf35c18c0d8dc824d6d1a11902c3 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a799fbf35c18c0d8dc824d6d1a11902c3"></a>
+RowData_T&#160;</td><td class="memItemRight" valign="bottom"><b>getData</b> () const</td></tr>
+<tr class="separator:a799fbf35c18c0d8dc824d6d1a11902c3 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3ae77fc913896d00e6b947254b06ce9 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="ad3ae77fc913896d00e6b947254b06ce9"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setData</b> (const RowData_T &amp;value)</td></tr>
+<tr class="separator:ad3ae77fc913896d00e6b947254b06ce9 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa70580fe157b6e0a408fc975e833e85e inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa70580fe157b6e0a408fc975e833e85e"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>getRowId</b> () const</td></tr>
+<tr class="separator:aa70580fe157b6e0a408fc975e833e85e inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa029e0507bbf31d2b190eaf218fb6a2c inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa029e0507bbf31d2b190eaf218fb6a2c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setRowId</b> (int value)</td></tr>
+<tr class="separator:aa029e0507bbf31d2b190eaf218fb6a2c inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab56a4e790ecf59dfbe04e9302d995884 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="ab56a4e790ecf59dfbe04e9302d995884"></a>
+<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getTableName</b> () const</td></tr>
+<tr class="separator:ab56a4e790ecf59dfbe04e9302d995884 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2edff39e0fc3f65181e8c5c9227c7a1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa2edff39e0fc3f65181e8c5c9227c7a1"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>isValid</b> () const</td></tr>
+<tr class="separator:aa2edff39e0fc3f65181e8c5c9227c7a1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f39ccb98dd4ad8a9ee3d72c65144e80 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a2f39ccb98dd4ad8a9ee3d72c65144e80"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>operator QString</b> () const</td></tr>
+<tr class="separator:a2f39ccb98dd4ad8a9ee3d72c65144e80 inherit pub_methods_class_o_p_l_1_1_row"><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>
+<tr class="inherit_header pro_attribs_class_o_p_l_1_1_row"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_o_p_l_1_1_row')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td></tr>
+<tr class="memitem:af03987eb9f44d2feb3a9f155ed1f2cce inherit pro_attribs_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="af03987eb9f44d2feb3a9f155ed1f2cce"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>hasData</b></td></tr>
+<tr class="separator:af03987eb9f44d2feb3a9f155ed1f2cce inherit pro_attribs_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4adb1dca9ed05fb35e02c6bd464411aa inherit pro_attribs_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a4adb1dca9ed05fb35e02c6bd464411aa"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>valid</b> = true</td></tr>
+<tr class="separator:a4adb1dca9ed05fb35e02c6bd464411aa inherit pro_attribs_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/database/<a class="el" href="row_8h_source.html">row.h</a></li>
+<li>src/database/row.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="namespace_o_p_l.html">OPL</a></li><li class="navelem"><a class="el" href="class_o_p_l_1_1_currency_entry.html">CurrencyEntry</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>

+ 6 - 0
docs/html/class_o_p_l_1_1_currency_entry.js

@@ -0,0 +1,6 @@
+var class_o_p_l_1_1_currency_entry =
+[
+    [ "CurrencyEntry", "class_o_p_l_1_1_currency_entry.html#af41553c657311af7a003625a4cb87019", null ],
+    [ "CurrencyEntry", "class_o_p_l_1_1_currency_entry.html#afbf1d454814cd9d202bc2a1d769d9102", null ],
+    [ "CurrencyEntry", "class_o_p_l_1_1_currency_entry.html#ab169d5c0bd9dd90cb7ca86329aec11a2", null ]
+];

BIN
docs/html/class_o_p_l_1_1_currency_entry.png


+ 145 - 0
docs/html/class_o_p_l_1_1_database-members.html

@@ -0,0 +1,145 @@
+<!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_o_p_l_1_1_database.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">OPL::Database Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#aa342b9d852daecb85fb77ec2f19234a5">clear</a>()</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#ad9aab9c8bc43009bbc2595409004e20b">commit</a>(const OPL::Row &amp;row)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#aa83b4d2d9cc2f9e24aaae6a25df829f2">commit</a>(const QJsonArray &amp;json_arr, const OPL::DbTable table)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a15dbcef162931776a0bdf6610fdd4cde">connect</a>()</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#acc87b25e9ab6a6a6dce1883821292882">connectionReset</a>()</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"><span class="mlabel">signal</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a40cdc1cce81919c42f91e2e16a63df4a">createBackup</a>(const QString &amp;dest_file)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a92c22cb18c5a23858edd38e0ed9d7117">createSchema</a>()</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#abf45cf7ba5d25bb5d8f8aac1105bb728">customQuery</a>(QString statement, int return_values)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Database</b>(const Database &amp;)=delete (defined in <a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a233943791f4bca3aa083f46562eb6d50">database</a>()</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>databaseFile</b> (defined in <a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#ab0dbab5f0a97745f8a86b1703abcae38">dataBaseUpdated</a>()</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"><span class="mlabel">signal</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#aceb1bb497d30d413f87d6541716a873b">disconnect</a>()</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a69f4a4fa1e496e86224e87612edba548">exists</a>(const OPL::Row &amp;row)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a84b40aff7668c0782ae25a8d07f60922">getAircraftEntry</a>(int row_id)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#affb40bf4566d45bdf2a68203b53be4db">getCurrencyEntry</a>(int row_id)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a568d32e69f438bc165a2a9c1477eaaed">getFlightEntry</a>(int row_id)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a4eb45d764952d44a3c45f16aea2e26d7">getForeignKeyConstraints</a>(int foreign_row_id, OPL::DbTable table)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#aebf3371c149463c49e818999c427ce6a">getLastEntry</a>(OPL::DbTable table)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a2834aeb5c47bde300c898021eb9bbc48">getPilotEntry</a>(int row_id)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#ae38dc30cb955ffc0e3235e51104dd912">getRow</a>(const OPL::DbTable table, const int row_id)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a3657d55721b0d3599ce6df55120017de">getRowData</a>(const OPL::DbTable table, const int row_id)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a9e7e61e354d4438dab48a39fb6de1777">getSimEntry</a>(int row_id)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a8145a21f5980cb3c55778fbe94ef52a0">getTable</a>(OPL::DbTable table)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#ac5b344097eeb2579da9bcfc7941d074c">getTableColumns</a>(OPL::DbTable table_name) const</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a9d09969956b08b86bf83277872354247">getTableNames</a>() const</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a95340bb482ca788e748a597d013424ea">getTailEntry</a>(int row_id)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#ad7cd939e58af8f1fd46f835ee34567e3">getTemplateTables</a>() const</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a0b75d74d59d49c5da3610666de0c2d85">getUserDataState</a>() const</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#ac0db9f1a1817bb62302b17a22327bfeb">getUserTables</a>() const</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a4be4811cb27c836070a6b8c09dee6a3b">importTemplateData</a>(bool use_local_ressources)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#aa3bbfc0dd7ff7bd34c2c1c847f539168">insert</a>(const OPL::Row &amp;new_row)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</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_o_p_l_1_1_database.html">OPL::Database</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#aa5b783822a603bdcfd1d8c93ba0af34b">lastError</a></td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const Database &amp;)=delete (defined in <a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a29362ea9a2b1805d42e5ef7823c42e50">remove</a>(const OPL::Row &amp;row)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a6c2ebefc6cf6d948d64dfe71bec08540">removeMany</a>(OPL::DbTable table, const QList&lt; int &gt; &amp;row_id_list)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a63af56a9fbd8cd0290494cc28d327824">resetUserData</a>()</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a77003350c44e7c6e1c8c4316cc324496">restoreBackup</a>(const QString &amp;backup_file)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a0b20bec0f8bef0277325492a1dee33ef">sqliteVersion</a>() const</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a4938319e593b9e5d5a334f794301d873">update</a>(const OPL::Row &amp;updated_row)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a55a01dac1e447f7c41474a39d8f621ef">updateLayout</a>()</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html#a6df6e6b98679011f747862ca48a3498c">version</a>() const</td><td class="entry"><a class="el" href="class_o_p_l_1_1_database.html">OPL::Database</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>

+ 708 - 0
docs/html/class_o_p_l_1_1_database.html

@@ -0,0 +1,708 @@
+<!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: OPL::Database 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_o_p_l_1_1_database.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="#signals">Signals</a> &#124;
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="class_o_p_l_1_1_database-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">OPL::Database Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The DB class encapsulates the SQL database by providing fast access to hot database data.  
+ <a href="class_o_p_l_1_1_database.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="database_8h_source.html">database.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for OPL::Database:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_o_p_l_1_1_database.png" alt=""/>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="signals"></a>
+Signals</h2></td></tr>
+<tr class="memitem:ab0dbab5f0a97745f8a86b1703abcae38"><td class="memItemLeft" align="right" valign="top"><a id="ab0dbab5f0a97745f8a86b1703abcae38"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#ab0dbab5f0a97745f8a86b1703abcae38">dataBaseUpdated</a> ()</td></tr>
+<tr class="memdesc:ab0dbab5f0a97745f8a86b1703abcae38"><td class="mdescLeft">&#160;</td><td class="mdescRight">updated is emitted whenever the database contents have been updated. This can be either a commit, update or remove. This signal should be used to trigger an update to the models of the views displaying database contents in the user interface so that a user is always presented with up-to-date information. <br /></td></tr>
+<tr class="separator:ab0dbab5f0a97745f8a86b1703abcae38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acc87b25e9ab6a6a6dce1883821292882"><td class="memItemLeft" align="right" valign="top"><a id="acc87b25e9ab6a6a6dce1883821292882"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#acc87b25e9ab6a6a6dce1883821292882">connectionReset</a> ()</td></tr>
+<tr class="memdesc:acc87b25e9ab6a6a6dce1883821292882"><td class="mdescLeft">&#160;</td><td class="mdescRight">connectionReset is emitted whenever the database connection is reset, for example when creating or restoring a backup. <br /></td></tr>
+<tr class="separator:acc87b25e9ab6a6a6dce1883821292882"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</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:a040073e7620277891f4ab4de81bca9f4"><td class="memItemLeft" align="right" valign="top"><a id="a040073e7620277891f4ab4de81bca9f4"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Database</b> (const <a class="el" href="class_o_p_l_1_1_database.html">Database</a> &amp;)=delete</td></tr>
+<tr class="separator:a040073e7620277891f4ab4de81bca9f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a039830b539f0c81be67ec6796dded105"><td class="memItemLeft" align="right" valign="top"><a id="a039830b539f0c81be67ec6796dded105"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_o_p_l_1_1_database.html">Database</a> &amp;)=delete</td></tr>
+<tr class="separator:a039830b539f0c81be67ec6796dded105"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6df6e6b98679011f747862ca48a3498c"><td class="memItemLeft" align="right" valign="top"><a id="a6df6e6b98679011f747862ca48a3498c"></a>
+const QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a6df6e6b98679011f747862ca48a3498c">version</a> () const</td></tr>
+<tr class="memdesc:a6df6e6b98679011f747862ca48a3498c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the database revision number (not the sqlite version number). <br /></td></tr>
+<tr class="separator:a6df6e6b98679011f747862ca48a3498c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b20bec0f8bef0277325492a1dee33ef"><td class="memItemLeft" align="right" valign="top">const QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a0b20bec0f8bef0277325492a1dee33ef">sqliteVersion</a> () const</td></tr>
+<tr class="memdesc:a0b20bec0f8bef0277325492a1dee33ef"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_o_p_l_1_1_database.html#a0b20bec0f8bef0277325492a1dee33ef" title="Database::sqliteVersion returns the database sqlite version. See also dbRevision()">Database::sqliteVersion</a> returns the database sqlite version. See also dbRevision()  <a href="class_o_p_l_1_1_database.html#a0b20bec0f8bef0277325492a1dee33ef">More...</a><br /></td></tr>
+<tr class="separator:a0b20bec0f8bef0277325492a1dee33ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d09969956b08b86bf83277872354247"><td class="memItemLeft" align="right" valign="top"><a id="a9d09969956b08b86bf83277872354247"></a>
+const QStringList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a9d09969956b08b86bf83277872354247">getTableNames</a> () const</td></tr>
+<tr class="memdesc:a9d09969956b08b86bf83277872354247"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the names of all tables in the database. <br /></td></tr>
+<tr class="separator:a9d09969956b08b86bf83277872354247"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5b344097eeb2579da9bcfc7941d074c"><td class="memItemLeft" align="right" valign="top"><a id="ac5b344097eeb2579da9bcfc7941d074c"></a>
+const QStringList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#ac5b344097eeb2579da9bcfc7941d074c">getTableColumns</a> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name) const</td></tr>
+<tr class="memdesc:ac5b344097eeb2579da9bcfc7941d074c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the names of a given table in the database. <br /></td></tr>
+<tr class="separator:ac5b344097eeb2579da9bcfc7941d074c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55a01dac1e447f7c41474a39d8f621ef"><td class="memItemLeft" align="right" valign="top"><a id="a55a01dac1e447f7c41474a39d8f621ef"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a55a01dac1e447f7c41474a39d8f621ef">updateLayout</a> ()</td></tr>
+<tr class="memdesc:a55a01dac1e447f7c41474a39d8f621ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the member variables tableNames and tableColumns with up-to-date layout information if the database has been altered. This function is normally only required during database setup or maintenance. <br /></td></tr>
+<tr class="separator:a55a01dac1e447f7c41474a39d8f621ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15dbcef162931776a0bdf6610fdd4cde"><td class="memItemLeft" align="right" valign="top"><a id="a15dbcef162931776a0bdf6610fdd4cde"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a15dbcef162931776a0bdf6610fdd4cde">connect</a> ()</td></tr>
+<tr class="memdesc:a15dbcef162931776a0bdf6610fdd4cde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect to the database and populate database information. <br /></td></tr>
+<tr class="separator:a15dbcef162931776a0bdf6610fdd4cde"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aceb1bb497d30d413f87d6541716a873b"><td class="memItemLeft" align="right" valign="top"><a id="aceb1bb497d30d413f87d6541716a873b"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#aceb1bb497d30d413f87d6541716a873b">disconnect</a> ()</td></tr>
+<tr class="memdesc:aceb1bb497d30d413f87d6541716a873b"><td class="mdescLeft">&#160;</td><td class="mdescRight">closes the database connection. <br /></td></tr>
+<tr class="separator:aceb1bb497d30d413f87d6541716a873b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf45cf7ba5d25bb5d8f8aac1105bb728"><td class="memItemLeft" align="right" valign="top">QVector&lt; QVariant &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#abf45cf7ba5d25bb5d8f8aac1105bb728">customQuery</a> (QString statement, int return_values)</td></tr>
+<tr class="memdesc:abf45cf7ba5d25bb5d8f8aac1105bb728"><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be used to send a complex query to the database.  <a href="class_o_p_l_1_1_database.html#abf45cf7ba5d25bb5d8f8aac1105bb728">More...</a><br /></td></tr>
+<tr class="separator:abf45cf7ba5d25bb5d8f8aac1105bb728"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69f4a4fa1e496e86224e87612edba548"><td class="memItemLeft" align="right" valign="top"><a id="a69f4a4fa1e496e86224e87612edba548"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a69f4a4fa1e496e86224e87612edba548">exists</a> (const <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a> &amp;row)</td></tr>
+<tr class="memdesc:a69f4a4fa1e496e86224e87612edba548"><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:a69f4a4fa1e496e86224e87612edba548"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa342b9d852daecb85fb77ec2f19234a5"><td class="memItemLeft" align="right" valign="top"><a id="aa342b9d852daecb85fb77ec2f19234a5"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#aa342b9d852daecb85fb77ec2f19234a5">clear</a> ()</td></tr>
+<tr class="memdesc:aa342b9d852daecb85fb77ec2f19234a5"><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:aa342b9d852daecb85fb77ec2f19234a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9aab9c8bc43009bbc2595409004e20b"><td class="memItemLeft" align="right" valign="top"><a id="ad9aab9c8bc43009bbc2595409004e20b"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#ad9aab9c8bc43009bbc2595409004e20b">commit</a> (const <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a> &amp;row)</td></tr>
+<tr class="memdesc:ad9aab9c8bc43009bbc2595409004e20b"><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:ad9aab9c8bc43009bbc2595409004e20b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa83b4d2d9cc2f9e24aaae6a25df829f2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#aa83b4d2d9cc2f9e24aaae6a25df829f2">commit</a> (const QJsonArray &amp;json_arr, const <a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table)</td></tr>
+<tr class="memdesc:aa83b4d2d9cc2f9e24aaae6a25df829f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">commits data imported from JSON  <a href="class_o_p_l_1_1_database.html#aa83b4d2d9cc2f9e24aaae6a25df829f2">More...</a><br /></td></tr>
+<tr class="separator:aa83b4d2d9cc2f9e24aaae6a25df829f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3bbfc0dd7ff7bd34c2c1c847f539168"><td class="memItemLeft" align="right" valign="top"><a id="aa3bbfc0dd7ff7bd34c2c1c847f539168"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#aa3bbfc0dd7ff7bd34c2c1c847f539168">insert</a> (const <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a> &amp;new_row)</td></tr>
+<tr class="memdesc:aa3bbfc0dd7ff7bd34c2c1c847f539168"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new entry in the databse based on UserInput. <br /></td></tr>
+<tr class="separator:aa3bbfc0dd7ff7bd34c2c1c847f539168"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4938319e593b9e5d5a334f794301d873"><td class="memItemLeft" align="right" valign="top"><a id="a4938319e593b9e5d5a334f794301d873"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a4938319e593b9e5d5a334f794301d873">update</a> (const <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a> &amp;updated_row)</td></tr>
+<tr class="memdesc:a4938319e593b9e5d5a334f794301d873"><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:a4938319e593b9e5d5a334f794301d873"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29362ea9a2b1805d42e5ef7823c42e50"><td class="memItemLeft" align="right" valign="top"><a id="a29362ea9a2b1805d42e5ef7823c42e50"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a29362ea9a2b1805d42e5ef7823c42e50">remove</a> (const <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a> &amp;row)</td></tr>
+<tr class="memdesc:a29362ea9a2b1805d42e5ef7823c42e50"><td class="mdescLeft">&#160;</td><td class="mdescRight">deletes an entry from the database. <br /></td></tr>
+<tr class="separator:a29362ea9a2b1805d42e5ef7823c42e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c2ebefc6cf6d948d64dfe71bec08540"><td class="memItemLeft" align="right" valign="top"><a id="a6c2ebefc6cf6d948d64dfe71bec08540"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a6c2ebefc6cf6d948d64dfe71bec08540">removeMany</a> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table, const QList&lt; int &gt; &amp;row_id_list)</td></tr>
+<tr class="memdesc:a6c2ebefc6cf6d948d64dfe71bec08540"><td class="mdescLeft">&#160;</td><td class="mdescRight">deletes a batch of entries from the database. Optimised for speed when deleting many entries. The entries are identified using their row id <br /></td></tr>
+<tr class="separator:a6c2ebefc6cf6d948d64dfe71bec08540"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae38dc30cb955ffc0e3235e51104dd912"><td class="memItemLeft" align="right" valign="top"><a id="ae38dc30cb955ffc0e3235e51104dd912"></a>
+<a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#ae38dc30cb955ffc0e3235e51104dd912">getRow</a> (const <a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table, const int row_id)</td></tr>
+<tr class="memdesc:ae38dc30cb955ffc0e3235e51104dd912"><td class="mdescLeft">&#160;</td><td class="mdescRight">retreive a <a class="el" href="class_o_p_l_1_1_row.html" title="The Row class provides an interface for retreiving and submitting entries from the database....">Row</a> from the database <br /></td></tr>
+<tr class="separator:ae38dc30cb955ffc0e3235e51104dd912"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3657d55721b0d3599ce6df55120017de"><td class="memItemLeft" align="right" valign="top"><a id="a3657d55721b0d3599ce6df55120017de"></a>
+RowData_T&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a3657d55721b0d3599ce6df55120017de">getRowData</a> (const <a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table, const int row_id)</td></tr>
+<tr class="memdesc:a3657d55721b0d3599ce6df55120017de"><td class="mdescLeft">&#160;</td><td class="mdescRight">retreive a Map of &lt;column name, column content&gt; for a specific row in the database. <br /></td></tr>
+<tr class="separator:a3657d55721b0d3599ce6df55120017de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2834aeb5c47bde300c898021eb9bbc48"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_p_l_1_1_pilot_entry.html">OPL::PilotEntry</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a2834aeb5c47bde300c898021eb9bbc48">getPilotEntry</a> (int row_id)</td></tr>
+<tr class="memdesc:a2834aeb5c47bde300c898021eb9bbc48"><td class="mdescLeft">&#160;</td><td class="mdescRight">retreives a <a class="el" href="class_o_p_l_1_1_pilot_entry.html">PilotEntry</a> from the database.  <a href="class_o_p_l_1_1_database.html#a2834aeb5c47bde300c898021eb9bbc48">More...</a><br /></td></tr>
+<tr class="separator:a2834aeb5c47bde300c898021eb9bbc48"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95340bb482ca788e748a597d013424ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a95340bb482ca788e748a597d013424ea">getTailEntry</a> (int row_id)</td></tr>
+<tr class="memdesc:a95340bb482ca788e748a597d013424ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">retreives a <a class="el" href="class_o_p_l_1_1_tail_entry.html">TailEntry</a> from the database.  <a href="class_o_p_l_1_1_database.html#a95340bb482ca788e748a597d013424ea">More...</a><br /></td></tr>
+<tr class="separator:a95340bb482ca788e748a597d013424ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84b40aff7668c0782ae25a8d07f60922"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_p_l_1_1_aircraft_entry.html">OPL::AircraftEntry</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a84b40aff7668c0782ae25a8d07f60922">getAircraftEntry</a> (int row_id)</td></tr>
+<tr class="memdesc:a84b40aff7668c0782ae25a8d07f60922"><td class="mdescLeft">&#160;</td><td class="mdescRight">retreives a <a class="el" href="class_o_p_l_1_1_tail_entry.html">TailEntry</a> from the database.  <a href="class_o_p_l_1_1_database.html#a84b40aff7668c0782ae25a8d07f60922">More...</a><br /></td></tr>
+<tr class="separator:a84b40aff7668c0782ae25a8d07f60922"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a568d32e69f438bc165a2a9c1477eaaed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a568d32e69f438bc165a2a9c1477eaaed">getFlightEntry</a> (int row_id)</td></tr>
+<tr class="memdesc:a568d32e69f438bc165a2a9c1477eaaed"><td class="mdescLeft">&#160;</td><td class="mdescRight">retreives a flight entry from the database.  <a href="class_o_p_l_1_1_database.html#a568d32e69f438bc165a2a9c1477eaaed">More...</a><br /></td></tr>
+<tr class="separator:a568d32e69f438bc165a2a9c1477eaaed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9e7e61e354d4438dab48a39fb6de1777"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_o_p_l_1_1_simulator_entry.html">OPL::SimulatorEntry</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a9e7e61e354d4438dab48a39fb6de1777">getSimEntry</a> (int row_id)</td></tr>
+<tr class="memdesc:a9e7e61e354d4438dab48a39fb6de1777"><td class="mdescLeft">&#160;</td><td class="mdescRight">retreives a Simulator entry from the database.  <a href="class_o_p_l_1_1_database.html#a9e7e61e354d4438dab48a39fb6de1777">More...</a><br /></td></tr>
+<tr class="separator:a9e7e61e354d4438dab48a39fb6de1777"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:affb40bf4566d45bdf2a68203b53be4db"><td class="memItemLeft" align="right" valign="top"><a id="affb40bf4566d45bdf2a68203b53be4db"></a>
+<a class="el" href="class_o_p_l_1_1_currency_entry.html">OPL::CurrencyEntry</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#affb40bf4566d45bdf2a68203b53be4db">getCurrencyEntry</a> (int row_id)</td></tr>
+<tr class="memdesc:affb40bf4566d45bdf2a68203b53be4db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retreives a currency entry from the database. <br /></td></tr>
+<tr class="separator:affb40bf4566d45bdf2a68203b53be4db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aebf3371c149463c49e818999c427ce6a"><td class="memItemLeft" align="right" valign="top"><a id="aebf3371c149463c49e818999c427ce6a"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#aebf3371c149463c49e818999c427ce6a">getLastEntry</a> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table)</td></tr>
+<tr class="memdesc:aebf3371c149463c49e818999c427ce6a"><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:aebf3371c149463c49e818999c427ce6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4eb45d764952d44a3c45f16aea2e26d7"><td class="memItemLeft" align="right" valign="top"><a id="a4eb45d764952d44a3c45f16aea2e26d7"></a>
+QList&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a4eb45d764952d44a3c45f16aea2e26d7">getForeignKeyConstraints</a> (int foreign_row_id, <a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table)</td></tr>
+<tr class="memdesc:a4eb45d764952d44a3c45f16aea2e26d7"><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>
+<tr class="separator:a4eb45d764952d44a3c45f16aea2e26d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77003350c44e7c6e1c8c4316cc324496"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a77003350c44e7c6e1c8c4316cc324496">restoreBackup</a> (const QString &amp;backup_file)</td></tr>
+<tr class="memdesc:a77003350c44e7c6e1c8c4316cc324496"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_o_p_l_1_1_database.html#a77003350c44e7c6e1c8c4316cc324496" title="Database::restoreBackup restores the database from a given backup file and replaces the currently act...">Database::restoreBackup</a> restores the database from a given backup file and replaces the currently active database.  <a href="class_o_p_l_1_1_database.html#a77003350c44e7c6e1c8c4316cc324496">More...</a><br /></td></tr>
+<tr class="separator:a77003350c44e7c6e1c8c4316cc324496"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40cdc1cce81919c42f91e2e16a63df4a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a40cdc1cce81919c42f91e2e16a63df4a">createBackup</a> (const QString &amp;dest_file)</td></tr>
+<tr class="memdesc:a40cdc1cce81919c42f91e2e16a63df4a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_o_p_l_1_1_database.html#a40cdc1cce81919c42f91e2e16a63df4a" title="Database::createBackup copies the currently used database to an external backup location provided by ...">Database::createBackup</a> copies the currently used database to an external backup location provided by the user.  <a href="class_o_p_l_1_1_database.html#a40cdc1cce81919c42f91e2e16a63df4a">More...</a><br /></td></tr>
+<tr class="separator:a40cdc1cce81919c42f91e2e16a63df4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8145a21f5980cb3c55778fbe94ef52a0"><td class="memItemLeft" align="right" valign="top">QVector&lt; RowData_T &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a8145a21f5980cb3c55778fbe94ef52a0">getTable</a> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table)</td></tr>
+<tr class="memdesc:a8145a21f5980cb3c55778fbe94ef52a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">getTable returns all contents of a given table from the database  <a href="class_o_p_l_1_1_database.html#a8145a21f5980cb3c55778fbe94ef52a0">More...</a><br /></td></tr>
+<tr class="separator:a8145a21f5980cb3c55778fbe94ef52a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac0db9f1a1817bb62302b17a22327bfeb"><td class="memItemLeft" align="right" valign="top"><a id="ac0db9f1a1817bb62302b17a22327bfeb"></a>
+const QList&lt; <a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#ac0db9f1a1817bb62302b17a22327bfeb">getUserTables</a> () const</td></tr>
+<tr class="memdesc:ac0db9f1a1817bb62302b17a22327bfeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">getUserTables returns a list of the of the tables that contain user-created data (flights, pilots,..) <br /></td></tr>
+<tr class="separator:ac0db9f1a1817bb62302b17a22327bfeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad7cd939e58af8f1fd46f835ee34567e3"><td class="memItemLeft" align="right" valign="top"><a id="ad7cd939e58af8f1fd46f835ee34567e3"></a>
+const QList&lt; <a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#ad7cd939e58af8f1fd46f835ee34567e3">getTemplateTables</a> () const</td></tr>
+<tr class="memdesc:ad7cd939e58af8f1fd46f835ee34567e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">getTemplateTables returns a list of the tables that contain template data (aiports, aircraft,..) <br /></td></tr>
+<tr class="separator:ad7cd939e58af8f1fd46f835ee34567e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b75d74d59d49c5da3610666de0c2d85"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="struct_o_p_l_1_1_user_data_state.html">UserDataState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a0b75d74d59d49c5da3610666de0c2d85">getUserDataState</a> () const</td></tr>
+<tr class="memdesc:a0b75d74d59d49c5da3610666de0c2d85"><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_o_p_l_1_1_database.html#a0b75d74d59d49c5da3610666de0c2d85">More...</a><br /></td></tr>
+<tr class="separator:a0b75d74d59d49c5da3610666de0c2d85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92c22cb18c5a23858edd38e0ed9d7117"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a92c22cb18c5a23858edd38e0ed9d7117">createSchema</a> ()</td></tr>
+<tr class="memdesc:a92c22cb18c5a23858edd38e0ed9d7117"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create or restore the database to its ready-to-use but empty state.  <a href="class_o_p_l_1_1_database.html#a92c22cb18c5a23858edd38e0ed9d7117">More...</a><br /></td></tr>
+<tr class="separator:a92c22cb18c5a23858edd38e0ed9d7117"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4be4811cb27c836070a6b8c09dee6a3b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a4be4811cb27c836070a6b8c09dee6a3b">importTemplateData</a> (bool use_local_ressources)</td></tr>
+<tr class="memdesc:a4be4811cb27c836070a6b8c09dee6a3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">importTemplateData fills an empty database with the template data (Aircraft, Airports, currencies, changelog) as read from the JSON templates.  <a href="class_o_p_l_1_1_database.html#a4be4811cb27c836070a6b8c09dee6a3b">More...</a><br /></td></tr>
+<tr class="separator:a4be4811cb27c836070a6b8c09dee6a3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63af56a9fbd8cd0290494cc28d327824"><td class="memItemLeft" align="right" valign="top"><a id="a63af56a9fbd8cd0290494cc28d327824"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a63af56a9fbd8cd0290494cc28d327824">resetUserData</a> ()</td></tr>
+<tr class="memdesc:a63af56a9fbd8cd0290494cc28d327824"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete all rows from the user data tables (flights, pliots, tails) <br /></td></tr>
+<tr class="separator:a63af56a9fbd8cd0290494cc28d327824"><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>
+<tr class="memitem:a285c9a2e2436748e1b110232aba30124"><td class="memItemLeft" align="right" valign="top"><a id="a285c9a2e2436748e1b110232aba30124"></a>
+static <a class="el" href="class_o_p_l_1_1_database.html">Database</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>instance</b> ()</td></tr>
+<tr class="separator:a285c9a2e2436748e1b110232aba30124"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a233943791f4bca3aa083f46562eb6d50"><td class="memItemLeft" align="right" valign="top">static QSqlDatabase&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#a233943791f4bca3aa083f46562eb6d50">database</a> ()</td></tr>
+<tr class="memdesc:a233943791f4bca3aa083f46562eb6d50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Can be used to access the database connection.  <a href="class_o_p_l_1_1_database.html#a233943791f4bca3aa083f46562eb6d50">More...</a><br /></td></tr>
+<tr class="separator:a233943791f4bca3aa083f46562eb6d50"><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:aa5b783822a603bdcfd1d8c93ba0af34b"><td class="memItemLeft" align="right" valign="top">QSqlError&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_database.html#aa5b783822a603bdcfd1d8c93ba0af34b">lastError</a></td></tr>
+<tr class="memdesc:aa5b783822a603bdcfd1d8c93ba0af34b"><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_o_p_l_1_1_database.html#aa5b783822a603bdcfd1d8c93ba0af34b">More...</a><br /></td></tr>
+<tr class="separator:aa5b783822a603bdcfd1d8c93ba0af34b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7697d81a9fa93d0ce6e9fff2b67b40d5"><td class="memItemLeft" align="right" valign="top"><a id="a7697d81a9fa93d0ce6e9fff2b67b40d5"></a>
+const QFileInfo&#160;</td><td class="memItemRight" valign="bottom"><b>databaseFile</b></td></tr>
+<tr class="separator:a7697d81a9fa93d0ce6e9fff2b67b40d5"><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 DB class encapsulates the SQL database by providing fast access to hot database data. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="aa83b4d2d9cc2f9e24aaae6a25df829f2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa83b4d2d9cc2f9e24aaae6a25df829f2">&#9670;&nbsp;</a></span>commit()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool OPL::Database::commit </td>
+          <td>(</td>
+          <td class="paramtype">const QJsonArray &amp;&#160;</td>
+          <td class="paramname"><em>json_arr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a>&#160;</td>
+          <td class="paramname"><em>table</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>commits data imported from JSON </p>
+<p>This function is used to import values to the databases which are held in JSON documents. These entries are pre-filled data used for providing completion data, such as Airport or Aircraft Type Data. </p>
+
+</div>
+</div>
+<a id="a40cdc1cce81919c42f91e2e16a63df4a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a40cdc1cce81919c42f91e2e16a63df4a">&#9670;&nbsp;</a></span>createBackup()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool OPL::Database::createBackup </td>
+          <td>(</td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>dest_file</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p><a class="el" href="class_o_p_l_1_1_database.html#a40cdc1cce81919c42f91e2e16a63df4a" title="Database::createBackup copies the currently used database to an external backup location provided by ...">Database::createBackup</a> copies the currently used database to an external backup location provided by the user. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dest_file</td><td>This is the full path and filename of where the backup will be created, e.g. 'home/Sully/myBackups/backupFromOpl.db' </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a92c22cb18c5a23858edd38e0ed9d7117"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a92c22cb18c5a23858edd38e0ed9d7117">&#9670;&nbsp;</a></span>createSchema()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool OPL::Database::createSchema </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Create or restore the database to its ready-to-use but empty state. </p>
+<p>The SQL code for the database creation is stored in a .sql file which is available as a ressource. This file gets read, and the querys executed. If errors occur, returns false. </p>
+
+</div>
+</div>
+<a id="abf45cf7ba5d25bb5d8f8aac1105bb728"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abf45cf7ba5d25bb5d8f8aac1105bb728">&#9670;&nbsp;</a></span>customQuery()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">QVector&lt; QVariant &gt; OPL::Database::customQuery </td>
+          <td>(</td>
+          <td class="paramtype">QString&#160;</td>
+          <td class="paramname"><em>statement</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>return_values</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Can be used to send a complex query to the database. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">query</td><td>- the full sql query statement </td></tr>
+    <tr><td class="paramname">returnValues</td><td>- the number of return values </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a233943791f4bca3aa083f46562eb6d50"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a233943791f4bca3aa083f46562eb6d50">&#9670;&nbsp;</a></span>database()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">QSqlDatabase OPL::Database::database </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Can be used to access the database connection. </p>
+<dl class="section return"><dt>Returns</dt><dd>The QSqlDatabase object pertaining to the connection. </dd></dl>
+
+</div>
+</div>
+<a id="a84b40aff7668c0782ae25a8d07f60922"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a84b40aff7668c0782ae25a8d07f60922">&#9670;&nbsp;</a></span>getAircraftEntry()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="class_o_p_l_1_1_aircraft_entry.html">OPL::AircraftEntry</a> OPL::Database::getAircraftEntry </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>row_id</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>retreives a <a class="el" href="class_o_p_l_1_1_tail_entry.html">TailEntry</a> from the database. </p>
+<p>This function is a wrapper for DataBase::getRowData, where the table is already set and which returns an <a class="el" href="struct_a_aircraft_entry.html">AAircraftEntry</a> instead of an AEntry. It allows for easy access to an aircraft entry with only the RowId required as input. </p>
+
+</div>
+</div>
+<a id="a568d32e69f438bc165a2a9c1477eaaed"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a568d32e69f438bc165a2a9c1477eaaed">&#9670;&nbsp;</a></span>getFlightEntry()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a> OPL::Database::getFlightEntry </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>row_id</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>retreives a flight entry from the database. </p>
+<p>This function is a wrapper for DataBase::getRowData, where the table is already set and which returns an AFlightEntry instead of an AEntry. It allows for easy access to a flight entry with only the RowId required as input. </p>
+
+</div>
+</div>
+<a id="a2834aeb5c47bde300c898021eb9bbc48"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2834aeb5c47bde300c898021eb9bbc48">&#9670;&nbsp;</a></span>getPilotEntry()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="class_o_p_l_1_1_pilot_entry.html">OPL::PilotEntry</a> OPL::Database::getPilotEntry </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>row_id</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>retreives a <a class="el" href="class_o_p_l_1_1_pilot_entry.html">PilotEntry</a> from the database. </p>
+<p>This function is a wrapper for DataBase::getRowData, where the table is already set and which returns a <a class="el" href="class_o_p_l_1_1_pilot_entry.html">PilotEntry</a> instead of an Entry. It allows for easy access to a pilot entry with only the RowId required as input. </p>
+
+</div>
+</div>
+<a id="a9e7e61e354d4438dab48a39fb6de1777"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9e7e61e354d4438dab48a39fb6de1777">&#9670;&nbsp;</a></span>getSimEntry()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="class_o_p_l_1_1_simulator_entry.html">OPL::SimulatorEntry</a> OPL::Database::getSimEntry </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>row_id</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>retreives a Simulator entry from the database. </p>
+<p>This function is a wrapper for DataBase::getRowData, where the table is already set and which returns an ASimEntry instead of an AEntry. It allows for easy access to a Simulator entry with only the RowId required as input. </p>
+
+</div>
+</div>
+<a id="a8145a21f5980cb3c55778fbe94ef52a0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8145a21f5980cb3c55778fbe94ef52a0">&#9670;&nbsp;</a></span>getTable()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">QVector&lt; RowData_T &gt; OPL::Database::getTable </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a>&#160;</td>
+          <td class="paramname"><em>table</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>getTable returns all contents of a given table from the database </p>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="a95340bb482ca788e748a597d013424ea"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a95340bb482ca788e748a597d013424ea">&#9670;&nbsp;</a></span>getTailEntry()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a> OPL::Database::getTailEntry </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>row_id</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>retreives a <a class="el" href="class_o_p_l_1_1_tail_entry.html">TailEntry</a> from the database. </p>
+<p>This function is a wrapper for DataBase::getRowData, where the table is already set and which returns a <a class="el" href="class_o_p_l_1_1_tail_entry.html">TailEntry</a> 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="a0b75d74d59d49c5da3610666de0c2d85"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0b75d74d59d49c5da3610666de0c2d85">&#9670;&nbsp;</a></span>getUserDataState()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="struct_o_p_l_1_1_user_data_state.html">UserDataState</a> OPL::Database::getUserDataState </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</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="a4be4811cb27c836070a6b8c09dee6a3b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4be4811cb27c836070a6b8c09dee6a3b">&#9670;&nbsp;</a></span>importTemplateData()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool OPL::Database::importTemplateData </td>
+          <td>(</td>
+          <td class="paramtype">bool&#160;</td>
+          <td class="paramname"><em>use_local_ressources</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>importTemplateData fills an empty database with the template data (Aircraft, Airports, currencies, changelog) as read from the JSON templates. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">use_local_ressources</td><td>determines whether the included ressource files or a previously downloaded file should be used. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd></dd></dl>
+
+</div>
+</div>
+<a id="a77003350c44e7c6e1c8c4316cc324496"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a77003350c44e7c6e1c8c4316cc324496">&#9670;&nbsp;</a></span>restoreBackup()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">bool OPL::Database::restoreBackup </td>
+          <td>(</td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>backup_file</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p><a class="el" href="class_o_p_l_1_1_database.html#a77003350c44e7c6e1c8c4316cc324496" title="Database::restoreBackup restores the database from a given backup file and replaces the currently act...">Database::restoreBackup</a> restores the database from a given backup file and replaces the currently active database. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">backup_file</td><td>This is the full path and filename of the backup, e.g. 'home/Sully/myBackups/backupFromOpl.db' </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a0b20bec0f8bef0277325492a1dee33ef"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0b20bec0f8bef0277325492a1dee33ef">&#9670;&nbsp;</a></span>sqliteVersion()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const QString OPL::Database::sqliteVersion </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td> const</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p><a class="el" href="class_o_p_l_1_1_database.html#a0b20bec0f8bef0277325492a1dee33ef" title="Database::sqliteVersion returns the database sqlite version. See also dbRevision()">Database::sqliteVersion</a> returns the database sqlite version. See also dbRevision() </p>
+<dl class="section return"><dt>Returns</dt><dd>sqlite version string </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Member Data Documentation</h2>
+<a id="aa5b783822a603bdcfd1d8c93ba0af34b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa5b783822a603bdcfd1d8c93ba0af34b">&#9670;&nbsp;</a></span>lastError</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">QSqlError OPL::Database::lastError</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<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>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/database/<a class="el" href="database_8h_source.html">database.h</a></li>
+<li>src/database/database.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="namespace_o_p_l.html">OPL</a></li><li class="navelem"><a class="el" href="class_o_p_l_1_1_database.html">Database</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>

+ 44 - 0
docs/html/class_o_p_l_1_1_database.js

@@ -0,0 +1,44 @@
+var class_o_p_l_1_1_database =
+[
+    [ "Database", "class_o_p_l_1_1_database.html#a040073e7620277891f4ab4de81bca9f4", null ],
+    [ "clear", "class_o_p_l_1_1_database.html#aa342b9d852daecb85fb77ec2f19234a5", null ],
+    [ "commit", "class_o_p_l_1_1_database.html#ad9aab9c8bc43009bbc2595409004e20b", null ],
+    [ "commit", "class_o_p_l_1_1_database.html#aa83b4d2d9cc2f9e24aaae6a25df829f2", null ],
+    [ "connect", "class_o_p_l_1_1_database.html#a15dbcef162931776a0bdf6610fdd4cde", null ],
+    [ "connectionReset", "class_o_p_l_1_1_database.html#acc87b25e9ab6a6a6dce1883821292882", null ],
+    [ "createBackup", "class_o_p_l_1_1_database.html#a40cdc1cce81919c42f91e2e16a63df4a", null ],
+    [ "createSchema", "class_o_p_l_1_1_database.html#a92c22cb18c5a23858edd38e0ed9d7117", null ],
+    [ "customQuery", "class_o_p_l_1_1_database.html#abf45cf7ba5d25bb5d8f8aac1105bb728", null ],
+    [ "dataBaseUpdated", "class_o_p_l_1_1_database.html#ab0dbab5f0a97745f8a86b1703abcae38", null ],
+    [ "disconnect", "class_o_p_l_1_1_database.html#aceb1bb497d30d413f87d6541716a873b", null ],
+    [ "exists", "class_o_p_l_1_1_database.html#a69f4a4fa1e496e86224e87612edba548", null ],
+    [ "getAircraftEntry", "class_o_p_l_1_1_database.html#a84b40aff7668c0782ae25a8d07f60922", null ],
+    [ "getCurrencyEntry", "class_o_p_l_1_1_database.html#affb40bf4566d45bdf2a68203b53be4db", null ],
+    [ "getFlightEntry", "class_o_p_l_1_1_database.html#a568d32e69f438bc165a2a9c1477eaaed", null ],
+    [ "getForeignKeyConstraints", "class_o_p_l_1_1_database.html#a4eb45d764952d44a3c45f16aea2e26d7", null ],
+    [ "getLastEntry", "class_o_p_l_1_1_database.html#aebf3371c149463c49e818999c427ce6a", null ],
+    [ "getPilotEntry", "class_o_p_l_1_1_database.html#a2834aeb5c47bde300c898021eb9bbc48", null ],
+    [ "getRow", "class_o_p_l_1_1_database.html#ae38dc30cb955ffc0e3235e51104dd912", null ],
+    [ "getRowData", "class_o_p_l_1_1_database.html#a3657d55721b0d3599ce6df55120017de", null ],
+    [ "getSimEntry", "class_o_p_l_1_1_database.html#a9e7e61e354d4438dab48a39fb6de1777", null ],
+    [ "getTable", "class_o_p_l_1_1_database.html#a8145a21f5980cb3c55778fbe94ef52a0", null ],
+    [ "getTableColumns", "class_o_p_l_1_1_database.html#ac5b344097eeb2579da9bcfc7941d074c", null ],
+    [ "getTableNames", "class_o_p_l_1_1_database.html#a9d09969956b08b86bf83277872354247", null ],
+    [ "getTailEntry", "class_o_p_l_1_1_database.html#a95340bb482ca788e748a597d013424ea", null ],
+    [ "getTemplateTables", "class_o_p_l_1_1_database.html#ad7cd939e58af8f1fd46f835ee34567e3", null ],
+    [ "getUserDataState", "class_o_p_l_1_1_database.html#a0b75d74d59d49c5da3610666de0c2d85", null ],
+    [ "getUserTables", "class_o_p_l_1_1_database.html#ac0db9f1a1817bb62302b17a22327bfeb", null ],
+    [ "importTemplateData", "class_o_p_l_1_1_database.html#a4be4811cb27c836070a6b8c09dee6a3b", null ],
+    [ "insert", "class_o_p_l_1_1_database.html#aa3bbfc0dd7ff7bd34c2c1c847f539168", null ],
+    [ "operator=", "class_o_p_l_1_1_database.html#a039830b539f0c81be67ec6796dded105", null ],
+    [ "remove", "class_o_p_l_1_1_database.html#a29362ea9a2b1805d42e5ef7823c42e50", null ],
+    [ "removeMany", "class_o_p_l_1_1_database.html#a6c2ebefc6cf6d948d64dfe71bec08540", null ],
+    [ "resetUserData", "class_o_p_l_1_1_database.html#a63af56a9fbd8cd0290494cc28d327824", null ],
+    [ "restoreBackup", "class_o_p_l_1_1_database.html#a77003350c44e7c6e1c8c4316cc324496", null ],
+    [ "sqliteVersion", "class_o_p_l_1_1_database.html#a0b20bec0f8bef0277325492a1dee33ef", null ],
+    [ "update", "class_o_p_l_1_1_database.html#a4938319e593b9e5d5a334f794301d873", null ],
+    [ "updateLayout", "class_o_p_l_1_1_database.html#a55a01dac1e447f7c41474a39d8f621ef", null ],
+    [ "version", "class_o_p_l_1_1_database.html#a6df6e6b98679011f747862ca48a3498c", null ],
+    [ "databaseFile", "class_o_p_l_1_1_database.html#a7697d81a9fa93d0ce6e9fff2b67b40d5", null ],
+    [ "lastError", "class_o_p_l_1_1_database.html#aa5b783822a603bdcfd1d8c93ba0af34b", null ]
+];

BIN
docs/html/class_o_p_l_1_1_database.png


+ 117 - 0
docs/html/class_o_p_l_1_1_db_completion_data-members.html

@@ -0,0 +1,117 @@
+<!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_o_p_l_1_1_db_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">OPL::DbCompletionData Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</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_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>airportIcaoIdMap</b> (defined in <a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</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_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>airportNameIdMap</b> (defined in <a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</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_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html#adf869b051f481654803deed41e9f2179">getCompletionList</a>(CompleterTarget target)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html#aa11d8a7f4fe7521f1a1b59178ed26972">getIdMap</a>(CompleterTarget target)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html#a0d158b17b9d05fb61250a03c4ff0d33a">init</a>()</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</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_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>pilotsIdMap</b> (defined in <a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</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_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>tailsList</b> (defined in <a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html#afc1e1cd7b565004734c0d65f1757a563">update</a>()</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>updatePilots</b>() (defined in <a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</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_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</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>

+ 176 - 0
docs/html/class_o_p_l_1_1_db_completion_data.html

@@ -0,0 +1,176 @@
+<!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: OPL::DbCompletionData 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_o_p_l_1_1_db_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-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="class_o_p_l_1_1_db_completion_data-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">OPL::DbCompletionData Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides data for QCompleters and QHashs.  
+ <a href="class_o_p_l_1_1_db_completion_data.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="dbcompletiondata_8h_source.html">dbcompletiondata.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:a0d158b17b9d05fb61250a03c4ff0d33a"><td class="memItemLeft" align="right" valign="top"><a id="a0d158b17b9d05fb61250a03c4ff0d33a"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_db_completion_data.html#a0d158b17b9d05fb61250a03c4ff0d33a">init</a> ()</td></tr>
+<tr class="memdesc:a0d158b17b9d05fb61250a03c4ff0d33a"><td class="mdescLeft">&#160;</td><td class="mdescRight">init Retrieves Data and populates Lists and Maps <br /></td></tr>
+<tr class="separator:a0d158b17b9d05fb61250a03c4ff0d33a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc1e1cd7b565004734c0d65f1757a563"><td class="memItemLeft" align="right" valign="top"><a id="afc1e1cd7b565004734c0d65f1757a563"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_db_completion_data.html#afc1e1cd7b565004734c0d65f1757a563">update</a> ()</td></tr>
+<tr class="memdesc:afc1e1cd7b565004734c0d65f1757a563"><td class="mdescLeft">&#160;</td><td class="mdescRight">updates data from the user modifiable tables <br /></td></tr>
+<tr class="separator:afc1e1cd7b565004734c0d65f1757a563"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add8351a43c8434abda160d02a9f77646"><td class="memItemLeft" align="right" valign="top"><a id="add8351a43c8434abda160d02a9f77646"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>updateTails</b> ()</td></tr>
+<tr class="separator:add8351a43c8434abda160d02a9f77646"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef4feb8fd073cbe837207949f9dbe821"><td class="memItemLeft" align="right" valign="top"><a id="aef4feb8fd073cbe837207949f9dbe821"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>updatePilots</b> ()</td></tr>
+<tr class="separator:aef4feb8fd073cbe837207949f9dbe821"><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>
+<tr class="memitem:adf869b051f481654803deed41e9f2179"><td class="memItemLeft" align="right" valign="top"><a id="adf869b051f481654803deed41e9f2179"></a>
+static const QStringList&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_db_completion_data.html#adf869b051f481654803deed41e9f2179">getCompletionList</a> (<a class="el" href="namespace_o_p_l.html#a183077dea2ffeb8866c41affcabcc53a">CompleterTarget</a> target)</td></tr>
+<tr class="memdesc:adf869b051f481654803deed41e9f2179"><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:adf869b051f481654803deed41e9f2179"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa11d8a7f4fe7521f1a1b59178ed26972"><td class="memItemLeft" align="right" valign="top"><a id="aa11d8a7f4fe7521f1a1b59178ed26972"></a>
+static const QHash&lt; int, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_db_completion_data.html#aa11d8a7f4fe7521f1a1b59178ed26972">getIdMap</a> (<a class="el" href="namespace_o_p_l.html#a183077dea2ffeb8866c41affcabcc53a">CompleterTarget</a> target)</td></tr>
+<tr class="memdesc:aa11d8a7f4fe7521f1a1b59178ed26972"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a QHash of a human-readable database value and its row id. Used in the Dialogs to map user input to unique database entries. <br /></td></tr>
+<tr class="separator:aa11d8a7f4fe7521f1a1b59178ed26972"><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:aaf24a8ba3d0b0c590790a2eb595b99c4"><td class="memItemLeft" align="right" valign="top"><a id="aaf24a8ba3d0b0c590790a2eb595b99c4"></a>
+QHash&lt; int, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>pilotsIdMap</b></td></tr>
+<tr class="separator:aaf24a8ba3d0b0c590790a2eb595b99c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c9b042a1b6d03f4dceaa753487a3f73"><td class="memItemLeft" align="right" valign="top"><a id="a8c9b042a1b6d03f4dceaa753487a3f73"></a>
+QHash&lt; int, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>tailsIdMap</b></td></tr>
+<tr class="separator:a8c9b042a1b6d03f4dceaa753487a3f73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c884c2be4118663472228a4eb9e8a63"><td class="memItemLeft" align="right" valign="top"><a id="a9c884c2be4118663472228a4eb9e8a63"></a>
+QHash&lt; int, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>airportIcaoIdMap</b></td></tr>
+<tr class="separator:a9c884c2be4118663472228a4eb9e8a63"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5705ddc149e436ebea62c49db429e84b"><td class="memItemLeft" align="right" valign="top"><a id="a5705ddc149e436ebea62c49db429e84b"></a>
+QHash&lt; int, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>airportIataIdMap</b></td></tr>
+<tr class="separator:a5705ddc149e436ebea62c49db429e84b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad14ab49477b9510617a18ea7c6054900"><td class="memItemLeft" align="right" valign="top"><a id="ad14ab49477b9510617a18ea7c6054900"></a>
+QHash&lt; int, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>airportNameIdMap</b></td></tr>
+<tr class="separator:ad14ab49477b9510617a18ea7c6054900"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7fcccea10f07aa71ab66864a905db2e"><td class="memItemLeft" align="right" valign="top"><a id="ac7fcccea10f07aa71ab66864a905db2e"></a>
+QStringList&#160;</td><td class="memItemRight" valign="bottom"><b>pilotList</b></td></tr>
+<tr class="separator:ac7fcccea10f07aa71ab66864a905db2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a327f931579c7e58f2e04ce839ce3d822"><td class="memItemLeft" align="right" valign="top"><a id="a327f931579c7e58f2e04ce839ce3d822"></a>
+QStringList&#160;</td><td class="memItemRight" valign="bottom"><b>tailsList</b></td></tr>
+<tr class="separator:a327f931579c7e58f2e04ce839ce3d822"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad29eea765f33d12dc59a57a3a3552bee"><td class="memItemLeft" align="right" valign="top"><a id="ad29eea765f33d12dc59a57a3a3552bee"></a>
+QStringList&#160;</td><td class="memItemRight" valign="bottom"><b>airportList</b></td></tr>
+<tr class="separator:ad29eea765f33d12dc59a57a3a3552bee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24ffbb6b48ad871b98b563f3e40107c9"><td class="memItemLeft" align="right" valign="top"><a id="a24ffbb6b48ad871b98b563f3e40107c9"></a>
+<a class="el" href="struct_o_p_l_1_1_user_data_state.html">UserDataState</a>&#160;</td><td class="memItemRight" valign="bottom"><b>current_state</b></td></tr>
+<tr class="separator:a24ffbb6b48ad871b98b563f3e40107c9"><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>Provides data for QCompleters and QHashs. </p>
+<p>QCompleters and QHashes are used for mapping user input to database keys. The required data is retreived from the database and cached for fast access without the need to query the database. The <a class="el" href="class_o_p_l_1_1_db_completion_data.html" title="Provides data for QCompleters and QHashs.">DbCompletionData</a> class holds the last state of the database (state of user-modifiable data) in order to intelligently refresh the completion data when needed. </p>
+</div><hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/database/<a class="el" href="dbcompletiondata_8h_source.html">dbcompletiondata.h</a></li>
+<li>src/database/dbcompletiondata.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="namespace_o_p_l.html">OPL</a></li><li class="navelem"><a class="el" href="class_o_p_l_1_1_db_completion_data.html">DbCompletionData</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_o_p_l_1_1_db_completion_data.js

@@ -0,0 +1,16 @@
+var class_o_p_l_1_1_db_completion_data =
+[
+    [ "init", "class_o_p_l_1_1_db_completion_data.html#a0d158b17b9d05fb61250a03c4ff0d33a", null ],
+    [ "update", "class_o_p_l_1_1_db_completion_data.html#afc1e1cd7b565004734c0d65f1757a563", null ],
+    [ "updatePilots", "class_o_p_l_1_1_db_completion_data.html#aef4feb8fd073cbe837207949f9dbe821", null ],
+    [ "updateTails", "class_o_p_l_1_1_db_completion_data.html#add8351a43c8434abda160d02a9f77646", null ],
+    [ "airportIataIdMap", "class_o_p_l_1_1_db_completion_data.html#a5705ddc149e436ebea62c49db429e84b", null ],
+    [ "airportIcaoIdMap", "class_o_p_l_1_1_db_completion_data.html#a9c884c2be4118663472228a4eb9e8a63", null ],
+    [ "airportList", "class_o_p_l_1_1_db_completion_data.html#ad29eea765f33d12dc59a57a3a3552bee", null ],
+    [ "airportNameIdMap", "class_o_p_l_1_1_db_completion_data.html#ad14ab49477b9510617a18ea7c6054900", null ],
+    [ "current_state", "class_o_p_l_1_1_db_completion_data.html#a24ffbb6b48ad871b98b563f3e40107c9", null ],
+    [ "pilotList", "class_o_p_l_1_1_db_completion_data.html#ac7fcccea10f07aa71ab66864a905db2e", null ],
+    [ "pilotsIdMap", "class_o_p_l_1_1_db_completion_data.html#aaf24a8ba3d0b0c590790a2eb595b99c4", null ],
+    [ "tailsIdMap", "class_o_p_l_1_1_db_completion_data.html#a8c9b042a1b6d03f4dceaa753487a3f73", null ],
+    [ "tailsList", "class_o_p_l_1_1_db_completion_data.html#a327f931579c7e58f2e04ce839ce3d822", null ]
+];

+ 105 - 0
docs/html/class_o_p_l_1_1_db_summary-members.html

@@ -0,0 +1,105 @@
+<!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_o_p_l_1_1_db_summary.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">OPL::DbSummary Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_o_p_l_1_1_db_summary.html">OPL::DbSummary</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_db_summary.html#a7f82bff756d73d1430fda9681fb4a66e">databaseSummary</a>(const QString &amp;db_path)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_summary.html">OPL::DbSummary</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>DbSummary</b>()=default (defined in <a class="el" href="class_o_p_l_1_1_db_summary.html">OPL::DbSummary</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_summary.html">OPL::DbSummary</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_o_p_l_1_1_db_summary.html#a64a8a01526b171f5376eae880a7fd148">summaryString</a>(const QString &amp;db_path)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_db_summary.html">OPL::DbSummary</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="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>

+ 162 - 0
docs/html/class_o_p_l_1_1_db_summary.html

@@ -0,0 +1,162 @@
+<!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: OPL::DbSummary 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_o_p_l_1_1_db_summary.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-static-methods">Static Public Member Functions</a> &#124;
+<a href="class_o_p_l_1_1_db_summary-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">OPL::DbSummary Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The <a class="el" href="class_o_p_l_1_1_db_summary.html" title="The DbSummary class collects summaries of entries and relevant data from the database.">DbSummary</a> class collects summaries of entries and relevant data from the database.  
+ <a href="class_o_p_l_1_1_db_summary.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="dbsummary_8h_source.html">dbsummary.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for OPL::DbSummary:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_o_p_l_1_1_db_summary.png" alt=""/>
+ </div></div>
+<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:a7f82bff756d73d1430fda9681fb4a66e"><td class="memItemLeft" align="right" valign="top">static const QMap&lt; <a class="el" href="namespace_o_p_l.html#a57a78a0fee920e2605638d9fea82b57e">DbSummaryKey</a>, QString &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_db_summary.html#a7f82bff756d73d1430fda9681fb4a66e">databaseSummary</a> (const QString &amp;db_path)</td></tr>
+<tr class="memdesc:a7f82bff756d73d1430fda9681fb4a66e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a summary of a database.  <a href="class_o_p_l_1_1_db_summary.html#a7f82bff756d73d1430fda9681fb4a66e">More...</a><br /></td></tr>
+<tr class="separator:a7f82bff756d73d1430fda9681fb4a66e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a64a8a01526b171f5376eae880a7fd148"><td class="memItemLeft" align="right" valign="top"><a id="a64a8a01526b171f5376eae880a7fd148"></a>
+static const QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_o_p_l_1_1_db_summary.html#a64a8a01526b171f5376eae880a7fd148">summaryString</a> (const QString &amp;db_path)</td></tr>
+<tr class="memdesc:a64a8a01526b171f5376eae880a7fd148"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns a short summary string of the database, containing total time and date of last flight. <br /></td></tr>
+<tr class="separator:a64a8a01526b171f5376eae880a7fd148"><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_o_p_l_1_1_db_summary.html" title="The DbSummary class collects summaries of entries and relevant data from the database.">DbSummary</a> class collects summaries of entries and relevant data from the database. </p>
+<p>Summaries are used mainly in 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> to give the user a quick overview about the contents of a database so they can decide which backup to delete/restore. This class is a helper class to avoid interfacing with the database directly. It uses a separate database connection in order to not interfere with the currently active database. </p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a7f82bff756d73d1430fda9681fb4a66e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7f82bff756d73d1430fda9681fb4a66e">&#9670;&nbsp;</a></span>databaseSummary()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">const QMap&lt; <a class="el" href="namespace_o_p_l.html#a57a78a0fee920e2605638d9fea82b57e">DbSummaryKey</a>, QString &gt; OPL::DbSummary::databaseSummary </td>
+          <td>(</td>
+          <td class="paramtype">const QString &amp;&#160;</td>
+          <td class="paramname"><em>db_path</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Return a summary of a database. </p>
+<p>Creates a summary of the database giving a quick overview of the relevant contents. The function runs several specialised SQL queries to create a QHash&lt;DatabaseSummaryKey, QString&gt; containing Total Flight Time, Number of unique aircraft and pilots, as well as the date of last flight. Uses a temporary database connection separate from the default connection in order to not tamper with the currently active database connection. The full path to the database to be summarized has to be provided. </p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/database/<a class="el" href="dbsummary_8h_source.html">dbsummary.h</a></li>
+<li>src/database/dbsummary.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="namespace_o_p_l.html">OPL</a></li><li class="navelem"><a class="el" href="class_o_p_l_1_1_db_summary.html">DbSummary</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>

+ 4 - 0
docs/html/class_o_p_l_1_1_db_summary.js

@@ -0,0 +1,4 @@
+var class_o_p_l_1_1_db_summary =
+[
+    [ "DbSummary", "class_o_p_l_1_1_db_summary.html#a3b969adb9368bc83ae2082d476934be9", null ]
+];

BIN
docs/html/class_o_p_l_1_1_db_summary.png


+ 120 - 0
docs/html/class_o_p_l_1_1_flight_entry-members.html

@@ -0,0 +1,120 @@
+<!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_o_p_l_1_1_flight_entry.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">OPL::FlightEntry Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>FlightEntry</b>() (defined in <a class="el" href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>FlightEntry</b>(const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>FlightEntry</b>(int row_id, const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getData</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getRowId</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getTableName</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>hasData</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>isValid</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator QString</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>() (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id, const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(OPL::DbTable table_name) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setData</b>(const RowData_T &amp;value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setRowId</b>(int value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>valid</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</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="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>

+ 173 - 0
docs/html/class_o_p_l_1_1_flight_entry.html

@@ -0,0 +1,173 @@
+<!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: OPL::FlightEntry 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_o_p_l_1_1_flight_entry.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="class_o_p_l_1_1_flight_entry-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">OPL::FlightEntry Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for OPL::FlightEntry:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_o_p_l_1_1_flight_entry.png" usemap="#OPL::FlightEntry_map" alt=""/>
+  <map id="OPL::FlightEntry_map" name="OPL::FlightEntry_map">
+<area href="class_o_p_l_1_1_row.html" title="The Row class provides an interface for retreiving and submitting entries from the database...." alt="OPL::Row" shape="rect" coords="0,0,104,24"/>
+  </map>
+</div></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:a1cd496aa67765786f78825fda7a9c122"><td class="memItemLeft" align="right" valign="top"><a id="a1cd496aa67765786f78825fda7a9c122"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>FlightEntry</b> (const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a1cd496aa67765786f78825fda7a9c122"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1cbe9bf860a219d6ccadf4d94e05d66c"><td class="memItemLeft" align="right" valign="top"><a id="a1cbe9bf860a219d6ccadf4d94e05d66c"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>FlightEntry</b> (int row_id, const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a1cbe9bf860a219d6ccadf4d94e05d66c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_o_p_l_1_1_row"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_o_p_l_1_1_row')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td></tr>
+<tr class="memitem:a003f47f80870a64052f9f800aa533c6e inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a003f47f80870a64052f9f800aa533c6e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id, const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a003f47f80870a64052f9f800aa533c6e inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7de776b1e5ec66ae704735027f7f9838 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a7de776b1e5ec66ae704735027f7f9838"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id)</td></tr>
+<tr class="separator:a7de776b1e5ec66ae704735027f7f9838 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c590facaf2f2c45086b756c67ab2415 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a9c590facaf2f2c45086b756c67ab2415"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name)</td></tr>
+<tr class="separator:a9c590facaf2f2c45086b756c67ab2415 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a043692e09011cacbcaeb0e88c1802fd1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a043692e09011cacbcaeb0e88c1802fd1"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a043692e09011cacbcaeb0e88c1802fd1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e97ce33358fb9a011441341646bd46b inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a2e97ce33358fb9a011441341646bd46b"></a>
+<a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a2e97ce33358fb9a011441341646bd46b inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799fbf35c18c0d8dc824d6d1a11902c3 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a799fbf35c18c0d8dc824d6d1a11902c3"></a>
+RowData_T&#160;</td><td class="memItemRight" valign="bottom"><b>getData</b> () const</td></tr>
+<tr class="separator:a799fbf35c18c0d8dc824d6d1a11902c3 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3ae77fc913896d00e6b947254b06ce9 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="ad3ae77fc913896d00e6b947254b06ce9"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setData</b> (const RowData_T &amp;value)</td></tr>
+<tr class="separator:ad3ae77fc913896d00e6b947254b06ce9 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa70580fe157b6e0a408fc975e833e85e inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa70580fe157b6e0a408fc975e833e85e"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>getRowId</b> () const</td></tr>
+<tr class="separator:aa70580fe157b6e0a408fc975e833e85e inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa029e0507bbf31d2b190eaf218fb6a2c inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa029e0507bbf31d2b190eaf218fb6a2c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setRowId</b> (int value)</td></tr>
+<tr class="separator:aa029e0507bbf31d2b190eaf218fb6a2c inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab56a4e790ecf59dfbe04e9302d995884 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="ab56a4e790ecf59dfbe04e9302d995884"></a>
+<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getTableName</b> () const</td></tr>
+<tr class="separator:ab56a4e790ecf59dfbe04e9302d995884 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2edff39e0fc3f65181e8c5c9227c7a1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa2edff39e0fc3f65181e8c5c9227c7a1"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>isValid</b> () const</td></tr>
+<tr class="separator:aa2edff39e0fc3f65181e8c5c9227c7a1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f39ccb98dd4ad8a9ee3d72c65144e80 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a2f39ccb98dd4ad8a9ee3d72c65144e80"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>operator QString</b> () const</td></tr>
+<tr class="separator:a2f39ccb98dd4ad8a9ee3d72c65144e80 inherit pub_methods_class_o_p_l_1_1_row"><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>
+<tr class="inherit_header pro_attribs_class_o_p_l_1_1_row"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_o_p_l_1_1_row')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td></tr>
+<tr class="memitem:af03987eb9f44d2feb3a9f155ed1f2cce inherit pro_attribs_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="af03987eb9f44d2feb3a9f155ed1f2cce"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>hasData</b></td></tr>
+<tr class="separator:af03987eb9f44d2feb3a9f155ed1f2cce inherit pro_attribs_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4adb1dca9ed05fb35e02c6bd464411aa inherit pro_attribs_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a4adb1dca9ed05fb35e02c6bd464411aa"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>valid</b> = true</td></tr>
+<tr class="separator:a4adb1dca9ed05fb35e02c6bd464411aa inherit pro_attribs_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/database/<a class="el" href="row_8h_source.html">row.h</a></li>
+<li>src/database/row.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="namespace_o_p_l.html">OPL</a></li><li class="navelem"><a class="el" href="class_o_p_l_1_1_flight_entry.html">FlightEntry</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>

+ 6 - 0
docs/html/class_o_p_l_1_1_flight_entry.js

@@ -0,0 +1,6 @@
+var class_o_p_l_1_1_flight_entry =
+[
+    [ "FlightEntry", "class_o_p_l_1_1_flight_entry.html#adfdeccd9e795fb33397028880ed6304e", null ],
+    [ "FlightEntry", "class_o_p_l_1_1_flight_entry.html#a1cd496aa67765786f78825fda7a9c122", null ],
+    [ "FlightEntry", "class_o_p_l_1_1_flight_entry.html#a1cbe9bf860a219d6ccadf4d94e05d66c", null ]
+];

BIN
docs/html/class_o_p_l_1_1_flight_entry.png


+ 112 - 0
docs/html/class_o_p_l_1_1_opl_globals-members.html

@@ -0,0 +1,112 @@
+<!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_o_p_l_1_1_opl_globals.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">OPL::OplGlobals Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fillLanguageComboBox</b>(QComboBox *combo_box) const (defined in <a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>fillViewNamesComboBox</b>(QComboBox *combo_box) const (defined in <a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getApproachTypes</b>() const (defined in <a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getDbTableName</b>(DbTable table_name) const (defined in <a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getLanguageFilePath</b>(Translation language) const (defined in <a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getViewIdentifier</b>(DbViewName view_name) const (defined in <a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>loadApproachTypes</b>(QComboBox *combo_box) const (defined in <a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>loadPilotFunctios</b>(QComboBox *combo_box) const (defined in <a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>loadSimulatorTypes</b>(QComboBox *combo_box) const (defined in <a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>OplGlobals</b>()=default (defined in <a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_opl_globals.html">OPL::OplGlobals</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>

+ 151 - 0
docs/html/class_o_p_l_1_1_opl_globals.html

@@ -0,0 +1,151 @@
+<!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: OPL::OplGlobals 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_o_p_l_1_1_opl_globals.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="class_o_p_l_1_1_opl_globals-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">OPL::OplGlobals Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The <a class="el" href="class_o_p_l_1_1_opl_globals.html" title="The OplGlobals class encapsulates non-POD globals to avoid making them static. It is available as a g...">OplGlobals</a> class encapsulates non-POD globals to avoid making them static. It is available as a global static object via the OPL::GLOBAL makro and may be used as if it were a pointer, guaranteed to be initialized exactly once. For more information, see (Q_GLOBAL_STATIC)[<a href="https://doc.qt.io/qt-5/qglobalstatic.html#details">https://doc.qt.io/qt-5/qglobalstatic.html#details</a>].  
+ <a href="class_o_p_l_1_1_opl_globals.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="opl_8h_source.html">opl.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for OPL::OplGlobals:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_o_p_l_1_1_opl_globals.png" alt=""/>
+ </div></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:aa4d289b2d937451bbbfbb65cbbda67c6"><td class="memItemLeft" align="right" valign="top"><a id="aa4d289b2d937451bbbfbb65cbbda67c6"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>fillLanguageComboBox</b> (QComboBox *combo_box) const</td></tr>
+<tr class="separator:aa4d289b2d937451bbbfbb65cbbda67c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a437242895b3f0dfb1af8ad18152d648b"><td class="memItemLeft" align="right" valign="top"><a id="a437242895b3f0dfb1af8ad18152d648b"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>fillViewNamesComboBox</b> (QComboBox *combo_box) const</td></tr>
+<tr class="separator:a437242895b3f0dfb1af8ad18152d648b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8c6a0143eb3d09aa454533b7710aaec4"><td class="memItemLeft" align="right" valign="top"><a id="a8c6a0143eb3d09aa454533b7710aaec4"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>loadPilotFunctios</b> (QComboBox *combo_box) const</td></tr>
+<tr class="separator:a8c6a0143eb3d09aa454533b7710aaec4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2822139845d66eb28004eddc1b3a8d4"><td class="memItemLeft" align="right" valign="top"><a id="ad2822139845d66eb28004eddc1b3a8d4"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>loadSimulatorTypes</b> (QComboBox *combo_box) const</td></tr>
+<tr class="separator:ad2822139845d66eb28004eddc1b3a8d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af7c993c0b743a57c5166419b5f934a00"><td class="memItemLeft" align="right" valign="top"><a id="af7c993c0b743a57c5166419b5f934a00"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>loadApproachTypes</b> (QComboBox *combo_box) const</td></tr>
+<tr class="separator:af7c993c0b743a57c5166419b5f934a00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72310a43d03bcc2c10498d1fb4839337"><td class="memItemLeft" align="right" valign="top"><a id="a72310a43d03bcc2c10498d1fb4839337"></a>
+const QStringList &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getApproachTypes</b> () const</td></tr>
+<tr class="separator:a72310a43d03bcc2c10498d1fb4839337"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea10ca5191e103458366e3e5f2f5082b"><td class="memItemLeft" align="right" valign="top"><a id="aea10ca5191e103458366e3e5f2f5082b"></a>
+const QString&#160;</td><td class="memItemRight" valign="bottom"><b>getLanguageFilePath</b> (<a class="el" href="namespace_o_p_l.html#a5bd3211ed824e4526fd117ffb667aacc">Translation</a> language) const</td></tr>
+<tr class="separator:aea10ca5191e103458366e3e5f2f5082b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17a56122104a87511df129dc9ca6ea90"><td class="memItemLeft" align="right" valign="top"><a id="a17a56122104a87511df129dc9ca6ea90"></a>
+const QString&#160;</td><td class="memItemRight" valign="bottom"><b>getViewIdentifier</b> (<a class="el" href="namespace_o_p_l.html#ae7d5247f41184ce8e7a49623ef37904d">DbViewName</a> view_name) const</td></tr>
+<tr class="separator:a17a56122104a87511df129dc9ca6ea90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e06150fb7fc20bf886f5d527dd70148"><td class="memItemLeft" align="right" valign="top"><a id="a5e06150fb7fc20bf886f5d527dd70148"></a>
+const QString&#160;</td><td class="memItemRight" valign="bottom"><b>getDbTableName</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">DbTable</a> table_name) const</td></tr>
+<tr class="separator:a5e06150fb7fc20bf886f5d527dd70148"><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_o_p_l_1_1_opl_globals.html" title="The OplGlobals class encapsulates non-POD globals to avoid making them static. It is available as a g...">OplGlobals</a> class encapsulates non-POD globals to avoid making them static. It is available as a global static object via the OPL::GLOBAL makro and may be used as if it were a pointer, guaranteed to be initialized exactly once. For more information, see (Q_GLOBAL_STATIC)[<a href="https://doc.qt.io/qt-5/qglobalstatic.html#details">https://doc.qt.io/qt-5/qglobalstatic.html#details</a>]. </p>
+</div><hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/<a class="el" href="opl_8h_source.html">opl.h</a></li>
+<li>src/opl.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="namespace_o_p_l.html">OPL</a></li><li class="navelem"><a class="el" href="class_o_p_l_1_1_opl_globals.html">OplGlobals</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>

+ 13 - 0
docs/html/class_o_p_l_1_1_opl_globals.js

@@ -0,0 +1,13 @@
+var class_o_p_l_1_1_opl_globals =
+[
+    [ "OplGlobals", "class_o_p_l_1_1_opl_globals.html#ab99ccc7da27552dfe46c53d252c20034", null ],
+    [ "fillLanguageComboBox", "class_o_p_l_1_1_opl_globals.html#aa4d289b2d937451bbbfbb65cbbda67c6", null ],
+    [ "fillViewNamesComboBox", "class_o_p_l_1_1_opl_globals.html#a437242895b3f0dfb1af8ad18152d648b", null ],
+    [ "getApproachTypes", "class_o_p_l_1_1_opl_globals.html#a72310a43d03bcc2c10498d1fb4839337", null ],
+    [ "getDbTableName", "class_o_p_l_1_1_opl_globals.html#a5e06150fb7fc20bf886f5d527dd70148", null ],
+    [ "getLanguageFilePath", "class_o_p_l_1_1_opl_globals.html#aea10ca5191e103458366e3e5f2f5082b", null ],
+    [ "getViewIdentifier", "class_o_p_l_1_1_opl_globals.html#a17a56122104a87511df129dc9ca6ea90", null ],
+    [ "loadApproachTypes", "class_o_p_l_1_1_opl_globals.html#af7c993c0b743a57c5166419b5f934a00", null ],
+    [ "loadPilotFunctios", "class_o_p_l_1_1_opl_globals.html#a8c6a0143eb3d09aa454533b7710aaec4", null ],
+    [ "loadSimulatorTypes", "class_o_p_l_1_1_opl_globals.html#ad2822139845d66eb28004eddc1b3a8d4", null ]
+];

BIN
docs/html/class_o_p_l_1_1_opl_globals.png


+ 120 - 0
docs/html/class_o_p_l_1_1_pilot_entry-members.html

@@ -0,0 +1,120 @@
+<!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_o_p_l_1_1_pilot_entry.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">OPL::PilotEntry Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_o_p_l_1_1_pilot_entry.html">OPL::PilotEntry</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getData</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getRowId</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getTableName</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>hasData</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>isValid</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator QString</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>PilotEntry</b>() (defined in <a class="el" href="class_o_p_l_1_1_pilot_entry.html">OPL::PilotEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_pilot_entry.html">OPL::PilotEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PilotEntry</b>(const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_pilot_entry.html">OPL::PilotEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_pilot_entry.html">OPL::PilotEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>PilotEntry</b>(int row_id, const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_pilot_entry.html">OPL::PilotEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_pilot_entry.html">OPL::PilotEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>() (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id, const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(OPL::DbTable table_name) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setData</b>(const RowData_T &amp;value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setRowId</b>(int value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>valid</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</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="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>

+ 173 - 0
docs/html/class_o_p_l_1_1_pilot_entry.html

@@ -0,0 +1,173 @@
+<!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: OPL::PilotEntry 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_o_p_l_1_1_pilot_entry.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="class_o_p_l_1_1_pilot_entry-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">OPL::PilotEntry Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for OPL::PilotEntry:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_o_p_l_1_1_pilot_entry.png" usemap="#OPL::PilotEntry_map" alt=""/>
+  <map id="OPL::PilotEntry_map" name="OPL::PilotEntry_map">
+<area href="class_o_p_l_1_1_row.html" title="The Row class provides an interface for retreiving and submitting entries from the database...." alt="OPL::Row" shape="rect" coords="0,0,97,24"/>
+  </map>
+</div></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:acd79c5e335311b0216c6c0a873e319df"><td class="memItemLeft" align="right" valign="top"><a id="acd79c5e335311b0216c6c0a873e319df"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>PilotEntry</b> (const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:acd79c5e335311b0216c6c0a873e319df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4fa7ecf9193baa400d5643631bd4a5f7"><td class="memItemLeft" align="right" valign="top"><a id="a4fa7ecf9193baa400d5643631bd4a5f7"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>PilotEntry</b> (int row_id, const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a4fa7ecf9193baa400d5643631bd4a5f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_o_p_l_1_1_row"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_o_p_l_1_1_row')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td></tr>
+<tr class="memitem:a003f47f80870a64052f9f800aa533c6e inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a003f47f80870a64052f9f800aa533c6e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id, const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a003f47f80870a64052f9f800aa533c6e inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7de776b1e5ec66ae704735027f7f9838 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a7de776b1e5ec66ae704735027f7f9838"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id)</td></tr>
+<tr class="separator:a7de776b1e5ec66ae704735027f7f9838 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c590facaf2f2c45086b756c67ab2415 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a9c590facaf2f2c45086b756c67ab2415"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name)</td></tr>
+<tr class="separator:a9c590facaf2f2c45086b756c67ab2415 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a043692e09011cacbcaeb0e88c1802fd1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a043692e09011cacbcaeb0e88c1802fd1"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a043692e09011cacbcaeb0e88c1802fd1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e97ce33358fb9a011441341646bd46b inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a2e97ce33358fb9a011441341646bd46b"></a>
+<a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a2e97ce33358fb9a011441341646bd46b inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799fbf35c18c0d8dc824d6d1a11902c3 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a799fbf35c18c0d8dc824d6d1a11902c3"></a>
+RowData_T&#160;</td><td class="memItemRight" valign="bottom"><b>getData</b> () const</td></tr>
+<tr class="separator:a799fbf35c18c0d8dc824d6d1a11902c3 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3ae77fc913896d00e6b947254b06ce9 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="ad3ae77fc913896d00e6b947254b06ce9"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setData</b> (const RowData_T &amp;value)</td></tr>
+<tr class="separator:ad3ae77fc913896d00e6b947254b06ce9 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa70580fe157b6e0a408fc975e833e85e inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa70580fe157b6e0a408fc975e833e85e"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>getRowId</b> () const</td></tr>
+<tr class="separator:aa70580fe157b6e0a408fc975e833e85e inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa029e0507bbf31d2b190eaf218fb6a2c inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa029e0507bbf31d2b190eaf218fb6a2c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setRowId</b> (int value)</td></tr>
+<tr class="separator:aa029e0507bbf31d2b190eaf218fb6a2c inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab56a4e790ecf59dfbe04e9302d995884 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="ab56a4e790ecf59dfbe04e9302d995884"></a>
+<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getTableName</b> () const</td></tr>
+<tr class="separator:ab56a4e790ecf59dfbe04e9302d995884 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2edff39e0fc3f65181e8c5c9227c7a1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa2edff39e0fc3f65181e8c5c9227c7a1"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>isValid</b> () const</td></tr>
+<tr class="separator:aa2edff39e0fc3f65181e8c5c9227c7a1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f39ccb98dd4ad8a9ee3d72c65144e80 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a2f39ccb98dd4ad8a9ee3d72c65144e80"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>operator QString</b> () const</td></tr>
+<tr class="separator:a2f39ccb98dd4ad8a9ee3d72c65144e80 inherit pub_methods_class_o_p_l_1_1_row"><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>
+<tr class="inherit_header pro_attribs_class_o_p_l_1_1_row"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_o_p_l_1_1_row')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td></tr>
+<tr class="memitem:af03987eb9f44d2feb3a9f155ed1f2cce inherit pro_attribs_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="af03987eb9f44d2feb3a9f155ed1f2cce"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>hasData</b></td></tr>
+<tr class="separator:af03987eb9f44d2feb3a9f155ed1f2cce inherit pro_attribs_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4adb1dca9ed05fb35e02c6bd464411aa inherit pro_attribs_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a4adb1dca9ed05fb35e02c6bd464411aa"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>valid</b> = true</td></tr>
+<tr class="separator:a4adb1dca9ed05fb35e02c6bd464411aa inherit pro_attribs_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/database/<a class="el" href="row_8h_source.html">row.h</a></li>
+<li>src/database/row.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="namespace_o_p_l.html">OPL</a></li><li class="navelem"><a class="el" href="class_o_p_l_1_1_pilot_entry.html">PilotEntry</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>

+ 6 - 0
docs/html/class_o_p_l_1_1_pilot_entry.js

@@ -0,0 +1,6 @@
+var class_o_p_l_1_1_pilot_entry =
+[
+    [ "PilotEntry", "class_o_p_l_1_1_pilot_entry.html#a4be20985533f8c420391807cd2cb82c0", null ],
+    [ "PilotEntry", "class_o_p_l_1_1_pilot_entry.html#acd79c5e335311b0216c6c0a873e319df", null ],
+    [ "PilotEntry", "class_o_p_l_1_1_pilot_entry.html#a4fa7ecf9193baa400d5643631bd4a5f7", null ]
+];

BIN
docs/html/class_o_p_l_1_1_pilot_entry.png


+ 117 - 0
docs/html/class_o_p_l_1_1_row-members.html

@@ -0,0 +1,117 @@
+<!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_o_p_l_1_1_row.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">OPL::Row Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getData</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getRowId</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getTableName</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>hasData</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>isValid</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator QString</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>() (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id, const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(OPL::DbTable table_name) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setData</b>(const RowData_T &amp;value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setRowId</b>(int value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>valid</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</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="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>

+ 178 - 0
docs/html/class_o_p_l_1_1_row.html

@@ -0,0 +1,178 @@
+<!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: OPL::Row 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_o_p_l_1_1_row.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="#pro-attribs">Protected Attributes</a> &#124;
+<a href="class_o_p_l_1_1_row-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">OPL::Row Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The <a class="el" href="class_o_p_l_1_1_row.html" title="The Row class provides an interface for retreiving and submitting entries from the database....">Row</a> class provides an interface for retreiving and submitting entries from the database. It is a bass class and when instantiated, the appropriate subclass should be used.  
+ <a href="class_o_p_l_1_1_row.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="row_8h_source.html">row.h</a>&gt;</code></p>
+<div class="dynheader">
+Inheritance diagram for OPL::Row:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_o_p_l_1_1_row.png" usemap="#OPL::Row_map" alt=""/>
+  <map id="OPL::Row_map" name="OPL::Row_map">
+<area href="class_o_p_l_1_1_aircraft_entry.html" alt="OPL::AircraftEntry" shape="rect" coords="0,56,127,80"/>
+<area href="class_o_p_l_1_1_currency_entry.html" alt="OPL::CurrencyEntry" shape="rect" coords="137,56,264,80"/>
+<area href="class_o_p_l_1_1_flight_entry.html" alt="OPL::FlightEntry" shape="rect" coords="274,56,401,80"/>
+<area href="class_o_p_l_1_1_pilot_entry.html" alt="OPL::PilotEntry" shape="rect" coords="411,56,538,80"/>
+<area href="class_o_p_l_1_1_simulator_entry.html" alt="OPL::SimulatorEntry" shape="rect" coords="548,56,675,80"/>
+<area href="class_o_p_l_1_1_tail_entry.html" alt="OPL::TailEntry" shape="rect" coords="685,56,812,80"/>
+  </map>
+</div></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:a003f47f80870a64052f9f800aa533c6e"><td class="memItemLeft" align="right" valign="top"><a id="a003f47f80870a64052f9f800aa533c6e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id, const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a003f47f80870a64052f9f800aa533c6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7de776b1e5ec66ae704735027f7f9838"><td class="memItemLeft" align="right" valign="top"><a id="a7de776b1e5ec66ae704735027f7f9838"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id)</td></tr>
+<tr class="separator:a7de776b1e5ec66ae704735027f7f9838"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c590facaf2f2c45086b756c67ab2415"><td class="memItemLeft" align="right" valign="top"><a id="a9c590facaf2f2c45086b756c67ab2415"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name)</td></tr>
+<tr class="separator:a9c590facaf2f2c45086b756c67ab2415"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a043692e09011cacbcaeb0e88c1802fd1"><td class="memItemLeft" align="right" valign="top"><a id="a043692e09011cacbcaeb0e88c1802fd1"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a043692e09011cacbcaeb0e88c1802fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e97ce33358fb9a011441341646bd46b"><td class="memItemLeft" align="right" valign="top"><a id="a2e97ce33358fb9a011441341646bd46b"></a>
+<a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a2e97ce33358fb9a011441341646bd46b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799fbf35c18c0d8dc824d6d1a11902c3"><td class="memItemLeft" align="right" valign="top"><a id="a799fbf35c18c0d8dc824d6d1a11902c3"></a>
+RowData_T&#160;</td><td class="memItemRight" valign="bottom"><b>getData</b> () const</td></tr>
+<tr class="separator:a799fbf35c18c0d8dc824d6d1a11902c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3ae77fc913896d00e6b947254b06ce9"><td class="memItemLeft" align="right" valign="top"><a id="ad3ae77fc913896d00e6b947254b06ce9"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setData</b> (const RowData_T &amp;value)</td></tr>
+<tr class="separator:ad3ae77fc913896d00e6b947254b06ce9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa70580fe157b6e0a408fc975e833e85e"><td class="memItemLeft" align="right" valign="top"><a id="aa70580fe157b6e0a408fc975e833e85e"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>getRowId</b> () const</td></tr>
+<tr class="separator:aa70580fe157b6e0a408fc975e833e85e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa029e0507bbf31d2b190eaf218fb6a2c"><td class="memItemLeft" align="right" valign="top"><a id="aa029e0507bbf31d2b190eaf218fb6a2c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setRowId</b> (int value)</td></tr>
+<tr class="separator:aa029e0507bbf31d2b190eaf218fb6a2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab56a4e790ecf59dfbe04e9302d995884"><td class="memItemLeft" align="right" valign="top"><a id="ab56a4e790ecf59dfbe04e9302d995884"></a>
+<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getTableName</b> () const</td></tr>
+<tr class="separator:ab56a4e790ecf59dfbe04e9302d995884"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2edff39e0fc3f65181e8c5c9227c7a1"><td class="memItemLeft" align="right" valign="top"><a id="aa2edff39e0fc3f65181e8c5c9227c7a1"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>isValid</b> () const</td></tr>
+<tr class="separator:aa2edff39e0fc3f65181e8c5c9227c7a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f39ccb98dd4ad8a9ee3d72c65144e80"><td class="memItemLeft" align="right" valign="top"><a id="a2f39ccb98dd4ad8a9ee3d72c65144e80"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>operator QString</b> () const</td></tr>
+<tr class="separator:a2f39ccb98dd4ad8a9ee3d72c65144e80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:af03987eb9f44d2feb3a9f155ed1f2cce"><td class="memItemLeft" align="right" valign="top"><a id="af03987eb9f44d2feb3a9f155ed1f2cce"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>hasData</b></td></tr>
+<tr class="separator:af03987eb9f44d2feb3a9f155ed1f2cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4adb1dca9ed05fb35e02c6bd464411aa"><td class="memItemLeft" align="right" valign="top"><a id="a4adb1dca9ed05fb35e02c6bd464411aa"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>valid</b> = true</td></tr>
+<tr class="separator:a4adb1dca9ed05fb35e02c6bd464411aa"><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_o_p_l_1_1_row.html" title="The Row class provides an interface for retreiving and submitting entries from the database....">Row</a> class provides an interface for retreiving and submitting entries from the database. It is a bass class and when instantiated, the appropriate subclass should be used. </p>
+</div><hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/database/<a class="el" href="row_8h_source.html">row.h</a></li>
+<li>src/database/row.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="namespace_o_p_l.html">OPL</a></li><li class="navelem"><a class="el" href="class_o_p_l_1_1_row.html">Row</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>

+ 18 - 0
docs/html/class_o_p_l_1_1_row.js

@@ -0,0 +1,18 @@
+var class_o_p_l_1_1_row =
+[
+    [ "Row", "class_o_p_l_1_1_row.html#a268234216ecbf9e1da34dd474c73316a", null ],
+    [ "Row", "class_o_p_l_1_1_row.html#a003f47f80870a64052f9f800aa533c6e", null ],
+    [ "Row", "class_o_p_l_1_1_row.html#a7de776b1e5ec66ae704735027f7f9838", null ],
+    [ "Row", "class_o_p_l_1_1_row.html#a9c590facaf2f2c45086b756c67ab2415", null ],
+    [ "Row", "class_o_p_l_1_1_row.html#a043692e09011cacbcaeb0e88c1802fd1", null ],
+    [ "getData", "class_o_p_l_1_1_row.html#a799fbf35c18c0d8dc824d6d1a11902c3", null ],
+    [ "getRowId", "class_o_p_l_1_1_row.html#aa70580fe157b6e0a408fc975e833e85e", null ],
+    [ "getTableName", "class_o_p_l_1_1_row.html#ab56a4e790ecf59dfbe04e9302d995884", null ],
+    [ "isValid", "class_o_p_l_1_1_row.html#aa2edff39e0fc3f65181e8c5c9227c7a1", null ],
+    [ "operator QString", "class_o_p_l_1_1_row.html#a2f39ccb98dd4ad8a9ee3d72c65144e80", null ],
+    [ "operator=", "class_o_p_l_1_1_row.html#a2e97ce33358fb9a011441341646bd46b", null ],
+    [ "setData", "class_o_p_l_1_1_row.html#ad3ae77fc913896d00e6b947254b06ce9", null ],
+    [ "setRowId", "class_o_p_l_1_1_row.html#aa029e0507bbf31d2b190eaf218fb6a2c", null ],
+    [ "hasData", "class_o_p_l_1_1_row.html#af03987eb9f44d2feb3a9f155ed1f2cce", null ],
+    [ "valid", "class_o_p_l_1_1_row.html#a4adb1dca9ed05fb35e02c6bd464411aa", null ]
+];

BIN
docs/html/class_o_p_l_1_1_row.png


+ 120 - 0
docs/html/class_o_p_l_1_1_simulator_entry-members.html

@@ -0,0 +1,120 @@
+<!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_o_p_l_1_1_simulator_entry.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">OPL::SimulatorEntry Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_o_p_l_1_1_simulator_entry.html">OPL::SimulatorEntry</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getData</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getRowId</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getTableName</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>hasData</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>isValid</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator QString</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>() (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id, const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(OPL::DbTable table_name) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setData</b>(const RowData_T &amp;value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setRowId</b>(int value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SimulatorEntry</b>() (defined in <a class="el" href="class_o_p_l_1_1_simulator_entry.html">OPL::SimulatorEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_simulator_entry.html">OPL::SimulatorEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>SimulatorEntry</b>(const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_simulator_entry.html">OPL::SimulatorEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_simulator_entry.html">OPL::SimulatorEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SimulatorEntry</b>(int row_id, const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_simulator_entry.html">OPL::SimulatorEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_simulator_entry.html">OPL::SimulatorEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>valid</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</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="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>

+ 173 - 0
docs/html/class_o_p_l_1_1_simulator_entry.html

@@ -0,0 +1,173 @@
+<!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: OPL::SimulatorEntry 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_o_p_l_1_1_simulator_entry.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="class_o_p_l_1_1_simulator_entry-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">OPL::SimulatorEntry Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for OPL::SimulatorEntry:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_o_p_l_1_1_simulator_entry.png" usemap="#OPL::SimulatorEntry_map" alt=""/>
+  <map id="OPL::SimulatorEntry_map" name="OPL::SimulatorEntry_map">
+<area href="class_o_p_l_1_1_row.html" title="The Row class provides an interface for retreiving and submitting entries from the database...." alt="OPL::Row" shape="rect" coords="0,0,125,24"/>
+  </map>
+</div></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:a349055db5d8e578b8612f6d1f9d9d84f"><td class="memItemLeft" align="right" valign="top"><a id="a349055db5d8e578b8612f6d1f9d9d84f"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>SimulatorEntry</b> (const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a349055db5d8e578b8612f6d1f9d9d84f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c0fa89c3eb3c78a71eeea3a50184124"><td class="memItemLeft" align="right" valign="top"><a id="a9c0fa89c3eb3c78a71eeea3a50184124"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>SimulatorEntry</b> (int row_id, const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a9c0fa89c3eb3c78a71eeea3a50184124"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_o_p_l_1_1_row"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_o_p_l_1_1_row')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td></tr>
+<tr class="memitem:a003f47f80870a64052f9f800aa533c6e inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a003f47f80870a64052f9f800aa533c6e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id, const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a003f47f80870a64052f9f800aa533c6e inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7de776b1e5ec66ae704735027f7f9838 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a7de776b1e5ec66ae704735027f7f9838"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id)</td></tr>
+<tr class="separator:a7de776b1e5ec66ae704735027f7f9838 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c590facaf2f2c45086b756c67ab2415 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a9c590facaf2f2c45086b756c67ab2415"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name)</td></tr>
+<tr class="separator:a9c590facaf2f2c45086b756c67ab2415 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a043692e09011cacbcaeb0e88c1802fd1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a043692e09011cacbcaeb0e88c1802fd1"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a043692e09011cacbcaeb0e88c1802fd1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e97ce33358fb9a011441341646bd46b inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a2e97ce33358fb9a011441341646bd46b"></a>
+<a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a2e97ce33358fb9a011441341646bd46b inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799fbf35c18c0d8dc824d6d1a11902c3 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a799fbf35c18c0d8dc824d6d1a11902c3"></a>
+RowData_T&#160;</td><td class="memItemRight" valign="bottom"><b>getData</b> () const</td></tr>
+<tr class="separator:a799fbf35c18c0d8dc824d6d1a11902c3 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3ae77fc913896d00e6b947254b06ce9 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="ad3ae77fc913896d00e6b947254b06ce9"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setData</b> (const RowData_T &amp;value)</td></tr>
+<tr class="separator:ad3ae77fc913896d00e6b947254b06ce9 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa70580fe157b6e0a408fc975e833e85e inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa70580fe157b6e0a408fc975e833e85e"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>getRowId</b> () const</td></tr>
+<tr class="separator:aa70580fe157b6e0a408fc975e833e85e inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa029e0507bbf31d2b190eaf218fb6a2c inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa029e0507bbf31d2b190eaf218fb6a2c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setRowId</b> (int value)</td></tr>
+<tr class="separator:aa029e0507bbf31d2b190eaf218fb6a2c inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab56a4e790ecf59dfbe04e9302d995884 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="ab56a4e790ecf59dfbe04e9302d995884"></a>
+<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getTableName</b> () const</td></tr>
+<tr class="separator:ab56a4e790ecf59dfbe04e9302d995884 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2edff39e0fc3f65181e8c5c9227c7a1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa2edff39e0fc3f65181e8c5c9227c7a1"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>isValid</b> () const</td></tr>
+<tr class="separator:aa2edff39e0fc3f65181e8c5c9227c7a1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f39ccb98dd4ad8a9ee3d72c65144e80 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a2f39ccb98dd4ad8a9ee3d72c65144e80"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>operator QString</b> () const</td></tr>
+<tr class="separator:a2f39ccb98dd4ad8a9ee3d72c65144e80 inherit pub_methods_class_o_p_l_1_1_row"><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>
+<tr class="inherit_header pro_attribs_class_o_p_l_1_1_row"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_o_p_l_1_1_row')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td></tr>
+<tr class="memitem:af03987eb9f44d2feb3a9f155ed1f2cce inherit pro_attribs_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="af03987eb9f44d2feb3a9f155ed1f2cce"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>hasData</b></td></tr>
+<tr class="separator:af03987eb9f44d2feb3a9f155ed1f2cce inherit pro_attribs_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4adb1dca9ed05fb35e02c6bd464411aa inherit pro_attribs_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a4adb1dca9ed05fb35e02c6bd464411aa"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>valid</b> = true</td></tr>
+<tr class="separator:a4adb1dca9ed05fb35e02c6bd464411aa inherit pro_attribs_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/database/<a class="el" href="row_8h_source.html">row.h</a></li>
+<li>src/database/row.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="namespace_o_p_l.html">OPL</a></li><li class="navelem"><a class="el" href="class_o_p_l_1_1_simulator_entry.html">SimulatorEntry</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>

+ 6 - 0
docs/html/class_o_p_l_1_1_simulator_entry.js

@@ -0,0 +1,6 @@
+var class_o_p_l_1_1_simulator_entry =
+[
+    [ "SimulatorEntry", "class_o_p_l_1_1_simulator_entry.html#a270248798b13c8944319e9bc217c8c77", null ],
+    [ "SimulatorEntry", "class_o_p_l_1_1_simulator_entry.html#a349055db5d8e578b8612f6d1f9d9d84f", null ],
+    [ "SimulatorEntry", "class_o_p_l_1_1_simulator_entry.html#a9c0fa89c3eb3c78a71eeea3a50184124", null ]
+];

BIN
docs/html/class_o_p_l_1_1_simulator_entry.png


+ 122 - 0
docs/html/class_o_p_l_1_1_tail_entry-members.html

@@ -0,0 +1,122 @@
+<!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_o_p_l_1_1_tail_entry.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">OPL::TailEntry Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getData</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getRowId</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getTableName</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>hasData</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>isValid</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator QString</b>() const (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>registration</b>() const (defined in <a class="el" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>() (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id, const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(OPL::DbTable table_name, int row_id) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>Row</b>(OPL::DbTable table_name) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Row</b>(const Row &amp;)=default (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>setData</b>(const RowData_T &amp;value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setRowId</b>(int value) (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>TailEntry</b>() (defined in <a class="el" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>TailEntry</b>(const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>TailEntry</b>(int row_id, const RowData_T &amp;row_data) (defined in <a class="el" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>type</b>() const (defined in <a class="el" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>valid</b> (defined in <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a>)</td><td class="entry"><a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td><td class="entry"><span class="mlabel">protected</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="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>

+ 179 - 0
docs/html/class_o_p_l_1_1_tail_entry.html

@@ -0,0 +1,179 @@
+<!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: OPL::TailEntry 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_o_p_l_1_1_tail_entry.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="class_o_p_l_1_1_tail_entry-members.html">List of all members</a>  </div>
+  <div class="headertitle">
+<div class="title">OPL::TailEntry Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for OPL::TailEntry:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_o_p_l_1_1_tail_entry.png" usemap="#OPL::TailEntry_map" alt=""/>
+  <map id="OPL::TailEntry_map" name="OPL::TailEntry_map">
+<area href="class_o_p_l_1_1_row.html" title="The Row class provides an interface for retreiving and submitting entries from the database...." alt="OPL::Row" shape="rect" coords="0,0,93,24"/>
+  </map>
+</div></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:a69ae9574d4c13ab65108be8515b34d26"><td class="memItemLeft" align="right" valign="top"><a id="a69ae9574d4c13ab65108be8515b34d26"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>TailEntry</b> (const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a69ae9574d4c13ab65108be8515b34d26"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7068a2c31a4bf82f08281aad9be5e552"><td class="memItemLeft" align="right" valign="top"><a id="a7068a2c31a4bf82f08281aad9be5e552"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>TailEntry</b> (int row_id, const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a7068a2c31a4bf82f08281aad9be5e552"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94c46ad60517d6ad2cc4439cb7bcb70a"><td class="memItemLeft" align="right" valign="top"><a id="a94c46ad60517d6ad2cc4439cb7bcb70a"></a>
+const QString&#160;</td><td class="memItemRight" valign="bottom"><b>registration</b> () const</td></tr>
+<tr class="separator:a94c46ad60517d6ad2cc4439cb7bcb70a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3fd908fe0b50cb1f1dcd5ac8ea19412b"><td class="memItemLeft" align="right" valign="top"><a id="a3fd908fe0b50cb1f1dcd5ac8ea19412b"></a>
+const QString&#160;</td><td class="memItemRight" valign="bottom"><b>type</b> () const</td></tr>
+<tr class="separator:a3fd908fe0b50cb1f1dcd5ac8ea19412b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_o_p_l_1_1_row"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_o_p_l_1_1_row')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td></tr>
+<tr class="memitem:a003f47f80870a64052f9f800aa533c6e inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a003f47f80870a64052f9f800aa533c6e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id, const RowData_T &amp;row_data)</td></tr>
+<tr class="separator:a003f47f80870a64052f9f800aa533c6e inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7de776b1e5ec66ae704735027f7f9838 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a7de776b1e5ec66ae704735027f7f9838"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name, int row_id)</td></tr>
+<tr class="separator:a7de776b1e5ec66ae704735027f7f9838 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c590facaf2f2c45086b756c67ab2415 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a9c590facaf2f2c45086b756c67ab2415"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name)</td></tr>
+<tr class="separator:a9c590facaf2f2c45086b756c67ab2415 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a043692e09011cacbcaeb0e88c1802fd1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a043692e09011cacbcaeb0e88c1802fd1"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>Row</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a043692e09011cacbcaeb0e88c1802fd1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2e97ce33358fb9a011441341646bd46b inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a2e97ce33358fb9a011441341646bd46b"></a>
+<a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_o_p_l_1_1_row.html">Row</a> &amp;)=default</td></tr>
+<tr class="separator:a2e97ce33358fb9a011441341646bd46b inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a799fbf35c18c0d8dc824d6d1a11902c3 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a799fbf35c18c0d8dc824d6d1a11902c3"></a>
+RowData_T&#160;</td><td class="memItemRight" valign="bottom"><b>getData</b> () const</td></tr>
+<tr class="separator:a799fbf35c18c0d8dc824d6d1a11902c3 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3ae77fc913896d00e6b947254b06ce9 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="ad3ae77fc913896d00e6b947254b06ce9"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setData</b> (const RowData_T &amp;value)</td></tr>
+<tr class="separator:ad3ae77fc913896d00e6b947254b06ce9 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa70580fe157b6e0a408fc975e833e85e inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa70580fe157b6e0a408fc975e833e85e"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>getRowId</b> () const</td></tr>
+<tr class="separator:aa70580fe157b6e0a408fc975e833e85e inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa029e0507bbf31d2b190eaf218fb6a2c inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa029e0507bbf31d2b190eaf218fb6a2c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setRowId</b> (int value)</td></tr>
+<tr class="separator:aa029e0507bbf31d2b190eaf218fb6a2c inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab56a4e790ecf59dfbe04e9302d995884 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="ab56a4e790ecf59dfbe04e9302d995884"></a>
+<a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a>&#160;</td><td class="memItemRight" valign="bottom"><b>getTableName</b> () const</td></tr>
+<tr class="separator:ab56a4e790ecf59dfbe04e9302d995884 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2edff39e0fc3f65181e8c5c9227c7a1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="aa2edff39e0fc3f65181e8c5c9227c7a1"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>isValid</b> () const</td></tr>
+<tr class="separator:aa2edff39e0fc3f65181e8c5c9227c7a1 inherit pub_methods_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f39ccb98dd4ad8a9ee3d72c65144e80 inherit pub_methods_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a2f39ccb98dd4ad8a9ee3d72c65144e80"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>operator QString</b> () const</td></tr>
+<tr class="separator:a2f39ccb98dd4ad8a9ee3d72c65144e80 inherit pub_methods_class_o_p_l_1_1_row"><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>
+<tr class="inherit_header pro_attribs_class_o_p_l_1_1_row"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_o_p_l_1_1_row')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_o_p_l_1_1_row.html">OPL::Row</a></td></tr>
+<tr class="memitem:af03987eb9f44d2feb3a9f155ed1f2cce inherit pro_attribs_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="af03987eb9f44d2feb3a9f155ed1f2cce"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>hasData</b></td></tr>
+<tr class="separator:af03987eb9f44d2feb3a9f155ed1f2cce inherit pro_attribs_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4adb1dca9ed05fb35e02c6bd464411aa inherit pro_attribs_class_o_p_l_1_1_row"><td class="memItemLeft" align="right" valign="top"><a id="a4adb1dca9ed05fb35e02c6bd464411aa"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>valid</b> = true</td></tr>
+<tr class="separator:a4adb1dca9ed05fb35e02c6bd464411aa inherit pro_attribs_class_o_p_l_1_1_row"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following files:<ul>
+<li>src/database/<a class="el" href="row_8h_source.html">row.h</a></li>
+<li>src/database/row.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="namespace_o_p_l.html">OPL</a></li><li class="navelem"><a class="el" href="class_o_p_l_1_1_tail_entry.html">TailEntry</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>

+ 8 - 0
docs/html/class_o_p_l_1_1_tail_entry.js

@@ -0,0 +1,8 @@
+var class_o_p_l_1_1_tail_entry =
+[
+    [ "TailEntry", "class_o_p_l_1_1_tail_entry.html#aabfa669f62ee226cbaa105c5f041bb6d", null ],
+    [ "TailEntry", "class_o_p_l_1_1_tail_entry.html#a69ae9574d4c13ab65108be8515b34d26", null ],
+    [ "TailEntry", "class_o_p_l_1_1_tail_entry.html#a7068a2c31a4bf82f08281aad9be5e552", null ],
+    [ "registration", "class_o_p_l_1_1_tail_entry.html#a94c46ad60517d6ad2cc4439cb7bcb70a", null ],
+    [ "type", "class_o_p_l_1_1_tail_entry.html#a3fd908fe0b50cb1f1dcd5ac8ea19412b", null ]
+];

BIN
docs/html/class_o_p_l_1_1_tail_entry.png


+ 6 - 5
docs/html/class_settings_widget-members.html

@@ -94,11 +94,12 @@ $(document).ready(function(){initNavTree('class_settings_widget.html',''); initR
   <tr><td class="entry"><a class="el" href="class_settings_widget.html#afec6adcb504f049de8024260c6e1603b">changeEvent</a>(QEvent *event) override</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
   <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>HomeWidget</b> enum value (defined in <a class="el" href="class_settings_widget.html">SettingsWidget</a>)</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>LogbookWidget</b> enum value (defined in <a class="el" href="class_settings_widget.html">SettingsWidget</a>)</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PilotsWidget</b> enum value (defined in <a class="el" href="class_settings_widget.html">SettingsWidget</a>)</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="class_settings_widget.html#a0f6af11e71177c5f62ecd2ff325e8d2b">settingChanged</a>(SettingSignal widget)</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"><span class="mlabel">signal</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4">SettingSignal</a> enum name</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>SettingsWidget</b>(QWidget *parent=nullptr) (defined in <a class="el" href="class_settings_widget.html">SettingsWidget</a>)</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~SettingsWidget</b>() (defined in <a class="el" href="class_settings_widget.html">SettingsWidget</a>)</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>MainWindow</b> enum value (defined in <a class="el" href="class_settings_widget.html">SettingsWidget</a>)</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>PilotsWidget</b> enum value (defined in <a class="el" href="class_settings_widget.html">SettingsWidget</a>)</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="class_settings_widget.html#ac043e2af61f3d467f91ba40f5e7bb102">settingChanged</a>(SettingsWidget::SettingSignal widget)</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"><span class="mlabel">signal</span></td></tr>
+  <tr><td class="entry"><a class="el" href="class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4">SettingSignal</a> enum name</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SettingsWidget</b>(QWidget *parent=nullptr) (defined in <a class="el" href="class_settings_widget.html">SettingsWidget</a>)</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~SettingsWidget</b>() (defined in <a class="el" href="class_settings_widget.html">SettingsWidget</a>)</td><td class="entry"><a class="el" href="class_settings_widget.html">SettingsWidget</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->

+ 9 - 5
docs/html/class_settings_widget.html

@@ -107,20 +107,24 @@ Inheritance diagram for SettingsWidget:</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:af15eec9fd55841ec02041a1114da54d4"><td class="memItemLeft" align="right" valign="top"><a id="af15eec9fd55841ec02041a1114da54d4"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4">SettingSignal</a> { <b>LogbookWidget</b>
+<tr class="memitem:af15eec9fd55841ec02041a1114da54d4"><td class="memItemLeft" align="right" valign="top"><a id="af15eec9fd55841ec02041a1114da54d4"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4">SettingSignal</a> { <br />
+&#160;&#160;<b>LogbookWidget</b>
 , <b>HomeWidget</b>
 , <b>AircraftWidget</b>
 , <b>PilotsWidget</b>
+, <br />
+&#160;&#160;<b>MainWindow</b>
+<br />
  }</td></tr>
 <tr class="memdesc:af15eec9fd55841ec02041a1114da54d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">enumerates Widgets that need to receive a signal when a setting is updated. <br /></td></tr>
 <tr class="separator:af15eec9fd55841ec02041a1114da54d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="signals"></a>
 Signals</h2></td></tr>
-<tr class="memitem:a0f6af11e71177c5f62ecd2ff325e8d2b"><td class="memItemLeft" align="right" valign="top"><a id="a0f6af11e71177c5f62ecd2ff325e8d2b"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_settings_widget.html#a0f6af11e71177c5f62ecd2ff325e8d2b">settingChanged</a> (<a class="el" href="class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4">SettingSignal</a> widget)</td></tr>
-<tr class="memdesc:a0f6af11e71177c5f62ecd2ff325e8d2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">settingChanged is emitted when a setting change occurs that needs to trigger an update (repaint) to another widget. <br /></td></tr>
-<tr class="separator:a0f6af11e71177c5f62ecd2ff325e8d2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac043e2af61f3d467f91ba40f5e7bb102"><td class="memItemLeft" align="right" valign="top"><a id="ac043e2af61f3d467f91ba40f5e7bb102"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_settings_widget.html#ac043e2af61f3d467f91ba40f5e7bb102">settingChanged</a> (<a class="el" href="class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4">SettingsWidget::SettingSignal</a> widget)</td></tr>
+<tr class="memdesc:ac043e2af61f3d467f91ba40f5e7bb102"><td class="mdescLeft">&#160;</td><td class="mdescRight">settingChanged is emitted when a setting change occurs that needs to trigger an update (repaint) to another widget. <br /></td></tr>
+<tr class="separator:ac043e2af61f3d467f91ba40f5e7bb102"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>

+ 3 - 2
docs/html/class_settings_widget.js

@@ -4,10 +4,11 @@ var class_settings_widget =
       [ "LogbookWidget", "class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4a14f96e498cb1e0663fcf5a7137791b1a", null ],
       [ "HomeWidget", "class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4a1caf53d79c70592dbf5050ddbf170e6f", null ],
       [ "AircraftWidget", "class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4a6038b3a470c82658d5f8f547a676eb40", null ],
-      [ "PilotsWidget", "class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4aa5436fa4cdf2d2ba596c6700f6f1305a", null ]
+      [ "PilotsWidget", "class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4aa5436fa4cdf2d2ba596c6700f6f1305a", null ],
+      [ "MainWindow", "class_settings_widget.html#af15eec9fd55841ec02041a1114da54d4ad4919226b789483a97a652a044d4cd26", null ]
     ] ],
     [ "SettingsWidget", "class_settings_widget.html#ad6b264d0455806fd3761a7f0e7b75dfd", null ],
     [ "~SettingsWidget", "class_settings_widget.html#ad8e7579db1d31cdf017502f82d3e9da1", null ],
     [ "changeEvent", "class_settings_widget.html#afec6adcb504f049de8024260c6e1603b", null ],
-    [ "settingChanged", "class_settings_widget.html#a0f6af11e71177c5f62ecd2ff325e8d2b", null ]
+    [ "settingChanged", "class_settings_widget.html#ac043e2af61f3d467f91ba40f5e7bb102", null ]
 ];

+ 24 - 12
docs/html/classes.html

@@ -87,38 +87,50 @@ $(document).ready(function(){initNavTree('classes.html',''); initResizable(); })
 <div class="title">Class Index</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_V">V</a></div>
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_H">H</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_O">O</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_V">V</a></div>
 <div class="classindex">
 <dl class="classindex even">
 <dt class="alphachar"><a name="letter_A">A</a></dt>
-<dd><a class="el" href="struct_a_aircraft_entry.html">AAircraftEntry</a></dd><dd><a class="el" href="class_a_completion_data.html">ACompletionData</a></dd><dd><a class="el" href="struct_a_currency_entry.html">ACurrencyEntry</a></dd><dd><a class="el" href="class_a_database.html">ADatabase</a></dd><dd><a class="el" href="class_a_database_error.html">ADatabaseError</a></dd><dd><a class="el" href="class_a_date.html">ADate</a></dd><dd><a class="el" href="class_a_download.html">ADownload</a></dd><dd><a class="el" href="class_a_entry.html">AEntry</a></dd><dd><a class="el" href="class_a_file_standard_item.html">AFileStandardItem</a></dd><dd><a class="el" href="class_a_flight_entry.html">AFlightEntry</a></dd><dd><a class="el" href="class_a_hash.html">AHash</a></dd><dd><a class="el" href="class_aircraft_widget.html">AircraftWidget</a></dd><dd><a class="el" href="class_a_json.html">AJson</a></dd><dd><a class="el" href="class_opl_1_1_a_notification_handler.html">ANotificationHandler</a> (<a class="el" href="namespace_opl.html">Opl</a>)</dd><dd><a class="el" href="struct_a_pilot_entry.html">APilotEntry</a></dd><dd><a class="el" href="class_a_run_guard.html">ARunGuard</a></dd><dd><a class="el" href="class_a_settings.html">ASettings</a></dd><dd><a class="el" href="class_a_standard_paths.html">AStandardPaths</a></dd><dd><a class="el" href="class_a_style.html">AStyle</a></dd><dd><a class="el" href="struct_a_tail_entry.html">ATailEntry</a></dd><dd><a class="el" href="class_a_timer.html">ATimer</a></dd><dd><a class="el" href="class_a_translator.html">ATranslator</a></dd></dl>
+<dd><a class="el" href="struct_a_aircraft_entry.html">AAircraftEntry</a></dd><dd><a class="el" href="class_a_completion_data.html">ACompletionData</a></dd><dd><a class="el" href="class_a_date.html">ADate</a></dd><dd><a class="el" href="class_a_download.html">ADownload</a></dd><dd><a class="el" href="class_a_file_standard_item.html">AFileStandardItem</a></dd><dd><a class="el" href="class_a_hash.html">AHash</a></dd><dd><a class="el" href="class_o_p_l_1_1_aircraft_entry.html">AircraftEntry</a> (<a class="el" href="namespace_o_p_l.html">OPL</a>)</dd><dd><a class="el" href="class_aircraft_widget.html">AircraftWidget</a></dd><dd><a class="el" href="class_airport_widget.html">AirportWidget</a></dd><dd><a class="el" href="class_a_json.html">AJson</a></dd><dd><a class="el" href="class_o_p_l_1_1_a_notification_handler.html">ANotificationHandler</a> (<a class="el" href="namespace_o_p_l.html">OPL</a>)</dd><dd><a class="el" href="class_a_run_guard.html">ARunGuard</a></dd><dd><a class="el" href="class_a_settings.html">ASettings</a></dd><dd><a class="el" href="class_a_standard_paths.html">AStandardPaths</a></dd><dd><a class="el" href="class_a_style.html">AStyle</a></dd><dd><a class="el" href="class_a_timer.html">ATimer</a></dd><dd><a class="el" href="class_a_translator.html">ATranslator</a></dd></dl>
 <dl class="classindex odd">
 <dt class="alphachar"><a name="letter_B">B</a></dt>
 <dd><a class="el" href="class_backup_widget.html">BackupWidget</a></dd></dl>
 <dl class="classindex even">
-<dt class="alphachar"><a name="letter_D">D</a></dt>
-<dd><a class="el" href="struct_data_position.html">DataPosition</a></dd><dd><a class="el" href="class_debug_widget.html">DebugWidget</a></dd></dl>
+<dt class="alphachar"><a name="letter_C">C</a></dt>
+<dd><a class="el" href="class_o_p_l_1_1_currency_entry.html">CurrencyEntry</a> (<a class="el" href="namespace_o_p_l.html">OPL</a>)</dd></dl>
 <dl class="classindex odd">
-<dt class="alphachar"><a name="letter_F">F</a></dt>
-<dd><a class="el" href="class_first_run_dialog.html">FirstRunDialog</a></dd></dl>
+<dt class="alphachar"><a name="letter_D">D</a></dt>
+<dd><a class="el" href="class_o_p_l_1_1_database.html">Database</a> (<a class="el" href="namespace_o_p_l.html">OPL</a>)</dd><dd><a class="el" href="class_o_p_l_1_1_db_completion_data.html">DbCompletionData</a> (<a class="el" href="namespace_o_p_l.html">OPL</a>)</dd><dd><a class="el" href="class_o_p_l_1_1_db_summary.html">DbSummary</a> (<a class="el" href="namespace_o_p_l.html">OPL</a>)</dd><dd><a class="el" href="class_debug_widget.html">DebugWidget</a></dd></dl>
 <dl class="classindex even">
+<dt class="alphachar"><a name="letter_F">F</a></dt>
+<dd><a class="el" href="class_first_run_dialog.html">FirstRunDialog</a></dd><dd><a class="el" href="class_o_p_l_1_1_flight_entry.html">FlightEntry</a> (<a class="el" href="namespace_o_p_l.html">OPL</a>)</dd></dl>
+<dl class="classindex odd">
 <dt class="alphachar"><a name="letter_H">H</a></dt>
 <dd><a class="el" href="class_home_widget.html">HomeWidget</a></dd></dl>
-<dl class="classindex odd">
+<dl class="classindex even">
 <dt class="alphachar"><a name="letter_L">L</a></dt>
 <dd><a class="el" href="class_logbook_widget.html">LogbookWidget</a></dd></dl>
-<dl class="classindex even">
+<dl class="classindex odd">
 <dt class="alphachar"><a name="letter_N">N</a></dt>
-<dd><a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a></dd><dd><a class="el" href="class_new_pilot_dialog.html">NewPilotDialog</a></dd><dd><a class="el" href="class_new_tail_dialog.html">NewTailDialog</a></dd><dd><a class="el" href="struct_a_calc_1_1_night_time_values.html">NightTimeValues</a> (<a class="el" href="namespace_a_calc.html">ACalc</a>)</dd></dl>
+<dd><a class="el" href="class_new_airport_dialog.html">NewAirportDialog</a></dd><dd><a class="el" href="class_new_flight_dialog.html">NewFlightDialog</a></dd><dd><a class="el" href="class_new_pilot_dialog.html">NewPilotDialog</a></dd><dd><a class="el" href="class_new_sim_dialog.html">NewSimDialog</a></dd><dd><a class="el" href="class_new_tail_dialog.html">NewTailDialog</a></dd><dd><a class="el" href="struct_a_calc_1_1_night_time_values.html">NightTimeValues</a> (<a class="el" href="namespace_a_calc.html">ACalc</a>)</dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a name="letter_O">O</a></dt>
+<dd><a class="el" href="class_o_p_l_1_1_opl_globals.html">OplGlobals</a> (<a class="el" href="namespace_o_p_l.html">OPL</a>)</dd></dl>
 <dl class="classindex odd">
 <dt class="alphachar"><a name="letter_P">P</a></dt>
-<dd><a class="el" href="class_pilots_widget.html">PilotsWidget</a></dd><dd><a class="el" href="class_process_aircraft.html">ProcessAircraft</a></dd><dd><a class="el" href="class_process_flights.html">ProcessFlights</a></dd><dd><a class="el" href="class_process_pilots.html">ProcessPilots</a></dd></dl>
+<dd><a class="el" href="class_o_p_l_1_1_pilot_entry.html">PilotEntry</a> (<a class="el" href="namespace_o_p_l.html">OPL</a>)</dd><dd><a class="el" href="class_pilots_widget.html">PilotsWidget</a></dd><dd><a class="el" href="class_process_aircraft.html">ProcessAircraft</a></dd><dd><a class="el" href="class_process_flights.html">ProcessFlights</a></dd><dd><a class="el" href="class_process_pilots.html">ProcessPilots</a></dd></dl>
 <dl class="classindex even">
+<dt class="alphachar"><a name="letter_R">R</a></dt>
+<dd><a class="el" href="class_o_p_l_1_1_row.html">Row</a> (<a class="el" href="namespace_o_p_l.html">OPL</a>)</dd></dl>
+<dl class="classindex odd">
 <dt class="alphachar"><a name="letter_S">S</a></dt>
-<dd><a class="el" href="class_settings_widget.html">SettingsWidget</a></dd><dd><a class="el" href="struct_style_sheet.html">StyleSheet</a></dd></dl>
+<dd><a class="el" href="class_settings_widget.html">SettingsWidget</a></dd><dd><a class="el" href="class_o_p_l_1_1_simulator_entry.html">SimulatorEntry</a> (<a class="el" href="namespace_o_p_l.html">OPL</a>)</dd><dd><a class="el" href="struct_style_sheet.html">StyleSheet</a></dd></dl>
+<dl class="classindex even">
+<dt class="alphachar"><a name="letter_T">T</a></dt>
+<dd><a class="el" href="class_o_p_l_1_1_tail_entry.html">TailEntry</a> (<a class="el" href="namespace_o_p_l.html">OPL</a>)</dd></dl>
 <dl class="classindex odd">
 <dt class="alphachar"><a name="letter_U">U</a></dt>
-<dd><a class="el" href="struct_user_data_state.html">UserDataState</a></dd></dl>
+<dd><a class="el" href="struct_o_p_l_1_1_user_data_state.html">UserDataState</a> (<a class="el" href="namespace_o_p_l.html">OPL</a>)</dd></dl>
 <dl class="classindex even">
 <dt class="alphachar"><a name="letter_V">V</a></dt>
 <dd><a class="el" href="class_validation_state.html">ValidationState</a></dd></dl>

+ 359 - 0
docs/html/database_8h_source.html

@@ -0,0 +1,359 @@
+<!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/database/database.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('database_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">database.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="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *openPilotLog - A FOSS Pilot Logbook Application</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2021 Felix Turowsky</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *This program is free software: you can redistribute it and/or modify</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> *it under the terms of the GNU General Public License as published by</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *the Free Software Foundation, either version 3 of the License, or</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *(at your option) any later version.</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *This program is distributed in the hope that it will be useful,</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *GNU General Public License for more details.</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *You should have received a copy of the GNU General Public License</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *along with this program.  If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#ifndef DATABASE_H</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define DATABASE_H</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &lt;QPair&gt;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &lt;QHash&gt;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &lt;QString&gt;</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &lt;QDir&gt;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;QSqlDatabase&gt;</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#include &lt;QSqlDriver&gt;</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;QSqlQuery&gt;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &lt;QSqlError&gt;</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;QSqlTableModel&gt;</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;QSqlQuery&gt;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;QSqlRecord&gt;</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;QSqlField&gt;</span></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">#include &quot;src/opl.h&quot;</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;src/database/row.h&quot;</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;src/classes/astandardpaths.h&quot;</span></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">using</span> RowData_T = QHash&lt;QString, QVariant&gt;;</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="keyword">namespace </span><a class="code" href="namespace_o_p_l.html">OPL</a> {</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#define DB OPL::Database::instance()</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_o_p_l_1_1_user_data_state.html">   57</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_o_p_l_1_1_user_data_state.html">UserDataState</a> {</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;    <a class="code" href="struct_o_p_l_1_1_user_data_state.html">UserDataState</a>(){numTails = 0; numPilots = 0;}</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <a class="code" href="struct_o_p_l_1_1_user_data_state.html">UserDataState</a>(<span class="keywordtype">int</span> numTails_, <span class="keywordtype">int</span> numPilots_)</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        : numTails(numTails_), numPilots(numPilots_){}</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">bool</span> operator==(<span class="keyword">const</span> <a class="code" href="struct_o_p_l_1_1_user_data_state.html">UserDataState</a>&amp; other)</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="keywordflow">return</span> numTails == other.numTails &amp;&amp; numPilots == other.numPilots;</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">bool</span> operator!=(<span class="keyword">const</span> <a class="code" href="struct_o_p_l_1_1_user_data_state.html">UserDataState</a>&amp; other)</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="keywordflow">return</span> numTails != other.numTails || numPilots != other.numPilots;</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="keywordtype">int</span> numTails;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    <span class="keywordtype">int</span> numPilots;</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; </div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html">   82</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_o_p_l_1_1_database.html">Database</a> : <span class="keyword">public</span> QObject {</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="keyword">private</span>:</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    Q_OBJECT</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <a class="code" href="class_o_p_l_1_1_database.html">Database</a>();</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keyword">static</span> <a class="code" href="class_o_p_l_1_1_database.html">Database</a>* <span class="keyword">self</span>;</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    QStringList tableNames;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    QHash&lt;QString, QStringList&gt; tableColumns;</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="keyword">inline</span> <span class="keyword">const</span> <span class="keyword">static</span> QString SQLITE_DRIVER  = QStringLiteral(<span class="stringliteral">&quot;QSQLITE&quot;</span>);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keyword">static</span> QList&lt;OPL::DbTable&gt; USER_TABLES = {</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        OPL::DbTable::Flights,</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        OPL::DbTable::Pilots,</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        OPL::DbTable::Tails</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="keyword">inline</span> <span class="keyword">const</span> <span class="keyword">static</span> QList&lt;OPL::DbTable&gt; TEMPLATE_TABLES = {</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        OPL::DbTable::Aircraft,</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        OPL::DbTable::Airports,</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        OPL::DbTable::Currencies,</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        OPL::DbTable::Changelog</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; </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="keyword">public</span>:</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <a class="code" href="class_o_p_l_1_1_database.html">Database</a>(<span class="keyword">const</span> <a class="code" href="class_o_p_l_1_1_database.html">Database</a>&amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="class_o_p_l_1_1_database.html">Database</a>&amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keyword">static</span> <a class="code" href="class_o_p_l_1_1_database.html">Database</a>* instance();</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="keyword">const</span> QString <a class="code" href="class_o_p_l_1_1_database.html#a6df6e6b98679011f747862ca48a3498c">version</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    <span class="keyword">const</span> QString <a class="code" href="class_o_p_l_1_1_database.html#a0b20bec0f8bef0277325492a1dee33ef">sqliteVersion</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
+<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#aa5b783822a603bdcfd1d8c93ba0af34b">  129</a></span>&#160;    QSqlError <a class="code" href="class_o_p_l_1_1_database.html#aa5b783822a603bdcfd1d8c93ba0af34b">lastError</a>;</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="keyword">const</span> QFileInfo databaseFile;</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; </div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="keyword">const</span> QStringList <a class="code" href="class_o_p_l_1_1_database.html#a9d09969956b08b86bf83277872354247">getTableNames</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160; </div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keyword">const</span> QStringList <a class="code" href="class_o_p_l_1_1_database.html#ac5b344097eeb2579da9bcfc7941d074c">getTableColumns</a>(<a class="code" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_p_l_1_1_database.html#a55a01dac1e447f7c41474a39d8f621ef">updateLayout</a>();</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160; </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#a15dbcef162931776a0bdf6610fdd4cde">connect</a>();</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160; </div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_p_l_1_1_database.html#aceb1bb497d30d413f87d6541716a873b">disconnect</a>();</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="keyword">static</span> QSqlDatabase <a class="code" href="class_o_p_l_1_1_database.html#a233943791f4bca3aa083f46562eb6d50">database</a>();</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    QVector&lt;QVariant&gt; <a class="code" href="class_o_p_l_1_1_database.html#abf45cf7ba5d25bb5d8f8aac1105bb728">customQuery</a>(QString statement, <span class="keywordtype">int</span> return_values);</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; </div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#a69f4a4fa1e496e86224e87612edba548">exists</a>(<span class="keyword">const</span> <a class="code" href="class_o_p_l_1_1_row.html">OPL::Row</a> &amp;row);</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160; </div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#aa342b9d852daecb85fb77ec2f19234a5">clear</a>();</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">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#ad9aab9c8bc43009bbc2595409004e20b">commit</a>(<span class="keyword">const</span> <a class="code" href="class_o_p_l_1_1_row.html">OPL::Row</a> &amp;row);</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160; </div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#ad9aab9c8bc43009bbc2595409004e20b">commit</a>(<span class="keyword">const</span> QJsonArray &amp;json_arr, <span class="keyword">const</span> <a class="code" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table);</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160; </div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <span class="comment">//bool insert(const AEntry &amp;new_entry);</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160; </div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#aa3bbfc0dd7ff7bd34c2c1c847f539168">insert</a>(<span class="keyword">const</span> <a class="code" href="class_o_p_l_1_1_row.html">OPL::Row</a> &amp;new_row);</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <span class="comment">//bool update(const AEntry &amp;updated_entry);</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#a4938319e593b9e5d5a334f794301d873">update</a>(<span class="keyword">const</span> <a class="code" href="class_o_p_l_1_1_row.html">OPL::Row</a> &amp;updated_row);</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160; </div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <span class="comment">//bool remove(const AEntry &amp;entry);</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="keywordtype">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#a29362ea9a2b1805d42e5ef7823c42e50">remove</a>(<span class="keyword">const</span> <a class="code" href="class_o_p_l_1_1_row.html">OPL::Row</a> &amp;row);</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</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_o_p_l_1_1_database.html#a6c2ebefc6cf6d948d64dfe71bec08540">removeMany</a>(<a class="code" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table, <span class="keyword">const</span> QList&lt;int&gt; &amp;row_id_list);</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160; </div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <a class="code" href="class_o_p_l_1_1_row.html">OPL::Row</a> <a class="code" href="class_o_p_l_1_1_database.html#ae38dc30cb955ffc0e3235e51104dd912">getRow</a>(<span class="keyword">const</span> <a class="code" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table, <span class="keyword">const</span> <span class="keywordtype">int</span> row_id);</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160; </div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    RowData_T <a class="code" href="class_o_p_l_1_1_database.html#a3657d55721b0d3599ce6df55120017de">getRowData</a>(<span class="keyword">const</span> <a class="code" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table, <span class="keyword">const</span> <span class="keywordtype">int</span> row_id);</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160; </div>
+<div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#a2834aeb5c47bde300c898021eb9bbc48">  243</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="class_o_p_l_1_1_pilot_entry.html">OPL::PilotEntry</a> <a class="code" href="class_o_p_l_1_1_database.html#a2834aeb5c47bde300c898021eb9bbc48">getPilotEntry</a>(<span class="keywordtype">int</span> row_id)</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="keyword">const</span> <span class="keyword">auto</span> data = <a class="code" href="class_o_p_l_1_1_database.html#a3657d55721b0d3599ce6df55120017de">getRowData</a>(OPL::DbTable::Pilots, row_id);</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_o_p_l_1_1_pilot_entry.html">OPL::PilotEntry</a>(row_id, data);</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    }</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160; </div>
+<div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#a95340bb482ca788e748a597d013424ea">  257</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a> <a class="code" href="class_o_p_l_1_1_database.html#a95340bb482ca788e748a597d013424ea">getTailEntry</a>(<span class="keywordtype">int</span> row_id)</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;        <span class="keyword">const</span> <span class="keyword">auto</span> data = <a class="code" href="class_o_p_l_1_1_database.html#a3657d55721b0d3599ce6df55120017de">getRowData</a>(OPL::DbTable::Tails, row_id);</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a>(row_id, data);</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    }</div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160; </div>
+<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#a84b40aff7668c0782ae25a8d07f60922">  271</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="class_o_p_l_1_1_aircraft_entry.html">OPL::AircraftEntry</a> <a class="code" href="class_o_p_l_1_1_database.html#a84b40aff7668c0782ae25a8d07f60922">getAircraftEntry</a>(<span class="keywordtype">int</span> row_id)</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;        <span class="keyword">const</span> <span class="keyword">auto</span> data = <a class="code" href="class_o_p_l_1_1_database.html#a3657d55721b0d3599ce6df55120017de">getRowData</a>(OPL::DbTable::Aircraft, row_id);</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_o_p_l_1_1_aircraft_entry.html">OPL::AircraftEntry</a>(row_id, data);</div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    }</div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160; </div>
+<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#a568d32e69f438bc165a2a9c1477eaaed">  285</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a> <a class="code" href="class_o_p_l_1_1_database.html#a568d32e69f438bc165a2a9c1477eaaed">getFlightEntry</a>(<span class="keywordtype">int</span> row_id)</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    {</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        <span class="keyword">const</span> <span class="keyword">auto</span> data = <a class="code" href="class_o_p_l_1_1_database.html#a3657d55721b0d3599ce6df55120017de">getRowData</a>(OPL::DbTable::Flights, row_id);</div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a>(row_id, data);</div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    }</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160; </div>
+<div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#a9e7e61e354d4438dab48a39fb6de1777">  299</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="class_o_p_l_1_1_simulator_entry.html">OPL::SimulatorEntry</a> <a class="code" href="class_o_p_l_1_1_database.html#a9e7e61e354d4438dab48a39fb6de1777">getSimEntry</a>(<span class="keywordtype">int</span> row_id)</div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    {</div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        <span class="keyword">const</span> <span class="keyword">auto</span> data = <a class="code" href="class_o_p_l_1_1_database.html#a3657d55721b0d3599ce6df55120017de">getRowData</a>(OPL::DbTable::Simulators, row_id);</div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_o_p_l_1_1_simulator_entry.html">OPL::SimulatorEntry</a>(row_id, data);</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    }</div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160; </div>
+<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#affb40bf4566d45bdf2a68203b53be4db">  308</a></span>&#160;    <span class="keyword">inline</span> <a class="code" href="class_o_p_l_1_1_currency_entry.html">OPL::CurrencyEntry</a> <a class="code" href="class_o_p_l_1_1_database.html#affb40bf4566d45bdf2a68203b53be4db">getCurrencyEntry</a>(<span class="keywordtype">int</span> row_id)</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    {</div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        <span class="keyword">const</span> <span class="keyword">auto</span> data = <a class="code" href="class_o_p_l_1_1_database.html#a3657d55721b0d3599ce6df55120017de">getRowData</a>(OPL::DbTable::Currencies, row_id);</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_o_p_l_1_1_currency_entry.html">OPL::CurrencyEntry</a>(row_id, data);</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    }</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160; </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="class_o_p_l_1_1_database.html#aebf3371c149463c49e818999c427ce6a">getLastEntry</a>(<a class="code" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table);</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;    QList&lt;int&gt; <a class="code" href="class_o_p_l_1_1_database.html#a4eb45d764952d44a3c45f16aea2e26d7">getForeignKeyConstraints</a>(<span class="keywordtype">int</span> foreign_row_id, <a class="code" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table);</div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160; </div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#a77003350c44e7c6e1c8c4316cc324496">restoreBackup</a>(<span class="keyword">const</span> QString&amp; backup_file);</div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#a40cdc1cce81919c42f91e2e16a63df4a">createBackup</a>(<span class="keyword">const</span> QString&amp; dest_file);</div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160; </div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    QVector&lt;RowData_T&gt; <a class="code" href="class_o_p_l_1_1_database.html#a8145a21f5980cb3c55778fbe94ef52a0">getTable</a>(<a class="code" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a> table);</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160; </div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    <span class="keyword">const</span> QList&lt;OPL::DbTable&gt; &amp;<a class="code" href="class_o_p_l_1_1_database.html#ac0db9f1a1817bb62302b17a22327bfeb">getUserTables</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160; </div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    <span class="keyword">const</span> QList&lt;OPL::DbTable&gt; &amp;<a class="code" href="class_o_p_l_1_1_database.html#ad7cd939e58af8f1fd46f835ee34567e3">getTemplateTables</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160; </div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_o_p_l_1_1_user_data_state.html">UserDataState</a> <a class="code" href="class_o_p_l_1_1_database.html#a0b75d74d59d49c5da3610666de0c2d85">getUserDataState</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160; </div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    <span class="comment">// Maintenance and setup</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160; </div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#a92c22cb18c5a23858edd38e0ed9d7117">createSchema</a>();</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#a4be4811cb27c836070a6b8c09dee6a3b">importTemplateData</a>(<span class="keywordtype">bool</span> use_local_ressources);</div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160; </div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#a63af56a9fbd8cd0290494cc28d327824">resetUserData</a>();</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160; </div>
+<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160; </div>
+<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160; </div>
+<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;signals:</div>
+<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#ab0dbab5f0a97745f8a86b1703abcae38">  385</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_p_l_1_1_database.html#ab0dbab5f0a97745f8a86b1703abcae38">dataBaseUpdated</a>();</div>
+<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#acc87b25e9ab6a6a6dce1883821292882">  390</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_p_l_1_1_database.html#acc87b25e9ab6a6a6dce1883821292882">connectionReset</a>();</div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;};</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160; </div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;} <span class="comment">// namespace OPL</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160; </div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// DATABASE_H</span></div>
+<div class="ttc" id="aclass_o_p_l_1_1_aircraft_entry_html"><div class="ttname"><a href="class_o_p_l_1_1_aircraft_entry.html">OPL::AircraftEntry</a></div><div class="ttdef"><b>Definition:</b> row.h:45</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_currency_entry_html"><div class="ttname"><a href="class_o_p_l_1_1_currency_entry.html">OPL::CurrencyEntry</a></div><div class="ttdef"><b>Definition:</b> row.h:89</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html"><div class="ttname"><a href="class_o_p_l_1_1_database.html">OPL::Database</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> database.h:82</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a0b20bec0f8bef0277325492a1dee33ef"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a0b20bec0f8bef0277325492a1dee33ef">OPL::Database::sqliteVersion</a></div><div class="ttdeci">const QString sqliteVersion() const</div><div class="ttdoc">Database::sqliteVersion returns the database sqlite version. See also dbRevision()</div><div class="ttdef"><b>Definition:</b> database.cpp:103</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a0b75d74d59d49c5da3610666de0c2d85"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a0b75d74d59d49c5da3610666de0c2d85">OPL::Database::getUserDataState</a></div><div class="ttdeci">const UserDataState getUserDataState() const</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> database.cpp:52</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a15dbcef162931776a0bdf6610fdd4cde"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a15dbcef162931776a0bdf6610fdd4cde">OPL::Database::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> database.cpp:112</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a233943791f4bca3aa083f46562eb6d50"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a233943791f4bca3aa083f46562eb6d50">OPL::Database::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> database.cpp:147</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a2834aeb5c47bde300c898021eb9bbc48"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a2834aeb5c47bde300c898021eb9bbc48">OPL::Database::getPilotEntry</a></div><div class="ttdeci">OPL::PilotEntry getPilotEntry(int row_id)</div><div class="ttdoc">retreives a PilotEntry from the database.</div><div class="ttdef"><b>Definition:</b> database.h:243</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a29362ea9a2b1805d42e5ef7823c42e50"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a29362ea9a2b1805d42e5ef7823c42e50">OPL::Database::remove</a></div><div class="ttdeci">bool remove(const OPL::Row &amp;row)</div><div class="ttdoc">deletes an entry from the database.</div><div class="ttdef"><b>Definition:</b> database.cpp:238</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a3657d55721b0d3599ce6df55120017de"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a3657d55721b0d3599ce6df55120017de">OPL::Database::getRowData</a></div><div class="ttdeci">RowData_T getRowData(const OPL::DbTable table, const int row_id)</div><div class="ttdoc">retreive a Map of &lt;column name, column content&gt; for a specific row in the database.</div><div class="ttdef"><b>Definition:</b> database.cpp:464</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a40cdc1cce81919c42f91e2e16a63df4a"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a40cdc1cce81919c42f91e2e16a63df4a">OPL::Database::createBackup</a></div><div class="ttdeci">bool createBackup(const QString &amp;dest_file)</div><div class="ttdoc">Database::createBackup copies the currently used database to an external backup location provided by ...</div><div class="ttdef"><b>Definition:</b> database.cpp:578</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a4938319e593b9e5d5a334f794301d873"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a4938319e593b9e5d5a334f794301d873">OPL::Database::update</a></div><div class="ttdeci">bool update(const OPL::Row &amp;updated_row)</div><div class="ttdoc">Updates entry in database from existing entry tweaked by the user.</div><div class="ttdef"><b>Definition:</b> database.cpp:353</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a4be4811cb27c836070a6b8c09dee6a3b"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a4be4811cb27c836070a6b8c09dee6a3b">OPL::Database::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> database.cpp:711</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a4eb45d764952d44a3c45f16aea2e26d7"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a4eb45d764952d44a3c45f16aea2e26d7">OPL::Database::getForeignKeyConstraints</a></div><div class="ttdeci">QList&lt; int &gt; getForeignKeyConstraints(int foreign_row_id, OPL::DbTable table)</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> database.cpp:509</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a55a01dac1e447f7c41474a39d8f621ef"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a55a01dac1e447f7c41474a39d8f621ef">OPL::Database::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> database.cpp:78</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a568d32e69f438bc165a2a9c1477eaaed"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a568d32e69f438bc165a2a9c1477eaaed">OPL::Database::getFlightEntry</a></div><div class="ttdeci">OPL::FlightEntry getFlightEntry(int row_id)</div><div class="ttdoc">retreives a flight entry from the database.</div><div class="ttdef"><b>Definition:</b> database.h:285</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a63af56a9fbd8cd0290494cc28d327824"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a63af56a9fbd8cd0290494cc28d327824">OPL::Database::resetUserData</a></div><div class="ttdeci">bool resetUserData()</div><div class="ttdoc">Delete all rows from the user data tables (flights, pliots, tails)</div><div class="ttdef"><b>Definition:</b> database.cpp:748</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a69f4a4fa1e496e86224e87612edba548"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a69f4a4fa1e496e86224e87612edba548">OPL::Database::exists</a></div><div class="ttdeci">bool exists(const OPL::Row &amp;row)</div><div class="ttdoc">Checks if an entry exists in the database, based on position data.</div><div class="ttdef"><b>Definition:</b> database.cpp:309</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a6c2ebefc6cf6d948d64dfe71bec08540"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a6c2ebefc6cf6d948d64dfe71bec08540">OPL::Database::removeMany</a></div><div class="ttdeci">bool removeMany(OPL::DbTable table, const QList&lt; int &gt; &amp;row_id_list)</div><div class="ttdoc">deletes a batch of entries from the database. Optimised for speed when deleting many entries....</div><div class="ttdef"><b>Definition:</b> database.cpp:267</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a6df6e6b98679011f747862ca48a3498c"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a6df6e6b98679011f747862ca48a3498c">OPL::Database::version</a></div><div class="ttdeci">const QString version() const</div><div class="ttdoc">Return the database revision number (not the sqlite version number).</div><div class="ttdef"><b>Definition:</b> database.cpp:35</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a77003350c44e7c6e1c8c4316cc324496"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a77003350c44e7c6e1c8c4316cc324496">OPL::Database::restoreBackup</a></div><div class="ttdeci">bool restoreBackup(const QString &amp;backup_file)</div><div class="ttdoc">Database::restoreBackup restores the database from a given backup file and replaces the currently act...</div><div class="ttdef"><b>Definition:</b> database.cpp:645</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a8145a21f5980cb3c55778fbe94ef52a0"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a8145a21f5980cb3c55778fbe94ef52a0">OPL::Database::getTable</a></div><div class="ttdeci">QVector&lt; RowData_T &gt; getTable(OPL::DbTable table)</div><div class="ttdoc">getTable returns all contents of a given table from the database</div><div class="ttdef"><b>Definition:</b> database.cpp:596</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a84b40aff7668c0782ae25a8d07f60922"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a84b40aff7668c0782ae25a8d07f60922">OPL::Database::getAircraftEntry</a></div><div class="ttdeci">OPL::AircraftEntry getAircraftEntry(int row_id)</div><div class="ttdoc">retreives a TailEntry from the database.</div><div class="ttdef"><b>Definition:</b> database.h:271</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a92c22cb18c5a23858edd38e0ed9d7117"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a92c22cb18c5a23858edd38e0ed9d7117">OPL::Database::createSchema</a></div><div class="ttdeci">bool createSchema()</div><div class="ttdoc">Create or restore the database to its ready-to-use but empty state.</div><div class="ttdef"><b>Definition:</b> database.cpp:676</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a95340bb482ca788e748a597d013424ea"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a95340bb482ca788e748a597d013424ea">OPL::Database::getTailEntry</a></div><div class="ttdeci">OPL::TailEntry getTailEntry(int row_id)</div><div class="ttdoc">retreives a TailEntry from the database.</div><div class="ttdef"><b>Definition:</b> database.h:257</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a9d09969956b08b86bf83277872354247"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a9d09969956b08b86bf83277872354247">OPL::Database::getTableNames</a></div><div class="ttdeci">const QStringList getTableNames() const</div><div class="ttdoc">Return the names of all tables in the database.</div><div class="ttdef"><b>Definition:</b> database.cpp:73</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_a9e7e61e354d4438dab48a39fb6de1777"><div class="ttname"><a href="class_o_p_l_1_1_database.html#a9e7e61e354d4438dab48a39fb6de1777">OPL::Database::getSimEntry</a></div><div class="ttdeci">OPL::SimulatorEntry getSimEntry(int row_id)</div><div class="ttdoc">retreives a Simulator entry from the database.</div><div class="ttdef"><b>Definition:</b> database.h:299</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_aa342b9d852daecb85fb77ec2f19234a5"><div class="ttname"><a href="class_o_p_l_1_1_database.html#aa342b9d852daecb85fb77ec2f19234a5">OPL::Database::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> database.cpp:338</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_aa3bbfc0dd7ff7bd34c2c1c847f539168"><div class="ttname"><a href="class_o_p_l_1_1_database.html#aa3bbfc0dd7ff7bd34c2c1c847f539168">OPL::Database::insert</a></div><div class="ttdeci">bool insert(const OPL::Row &amp;new_row)</div><div class="ttdoc">Create new entry in the databse based on UserInput.</div><div class="ttdef"><b>Definition:</b> database.cpp:389</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_aa5b783822a603bdcfd1d8c93ba0af34b"><div class="ttname"><a href="class_o_p_l_1_1_database.html#aa5b783822a603bdcfd1d8c93ba0af34b">OPL::Database::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> database.h:129</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_ab0dbab5f0a97745f8a86b1703abcae38"><div class="ttname"><a href="class_o_p_l_1_1_database.html#ab0dbab5f0a97745f8a86b1703abcae38">OPL::Database::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_o_p_l_1_1_database_html_abf45cf7ba5d25bb5d8f8aac1105bb728"><div class="ttname"><a href="class_o_p_l_1_1_database.html#abf45cf7ba5d25bb5d8f8aac1105bb728">OPL::Database::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> database.cpp:546</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_ac0db9f1a1817bb62302b17a22327bfeb"><div class="ttname"><a href="class_o_p_l_1_1_database.html#ac0db9f1a1817bb62302b17a22327bfeb">OPL::Database::getUserTables</a></div><div class="ttdeci">const QList&lt; OPL::DbTable &gt; &amp; getUserTables() const</div><div class="ttdoc">getUserTables returns a list of the of the tables that contain user-created data (flights,...</div><div class="ttdef"><b>Definition:</b> database.cpp:47</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_ac5b344097eeb2579da9bcfc7941d074c"><div class="ttname"><a href="class_o_p_l_1_1_database.html#ac5b344097eeb2579da9bcfc7941d074c">OPL::Database::getTableColumns</a></div><div class="ttdeci">const QStringList getTableColumns(OPL::DbTable table_name) const</div><div class="ttdoc">Return the names of a given table in the database.</div><div class="ttdef"><b>Definition:</b> database.cpp:68</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_acc87b25e9ab6a6a6dce1883821292882"><div class="ttname"><a href="class_o_p_l_1_1_database.html#acc87b25e9ab6a6a6dce1883821292882">OPL::Database::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_o_p_l_1_1_database_html_aceb1bb497d30d413f87d6541716a873b"><div class="ttname"><a href="class_o_p_l_1_1_database.html#aceb1bb497d30d413f87d6541716a873b">OPL::Database::disconnect</a></div><div class="ttdeci">void disconnect()</div><div class="ttdoc">closes the database connection.</div><div class="ttdef"><b>Definition:</b> database.cpp:139</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_ad7cd939e58af8f1fd46f835ee34567e3"><div class="ttname"><a href="class_o_p_l_1_1_database.html#ad7cd939e58af8f1fd46f835ee34567e3">OPL::Database::getTemplateTables</a></div><div class="ttdeci">const QList&lt; OPL::DbTable &gt; &amp; getTemplateTables() const</div><div class="ttdoc">getTemplateTables returns a list of the tables that contain template data (aiports,...</div><div class="ttdef"><b>Definition:</b> database.cpp:42</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_ad9aab9c8bc43009bbc2595409004e20b"><div class="ttname"><a href="class_o_p_l_1_1_database.html#ad9aab9c8bc43009bbc2595409004e20b">OPL::Database::commit</a></div><div class="ttdeci">bool commit(const OPL::Row &amp;row)</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> database.cpp:161</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_ae38dc30cb955ffc0e3235e51104dd912"><div class="ttname"><a href="class_o_p_l_1_1_database.html#ae38dc30cb955ffc0e3235e51104dd912">OPL::Database::getRow</a></div><div class="ttdeci">OPL::Row getRow(const OPL::DbTable table, const int row_id)</div><div class="ttdoc">retreive a Row from the database</div><div class="ttdef"><b>Definition:</b> database.cpp:432</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_aebf3371c149463c49e818999c427ce6a"><div class="ttname"><a href="class_o_p_l_1_1_database.html#aebf3371c149463c49e818999c427ce6a">OPL::Database::getLastEntry</a></div><div class="ttdeci">int getLastEntry(OPL::DbTable table)</div><div class="ttdoc">returns the ROWID for the newest entry in the respective database.</div><div class="ttdef"><b>Definition:</b> database.cpp:496</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_database_html_affb40bf4566d45bdf2a68203b53be4db"><div class="ttname"><a href="class_o_p_l_1_1_database.html#affb40bf4566d45bdf2a68203b53be4db">OPL::Database::getCurrencyEntry</a></div><div class="ttdeci">OPL::CurrencyEntry getCurrencyEntry(int row_id)</div><div class="ttdoc">Retreives a currency entry from the database.</div><div class="ttdef"><b>Definition:</b> database.h:308</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_flight_entry_html"><div class="ttname"><a href="class_o_p_l_1_1_flight_entry.html">OPL::FlightEntry</a></div><div class="ttdef"><b>Definition:</b> row.h:81</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_pilot_entry_html"><div class="ttname"><a href="class_o_p_l_1_1_pilot_entry.html">OPL::PilotEntry</a></div><div class="ttdef"><b>Definition:</b> row.h:64</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_row_html"><div class="ttname"><a href="class_o_p_l_1_1_row.html">OPL::Row</a></div><div class="ttdoc">The Row class provides an interface for retreiving and submitting entries from the database....</div><div class="ttdef"><b>Definition:</b> row.h:13</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_simulator_entry_html"><div class="ttname"><a href="class_o_p_l_1_1_simulator_entry.html">OPL::SimulatorEntry</a></div><div class="ttdef"><b>Definition:</b> row.h:73</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_tail_entry_html"><div class="ttname"><a href="class_o_p_l_1_1_tail_entry.html">OPL::TailEntry</a></div><div class="ttdef"><b>Definition:</b> row.h:53</div></div>
+<div class="ttc" id="anamespace_o_p_l_html"><div class="ttname"><a href="namespace_o_p_l.html">OPL</a></div><div class="ttdoc">A namespace to collect constants and enums used throughout the application.</div><div class="ttdef"><b>Definition:</b> database.cpp:25</div></div>
+<div class="ttc" id="anamespace_o_p_l_html_ada86eb02cea54d91c8c11c9112ec1cf7"><div class="ttname"><a href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c9112ec1cf7">OPL::DbTable</a></div><div class="ttdeci">DbTable</div><div class="ttdoc">Enumerates the tables in the database.</div><div class="ttdef"><b>Definition:</b> opl.h:122</div></div>
+<div class="ttc" id="astruct_o_p_l_1_1_user_data_state_html"><div class="ttname"><a href="struct_o_p_l_1_1_user_data_state.html">OPL::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> database.h:57</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>database.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>

+ 158 - 0
docs/html/dbcompletiondata_8h_source.html

@@ -0,0 +1,158 @@
+<!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/database/dbcompletiondata.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('dbcompletiondata_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">dbcompletiondata.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 DBCOMPLETIONDATA_H</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define DBCOMPLETIONDATA_H</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;src/database/database.h&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_o_p_l.html">OPL</a> {</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="namespace_o_p_l.html#a183077dea2ffeb8866c41affcabcc53a">   12</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="namespace_o_p_l.html#a183077dea2ffeb8866c41affcabcc53a">CompleterTarget</a></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;{</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    AirportIdentifierICAO,</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    AirportIdentifierIATA,</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    AirportIdentifier,</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    AirportNames,</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    Registrations,</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    Companies,</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    PilotNames,</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    AircraftTypes</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; </div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_db_completion_data.html">   32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_o_p_l_1_1_db_completion_data.html">DbCompletionData</a></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="keyword">public</span>:</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_p_l_1_1_db_completion_data.html#a0d158b17b9d05fb61250a03c4ff0d33a">init</a>();</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="class_o_p_l_1_1_db_completion_data.html#afc1e1cd7b565004734c0d65f1757a563">update</a>();</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    <span class="keywordtype">void</span> updateTails();</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="keywordtype">void</span> updatePilots();</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;    <span class="comment">// Maps for input mapping DB key - user input</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    QHash&lt;int, QString&gt; pilotsIdMap;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    QHash&lt;int, QString&gt; tailsIdMap;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    QHash&lt;int, QString&gt; airportIcaoIdMap;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    QHash&lt;int, QString&gt; airportIataIdMap;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    QHash&lt;int, QString&gt; airportNameIdMap;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="comment">// Lists for QCompleter</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    QStringList pilotList;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    QStringList tailsList;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    QStringList airportList;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="comment">// User Data State to trigger update if needed</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <a class="code" href="struct_o_p_l_1_1_user_data_state.html">UserDataState</a> current_state;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160; </div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QStringList <a class="code" href="class_o_p_l_1_1_db_completion_data.html#adf869b051f481654803deed41e9f2179">getCompletionList</a>(<a class="code" href="namespace_o_p_l.html#a183077dea2ffeb8866c41affcabcc53a">CompleterTarget</a> target);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QHash&lt;int, QString&gt; <a class="code" href="class_o_p_l_1_1_db_completion_data.html#aa11d8a7f4fe7521f1a1b59178ed26972">getIdMap</a>(<a class="code" href="namespace_o_p_l.html#a183077dea2ffeb8866c41affcabcc53a">CompleterTarget</a> target);</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; </div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;} <span class="comment">// namespace OPL</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;<span class="preprocessor">#endif </span><span class="comment">// DBCOMPLETIONDATA_H</span></div>
+<div class="ttc" id="aclass_o_p_l_1_1_db_completion_data_html"><div class="ttname"><a href="class_o_p_l_1_1_db_completion_data.html">OPL::DbCompletionData</a></div><div class="ttdoc">Provides data for QCompleters and QHashs.</div><div class="ttdef"><b>Definition:</b> dbcompletiondata.h:33</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_db_completion_data_html_a0d158b17b9d05fb61250a03c4ff0d33a"><div class="ttname"><a href="class_o_p_l_1_1_db_completion_data.html#a0d158b17b9d05fb61250a03c4ff0d33a">OPL::DbCompletionData::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> dbcompletiondata.cpp:5</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_db_completion_data_html_aa11d8a7f4fe7521f1a1b59178ed26972"><div class="ttname"><a href="class_o_p_l_1_1_db_completion_data.html#aa11d8a7f4fe7521f1a1b59178ed26972">OPL::DbCompletionData::getIdMap</a></div><div class="ttdeci">static const QHash&lt; int, QString &gt; getIdMap(CompleterTarget target)</div><div class="ttdoc">returns a QHash of a human-readable database value and its row id. Used in the Dialogs to map user in...</div><div class="ttdef"><b>Definition:</b> dbcompletiondata.cpp:101</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_db_completion_data_html_adf869b051f481654803deed41e9f2179"><div class="ttname"><a href="class_o_p_l_1_1_db_completion_data.html#adf869b051f481654803deed41e9f2179">OPL::DbCompletionData::getCompletionList</a></div><div class="ttdeci">static const QStringList getCompletionList(CompleterTarget 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> dbcompletiondata.cpp:58</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_db_completion_data_html_afc1e1cd7b565004734c0d65f1757a563"><div class="ttname"><a href="class_o_p_l_1_1_db_completion_data.html#afc1e1cd7b565004734c0d65f1757a563">OPL::DbCompletionData::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> dbcompletiondata.cpp:33</div></div>
+<div class="ttc" id="anamespace_o_p_l_html"><div class="ttname"><a href="namespace_o_p_l.html">OPL</a></div><div class="ttdoc">A namespace to collect constants and enums used throughout the application.</div><div class="ttdef"><b>Definition:</b> database.cpp:25</div></div>
+<div class="ttc" id="anamespace_o_p_l_html_a183077dea2ffeb8866c41affcabcc53a"><div class="ttname"><a href="namespace_o_p_l.html#a183077dea2ffeb8866c41affcabcc53a">OPL::CompleterTarget</a></div><div class="ttdeci">CompleterTarget</div><div class="ttdoc">The DatabaseTarget enum lists database items that are used by completers, for content matching or nee...</div><div class="ttdef"><b>Definition:</b> dbcompletiondata.h:13</div></div>
+<div class="ttc" id="astruct_o_p_l_1_1_user_data_state_html"><div class="ttname"><a href="struct_o_p_l_1_1_user_data_state.html">OPL::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> database.h:57</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>dbcompletiondata.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>

+ 139 - 0
docs/html/dbsummary_8h_source.html

@@ -0,0 +1,139 @@
+<!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/database/dbsummary.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('dbsummary_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">dbsummary.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 DBSUMMARY_H</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="preprocessor">#define DBSUMMARY_H</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160; </div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;src/database/database.h&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160; </div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_o_p_l.html">OPL</a> {</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160; </div>
+<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="namespace_o_p_l.html#a57a78a0fee920e2605638d9fea82b57e">   11</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="namespace_o_p_l.html#a57a78a0fee920e2605638d9fea82b57e">DbSummaryKey</a> {</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    total_flights,</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    total_tails,</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    total_pilots,</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    last_flight,</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    total_time,</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;};</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160; </div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_db_summary.html">   27</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_o_p_l_1_1_db_summary.html">DbSummary</a> : <span class="keyword">public</span> QObject</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">public</span>:</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <a class="code" href="class_o_p_l_1_1_db_summary.html">DbSummary</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> QMap&lt;DbSummaryKey, QString&gt; <a class="code" href="class_o_p_l_1_1_db_summary.html#a7f82bff756d73d1430fda9681fb4a66e">databaseSummary</a>(<span class="keyword">const</span> QString&amp; db_path);</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="keyword">const</span> QString <a class="code" href="class_o_p_l_1_1_db_summary.html#a64a8a01526b171f5376eae880a7fd148">summaryString</a>(<span class="keyword">const</span> QString&amp; db_path);</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="keyword">private</span>:</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    Q_OBJECT</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keyword">static</span> QString SQLITE_DRIVER  = QStringLiteral(<span class="stringliteral">&quot;QSQLITE&quot;</span>);</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; </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="comment">// namespace OPL</span></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="preprocessor">#endif </span><span class="comment">// DBSUMMARY_H</span></div>
+<div class="ttc" id="aclass_o_p_l_1_1_db_summary_html"><div class="ttname"><a href="class_o_p_l_1_1_db_summary.html">OPL::DbSummary</a></div><div class="ttdoc">The DbSummary class collects summaries of entries and relevant data from the database.</div><div class="ttdef"><b>Definition:</b> dbsummary.h:28</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_db_summary_html_a64a8a01526b171f5376eae880a7fd148"><div class="ttname"><a href="class_o_p_l_1_1_db_summary.html#a64a8a01526b171f5376eae880a7fd148">OPL::DbSummary::summaryString</a></div><div class="ttdeci">static const QString summaryString(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> dbsummary.cpp:66</div></div>
+<div class="ttc" id="aclass_o_p_l_1_1_db_summary_html_a7f82bff756d73d1430fda9681fb4a66e"><div class="ttname"><a href="class_o_p_l_1_1_db_summary.html#a7f82bff756d73d1430fda9681fb4a66e">OPL::DbSummary::databaseSummary</a></div><div class="ttdeci">static const QMap&lt; DbSummaryKey, 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> dbsummary.cpp:5</div></div>
+<div class="ttc" id="anamespace_o_p_l_html"><div class="ttname"><a href="namespace_o_p_l.html">OPL</a></div><div class="ttdoc">A namespace to collect constants and enums used throughout the application.</div><div class="ttdef"><b>Definition:</b> database.cpp:25</div></div>
+<div class="ttc" id="anamespace_o_p_l_html_a57a78a0fee920e2605638d9fea82b57e"><div class="ttname"><a href="namespace_o_p_l.html#a57a78a0fee920e2605638d9fea82b57e">OPL::DbSummaryKey</a></div><div class="ttdeci">DbSummaryKey</div><div class="ttdoc">Enumerates the QHash keys used when summarising a database.</div><div class="ttdef"><b>Definition:</b> dbsummary.h:11</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>dbsummary.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>

+ 44 - 45
docs/html/debugwidget_8h_source.html

@@ -117,51 +117,50 @@ $(document).ready(function(){initNavTree('debugwidget_8h_source.html',''); initR
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#include &quot;src/classes/adownload.h&quot;</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;src/functions/areadcsv.h&quot;</span></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;<span class="preprocessor">#include &quot;src/database/adatabase.h&quot;</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;src/classes/aentry.h&quot;</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;src/classes/apilotentry.h&quot;</span></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;<span class="preprocessor">#include &quot;src/testing/atimer.h&quot;</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;src/functions/alog.h&quot;</span></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">namespace </span>Ui {</div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">class </span><a class="code" href="class_debug_widget.html">DebugWidget</a>;</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"><a class="line" href="class_debug_widget.html">   42</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_debug_widget.html">DebugWidget</a> : <span class="keyword">public</span> QWidget</div>
-<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;{</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;    Q_OBJECT</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="keyword">public</span>:</div>
-<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="class_debug_widget.html">DebugWidget</a>(QWidget *parent = <span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    ~<a class="code" href="class_debug_widget.html">DebugWidget</a>();</div>
-<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;<span class="keyword">private</span> slots:</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordtype">void</span> on_resetUserTablesPushButton_clicked();</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> on_resetDatabasePushButton_clicked();</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;    <span class="keywordtype">void</span> downloadFinished();</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="keywordtype">void</span> on_fillUserDataPushButton_clicked();</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="keywordtype">void</span> on_selectCsvPushButton_clicked();</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="keywordtype">void</span> on_importCsvPushButton_clicked();</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> on_debugPushButton_clicked();</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="keyword">private</span>:</div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    Ui::DebugWidget *ui;</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">bool</span> downloadComplete = <span class="keyword">false</span>;</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="keyword">protected</span>:</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;    <span class="keywordtype">void</span> changeEvent(QEvent* event) <span class="keyword">override</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; </div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// DEBUGWIDGET_H</span></div>
-<div class="ttc" id="aclass_debug_widget_html"><div class="ttname"><a href="class_debug_widget.html">DebugWidget</a></div><div class="ttdef"><b>Definition:</b> debugwidget.h:43</div></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;src/database/database.h&quot;</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;src/database/row.h&quot;</span></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">#include &quot;src/testing/atimer.h&quot;</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;src/functions/alog.h&quot;</span></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;<span class="keyword">namespace </span>Ui {</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="keyword">class </span><a class="code" href="class_debug_widget.html">DebugWidget</a>;</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"><a class="line" href="class_debug_widget.html">   41</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_debug_widget.html">DebugWidget</a> : <span class="keyword">public</span> QWidget</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;    Q_OBJECT</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">public</span>:</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="class_debug_widget.html">DebugWidget</a>(QWidget *parent = <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    ~<a class="code" href="class_debug_widget.html">DebugWidget</a>();</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">private</span> slots:</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="keywordtype">void</span> on_resetUserTablesPushButton_clicked();</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="keywordtype">void</span> on_resetDatabasePushButton_clicked();</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="keywordtype">void</span> downloadFinished();</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="keywordtype">void</span> on_fillUserDataPushButton_clicked();</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="keywordtype">void</span> on_selectCsvPushButton_clicked();</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="keywordtype">void</span> on_importCsvPushButton_clicked();</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;    <span class="keywordtype">void</span> on_debugPushButton_clicked();</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="keyword">private</span>:</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    Ui::DebugWidget *ui;</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">bool</span> downloadComplete = <span class="keyword">false</span>;</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="keyword">protected</span>:</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="keywordtype">void</span> changeEvent(QEvent* event) <span class="keyword">override</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; </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// DEBUGWIDGET_H</span></div>
+<div class="ttc" id="aclass_debug_widget_html"><div class="ttname"><a href="class_debug_widget.html">DebugWidget</a></div><div class="ttdef"><b>Definition:</b> debugwidget.h:42</div></div>
 </div><!-- fragment --></div><!-- contents -->
 </div><!-- doc-content -->
 <!-- start footer part -->

+ 0 - 5
docs/html/dir_018e9aafb459e6e1a4953404cb0c0b1d.js

@@ -2,17 +2,12 @@ var dir_018e9aafb459e6e1a4953404cb0c0b1d =
 [
     [ "aaircraftentry.h", "aaircraftentry_8h_source.html", null ],
     [ "acompletiondata.h", "acompletiondata_8h_source.html", null ],
-    [ "acurrencyentry.h", "acurrencyentry_8h_source.html", null ],
     [ "adownload.h", "adownload_8h_source.html", null ],
-    [ "aentry.h", "aentry_8h_source.html", null ],
-    [ "aflightentry.h", "aflightentry_8h_source.html", null ],
     [ "ahash.h", "ahash_8h_source.html", null ],
     [ "ajson.h", "ajson_8h_source.html", null ],
-    [ "apilotentry.h", "apilotentry_8h_source.html", null ],
     [ "arunguard.h", "arunguard_8h_source.html", null ],
     [ "asettings.h", "asettings_8h_source.html", null ],
     [ "astandardpaths.h", "astandardpaths_8h_source.html", null ],
     [ "astyle.h", "astyle_8h_source.html", null ],
-    [ "atailentry.h", "atailentry_8h_source.html", null ],
     [ "atranslator.h", "atranslator_8h_source.html", null ]
 ];

+ 2 - 0
docs/html/dir_22d8b8621769acf8e49801a1050c5c94.js

@@ -1,7 +1,9 @@
 var dir_22d8b8621769acf8e49801a1050c5c94 =
 [
     [ "firstrundialog.h", "firstrundialog_8h_source.html", null ],
+    [ "newairportdialog.h", "newairportdialog_8h_source.html", null ],
     [ "newflightdialog.h", "newflightdialog_8h_source.html", null ],
     [ "newpilotdialog.h", "newpilotdialog_8h_source.html", null ],
+    [ "newsimdialog.h", "newsimdialog_8h_source.html", null ],
     [ "newtaildialog.h", "newtaildialog_8h_source.html", null ]
 ];

+ 4 - 3
docs/html/dir_803ee67260c130b45d29089798491ab2.js

@@ -1,6 +1,7 @@
 var dir_803ee67260c130b45d29089798491ab2 =
 [
-    [ "adatabase.h", "adatabase_8h_source.html", null ],
-    [ "adatabasetypes.h", "adatabasetypes_8h_source.html", null ],
-    [ "adbsetup.h", "adbsetup_8h_source.html", null ]
+    [ "database.h", "database_8h_source.html", null ],
+    [ "dbcompletiondata.h", "dbcompletiondata_8h_source.html", null ],
+    [ "dbsummary.h", "dbsummary_8h_source.html", null ],
+    [ "row.h", "row_8h_source.html", null ]
 ];

+ 1 - 0
docs/html/dir_cc657b4ce13702a9d007a200bde234e1.js

@@ -1,6 +1,7 @@
 var dir_cc657b4ce13702a9d007a200bde234e1 =
 [
     [ "aircraftwidget.h", "aircraftwidget_8h_source.html", null ],
+    [ "airportwidget.h", "airportwidget_8h_source.html", null ],
     [ "backupwidget.h", "backupwidget_8h_source.html", null ],
     [ "debugwidget.h", "debugwidget_8h_source.html", null ],
     [ "homewidget.h", "homewidget_8h_source.html", null ],

+ 33 - 34
docs/html/files.html

@@ -93,23 +93,19 @@ $(document).ready(function(){initNavTree('files.html',''); initResizable(); });
 <tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_018e9aafb459e6e1a4953404cb0c0b1d.html" target="_self">classes</a></td><td class="desc"></td></tr>
 <tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="aaircraftentry_8h_source.html"><span class="icondoc"></span></a><b>aaircraftentry.h</b></td><td class="desc"></td></tr>
 <tr id="row_0_0_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="acompletiondata_8h_source.html"><span class="icondoc"></span></a><b>acompletiondata.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="acurrencyentry_8h_source.html"><span class="icondoc"></span></a><b>acurrencyentry.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="adownload_8h_source.html"><span class="icondoc"></span></a><b>adownload.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="aentry_8h_source.html"><span class="icondoc"></span></a><b>aentry.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="aflightentry_8h_source.html"><span class="icondoc"></span></a><b>aflightentry.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="ahash_8h_source.html"><span class="icondoc"></span></a><b>ahash.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_7_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="ajson_8h_source.html"><span class="icondoc"></span></a><b>ajson.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="apilotentry_8h_source.html"><span class="icondoc"></span></a><b>apilotentry.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="arunguard_8h_source.html"><span class="icondoc"></span></a><b>arunguard.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="asettings_8h_source.html"><span class="icondoc"></span></a><b>asettings.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_11_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="astandardpaths_8h_source.html"><span class="icondoc"></span></a><b>astandardpaths.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_12_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="astyle_8h_source.html"><span class="icondoc"></span></a><b>astyle.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_13_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="atailentry_8h_source.html"><span class="icondoc"></span></a><b>atailentry.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_14_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="atranslator_8h_source.html"><span class="icondoc"></span></a><b>atranslator.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_1_" class="arrow" onclick="toggleFolder('0_1_')">&#9660;</span><span id="img_0_1_" class="iconfopen" onclick="toggleFolder('0_1_')">&#160;</span><a class="el" href="dir_803ee67260c130b45d29089798491ab2.html" target="_self">database</a></td><td class="desc"></td></tr>
-<tr id="row_0_1_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="adatabase_8h_source.html"><span class="icondoc"></span></a><b>adatabase.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_1_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="adatabasetypes_8h_source.html"><span class="icondoc"></span></a><b>adatabasetypes.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_1_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="adbsetup_8h_source.html"><span class="icondoc"></span></a><b>adbsetup.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="adownload_8h_source.html"><span class="icondoc"></span></a><b>adownload.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="ahash_8h_source.html"><span class="icondoc"></span></a><b>ahash.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="ajson_8h_source.html"><span class="icondoc"></span></a><b>ajson.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="arunguard_8h_source.html"><span class="icondoc"></span></a><b>arunguard.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="asettings_8h_source.html"><span class="icondoc"></span></a><b>asettings.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_7_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="astandardpaths_8h_source.html"><span class="icondoc"></span></a><b>astandardpaths.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="astyle_8h_source.html"><span class="icondoc"></span></a><b>astyle.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="atranslator_8h_source.html"><span class="icondoc"></span></a><b>atranslator.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_1_" class="arrow" onclick="toggleFolder('0_1_')">&#9660;</span><span id="img_0_1_" class="iconfopen" onclick="toggleFolder('0_1_')">&#160;</span><a class="el" href="dir_803ee67260c130b45d29089798491ab2.html" target="_self">database</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="database_8h_source.html"><span class="icondoc"></span></a><b>database.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="dbcompletiondata_8h_source.html"><span class="icondoc"></span></a><b>dbcompletiondata.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_2_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="dbsummary_8h_source.html"><span class="icondoc"></span></a><b>dbsummary.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_3_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="row_8h_source.html"><span class="icondoc"></span></a><b>row.h</b></td><td class="desc"></td></tr>
 <tr id="row_0_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_2_" class="arrow" onclick="toggleFolder('0_2_')">&#9660;</span><span id="img_0_2_" class="iconfopen" onclick="toggleFolder('0_2_')">&#160;</span><a class="el" href="dir_e823141bb13a34caac0c96ccd0d33fcf.html" target="_self">functions</a></td><td class="desc"></td></tr>
 <tr id="row_0_2_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="acalc_8h_source.html"><span class="icondoc"></span></a><b>acalc.h</b></td><td class="desc"></td></tr>
 <tr id="row_0_2_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="adate_8h_source.html"><span class="icondoc"></span></a><b>adate.h</b></td><td class="desc"></td></tr>
@@ -121,25 +117,28 @@ $(document).ready(function(){initNavTree('files.html',''); initResizable(); });
 <tr id="row_0_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_3_" class="arrow" onclick="toggleFolder('0_3_')">&#9660;</span><span id="img_0_3_" class="iconfopen" onclick="toggleFolder('0_3_')">&#160;</span><a class="el" href="dir_99d0482cf009f9d97a0877749b817f19.html" target="_self">gui</a></td><td class="desc"></td></tr>
 <tr id="row_0_3_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_3_0_" class="arrow" onclick="toggleFolder('0_3_0_')">&#9660;</span><span id="img_0_3_0_" class="iconfopen" onclick="toggleFolder('0_3_0_')">&#160;</span><a class="el" href="dir_22d8b8621769acf8e49801a1050c5c94.html" target="_self">dialogues</a></td><td class="desc"></td></tr>
 <tr id="row_0_3_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="firstrundialog_8h_source.html"><span class="icondoc"></span></a><b>firstrundialog.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_3_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="newflightdialog_8h_source.html"><span class="icondoc"></span></a><b>newflightdialog.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_3_0_2_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="newpilotdialog_8h_source.html"><span class="icondoc"></span></a><b>newpilotdialog.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_3_0_3_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="newtaildialog_8h_source.html"><span class="icondoc"></span></a><b>newtaildialog.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_3_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="newairportdialog_8h_source.html"><span class="icondoc"></span></a><b>newairportdialog.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_3_0_2_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="newflightdialog_8h_source.html"><span class="icondoc"></span></a><b>newflightdialog.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_3_0_3_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="newpilotdialog_8h_source.html"><span class="icondoc"></span></a><b>newpilotdialog.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_3_0_4_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="newsimdialog_8h_source.html"><span class="icondoc"></span></a><b>newsimdialog.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_3_0_5_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="newtaildialog_8h_source.html"><span class="icondoc"></span></a><b>newtaildialog.h</b></td><td class="desc"></td></tr>
 <tr id="row_0_3_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_3_1_" class="arrow" onclick="toggleFolder('0_3_1_')">&#9660;</span><span id="img_0_3_1_" class="iconfopen" onclick="toggleFolder('0_3_1_')">&#160;</span><a class="el" href="dir_cc657b4ce13702a9d007a200bde234e1.html" target="_self">widgets</a></td><td class="desc"></td></tr>
 <tr id="row_0_3_1_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="aircraftwidget_8h_source.html"><span class="icondoc"></span></a><b>aircraftwidget.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_3_1_1_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="backupwidget_8h_source.html"><span class="icondoc"></span></a><b>backupwidget.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_3_1_2_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="debugwidget_8h_source.html"><span class="icondoc"></span></a><b>debugwidget.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_3_1_3_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="homewidget_8h_source.html"><span class="icondoc"></span></a><b>homewidget.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_3_1_4_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="logbookwidget_8h_source.html"><span class="icondoc"></span></a><b>logbookwidget.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_3_1_5_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="pilotswidget_8h_source.html"><span class="icondoc"></span></a><b>pilotswidget.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_3_1_6_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="settingswidget_8h_source.html"><span class="icondoc"></span></a><b>settingswidget.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_4_" class="arrow" onclick="toggleFolder('0_4_')">&#9660;</span><span id="img_0_4_" class="iconfopen" onclick="toggleFolder('0_4_')">&#160;</span><a class="el" href="dir_3513c77e68d0de165c8b48f945306dcb.html" target="_self">testing</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_4_0_" class="arrow" onclick="toggleFolder('0_4_0_')">&#9660;</span><span id="img_0_4_0_" class="iconfopen" onclick="toggleFolder('0_4_0_')">&#160;</span><a class="el" href="dir_bccd969f85dcdef3bbd296fb8abb2685.html" target="_self">importCrewlounge</a></td><td class="desc"></td></tr>
-<tr id="row_0_4_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="importcrewlounge_8h_source.html"><span class="icondoc"></span></a><b>importcrewlounge.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_4_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="processaircraft_8h_source.html"><span class="icondoc"></span></a><b>processaircraft.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_4_0_2_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="processflights_8h_source.html"><span class="icondoc"></span></a><b>processflights.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_4_0_3_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="processpilots_8h_source.html"><span class="icondoc"></span></a><b>processpilots.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_4_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="atimer_8h_source.html"><span class="icondoc"></span></a><b>atimer.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="opl_8h_source.html"><span class="icondoc"></span></a><b>opl.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_3_1_1_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="airportwidget_8h_source.html"><span class="icondoc"></span></a><b>airportwidget.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_3_1_2_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="backupwidget_8h_source.html"><span class="icondoc"></span></a><b>backupwidget.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_3_1_3_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="debugwidget_8h_source.html"><span class="icondoc"></span></a><b>debugwidget.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_3_1_4_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="homewidget_8h_source.html"><span class="icondoc"></span></a><b>homewidget.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_3_1_5_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="logbookwidget_8h_source.html"><span class="icondoc"></span></a><b>logbookwidget.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_3_1_6_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="pilotswidget_8h_source.html"><span class="icondoc"></span></a><b>pilotswidget.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_3_1_7_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="settingswidget_8h_source.html"><span class="icondoc"></span></a><b>settingswidget.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_4_" class="arrow" onclick="toggleFolder('0_4_')">&#9660;</span><span id="img_0_4_" class="iconfopen" onclick="toggleFolder('0_4_')">&#160;</span><a class="el" href="dir_3513c77e68d0de165c8b48f945306dcb.html" target="_self">testing</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_4_0_" class="arrow" onclick="toggleFolder('0_4_0_')">&#9660;</span><span id="img_0_4_0_" class="iconfopen" onclick="toggleFolder('0_4_0_')">&#160;</span><a class="el" href="dir_bccd969f85dcdef3bbd296fb8abb2685.html" target="_self">importCrewlounge</a></td><td class="desc"></td></tr>
+<tr id="row_0_4_0_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="importcrewlounge_8h_source.html"><span class="icondoc"></span></a><b>importcrewlounge.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_4_0_1_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="processaircraft_8h_source.html"><span class="icondoc"></span></a><b>processaircraft.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_4_0_2_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="processflights_8h_source.html"><span class="icondoc"></span></a><b>processflights.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_4_0_3_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="processpilots_8h_source.html"><span class="icondoc"></span></a><b>processpilots.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_4_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="atimer_8h_source.html"><span class="icondoc"></span></a><b>atimer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="opl_8h_source.html"><span class="icondoc"></span></a><b>opl.h</b></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->

Vissa filer visades inte eftersom för många filer har ändrats