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
7#include "QGCMAVLinkTypes.h"
8
11class Vehicle;
12
13class FactValueGrid : public QQuickItem
14{
15 Q_OBJECT
16 QML_ELEMENT
17 QML_UNCREATABLE("")
18 Q_MOC_INCLUDE("QmlObjectListModel.h")
19public:
20 FactValueGrid(QQuickItem *parent = nullptr);
22
29 Q_ENUM(FontSize)
30
31 Q_PROPERTY(QmlObjectListModel* columns MEMBER _columns NOTIFY columnsChanged)
32 Q_PROPERTY(int rowCount MEMBER _rowCount NOTIFY rowCountChanged)
33 Q_PROPERTY(QStringList iconNames READ iconNames CONSTANT)
34 Q_PROPERTY(FontSize fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged)
35 Q_PROPERTY(QStringList fontSizeNames MEMBER _fontSizeNames CONSTANT)
36
37 // The following properties should only be set at initial object creation time
38 Q_PROPERTY(QString settingsGroup MEMBER _settingsGroup NOTIFY settingsGroupChanged REQUIRED)
40
41 Q_INVOKABLE void resetToDefaults (void);
42 Q_INVOKABLE QmlObjectListModel* appendColumn (void);
43 Q_INVOKABLE void deleteLastColumn(void);
44 Q_INVOKABLE void appendRow (void);
45 Q_INVOKABLE void deleteLastRow (void);
46
47 QmlObjectListModel* columns (void) const { return _columns; }
48 QString settingsGroup (void) const { return _settingsGroup; }
49 FontSize fontSize (void) const { return _fontSize; }
50 QStringList iconNames (void) const { return _iconNames; }
54
56
57 // Override from QQmlParserStatus
58 void componentComplete(void) final;
59
60signals:
63 void rowCountChanged(int rowCount);
66
67protected:
68 Q_DISABLE_COPY(FactValueGrid)
69
74 int _rowCount = 0;
77
78private slots:
79 void _activeVehicleChanged(Vehicle *activeVehicle);
80 void _resetFromSettings(void);
81
82private:
83 InstrumentValueData* _createNewInstrumentValueWorker (QObject* parent);
84 void _saveSettings (void);
85 void _connectSaveSignals (InstrumentValueData* value);
86 QString _pascalCase (const QString& text);
87 void _saveValueData (QSettings& settings, InstrumentValueData* value);
88 void _loadValueData (QSettings& settings, InstrumentValueData* value);
89 QString _settingsKey (void);
90 void _initForNewVehicle (Vehicle* vehicle);
91 void _deinitVehicle (Vehicle* vehicle);
92
93 // These are user facing string for the various enums.
94 static QStringList _iconNames;
95 QStringList _fontSizeNames;
96
97 static constexpr const char* _columnsKey = "columns";
98 static constexpr const char* _rowsKey = "rows";
99 static constexpr const char* _rowCountKey = "rowCount";
100 static constexpr const char* _fontSizeKey = "fontSize";
101 static constexpr const char* _versionKey = "version";
102 static constexpr const char* _factGroupNameKey = "factGroupName";
103 static constexpr const char* _factNameKey = "factName";
104 static constexpr const char* _textKey = "text";
105 static constexpr const char* _showUnitsKey = "showUnits";
106 static constexpr const char* _iconKey = "icon";
107 static constexpr const char* _rangeTypeKey = "rangeType";
108 static constexpr const char* _rangeValuesKey = "rangeValues";
109 static constexpr const char* _rangeColorsKey = "rangeColors";
110 static constexpr const char* _rangeIconsKey = "rangeIcons";
111 static constexpr const char* _rangeOpacitiesKey = "rangeOpacities";
112
113 static constexpr const char* _deprecatedGroupKey = "ValuesWidget";
114
115 static QList<FactValueGrid*> _vehicleCardInstanceList;
116};
117
118QML_DECLARE_TYPE(FactValueGrid)
Q_INVOKABLE void deleteLastColumn(void)
void columnsChanged(QmlObjectListModel *model)
Vehicle * _activeVehicle
Q_INVOKABLE void resetToDefaults(void)
< null means track active vehicle, set to specific vehicle to track a single vehicle and share settin...
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)
Q_INVOKABLE QmlObjectListModel * appendColumn(void)
void settingsGroupChanged(QString settingsGroup)
Vehicle * specificVehicleForCard(void) const
Q_INVOKABLE void deleteLastRow(void)
QGCMAVLinkTypes::VehicleClass_t vehicleClass(void) const
Q_INVOKABLE void appendRow(void)
QString _settingsGroup
bool _preventSaveSettings
void fontSizeChanged(FontSize fontSize)
FontSize fontSize(void) const