QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
FactValueGrid.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QSettings>
4#include <QtQuick/QQuickItem>
5#include <QtQmlIntegration/QtQmlIntegration>
6
8#include "QGCMAVLink.h"
9#include "Vehicle.h"
10
12
13class FactValueGrid : public QQuickItem
14{
15 Q_OBJECT
16 QML_ELEMENT
17 QML_UNCREATABLE("")
18public:
19 FactValueGrid(QQuickItem *parent = nullptr);
21
28 Q_ENUMS(FontSize)
29
31 Q_PROPERTY(int rowCount MEMBER _rowCount NOTIFY rowCountChanged)
32 Q_PROPERTY(QStringList iconNames READ iconNames CONSTANT)
33 Q_PROPERTY(FontSize fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged)
34 Q_PROPERTY(QStringList fontSizeNames MEMBER _fontSizeNames CONSTANT)
35
36 // The following properties should only be set at initial object creation time
37 Q_PROPERTY(QString settingsGroup MEMBER _settingsGroup NOTIFY settingsGroupChanged REQUIRED)
39
40 Q_INVOKABLE void resetToDefaults (void);
41 Q_INVOKABLE QmlObjectListModel* appendColumn (void);
42 Q_INVOKABLE void deleteLastColumn(void);
43 Q_INVOKABLE void appendRow (void);
44 Q_INVOKABLE void deleteLastRow (void);
45
46 QmlObjectListModel* columns (void) const { return _columns; }
47 QString settingsGroup (void) const { return _settingsGroup; }
48 FontSize fontSize (void) const { return _fontSize; }
49 QStringList iconNames (void) const { return _iconNames; }
53
55
56 // Override from QQmlParserStatus
57 void componentComplete(void) final;
58
59signals:
62 void rowCountChanged(int rowCount);
65
66protected:
67 Q_DISABLE_COPY(FactValueGrid)
68
73 int _rowCount = 0;
76
77private slots:
78 void _activeVehicleChanged(Vehicle *activeVehicle);
79 void _resetFromSettings(void);
80
81private:
82 InstrumentValueData* _createNewInstrumentValueWorker (QObject* parent);
83 void _saveSettings (void);
84 void _connectSaveSignals (InstrumentValueData* value);
85 QString _pascalCase (const QString& text);
86 void _saveValueData (QSettings& settings, InstrumentValueData* value);
87 void _loadValueData (QSettings& settings, InstrumentValueData* value);
88 QString _settingsKey (void);
89 void _initForNewVehicle (Vehicle* vehicle);
90 void _deinitVehicle (Vehicle* vehicle);
91
92 // These are user facing string for the various enums.
93 static QStringList _iconNames;
94 static const QStringList _fontSizeNames;
95
96 static constexpr const char* _columnsKey = "columns";
97 static constexpr const char* _rowsKey = "rows";
98 static constexpr const char* _rowCountKey = "rowCount";
99 static constexpr const char* _fontSizeKey = "fontSize";
100 static constexpr const char* _versionKey = "version";
101 static constexpr const char* _factGroupNameKey = "factGroupName";
102 static constexpr const char* _factNameKey = "factName";
103 static constexpr const char* _textKey = "text";
104 static constexpr const char* _showUnitsKey = "showUnits";
105 static constexpr const char* _iconKey = "icon";
106 static constexpr const char* _rangeTypeKey = "rangeType";
107 static constexpr const char* _rangeValuesKey = "rangeValues";
108 static constexpr const char* _rangeColorsKey = "rangeColors";
109 static constexpr const char* _rangeIconsKey = "rangeIcons";
110 static constexpr const char* _rangeOpacitiesKey = "rangeOpacities";
111
112 static constexpr const char* _deprecatedGroupKey = "ValuesWidget";
113
114 static QList<FactValueGrid*> _vehicleCardInstanceList;
115};
116
117QML_DECLARE_TYPE(FactValueGrid)
118
void deleteLastColumn(void)
void columnsChanged(QmlObjectListModel *model)
Vehicle * _activeVehicle
Vehicle * _specificVehicleForCard
void specificVehicleForCardChanged(Vehicle *vehicle)
void rowCountChanged(int rowCount)
QmlObjectListModel * columns(void) const
QStringList iconNames(void) const
Vehicle * currentVehicle(void) const
FontSize _fontSize
void componentComplete(void) final
QmlObjectListModel * _columns
QString settingsGroup(void) const
void setFontSize(FontSize fontSize)
QmlObjectListModel * appendColumn(void)
void settingsGroupChanged(QString settingsGroup)
Vehicle * specificVehicleForCard(void) const
QGCMAVLink::VehicleClass_t vehicleClass(void) const
void deleteLastRow(void)
void appendRow(void)
QString _settingsGroup
QmlObjectListModel *columns MEMBER _columns NOTIFY columnsChanged(int rowCount MEMBER _rowCount NOTIFY rowCountChanged) 1(QStringList iconNames READ iconNames CONSTANT) 1(FontSize fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged) 1(QStringList fontSizeNames MEMBER _fontSizeNames CONSTANT) 1(QString settingsGroup MEMBER _settingsGroup NOTIFY settingsGroupChanged REQUIRED) 1(Vehicle *specificVehicleForCard MEMBER _specificVehicleForCard NOTIFY specificVehicleForCardChanged REQUIRED) 1 void resetToDefaults(void)
< null means track active vehicle, set to specific vehicle to track a single vehicle and share settin...
bool _preventSaveSettings
void fontSizeChanged(FontSize fontSize)
FontSize fontSize(void) const
Q_DECLARE_METATYPE(satellite_info_s)