openPilotLog

aentry.h
1 /*
2 *openPilot Log - A FOSS Pilot Logbook Application
3 *Copyright (C) 2020 Felix Turowsky
4 *
5 *This program is free software: you can redistribute it and/or modify
6 *it under the terms of the GNU General Public License as published by
7 *the Free Software Foundation, either version 3 of the License, or
8 *(at your option) any later version.
9 *
10 *This program is distributed in the hope that it will be useful,
11 *but WITHOUT ANY WARRANTY; without even the implied warranty of
12 *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 *GNU General Public License for more details.
14 *
15 *You should have received a copy of the GNU General Public License
16 *along with this program. If not, see <https://www.gnu.org/licenses/>.
17 */
18 #ifndef ENTRY_H
19 #define ENTRY_H
20
21 #include <QString>
22 #include <QStringList>
23 #include <QMap>
24 #include <QPair>
25 #include <QVariant>
26
27 #include "decl.h"
28
29 namespace experimental {
30
31 // [G]: Define what data is public and what not. For objects such as
32 // DataPosition which are consumable its no biggy. Are entries the same?
33 // If so we could avoid getters and setters
34 // [F]: In the way we are using the entries atm, we do access and edit the
35 // TableData quite frequently. Maybe the data could be public, but the
36 // position private? Except for creating a new entry, the position should
37 // never really be changed.
42 class AEntry {
43 protected:
44 DataPosition position;
45 public:
46 TableData tableData;
47 public:
48 AEntry() = delete; // Demand specificity from default constructor
49 AEntry(const AEntry&) = default;
50 AEntry& operator=(const AEntry&) = default;
51 AEntry(DataPosition position_);
52 AEntry(TableData table_data);
53 AEntry(DataPosition position_, TableData table_data);
54
55 void setData(TableData table_data);
56 void setPosition(DataPosition position_);
57
58 const DataPosition& getPosition();
59 const TableData& getData();
60
61 };
62
63 }
64
65 #endif // ENTRY_H
experimental
Temporary namespace for experimental features. Will be removed in later versions.
Definition: aaircraftentry.cpp:20
experimental::DataPosition
Definition: decl.h:45
experimental::AEntry
The Entry class encapsulates table metadata(table name, row id) and data for new and existing entries...
Definition: aentry.h:42