Ver código fonte

Updated (c) and docs

Felix Turo 2 anos atrás
pai
commit
aef81e093c
75 arquivos alterados com 436 adições e 673 exclusões
  1. 1 1
      deprecated/adatabasesetup.h
  2. 1 1
      deprecated/adatabasetypes.h
  3. 1 1
      deprecated/aentry.h
  4. 1 1
      deprecated/aflightentry.h
  5. 1 1
      deprecated/apilotentry.h
  6. 1 1
      deprecated/asimulatorentry.h
  7. 1 1
      deprecated/atailentry.h
  8. 1 1
      deprecated/oldnewflightdialog.h
  9. 1 1
      docs/html/aaircraftentry_8h_source.html
  10. 1 1
      docs/html/acalc_8h_source.html
  11. 1 1
      docs/html/adatetime_8h_source.html
  12. 1 1
      docs/html/ahash_8h_source.html
  13. 1 1
      docs/html/aircraftwidget_8h_source.html
  14. 1 1
      docs/html/ajson_8h_source.html
  15. 1 1
      docs/html/alog_8h_source.html
  16. 1 1
      docs/html/areadcsv_8h_source.html
  17. 1 1
      docs/html/arunguard_8h_source.html
  18. 1 1
      docs/html/asettings_8h_source.html
  19. 1 1
      docs/html/astandardpaths_8h_source.html
  20. 1 1
      docs/html/astat_8h_source.html
  21. 1 1
      docs/html/astyle_8h_source.html
  22. 1 1
      docs/html/atime_8h_source.html
  23. 1 1
      docs/html/atimer_8h_source.html
  24. 34 35
      docs/html/class_o_p_l_1_1_database-members.html
  25. 35 178
      docs/html/class_o_p_l_1_1_database.html
  26. 0 1
      docs/html/class_o_p_l_1_1_database.js
  27. 154 158
      docs/html/database_8h_source.html
  28. 1 1
      docs/html/debugwidget_8h_source.html
  29. 1 1
      docs/html/firstrundialog_8h_source.html
  30. 1 1
      docs/html/homewidget_8h_source.html
  31. 3 3
      docs/html/navtreedata.js
  32. 9 9
      docs/html/navtreeindex0.js
  33. 8 8
      docs/html/navtreeindex1.js
  34. 7 8
      docs/html/navtreeindex2.js
  35. 1 1
      docs/html/newpilotdialog_8h_source.html
  36. 1 1
      docs/html/pilotswidget_8h_source.html
  37. 1 1
      docs/html/settingswidget_8h_source.html
  38. 27 50
      docs/man/man3/OPL_Database.3
  39. 1 1
      main.cpp
  40. 1 1
      src/classes/aaircraftentry.h
  41. 1 1
      src/classes/adownload.cpp
  42. 1 1
      src/classes/ahash.cpp
  43. 1 1
      src/classes/ahash.h
  44. 1 1
      src/classes/ajson.h
  45. 1 1
      src/classes/arunguard.cpp
  46. 1 1
      src/classes/arunguard.h
  47. 1 1
      src/classes/asettings.cpp
  48. 1 1
      src/classes/asettings.h
  49. 1 1
      src/classes/astandardpaths.cpp
  50. 1 1
      src/classes/astandardpaths.h
  51. 1 1
      src/classes/astyle.cpp
  52. 1 1
      src/classes/astyle.h
  53. 52 94
      src/database/database.cpp
  54. 43 65
      src/database/database.h
  55. 1 1
      src/functions/acalc.cpp
  56. 1 1
      src/functions/acalc.h
  57. 1 1
      src/functions/adatetime.h
  58. 1 1
      src/functions/alog.cpp
  59. 1 1
      src/functions/alog.h
  60. 1 1
      src/functions/areadcsv.cpp
  61. 1 1
      src/functions/areadcsv.h
  62. 1 1
      src/functions/astat.cpp
  63. 1 1
      src/functions/astat.h
  64. 1 1
      src/functions/atime.h
  65. 1 1
      src/gui/dialogues/firstrundialog.h
  66. 1 1
      src/gui/dialogues/newpilotdialog.h
  67. 1 1
      src/gui/widgets/aircraftwidget.h
  68. 1 1
      src/gui/widgets/debugwidget.h
  69. 1 1
      src/gui/widgets/homewidget.cpp
  70. 1 1
      src/gui/widgets/homewidget.h
  71. 1 1
      src/gui/widgets/pilotswidget.h
  72. 1 1
      src/gui/widgets/settingswidget.cpp
  73. 1 1
      src/gui/widgets/settingswidget.h
  74. 1 1
      src/testing/atimer.cpp
  75. 1 1
      src/testing/atimer.h

+ 1 - 1
deprecated/adatabasesetup.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
deprecated/adatabasetypes.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
deprecated/aentry.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
deprecated/aflightentry.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
deprecated/apilotentry.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
deprecated/asimulatorentry.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
deprecated/atailentry.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Tail Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
deprecated/oldnewflightdialog.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
docs/html/aaircraftentry_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('aaircraftentry_8h_source.html',''); in
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/acalc_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('acalc_8h_source.html',''); initResizab
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/adatetime_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('adatetime_8h_source.html',''); initRes
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/ahash_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('ahash_8h_source.html',''); initResizab
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/aircraftwidget_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('aircraftwidget_8h_source.html',''); in
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/ajson_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('ajson_8h_source.html',''); initResizab
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/alog_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('alog_8h_source.html',''); initResizabl
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/areadcsv_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('areadcsv_8h_source.html',''); initResi
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/arunguard_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('arunguard_8h_source.html',''); initRes
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/asettings_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('asettings_8h_source.html',''); initRes
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/astandardpaths_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('astandardpaths_8h_source.html',''); in
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/astat_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('astat_8h_source.html',''); initResizab
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/astyle_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('astyle_8h_source.html',''); initResiza
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/atime_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('atime_8h_source.html',''); initResizab
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/atimer_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('atimer_8h_source.html',''); initResiza
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 34 - 35
docs/html/class_o_p_l_1_1_database-members.html

@@ -98,41 +98,40 @@ $(document).ready(function(){initNavTree('class_o_p_l_1_1_database.html',''); in
   <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>
+  <tr class="even"><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"><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 class="even"><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><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 class="even"><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><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 class="even"><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><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 class="even"><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><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 class="even"><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><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 class="even"><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><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 class="even"><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><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 class="even"><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><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 class="even"><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><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 class="even"><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><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 class="even"><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"><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 class="even"><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"><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 class="even"><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><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 class="even"><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><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 class="even"><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><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 class="even"><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><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 -->

+ 35 - 178
docs/html/class_o_p_l_1_1_database.html

@@ -124,6 +124,18 @@ Public Member Functions</h2></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: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: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: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>
@@ -139,18 +151,6 @@ const QStringList&#160;</td><td class="memItemRight" valign="bottom"><a class="e
 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>
@@ -193,39 +193,38 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 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="memitem:a2834aeb5c47bde300c898021eb9bbc48"><td class="memItemLeft" align="right" valign="top"><a id="a2834aeb5c47bde300c898021eb9bbc48"></a>
+<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. See row class for details. <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="memitem:a95340bb482ca788e748a597d013424ea"><td class="memItemLeft" align="right" valign="top"><a id="a95340bb482ca788e748a597d013424ea"></a>
+<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. See row class for details. <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="memitem:a84b40aff7668c0782ae25a8d07f60922"><td class="memItemLeft" align="right" valign="top"><a id="a84b40aff7668c0782ae25a8d07f60922"></a>
+<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. See row class for details. <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="memitem:a568d32e69f438bc165a2a9c1477eaaed"><td class="memItemLeft" align="right" valign="top"><a id="a568d32e69f438bc165a2a9c1477eaaed"></a>
+<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. See row class for details. <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="memitem:a9e7e61e354d4438dab48a39fb6de1777"><td class="memItemLeft" align="right" valign="top"><a id="a9e7e61e354d4438dab48a39fb6de1777"></a>
+<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. See row class for details. <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="memdesc:affb40bf4566d45bdf2a68203b53be4db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retreives a currency entry from the database. See row class for details. <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="memdesc:aebf3371c149463c49e818999c427ce6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the ROWID for the newest entry in the respective table. <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>
@@ -250,6 +249,12 @@ const QList&lt; <a class="el" href="namespace_o_p_l.html#ada86eb02cea54d91c8c11c
 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>
+<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: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>
 </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>
@@ -265,9 +270,6 @@ 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>
@@ -412,122 +414,6 @@ const QFileInfo&#160;</td><td class="memItemRight" valign="bottom"><b>databaseFi
 <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>
@@ -549,35 +435,6 @@ const QFileInfo&#160;</td><td class="memItemRight" valign="bottom"><b>databaseFi
 <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>

+ 0 - 1
docs/html/class_o_p_l_1_1_database.js

@@ -39,6 +39,5 @@ var class_o_p_l_1_1_database =
     [ "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 ]
 ];

+ 154 - 158
docs/html/database_8h_source.html

@@ -155,49 +155,49 @@ $(document).ready(function(){initNavTree('database_8h_source.html',''); initResi
 <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="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;        : databaseFile(QFileInfo(<a class="code" href="class_a_standard_paths.html#a0df7e02331fdf09a81951657d52e0ebe">AStandardPaths::directory</a>(AStandardPaths::Database).</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;                                 absoluteFilePath(QStringLiteral(<span class="stringliteral">&quot;logbook.db&quot;</span>))))</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    {}</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <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="l00091"></a><span class="lineno">   91</span>&#160;    <span class="keyword">const</span> QFileInfo databaseFile;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    QStringList tableNames;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    QHash&lt;QString, QStringList&gt; tableColumns;</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="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="l00096"></a><span class="lineno">   96</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="l00097"></a><span class="lineno">   97</span>&#160;        OPL::DbTable::Flights,</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        OPL::DbTable::Pilots,</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        OPL::DbTable::Tails</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    };</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    <span class="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="l00102"></a><span class="lineno">  102</span>&#160;        OPL::DbTable::Aircraft,</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        OPL::DbTable::Airports,</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        OPL::DbTable::Currencies,</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        OPL::DbTable::Changelog</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    };</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</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="l00111"></a><span class="lineno">  111</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="l00112"></a><span class="lineno">  112</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="l00113"></a><span class="lineno">  113</span>&#160; </div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#aa5b783822a603bdcfd1d8c93ba0af34b">  122</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="l00123"></a><span class="lineno">  123</span>&#160; </div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</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="l00128"></a><span class="lineno">  128</span>&#160; </div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</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="l00133"></a><span class="lineno">  133</span>&#160; </div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</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="l00139"></a><span class="lineno">  139</span>&#160; </div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</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="l00144"></a><span class="lineno">  144</span>&#160; </div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</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="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="l00154"></a><span class="lineno">  154</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="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="l00159"></a><span class="lineno">  159</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="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>
@@ -211,133 +211,129 @@ $(document).ready(function(){initNavTree('database_8h_source.html',''); initResi
 <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="l00201"></a><span class="lineno">  201</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="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="l00206"></a><span class="lineno">  206</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="l00207"></a><span class="lineno">  207</span>&#160; </div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_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="l00212"></a><span class="lineno">  212</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#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="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="l00222"></a><span class="lineno">  222</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="l00223"></a><span class="lineno">  223</span>&#160; </div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</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="l00228"></a><span class="lineno">  228</span>&#160; </div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#a2834aeb5c47bde300c898021eb9bbc48">  232</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="l00233"></a><span class="lineno">  233</span>&#160;    {</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</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="l00235"></a><span class="lineno">  235</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="l00236"></a><span class="lineno">  236</span>&#160;    }</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160; </div>
+<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#a95340bb482ca788e748a597d013424ea">  241</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="l00242"></a><span class="lineno">  242</span>&#160;    {</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</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="l00244"></a><span class="lineno">  244</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="l00245"></a><span class="lineno">  245</span>&#160;    }</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160; </div>
+<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#a84b40aff7668c0782ae25a8d07f60922">  250</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="l00251"></a><span class="lineno">  251</span>&#160;    {</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</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="l00253"></a><span class="lineno">  253</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="l00254"></a><span class="lineno">  254</span>&#160;    }</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160; </div>
+<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#a568d32e69f438bc165a2a9c1477eaaed">  259</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="l00260"></a><span class="lineno">  260</span>&#160;    {</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</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="l00262"></a><span class="lineno">  262</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="l00263"></a><span class="lineno">  263</span>&#160;    }</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160; </div>
+<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#a9e7e61e354d4438dab48a39fb6de1777">  268</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="l00269"></a><span class="lineno">  269</span>&#160;    {</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</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="l00271"></a><span class="lineno">  271</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="l00272"></a><span class="lineno">  272</span>&#160;    }</div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160; </div>
+<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#affb40bf4566d45bdf2a68203b53be4db">  277</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="l00278"></a><span class="lineno">  278</span>&#160;    {</div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</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="l00280"></a><span class="lineno">  280</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="l00281"></a><span class="lineno">  281</span>&#160;    }</div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160; </div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</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="l00287"></a><span class="lineno">  287</span>&#160; </div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</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="l00293"></a><span class="lineno">  293</span>&#160; </div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</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="l00299"></a><span class="lineno">  299</span>&#160; </div>
+<div class="line"><a name="l00304"></a><span class="lineno">  304</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="l00305"></a><span class="lineno">  305</span>&#160; </div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</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="l00311"></a><span class="lineno">  311</span>&#160; </div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</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="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="l00319"></a><span class="lineno">  319</span>&#160;    <span class="comment">// Maintenance and setup</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160; </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#a92c22cb18c5a23858edd38e0ed9d7117">createSchema</a>();</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</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="l00336"></a><span class="lineno">  336</span>&#160; </div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="class_o_p_l_1_1_database.html#a63af56a9fbd8cd0290494cc28d327824">resetUserData</a>();</div>
+<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160; </div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</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="l00347"></a><span class="lineno">  347</span>&#160; </div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</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="l00353"></a><span class="lineno">  353</span>&#160; </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="l00355"></a><span class="lineno">  355</span>&#160; </div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;signals:</div>
+<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#ab0dbab5f0a97745f8a86b1703abcae38">  363</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="l00368"></a><span class="lineno"><a class="line" href="class_o_p_l_1_1_database.html#acc87b25e9ab6a6a6dce1883821292882">  368</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="l00369"></a><span class="lineno">  369</span>&#160;};</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="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;} <span class="comment">// namespace OPL</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160; </div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// DATABASE_H</span></div>
+<div class="ttc" id="aclass_a_standard_paths_html_a0df7e02331fdf09a81951657d52e0ebe"><div class="ttname"><a href="class_a_standard_paths.html#a0df7e02331fdf09a81951657d52e0ebe">AStandardPaths::directory</a></div><div class="ttdeci">static const QDir &amp; directory(Directories location)</div><div class="ttdoc">Returns the QDir for the standard directory referenced by the Directories enum 'loc'.</div><div class="ttdef"><b>Definition:</b> astandardpaths.cpp:43</div></div>
 <div class="ttc" id="aclass_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_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:132</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:81</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:29</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:141</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. See row class for details.</div><div class="ttdef"><b>Definition:</b> database.h:232</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:204</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:430</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:585</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:319</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:669</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:475</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:107</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. See row class for details.</div><div class="ttdef"><b>Definition:</b> database.h:259</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:706</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:275</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:233</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:64</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:603</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:540</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. See row class for details.</div><div class="ttdef"><b>Definition:</b> database.h:250</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:634</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. See row class for details.</div><div class="ttdef"><b>Definition:</b> database.h:241</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:102</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. See row class for details.</div><div class="ttdef"><b>Definition:</b> database.h:268</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:304</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:355</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:122</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_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:512</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:76</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:97</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_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:56</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:71</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:155</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:398</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 table.</div><div class="ttdef"><b>Definition:</b> database.cpp:462</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. See row class for details.</div><div class="ttdef"><b>Definition:</b> database.h:277</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>

+ 1 - 1
docs/html/debugwidget_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('debugwidget_8h_source.html',''); initR
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/firstrundialog_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('firstrundialog_8h_source.html',''); in
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/homewidget_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('homewidget_8h_source.html',''); initRe
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 3 - 3
docs/html/navtreedata.js

@@ -62,9 +62,9 @@ var NAVTREE =
 
 var NAVTREEINDEX =
 [
-"",
-"class_o_p_l_1_1_db_completion_data.html#a24ffbb6b48ad871b98b563f3e40107c9",
-"namespace_o_p_l_1_1_db.html#a67d31dbd0038b0841e0224df784b68da"
+"aaircraftentry_8h_source.html",
+"class_o_p_l_1_1_db_completion_data.html#ad14ab49477b9510617a18ea7c6054900",
+"namespace_o_p_l_1_1_db.html#a877c8152893047b0e23fa1cf97ac4dd3"
 ];
 
 var SYNCONMSG = 'click to disable panel synchronisation';

+ 9 - 9
docs/html/navtreeindex0.js

@@ -1,11 +1,5 @@
 var NAVTREEINDEX0 =
 {
-"":[2,0,1],
-"":[2,0,3],
-"":[2,0,6,2],
-"":[2,0,4],
-"":[2,0,5],
-"":[2,0,6,0],
 "aaircraftentry_8h_source.html":[4,0,0,0,0],
 "acalc_8h_source.html":[4,0,0,2,0],
 "acompletiondata_8h_source.html":[4,0,0,0,1],
@@ -225,7 +219,6 @@ var NAVTREEINDEX0 =
 "class_o_p_l_1_1_database.html#a69f4a4fa1e496e86224e87612edba548":[3,0,1,1,11],
 "class_o_p_l_1_1_database.html#a6c2ebefc6cf6d948d64dfe71bec08540":[3,0,1,1,32],
 "class_o_p_l_1_1_database.html#a6df6e6b98679011f747862ca48a3498c":[3,0,1,1,38],
-"class_o_p_l_1_1_database.html#a7697d81a9fa93d0ce6e9fff2b67b40d5":[3,0,1,1,39],
 "class_o_p_l_1_1_database.html#a77003350c44e7c6e1c8c4316cc324496":[3,0,1,1,34],
 "class_o_p_l_1_1_database.html#a8145a21f5980cb3c55778fbe94ef52a0":[3,0,1,1,21],
 "class_o_p_l_1_1_database.html#a84b40aff7668c0782ae25a8d07f60922":[3,0,1,1,12],
@@ -235,7 +228,7 @@ var NAVTREEINDEX0 =
 "class_o_p_l_1_1_database.html#a9e7e61e354d4438dab48a39fb6de1777":[3,0,1,1,20],
 "class_o_p_l_1_1_database.html#aa342b9d852daecb85fb77ec2f19234a5":[3,0,1,1,1],
 "class_o_p_l_1_1_database.html#aa3bbfc0dd7ff7bd34c2c1c847f539168":[3,0,1,1,29],
-"class_o_p_l_1_1_database.html#aa5b783822a603bdcfd1d8c93ba0af34b":[3,0,1,1,40],
+"class_o_p_l_1_1_database.html#aa5b783822a603bdcfd1d8c93ba0af34b":[3,0,1,1,39],
 "class_o_p_l_1_1_database.html#aa83b4d2d9cc2f9e24aaae6a25df829f2":[3,0,1,1,3],
 "class_o_p_l_1_1_database.html#ab0dbab5f0a97745f8a86b1703abcae38":[3,0,1,1,9],
 "class_o_p_l_1_1_database.html#abf45cf7ba5d25bb5d8f8aac1105bb728":[3,0,1,1,8],
@@ -249,5 +242,12 @@ var NAVTREEINDEX0 =
 "class_o_p_l_1_1_database.html#aebf3371c149463c49e818999c427ce6a":[3,0,1,1,16],
 "class_o_p_l_1_1_database.html#affb40bf4566d45bdf2a68203b53be4db":[3,0,1,1,13],
 "class_o_p_l_1_1_db_completion_data.html":[3,0,1,2],
-"class_o_p_l_1_1_db_completion_data.html#a0d158b17b9d05fb61250a03c4ff0d33a":[3,0,1,2,0]
+"class_o_p_l_1_1_db_completion_data.html#a0d158b17b9d05fb61250a03c4ff0d33a":[3,0,1,2,0],
+"class_o_p_l_1_1_db_completion_data.html#a24ffbb6b48ad871b98b563f3e40107c9":[3,0,1,2,8],
+"class_o_p_l_1_1_db_completion_data.html#a327f931579c7e58f2e04ce839ce3d822":[3,0,1,2,12],
+"class_o_p_l_1_1_db_completion_data.html#a5705ddc149e436ebea62c49db429e84b":[3,0,1,2,4],
+"class_o_p_l_1_1_db_completion_data.html#a8c9b042a1b6d03f4dceaa753487a3f73":[3,0,1,2,11],
+"class_o_p_l_1_1_db_completion_data.html#a9c884c2be4118663472228a4eb9e8a63":[3,0,1,2,5],
+"class_o_p_l_1_1_db_completion_data.html#aaf24a8ba3d0b0c590790a2eb595b99c4":[3,0,1,2,10],
+"class_o_p_l_1_1_db_completion_data.html#ac7fcccea10f07aa71ab66864a905db2e":[3,0,1,2,9]
 };

+ 8 - 8
docs/html/navtreeindex1.js

@@ -1,12 +1,5 @@
 var NAVTREEINDEX1 =
 {
-"class_o_p_l_1_1_db_completion_data.html#a24ffbb6b48ad871b98b563f3e40107c9":[3,0,1,2,8],
-"class_o_p_l_1_1_db_completion_data.html#a327f931579c7e58f2e04ce839ce3d822":[3,0,1,2,12],
-"class_o_p_l_1_1_db_completion_data.html#a5705ddc149e436ebea62c49db429e84b":[3,0,1,2,4],
-"class_o_p_l_1_1_db_completion_data.html#a8c9b042a1b6d03f4dceaa753487a3f73":[3,0,1,2,11],
-"class_o_p_l_1_1_db_completion_data.html#a9c884c2be4118663472228a4eb9e8a63":[3,0,1,2,5],
-"class_o_p_l_1_1_db_completion_data.html#aaf24a8ba3d0b0c590790a2eb595b99c4":[3,0,1,2,10],
-"class_o_p_l_1_1_db_completion_data.html#ac7fcccea10f07aa71ab66864a905db2e":[3,0,1,2,9],
 "class_o_p_l_1_1_db_completion_data.html#ad14ab49477b9510617a18ea7c6054900":[3,0,1,2,7],
 "class_o_p_l_1_1_db_completion_data.html#ad29eea765f33d12dc59a57a3a3552bee":[3,0,1,2,6],
 "class_o_p_l_1_1_db_completion_data.html#add8351a43c8434abda160d02a9f77646":[3,0,1,2,3],
@@ -249,5 +242,12 @@ var NAVTREEINDEX1 =
 "namespace_o_p_l_1_1_db.html#a61ea0e4392bb6299ebe98ca44221ace3":[2,0,6,1,15],
 "namespace_o_p_l_1_1_db.html#a62f7164963dd97e3acfbb7dd4248e323":[2,0,6,1,65],
 "namespace_o_p_l_1_1_db.html#a64b3eeae2d95351ba61cc2f3faeffe74":[2,0,6,1,39],
-"namespace_o_p_l_1_1_db.html#a6537e683af8a42d9200da25ea91fb064":[2,0,6,1,10]
+"namespace_o_p_l_1_1_db.html#a6537e683af8a42d9200da25ea91fb064":[2,0,6,1,10],
+"namespace_o_p_l_1_1_db.html#a67d31dbd0038b0841e0224df784b68da":[2,0,6,1,60],
+"namespace_o_p_l_1_1_db.html#a6e0a2c9ed2ab73b8361180e121f3c282":[2,0,6,1,18],
+"namespace_o_p_l_1_1_db.html#a743bd80967a0a05f454331d6e1e6cd23":[2,0,6,1,9],
+"namespace_o_p_l_1_1_db.html#a746a830b1e8db53c6116effad540570b":[2,0,6,1,26],
+"namespace_o_p_l_1_1_db.html#a76a61ce6c1b5d5d9b9c9e91a519812c2":[2,0,6,1,11],
+"namespace_o_p_l_1_1_db.html#a802d8b8ac3c60fb8f46e876ecc5b0940":[2,0,6,1,59],
+"namespace_o_p_l_1_1_db.html#a821e504f8c9b16d58e40dd65e33fb655":[2,0,6,1,44]
 };

+ 7 - 8
docs/html/navtreeindex2.js

@@ -1,12 +1,5 @@
 var NAVTREEINDEX2 =
 {
-"namespace_o_p_l_1_1_db.html#a67d31dbd0038b0841e0224df784b68da":[2,0,6,1,60],
-"namespace_o_p_l_1_1_db.html#a6e0a2c9ed2ab73b8361180e121f3c282":[2,0,6,1,18],
-"namespace_o_p_l_1_1_db.html#a743bd80967a0a05f454331d6e1e6cd23":[2,0,6,1,9],
-"namespace_o_p_l_1_1_db.html#a746a830b1e8db53c6116effad540570b":[2,0,6,1,26],
-"namespace_o_p_l_1_1_db.html#a76a61ce6c1b5d5d9b9c9e91a519812c2":[2,0,6,1,11],
-"namespace_o_p_l_1_1_db.html#a802d8b8ac3c60fb8f46e876ecc5b0940":[2,0,6,1,59],
-"namespace_o_p_l_1_1_db.html#a821e504f8c9b16d58e40dd65e33fb655":[2,0,6,1,44],
 "namespace_o_p_l_1_1_db.html#a877c8152893047b0e23fa1cf97ac4dd3":[2,0,6,1,61],
 "namespace_o_p_l_1_1_db.html#a895faa8f2004bec058192042287149a2":[2,0,6,1,19],
 "namespace_o_p_l_1_1_db.html#a8b44cff93fac243597d9d57f4925555d":[2,0,6,1,51],
@@ -111,5 +104,11 @@ var NAVTREEINDEX2 =
 "struct_style_sheet.html#a044cf0055bbba45425c15a2ba91793b4":[3,0,32,2],
 "struct_style_sheet.html#a6153f5e05ae700757d8d59393cdd8756":[3,0,32,0],
 "struct_style_sheet.html#ac8bfe3b9c5f8107b5b449d09a8a58ea7":[3,0,32,1],
-"todo.html":[1]
+"todo.html":[1],
+"":[2,0,5],
+"":[2,0,6,2],
+"":[2,0,4],
+"":[2,0,3],
+"":[2,0,6,0],
+"":[2,0,1]
 };

+ 1 - 1
docs/html/newpilotdialog_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('newpilotdialog_8h_source.html',''); in
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/pilotswidget_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('pilotswidget_8h_source.html',''); init
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 1 - 1
docs/html/settingswidget_8h_source.html

@@ -89,7 +89,7 @@ $(document).ready(function(){initNavTree('settingswidget_8h_source.html',''); in
 <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="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *Copyright (C) 2020-2022 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>

+ 27 - 50
docs/man/man3/OPL_Database.3

@@ -33,6 +33,18 @@ Inherits QObject\&.
 .RI "void \fBoperator=\fP (const \fBDatabase\fP &)=delete"
 .br
 .ti -1c
+.RI "bool \fBconnect\fP ()"
+.br
+.RI "Connect to the database and populate database information\&. "
+.ti -1c
+.RI "void \fBdisconnect\fP ()"
+.br
+.RI "closes the database connection\&. "
+.ti -1c
+.RI "void \fBupdateLayout\fP ()"
+.br
+.RI "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\&. "
+.ti -1c
 .RI "const QString \fBversion\fP () const"
 .br
 .RI "Return the database revision number (not the sqlite version number)\&. "
@@ -49,18 +61,6 @@ Inherits QObject\&.
 .br
 .RI "Return the names of a given table in the database\&. "
 .ti -1c
-.RI "void \fBupdateLayout\fP ()"
-.br
-.RI "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\&. "
-.ti -1c
-.RI "bool \fBconnect\fP ()"
-.br
-.RI "Connect to the database and populate database information\&. "
-.ti -1c
-.RI "void \fBdisconnect\fP ()"
-.br
-.RI "closes the database connection\&. "
-.ti -1c
 .RI "QVector< QVariant > \fBcustomQuery\fP (QString statement, int return_values)"
 .br
 .RI "Can be used to send a complex query to the database\&. "
@@ -107,44 +107,36 @@ Inherits QObject\&.
 .ti -1c
 .RI "\fBOPL::PilotEntry\fP \fBgetPilotEntry\fP (int row_id)"
 .br
-.RI "retreives a \fBPilotEntry\fP from the database\&. "
+.RI "retreives a \fBPilotEntry\fP from the database\&. See row class for details\&. "
 .ti -1c
 .RI "\fBOPL::TailEntry\fP \fBgetTailEntry\fP (int row_id)"
 .br
-.RI "retreives a \fBTailEntry\fP from the database\&. "
+.RI "retreives a \fBTailEntry\fP from the database\&. See row class for details\&. "
 .ti -1c
 .RI "\fBOPL::AircraftEntry\fP \fBgetAircraftEntry\fP (int row_id)"
 .br
-.RI "retreives a \fBTailEntry\fP from the database\&. "
+.RI "retreives a \fBTailEntry\fP from the database\&. See row class for details\&. "
 .ti -1c
 .RI "\fBOPL::FlightEntry\fP \fBgetFlightEntry\fP (int row_id)"
 .br
-.RI "retreives a flight entry from the database\&. "
+.RI "retreives a flight entry from the database\&. See row class for details\&. "
 .ti -1c
 .RI "\fBOPL::SimulatorEntry\fP \fBgetSimEntry\fP (int row_id)"
 .br
-.RI "retreives a Simulator entry from the database\&. "
+.RI "retreives a Simulator entry from the database\&. See row class for details\&. "
 .ti -1c
 .RI "\fBOPL::CurrencyEntry\fP \fBgetCurrencyEntry\fP (int row_id)"
 .br
-.RI "Retreives a currency entry from the database\&. "
+.RI "Retreives a currency entry from the database\&. See row class for details\&. "
 .ti -1c
 .RI "int \fBgetLastEntry\fP (\fBOPL::DbTable\fP table)"
 .br
-.RI "returns the ROWID for the newest entry in the respective database\&. "
+.RI "returns the ROWID for the newest entry in the respective table\&. "
 .ti -1c
 .RI "QList< int > \fBgetForeignKeyConstraints\fP (int foreign_row_id, \fBOPL::DbTable\fP table)"
 .br
 .RI "returns a list of ROWID's in the flights table for which foreign key constraints exist\&. "
 .ti -1c
-.RI "bool \fBrestoreBackup\fP (const QString &backup_file)"
-.br
-.RI "\fBDatabase::restoreBackup\fP restores the database from a given backup file and replaces the currently active database\&. "
-.ti -1c
-.RI "bool \fBcreateBackup\fP (const QString &dest_file)"
-.br
-.RI "\fBDatabase::createBackup\fP copies the currently used database to an external backup location provided by the user\&. "
-.ti -1c
 .RI "QVector< RowData_T > \fBgetTable\fP (\fBOPL::DbTable\fP table)"
 .br
 .RI "getTable returns all contents of a given table from the database "
@@ -172,6 +164,14 @@ Inherits QObject\&.
 .RI "bool \fBresetUserData\fP ()"
 .br
 .RI "Delete all rows from the user data tables (flights, pliots, tails) "
+.ti -1c
+.RI "bool \fBcreateBackup\fP (const QString &dest_file)"
+.br
+.RI "\fBDatabase::createBackup\fP copies the currently used database to an external backup location provided by the user\&. "
+.ti -1c
+.RI "bool \fBrestoreBackup\fP (const QString &backup_file)"
+.br
+.RI "\fBDatabase::restoreBackup\fP restores the database from a given backup file and replaces the currently active database\&. "
 .in -1c
 .SS "Static Public Member Functions"
 
@@ -191,9 +191,6 @@ Inherits QObject\&.
 .RI "QSqlError \fBlastError\fP"
 .br
 .RI "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\&. "
-.ti -1c
-.RI "const QFileInfo \fBdatabaseFile\fP"
-.br
 .in -1c
 .SH "Detailed Description"
 .PP 
@@ -243,22 +240,6 @@ The QSqlDatabase object pertaining to the connection\&.
 .RE
 .PP
 
-.SS "\fBOPL::AircraftEntry\fP OPL::Database::getAircraftEntry (int row_id)\fC [inline]\fP"
-
-.PP
-retreives a \fBTailEntry\fP from the database\&. This function is a wrapper for DataBase::getRowData, where the table is already set and which returns an \fBAAircraftEntry\fP instead of an AEntry\&. It allows for easy access to an aircraft entry with only the RowId required as input\&. 
-.SS "\fBOPL::FlightEntry\fP OPL::Database::getFlightEntry (int row_id)\fC [inline]\fP"
-
-.PP
-retreives a flight entry from the database\&. 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\&. 
-.SS "\fBOPL::PilotEntry\fP OPL::Database::getPilotEntry (int row_id)\fC [inline]\fP"
-
-.PP
-retreives a \fBPilotEntry\fP from the database\&. This function is a wrapper for DataBase::getRowData, where the table is already set and which returns a \fBPilotEntry\fP instead of an Entry\&. It allows for easy access to a pilot entry with only the RowId required as input\&. 
-.SS "\fBOPL::SimulatorEntry\fP OPL::Database::getSimEntry (int row_id)\fC [inline]\fP"
-
-.PP
-retreives a Simulator entry from the database\&. 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\&. 
 .SS "QVector< RowData_T > OPL::Database::getTable (\fBOPL::DbTable\fP table)"
 
 .PP
@@ -270,10 +251,6 @@ getTable returns all contents of a given table from the database
 .RE
 .PP
 
-.SS "\fBOPL::TailEntry\fP OPL::Database::getTailEntry (int row_id)\fC [inline]\fP"
-
-.PP
-retreives a \fBTailEntry\fP from the database\&. This function is a wrapper for DataBase::getRowData, where the table is already set and which returns a \fBTailEntry\fP instead of an Entry\&. It allows for easy access to a tail entry with only the RowId required as input\&. 
 .SS "const \fBUserDataState\fP OPL::Database::getUserDataState () const"
 
 .PP

+ 1 - 1
main.cpp

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/classes/aaircraftentry.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/classes/adownload.cpp

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/classes/ahash.cpp

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/classes/ahash.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/classes/ajson.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/classes/arunguard.cpp

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/classes/arunguard.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/classes/asettings.cpp

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/classes/asettings.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/classes/astandardpaths.cpp

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/classes/astandardpaths.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/classes/astyle.cpp

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/classes/astyle.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 52 - 94
src/database/database.cpp

@@ -24,13 +24,42 @@
 
 namespace OPL {
 
-
 Database* Database::self = nullptr;
 
-Database::Database()
-    : databaseFile(QFileInfo(AStandardPaths::directory(AStandardPaths::Database).
-                             absoluteFilePath(QStringLiteral("logbook.db"))))
-{}
+bool Database::connect()
+{
+    if (!QSqlDatabase::isDriverAvailable(SQLITE_DRIVER)) {
+        LOG << "Error: No SQLITE Driver availabe.";
+        return false;
+    }
+
+    QSqlDatabase db = QSqlDatabase::addDatabase(SQLITE_DRIVER);
+    db.setDatabaseName(databaseFile.absoluteFilePath());
+
+    if (!db.open()) {
+        LOG << QString("Unable to establish database connection.<br>The following error has ocurred:<br><br>%1")
+               .arg(db.lastError().databaseText());
+        lastError = db.lastError();
+        return false;
+    }
+
+
+    LOG << "Database connection established.";
+    // Enable foreign key restrictions
+    QSqlQuery query;
+    query.prepare(QStringLiteral("PRAGMA foreign_keys = ON;"));
+    query.exec();
+    updateLayout();
+    return true;
+}
+
+void Database::disconnect()
+{
+    auto db = Database::database();
+    db.close();
+    db.removeDatabase(db.connectionName());
+    LOG << "Database connection closed.";
+}
 
 const QString Database::version() const
 {
@@ -109,41 +138,6 @@ const QString Database::sqliteVersion() const
     return query.value(0).toString();
 }
 
-bool Database::connect()
-{
-    if (!QSqlDatabase::isDriverAvailable(SQLITE_DRIVER)) {
-        LOG << "Error: No SQLITE Driver availabe.";
-        return false;
-    }
-
-    QSqlDatabase db = QSqlDatabase::addDatabase(SQLITE_DRIVER);
-    db.setDatabaseName(databaseFile.absoluteFilePath());
-
-    if (!db.open()) {
-        LOG << QString("Unable to establish database connection.<br>The following error has ocurred:<br><br>%1")
-               .arg(db.lastError().databaseText());
-        lastError = db.lastError();
-        return false;
-    }
-
-
-    LOG << "Database connection established.";
-    // Enable foreign key restrictions
-    QSqlQuery query;
-    query.prepare(QStringLiteral("PRAGMA foreign_keys = ON;"));
-    query.exec();
-    updateLayout();
-    return true;
-}
-
-void Database::disconnect()
-{
-    auto db = Database::database();
-    db.close();
-    db.removeDatabase(db.connectionName());
-    LOG << "Database connection closed.";
-}
-
 QSqlDatabase Database::database()
 {
     return QSqlDatabase::database(QStringLiteral("qt_sql_default_connection"));
@@ -207,34 +201,6 @@ bool Database::commit(const QJsonArray &json_arr, const OPL::DbTable table)
         return false;
 }
 
-//bool Database::remove(const AEntry &entry)
-//{
-//    if (!exists(entry)) {
-//        LOG << "Error: Database entry not found.";
-//        return false;
-//    }
-//
-//    QString statement = QLatin1String("DELETE FROM ") + entry.getPosition().tableName
-//            + QLatin1String(" WHERE ROWID=?");
-//
-//    QSqlQuery query;
-//    query.prepare(statement);
-//    query.addBindValue(entry.getPosition().rowId);
-//
-//    if (query.exec())
-//    {
-//        LOG << "Entry " << entry.getPosition() << " removed.";
-//        emit dataBaseUpdated();
-//        return true;
-//    } else {
-//        DEB << "Unable to delete.";
-//        DEB << "Query: " << statement;
-//        DEB << "Query Error: " << query.lastError().text();
-//        lastError = query.lastError();
-//        return false;
-//    }
-//}
-
 bool Database::remove(const OPL::Row &row)
 {
     if (!exists(row)) {
@@ -571,28 +537,6 @@ QVector<QVariant> Database::customQuery(QString statement, int return_values)
     }
 }
 
-/*!
- * \brief Database::createBackup copies the currently used database to an external backup location provided by the user
- * \param dest_file This is the full path and filename of where the backup will be created, e.g. 'home/Sully/myBackups/backupFromOpl.db'
- */
-bool Database::createBackup(const QString& dest_file)
-{
-    LOG << "Backing up current database to: " << dest_file;
-    Database::disconnect();
-    QFile db_file(databaseFile.absoluteFilePath());
-    //DEB << "File to Overwrite:" << db_file;
-
-    if (!db_file.copy(dest_file)) {
-        LOG << "Unable to backup old database:" << db_file.errorString();
-        return false;
-    }
-
-    LOG << "Backed up old database as:" << dest_file;
-    Database::connect();
-    emit connectionReset();
-    return true;
-}
-
 QVector<RowData_T> Database::getTable(OPL::DbTable table)
 {
     auto query_str = QStringLiteral("SELECT * FROM ");
@@ -638,10 +582,24 @@ QVector<RowData_T> Database::getTable(OPL::DbTable table)
     return entry_data;
 }
 
-/*!
- * \brief Database::restoreBackup restores the database from a given backup file and replaces the currently active database.
- * \param backup_file This is the full path and filename of the backup, e.g. 'home/Sully/myBackups/backupFromOpl.db'
- */
+bool Database::createBackup(const QString& dest_file)
+{
+    LOG << "Backing up current database to: " << dest_file;
+    Database::disconnect();
+    QFile db_file(databaseFile.absoluteFilePath());
+    //DEB << "File to Overwrite:" << db_file;
+
+    if (!db_file.copy(dest_file)) {
+        LOG << "Unable to backup old database:" << db_file.errorString();
+        return false;
+    }
+
+    LOG << "Backed up old database as:" << dest_file;
+    Database::connect();
+    emit connectionReset();
+    return true;
+}
+
 bool Database::restoreBackup(const QString& backup_file)
 {
     LOG << "Restoring backup from file:" << backup_file;

+ 43 - 65
src/database/database.h

@@ -42,8 +42,8 @@ namespace OPL {
 /*!
  * \brief Convenience macro that returns instance of DataBase.
  * Instead of this:
- * DataBase::getInstance().commit(...)
- * Write this:
+ * OPL::DataBase::getInstance().commit(...)
+ * Use this:
  * DB->commit(...)
  */
 #define DB OPL::Database::instance()
@@ -83,8 +83,12 @@ class Database : public QObject {
 
 private:
     Q_OBJECT
-    Database();
+    Database()
+        : databaseFile(QFileInfo(AStandardPaths::directory(AStandardPaths::Database).
+                                 absoluteFilePath(QStringLiteral("logbook.db"))))
+    {}
     static Database* self;
+    const QFileInfo databaseFile;
     QStringList tableNames;
     QHash<QString, QStringList> tableColumns;
 
@@ -107,17 +111,6 @@ public:
     void operator=(const Database&) = delete;
     static Database* instance();
 
-    /*!
-     * \brief Return the database revision number (not the sqlite version number).
-     */
-    const QString version() const;
-
-    /*!
-     * \brief Database::sqliteVersion returns the database sqlite version. See also dbRevision()
-     * \return sqlite version string
-     */
-    const QString sqliteVersion() const;
-
     /*!
      * \brief 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
@@ -128,17 +121,15 @@ public:
      */
     QSqlError lastError;
 
-    const QFileInfo databaseFile;
-
     /*!
-     * \brief Return the names of all tables in the database
+     * \brief Connect to the database and populate database information.
      */
-    const QStringList getTableNames() const;
+    bool connect();
 
     /*!
-     * \brief Return the names of a given table in the database.
+     * \brief closes the database connection.
      */
-    const QStringList getTableColumns(OPL::DbTable table_name) const;
+    void disconnect();
 
     /*!
      * \brief Updates the member variables tableNames and tableColumns with up-to-date layout information
@@ -146,17 +137,26 @@ public:
      */
     void updateLayout();
 
+    /*!
+     * \brief Return the database revision number (not the sqlite version number).
+     */
+    const QString version() const;
 
+    /*!
+     * \brief Database::sqliteVersion returns the database sqlite version. See also dbRevision()
+     * \return sqlite version string
+     */
+    const QString sqliteVersion() const;
 
     /*!
-     * \brief Connect to the database and populate database information.
+     * \brief Return the names of all tables in the database
      */
-    bool connect();
+    const QStringList getTableNames() const;
 
     /*!
-     * \brief closes the database connection.
+     * \brief Return the names of a given table in the database.
      */
-    void disconnect();
+    const QStringList getTableColumns(OPL::DbTable table_name) const;
 
     /*!
      * \brief Can be used to access the database connection.
@@ -198,22 +198,16 @@ public:
     /*!
      * \brief Create new entry in the databse based on UserInput
      */
-    //bool insert(const AEntry &new_entry);
-
     bool insert(const OPL::Row &new_row);
 
     /*!
      * \brief Updates entry in database from existing entry tweaked by the user.
      */
-    //bool update(const AEntry &updated_entry);
-
     bool update(const OPL::Row &updated_row);
 
     /*!
      * \brief deletes an entry from the database.
      */
-    //bool remove(const AEntry &entry);
-
     bool remove(const OPL::Row &row);
 
     /*!
@@ -233,12 +227,7 @@ public:
     RowData_T getRowData(const OPL::DbTable table, const int row_id);
 
     /*!
-     * \brief retreives a PilotEntry from the database.
-     *
-     * This function is a wrapper for DataBase::getRowData,
-     * where the table is already set and which returns a PilotEntry
-     * instead of an Entry. It allows for easy access to a pilot entry
-     * with only the RowId required as input.
+     * \brief retreives a PilotEntry from the database. See row class for details.
      */
     inline OPL::PilotEntry getPilotEntry(int row_id)
     {
@@ -247,12 +236,7 @@ public:
     }
 
     /*!
-     * \brief retreives a TailEntry from the database.
-     *
-     * This function is a wrapper for DataBase::getRowData,
-     * where the table is already set and which returns a TailEntry
-     * instead of an Entry. It allows for easy access to a tail entry
-     * with only the RowId required as input.
+     * \brief retreives a TailEntry from the database. See row class for details.
      */
     inline OPL::TailEntry getTailEntry(int row_id)
     {
@@ -261,12 +245,7 @@ public:
     }
 
     /*!
-     * \brief retreives a TailEntry from the database.
-     *
-     * This function is a wrapper for DataBase::getRowData,
-     * where the table is already set and which returns an AAircraftEntry
-     * instead of an AEntry. It allows for easy access to an aircraft entry
-     * with only the RowId required as input.
+     * \brief retreives a TailEntry from the database. See row class for details.
      */
     inline OPL::AircraftEntry getAircraftEntry(int row_id)
     {
@@ -275,12 +254,7 @@ public:
     }
 
     /*!
-     * \brief retreives a flight entry from the database.
-     *
-     * 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.
+     * \brief retreives a flight entry from the database. See row class for details.
      */
     inline OPL::FlightEntry getFlightEntry(int row_id)
     {
@@ -289,12 +263,7 @@ public:
     }
 
     /*!
-     * \brief retreives a Simulator entry from the database.
-     *
-     * 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.
+     * \brief retreives a Simulator entry from the database. See row class for details.
      */
     inline OPL::SimulatorEntry getSimEntry(int row_id)
     {
@@ -303,7 +272,7 @@ public:
     }
 
     /*!
-     * \brief Retreives a currency entry from the database.
+     * \brief Retreives a currency entry from the database. See row class for details.
      */
     inline OPL::CurrencyEntry getCurrencyEntry(int row_id)
     {
@@ -312,7 +281,7 @@ public:
     }
 
     /*!
-     * \brief returns the ROWID for the newest entry in the respective database.
+     * \brief returns the ROWID for the newest entry in the respective table.
      */
     int getLastEntry(OPL::DbTable table);
 
@@ -322,9 +291,6 @@ public:
      */
     QList<int> getForeignKeyConstraints(int foreign_row_id, OPL::DbTable table);
 
-    bool restoreBackup(const QString& backup_file);
-    bool createBackup(const QString& dest_file);
-
     /*!
      * \brief getTable returns all contents of a given table from the database
      * \return
@@ -373,6 +339,18 @@ public:
      */
     bool resetUserData();
 
+    /*!
+     * \brief Database::createBackup copies the currently used database to an external backup location provided by the user
+     * \param dest_file This is the full path and filename of where the backup will be created, e.g. 'home/Sully/myBackups/backupFromOpl.db'
+     */
+    bool createBackup(const QString& dest_file);
+
+    /*!
+     * \brief Database::restoreBackup restores the database from a given backup file and replaces the currently active database.
+     * \param backup_file This is the full path and filename of the backup, e.g. 'home/Sully/myBackups/backupFromOpl.db'
+     */
+    bool restoreBackup(const QString& backup_file);
+
 
 
 signals:

+ 1 - 1
src/functions/acalc.cpp

@@ -22,7 +22,7 @@
 #include "src/opl.h"
 #include "src/functions/atime.h"
 
-using namespace ACalc;
+//using namespace ACalc;
 
 /*!
  * \brief ACalc::formatTimeInput verifies user input and formats to hh:mm

+ 1 - 1
src/functions/acalc.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/functions/adatetime.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/functions/alog.cpp

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/functions/alog.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/functions/areadcsv.cpp

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/functions/areadcsv.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/functions/astat.cpp

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/functions/astat.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/functions/atime.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/gui/dialogues/firstrundialog.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/gui/dialogues/newpilotdialog.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/gui/widgets/aircraftwidget.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/gui/widgets/debugwidget.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/gui/widgets/homewidget.cpp

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/gui/widgets/homewidget.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/gui/widgets/pilotswidget.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/gui/widgets/settingswidget.cpp

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/gui/widgets/settingswidget.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/testing/atimer.cpp

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by

+ 1 - 1
src/testing/atimer.h

@@ -1,6 +1,6 @@
 /*
  *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2021 Felix Turowsky
+ *Copyright (C) 2020-2022 Felix Turowsky
  *
  *This program is free software: you can redistribute it and/or modify
  *it under the terms of the GNU General Public License as published by