8#include <QtCore/QSettings>
11QStringList FactValueGrid::_iconNames;
14const QStringList FactValueGrid::_fontSizeNames = {
15 QT_TRANSLATE_NOOP(
"FactValueGrid",
"Default"),
16 QT_TRANSLATE_NOOP(
"FactValueGrid",
"Small"),
17 QT_TRANSLATE_NOOP(
"FactValueGrid",
"Medium"),
18 QT_TRANSLATE_NOOP(
"FactValueGrid",
"Large"),
21QList<FactValueGrid*> FactValueGrid::_vehicleCardInstanceList;
27 if (_iconNames.isEmpty()) {
28 QDir iconDir(
":/InstrumentValueIcons/");
29 _iconNames = iconDir.entryList();
35 QQuickItem::componentComplete();
40 _vehicleCardInstanceList.append(
this);
44 auto multiVehicleManager = MultiVehicleManager::instance();
54void FactValueGrid::_initForNewVehicle(
Vehicle* vehicle)
57 qCritical() <<
"FactValueGrid::_initForNewVehicle: vehicle is NULL";
65void FactValueGrid::_deinitVehicle(
Vehicle* vehicle)
70void FactValueGrid::_activeVehicleChanged(
Vehicle* activeVehicle)
73 qCritical() <<
"FactValueGrid::_activeVehicleChanged: _activeVehicle is NULL";
82 activeVehicle = MultiVehicleManager::instance()->offlineEditingVehicle();
85 _initForNewVehicle(activeVehicle);
90 _vehicleCardInstanceList.removeAll(
this);
98void FactValueGrid::resetToDefaults(
void)
102 _resetFromSettings();
105QString FactValueGrid::_pascalCase(
const QString& text)
107 return text[0].toUpper() + text.right(text.length() - 1);
120 settings.setValue(_textKey, value->
text());
121 settings.setValue(_showUnitsKey, value->
showUnits());
122 settings.setValue(_iconKey, value->
icon());
123 settings.setValue(_rangeTypeKey, value->
rangeType());
126 settings.setValue(_rangeValuesKey, value->
rangeValues());
133 settings.setValue(_rangeColorsKey, value->
rangeColors());
139 settings.setValue(_rangeIconsKey, value->
rangeIcons());
143 settings.setValue(_factGroupNameKey, value->
factGroupName());
144 settings.setValue(_factNameKey, value->
factName());
149 QString factName = settings.value(_factNameKey).toString();
150 if (!factName.isEmpty()) {
151 value->setFact(settings.value(_factGroupNameKey).toString(), factName);
154 value->
setText (settings.value(_textKey).toString());
155 value->
setShowUnits (settings.value(_showUnitsKey,
true).toBool());
156 value->
setIcon (settings.value(_iconKey).toString());
160 value->
setRangeValues(settings.value(_rangeValuesKey).value<QVariantList>());
166 value->
setRangeColors(settings.value(_rangeColorsKey).value<QVariantList>());
169 value->
setRangeOpacities(settings.value(_rangeOpacitiesKey).value<QVariantList>());
172 value->
setRangeIcons(settings.value(_rangeIconsKey).value<QVariantList>());
193 for (
int colIndex=0; colIndex<
_columns->
count(); colIndex++) {
195 list->
append(_createNewInstrumentValueWorker(list));
208 for (
int colIndex=0; colIndex<
_columns->
count(); colIndex++) {
224 for (
int i=0; i<cRowsToAdd; i++) {
225 newList->
append(_createNewInstrumentValueWorker(newList));
251 _connectSaveSignals(value);
256void FactValueGrid::_saveSettings(
void)
263 QString groupNameFormat(
"%1-%2");
265 settings.beginGroup(_settingsKey());
268 settings.setValue(_versionKey, 1);
269 settings.setValue(_fontSizeKey,
_fontSize);
270 settings.setValue(_rowCountKey,
_rowCount);
272 settings.beginWriteArray(_columnsKey);
273 for (
int colIndex=0; colIndex<
_columns->
count(); colIndex++) {
276 settings.setArrayIndex(colIndex);
277 settings.beginWriteArray(_rowsKey);
279 for (
int rowIndex=0; rowIndex<
columns->
count(); rowIndex++) {
281 settings.setArrayIndex(rowIndex);
282 _saveValueData(settings, value);
294 obj->_resetFromSettings();
300QString FactValueGrid::_settingsKey(
void)
305void FactValueGrid::_resetFromSettings(
void)
315 QString groupNameFormat(
"%1-%2");
317 if (settings.childGroups().contains(_settingsKey())) {
319 settings.beginGroup(_settingsKey());
321 int version = settings.value(_versionKey, 0).toInt();
323 qgcApp()->showAppMessage(tr(
"Settings version %1 for %2 is not supported. Setup will be reset to defaults.").arg(version).arg(
_settingsGroup), tr(
"Load Settings"));
325 QGCCorePlugin::instance()->factValueGridCreateDefaultSettings(
this);
330 int cRows = settings.value(_rowCountKey).toInt();
331 int cModelLists = settings.beginReadArray(_columnsKey);
332 if (cModelLists && cRows) {
334 for (
int rowIndex=1; rowIndex<cRows; rowIndex++) {
337 for (
int colIndex=1; colIndex<cModelLists; colIndex++) {
343 for (
int colIndex=0; colIndex<cModelLists; colIndex++) {
344 settings.setArrayIndex(colIndex);
345 int cItems = settings.beginReadArray(_rowsKey);
346 for (
int itemIndex=0; itemIndex<cItems; itemIndex++) {
349 settings.setArrayIndex(itemIndex);
350 _loadValueData(settings, value);
357 QGCCorePlugin::instance()->factValueGridCreateDefaultSettings(
this);
void deleteLastColumn(void)
Vehicle * _specificVehicleForCard
void rowCountChanged(int rowCount)
QmlObjectListModel * columns(void) const
Vehicle * currentVehicle(void) const
void componentComplete(void) final
QmlObjectListModel * _columns
void setFontSize(FontSize fontSize)
QmlObjectListModel * appendColumn(void)
FactValueGrid(QQuickItem *parent=nullptr)
QGCMAVLink::VehicleClass_t vehicleClass(void) const
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
static constexpr const char * vehicleFactGroupName
void setRangeOpacities(const QVariantList &rangeOpacities)
void rangeOpacitiesChanged(const QVariantList &rangeOpacities)
FactValueGrid *factValueGrid MEMBER _factValueGrid const QString & factName
void showUnitsChanged(bool showUnits)
void factGroupNameChanged(const QString &factGroup)
QVariantList rangeOpacities(void) const
void rangeTypeChanged(RangeType rangeType)
void setText(const QString &text)
QVariantList rangeColors(void) const
void setRangeType(RangeType rangeType)
QVariantList rangeValues(void) const
void setIcon(const QString &icon)
RangeType rangeType(void) const
void textChanged(QString text)
bool showUnits(void) const
void rangeIconsChanged(const QVariantList &rangeIcons)
void rangeValuesChanged(const QVariantList &rangeValues)
void rangeColorsChanged(const QVariantList &rangeColors)
QString factGroupName(void) const
void setRangeColors(const QVariantList &rangeColors)
void factNameChanged(const QString &factName)
void setRangeIcons(const QVariantList &rangeIcons)
void setShowUnits(bool showUnits)
void setRangeValues(const QVariantList &rangeValues)
QVariantList rangeIcons(void) const
void iconChanged(const QString &icon)
void activeVehicleChanged(Vehicle *activeVehicle)
static VehicleClass_t vehicleClass(MAV_TYPE mavType)
void append(QObject *object)
Caller maintains responsibility for object ownership and deletion.
QObject * removeAt(int index)
int count() const override final
void vehicleTypeChanged()