From 1313a69852769b1b4d3f333073b2c7d49dad3854 Mon Sep 17 00:00:00 2001 From: DonLakeFlyer Date: Wed, 19 Aug 2020 15:54:06 -0700 Subject: [PATCH] Less twitchy value grid width sizing --- qgroundcontrol.pro | 2 - qgroundcontrol.qrc | 1 - src/QGCApplication.cc | 2 - src/QmlControls/FactValueGrid.cc | 92 +++++---- src/QmlControls/FactValueGrid.h | 35 ++-- src/QmlControls/HorizontalFactValueGrid.cc | 8 +- src/QmlControls/HorizontalFactValueGrid.qml | 55 ++++-- src/QmlControls/InstrumentValueValue.qml | 2 + .../QGroundControl/Controls/qmldir | 1 - src/QmlControls/VerticalFactValueGrid.cc | 30 --- src/QmlControls/VerticalFactValueGrid.h | 38 ---- src/QmlControls/VerticalFactValueGrid.qml | 174 ------------------ src/api/QGCCorePlugin.cc | 64 ++++--- 13 files changed, 138 insertions(+), 366 deletions(-) delete mode 100644 src/QmlControls/VerticalFactValueGrid.cc delete mode 100644 src/QmlControls/VerticalFactValueGrid.h delete mode 100644 src/QmlControls/VerticalFactValueGrid.qml diff --git a/qgroundcontrol.pro b/qgroundcontrol.pro index 460b01759..880e4cda0 100644 --- a/qgroundcontrol.pro +++ b/qgroundcontrol.pro @@ -670,7 +670,6 @@ HEADERS += \ src/QmlControls/TerrainProfile.h \ src/QmlControls/ToolStripAction.h \ src/QmlControls/ToolStripActionList.h \ - src/QmlControls/VerticalFactValueGrid.h \ src/QtLocationPlugin/QMLControl/QGCMapEngineManager.h \ src/Settings/ADSBVehicleManagerSettings.h \ src/Settings/AppSettings.h \ @@ -890,7 +889,6 @@ SOURCES += \ src/QmlControls/TerrainProfile.cc \ src/QmlControls/ToolStripAction.cc \ src/QmlControls/ToolStripActionList.cc \ - src/QmlControls/VerticalFactValueGrid.cc \ src/QtLocationPlugin/QMLControl/QGCMapEngineManager.cc \ src/Settings/ADSBVehicleManagerSettings.cc \ src/Settings/AppSettings.cc \ diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index d02a006c5..fc2c9105b 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -183,7 +183,6 @@ src/PlanView/TransectStyleComplexItemTerrainFollow.qml src/QmlControls/VehicleRotationCal.qml src/QmlControls/VehicleSummaryRow.qml - src/QmlControls/VerticalFactValueGrid.qml src/PlanView/VTOLLandingPatternMapVisual.qml src/FactSystem/FactControls/AltitudeFactTextField.qml src/FactSystem/FactControls/FactBitmask.qml diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc index ebd11b45d..ba87770d0 100644 --- a/src/QGCApplication.cc +++ b/src/QGCApplication.cc @@ -77,7 +77,6 @@ #include "MAVLinkInspectorController.h" #endif #include "HorizontalFactValueGrid.h" -#include "VerticalFactValueGrid.h" #include "InstrumentValueData.h" #include "AppMessages.h" #include "SimulatedPosition.h" @@ -553,7 +552,6 @@ void QGCApplication::_initCommon() qmlRegisterUncreatableType (kQGCTemplates, 1, 0, "FactValueGrid", kRefOnly); qmlRegisterType (kQGCTemplates, 1, 0, "HorizontalFactValueGrid"); - qmlRegisterType (kQGCTemplates, 1, 0, "VerticalFactValueGrid"); qmlRegisterType ("QGroundControl.FlightMap", 1, 0, "QGCMapCircle"); diff --git a/src/QmlControls/FactValueGrid.cc b/src/QmlControls/FactValueGrid.cc index 09f807fb0..b0c9a108c 100644 --- a/src/QmlControls/FactValueGrid.cc +++ b/src/QmlControls/FactValueGrid.cc @@ -15,9 +15,7 @@ #include const char* FactValueGrid::_rowsKey = "rows"; -const char* FactValueGrid::_columnsKey = "columns"; const char* FactValueGrid::_fontSizeKey = "fontSize"; -const char* FactValueGrid::_orientationKey = "orientation"; const char* FactValueGrid::_versionKey = "version"; const char* FactValueGrid::_factGroupNameKey = "groupName"; const char* FactValueGrid::_factNameKey = "factName"; @@ -44,7 +42,7 @@ const QStringList FactValueGrid::_fontSizeNames = { FactValueGrid::FactValueGrid(QQuickItem* parent) : QQuickItem(parent) - , _rows (new QmlObjectListModel(this)) + , _columns (new QmlObjectListModel(this)) { if (_iconNames.isEmpty()) { QDir iconDir(":/InstrumentValueIcons/"); @@ -57,7 +55,7 @@ FactValueGrid::FactValueGrid(QQuickItem* parent) FactValueGrid::FactValueGrid(const QString& defaultSettingsGroup) : QQuickItem (nullptr) , _defaultSettingsGroup (defaultSettingsGroup) - , _rows (new QmlObjectListModel(this)) + , _columns (new QmlObjectListModel(this)) { _init(); } @@ -189,46 +187,46 @@ void FactValueGrid::_connectSaveSignals(InstrumentValueData* value) connect(value, &InstrumentValueData::rangeIconsChanged, this, &FactValueGrid::_saveSettings); } -void FactValueGrid::appendColumn(void) +void FactValueGrid::appendRow(void) { - for (int rowIndex=0; rowIndex<_rows->count(); rowIndex++) { - QmlObjectListModel* list = _rows->value(rowIndex); + for (int colIndex=0; colIndex<_columns->count(); colIndex++) { + QmlObjectListModel* list = _columns->value(colIndex); list->append(_createNewInstrumentValueWorker(list)); } - _columnCount++; - emit columnCountChanged(_columnCount); + _rowCount++; + emit rowCountChanged(_rowCount); _saveSettings(); } -void FactValueGrid::deleteLastColumn(void) +void FactValueGrid::deleteLastRow(void) { - if (_columnCount <= 1) { + if (_rowCount <= 1) { return; } - for (int rowIndex=0; rowIndex<_rows->count(); rowIndex++) { - QmlObjectListModel* list = _rows->value(rowIndex); + for (int colIndex=0; colIndex<_columns->count(); colIndex++) { + QmlObjectListModel* list = _columns->value(colIndex); list->removeAt(list->count() - 1)->deleteLater(); } - _columnCount--; - emit columnCountChanged(_columnCount); + _rowCount--; + emit rowCountChanged(_rowCount); _saveSettings(); } -QmlObjectListModel* FactValueGrid::appendRow(void) +QmlObjectListModel* FactValueGrid::appendColumn(void) { - QmlObjectListModel* newList = new QmlObjectListModel(_rows); - _rows->append(newList); + QmlObjectListModel* newList = new QmlObjectListModel(_columns); + _columns->append(newList); // If this is the first row then we automatically add the first column as well - int cColsToAdd = qMax(_columnCount, 1); - for (int i=0; iappend(_createNewInstrumentValueWorker(newList)); } - if (cColsToAdd != _columnCount) { - _columnCount = cColsToAdd; - emit columnCountChanged(_columnCount); + if (cRowsToAdd != _rowCount) { + _rowCount = cRowsToAdd; + emit rowCountChanged(_rowCount); } _saveSettings(); @@ -236,10 +234,10 @@ QmlObjectListModel* FactValueGrid::appendRow(void) return newList; } -void FactValueGrid::deleteLastRow(void) +void FactValueGrid::deleteLastColumn(void) { - if (_rows->count() > 1) { - _rows->removeAt(_rows->count() - 1)->deleteLater(); + if (_columns->count() > 1) { + _columns->removeAt(_columns->count() - 1)->deleteLater(); } } @@ -272,17 +270,16 @@ void FactValueGrid::_saveSettings(void) settings.remove(""); // Remove any previous settings - settings.setValue(_versionKey, 1); - settings.setValue(_fontSizeKey, _fontSize); - settings.setValue(_orientationKey, _orientation); - settings.setValue(_columnsKey, _columnCount); + settings.setValue(_versionKey, 1); + settings.setValue(_fontSizeKey, _fontSize); + settings.setValue(_rowsKey, _rowCount); settings.beginWriteArray(_rowsKey); - for (int rowIndex=0; rowIndex<_rows->count(); rowIndex++) { - QmlObjectListModel* columns = _rows->value(rowIndex); + for (int colIndex=0; colIndex<_columns->count(); colIndex++) { + QmlObjectListModel* columns = _columns->value(colIndex); - settings.setArrayIndex(rowIndex); - settings.beginWriteArray(_columnsKey); + settings.setArrayIndex(colIndex); + settings.beginWriteArray(_rowsKey); for (int colIndex=0; colIndexcount(); colIndex++) { InstrumentValueData* value = columns->value(colIndex); @@ -299,10 +296,10 @@ void FactValueGrid::_loadSettings(void) { _preventSaveSettings = true; - _rows->deleteLater(); + _columns->deleteLater(); - _rows = new QmlObjectListModel(this); - _columnCount = 0; + _columns = new QmlObjectListModel(this); + _rowCount = 0; QSettings settings; QString groupNameFormat("%1-%2"); @@ -325,27 +322,26 @@ void FactValueGrid::_loadSettings(void) qgcApp()->toolbox()->corePlugin()->factValueGridCreateDefaultSettings(_defaultSettingsGroup); } _fontSize = settings.value(_fontSizeKey, DefaultFontSize).value(); - _orientation = settings.value(_orientationKey, VerticalOrientation).value(); // Initial setup of empty items - int cColumns = settings.value(_columnsKey).toInt(); + int cColumns = settings.value(_rowsKey).toInt(); int cModelLists = settings.beginReadArray(_rowsKey); if (cModelLists && cColumns) { - appendRow(); + appendColumn(); for (int itemIndex=1; itemIndexvalue(rowIndex); + QmlObjectListModel* list = _columns->value(colIndex); InstrumentValueData* value = list->value(itemIndex); settings.setArrayIndex(itemIndex); _loadValueData(settings, value); @@ -354,7 +350,7 @@ void FactValueGrid::_loadSettings(void) } settings.endArray(); - emit rowsChanged(_rows); + emit columnsChanged(_columns); _preventSaveSettings = false; } diff --git a/src/QmlControls/FactValueGrid.h b/src/QmlControls/FactValueGrid.h index e7f24ed3d..c611bd3e2 100644 --- a/src/QmlControls/FactValueGrid.h +++ b/src/QmlControls/FactValueGrid.h @@ -26,12 +26,6 @@ public: FactValueGrid(QQuickItem *parent = nullptr); FactValueGrid(const QString& defaultSettingsGroup); - enum Orientation { - HorizontalOrientation=0, // Labels will be to the left of the value - VerticalOrientation // Labels will be above the value - }; - Q_ENUMS(Orientation) - enum FontSize { DefaultFontSize=0, SmallFontSize, @@ -50,22 +44,21 @@ public: // The combination of the two valuePage*SettingsGroup values allows each FactValueGrid to have it's own persistence space. - Q_PROPERTY(QmlObjectListModel* rows MEMBER _rows NOTIFY rowsChanged) - Q_PROPERTY(int columnCount MEMBER _columnCount NOTIFY columnCountChanged) + Q_PROPERTY(QmlObjectListModel* columns MEMBER _columns NOTIFY columnsChanged) + Q_PROPERTY(int rowCount MEMBER _rowCount NOTIFY rowCountChanged) Q_PROPERTY(QString userSettingsGroup MEMBER _userSettingsGroup NOTIFY userSettingsGroupChanged) Q_PROPERTY(QString defaultSettingsGroup MEMBER _defaultSettingsGroup NOTIFY defaultSettingsGroupChanged) - Q_PROPERTY(Orientation orientation MEMBER _orientation CONSTANT) Q_PROPERTY(QStringList iconNames READ iconNames CONSTANT) Q_PROPERTY(FontSize fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged) Q_PROPERTY(QStringList fontSizeNames MEMBER _fontSizeNames CONSTANT) - Q_INVOKABLE void resetToDefaults (void); - Q_INVOKABLE QmlObjectListModel* appendRow (void); - Q_INVOKABLE void deleteLastRow (void); - Q_INVOKABLE void appendColumn (void); - Q_INVOKABLE void deleteLastColumn (void); + Q_INVOKABLE void resetToDefaults (void); + Q_INVOKABLE QmlObjectListModel* appendColumn (void); + Q_INVOKABLE void deleteLastColumn(void); + Q_INVOKABLE void appendRow (void); + Q_INVOKABLE void deleteLastRow (void); - QmlObjectListModel* rows (void) const { return _rows; } + QmlObjectListModel* columns (void) const { return _columns; } FontSize fontSize (void) const { return _fontSize; } QStringList iconNames (void) const { return _iconNames; } QGCMAVLink::VehicleClass_t vehicleClass(void) const { return _vehicleClass; } @@ -79,8 +72,8 @@ signals: void userSettingsGroupChanged (const QString& userSettingsGroup); void defaultSettingsGroupChanged(const QString& defaultSettingsGroup); void fontSizeChanged (FontSize fontSize); - void rowsChanged (QmlObjectListModel* model); - void columnCountChanged (int columnCount); + void columnsChanged (QmlObjectListModel* model); + void rowCountChanged (int rowCount); protected: Q_DISABLE_COPY(FactValueGrid) @@ -88,11 +81,10 @@ protected: QGCMAVLink::VehicleClass_t _vehicleClass = QGCMAVLink::VehicleClassGeneric; QString _defaultSettingsGroup; // Settings group to read from if the user has not modified from the default settings QString _userSettingsGroup; // Settings group to read from for user modified settings - Orientation _orientation = VerticalOrientation; FontSize _fontSize = DefaultFontSize; bool _preventSaveSettings = false; - QmlObjectListModel* _rows = nullptr; - int _columnCount = 0; + QmlObjectListModel* _columns = nullptr; + int _rowCount = 0; private slots: void _offlineVehicleTypeChanged(void); @@ -113,8 +105,6 @@ private: static const char* _versionKey; static const char* _rowsKey; - static const char* _columnsKey; - static const char* _orientationKey; static const char* _fontSizeKey; static const char* _factGroupNameKey; static const char* _factNameKey; @@ -133,4 +123,3 @@ private: QML_DECLARE_TYPE(FactValueGrid) Q_DECLARE_METATYPE(FactValueGrid::FontSize) -Q_DECLARE_METATYPE(FactValueGrid::Orientation) diff --git a/src/QmlControls/HorizontalFactValueGrid.cc b/src/QmlControls/HorizontalFactValueGrid.cc index bedb04423..429eabeba 100644 --- a/src/QmlControls/HorizontalFactValueGrid.cc +++ b/src/QmlControls/HorizontalFactValueGrid.cc @@ -14,17 +14,17 @@ #include -const QString HorizontalFactValueGrid::_toolbarUserSettingsGroup ("TelemetryBarUserSettingsWIP0"); -const QString HorizontalFactValueGrid::telemetryBarDefaultSettingsGroup ("TelemetryBarDefaultSettingsWIP0"); +const QString HorizontalFactValueGrid::_toolbarUserSettingsGroup ("TelemetryBarUserSettingsWIP01"); +const QString HorizontalFactValueGrid::telemetryBarDefaultSettingsGroup ("TelemetryBarDefaultSettingsWIP01"); HorizontalFactValueGrid::HorizontalFactValueGrid(QQuickItem* parent) : FactValueGrid(parent) { - _orientation = HorizontalOrientation; + } HorizontalFactValueGrid::HorizontalFactValueGrid(const QString& defaultSettingsGroup) : FactValueGrid(defaultSettingsGroup) { - _orientation = HorizontalOrientation; + } diff --git a/src/QmlControls/HorizontalFactValueGrid.qml b/src/QmlControls/HorizontalFactValueGrid.qml index 3c9d5155d..28ed1f551 100644 --- a/src/QmlControls/HorizontalFactValueGrid.qml +++ b/src/QmlControls/HorizontalFactValueGrid.qml @@ -71,11 +71,11 @@ T.HorizontalFactValueGrid { GridLayout { id: valueGrid - rows: _root.rows.count + rows: _root.columns.count rowSpacing: 0 Repeater { - model: _root.rows + model: _root.columns Repeater { id: labelRepeater @@ -84,8 +84,8 @@ T.HorizontalFactValueGrid { property real _index: index InstrumentValueLabel { - Layout.row: labelRepeater._index - Layout.column: index * 3 + Layout.row: index + Layout.column: labelRepeater._index * 3 Layout.fillHeight: true Layout.alignment: Qt.AlignRight instrumentValueData: object @@ -94,26 +94,55 @@ T.HorizontalFactValueGrid { } Repeater { - model: _root.rows + model: _root.columns Repeater { id: valueRepeater model: object - property real _index: index + property real _index: index + property real maxWidth: 0 + property var lastCheck: new Date().getTime() + + function recalcWidth() { + var newMaxWidth = 0 + for (var i=0; i 30 * 1000) { + lastCheck = currentTime + valueRepeater.recalcWidth() + } + } } } } Repeater { - model: _root.rows + model: _root.columns Repeater { id: spacerRepeater @@ -122,8 +151,8 @@ T.HorizontalFactValueGrid { property real _index: index Item { - Layout.row: spacerRepeater._index - Layout.column: (index * 3) + 2 + Layout.row: index + Layout.column: (spacerRepeater._index * 3) + 2 Layout.preferredWidth: ScreenTools.defaultFontPixelWidth Layout.preferredHeight: 1 } @@ -150,7 +179,7 @@ T.HorizontalFactValueGrid { Layout.fillWidth: true Layout.preferredHeight: parent.height text: qsTr("-") - enabled: _root.rows.count > 1 + enabled: _root.rowCount > 1 onClicked: deleteLastRow() } } @@ -177,7 +206,7 @@ T.HorizontalFactValueGrid { Layout.preferredHeight: ScreenTools.minTouchPixels Layout.preferredWidth: parent.width text: qsTr("-") - enabled: _root.columnCount > 1 + enabled: _root.columns.count > 1 onClicked: deleteLastColumn() } } diff --git a/src/QmlControls/InstrumentValueValue.qml b/src/QmlControls/InstrumentValueValue.qml index dd63bb798..535fffe6d 100644 --- a/src/QmlControls/InstrumentValueValue.qml +++ b/src/QmlControls/InstrumentValueValue.qml @@ -21,6 +21,7 @@ import QGroundControl.Palette 1.0 ColumnLayout { property var instrumentValueData: null property bool settingsUnlocked: false + property alias contentWidth: label.contentWidth property bool _verticalOrientation: instrumentValueData.factValueGrid.orientation === FactValueGrid.VerticalOrientation property var _rgFontSizes: [ ScreenTools.defaultFontPointSize, ScreenTools.smallFontPointSize, ScreenTools.mediumFontPointSize, ScreenTools.largeFontPointSize ] @@ -36,6 +37,7 @@ ColumnLayout { property real _height: 0 QGCLabel { + id: label Layout.alignment: _verticalOrientation ? Qt.AlignHCenter : Qt.AlignVCenter font.pointSize: _fontSize text: instrumentValueData.fact.enumOrValueString + (instrumentValueData.showUnits ? " " + instrumentValueData.fact.units : "") diff --git a/src/QmlControls/QGroundControl/Controls/qmldir b/src/QmlControls/QGroundControl/Controls/qmldir index 695b7f61f..713ef49f5 100644 --- a/src/QmlControls/QGroundControl/Controls/qmldir +++ b/src/QmlControls/QGroundControl/Controls/qmldir @@ -107,6 +107,5 @@ TransectStyleMapVisuals 1.0 TransectStyleMapVisuals.qml ToolStrip 1.0 ToolStrip.qml VehicleRotationCal 1.0 VehicleRotationCal.qml VehicleSummaryRow 1.0 VehicleSummaryRow.qml -VerticalFactValueGrid 1.0 VerticalFactValueGrid.qml QGCHoverButton 1.0 QGCHoverButton.qml MAVLinkChart 1.0 MAVLinkChart.qml diff --git a/src/QmlControls/VerticalFactValueGrid.cc b/src/QmlControls/VerticalFactValueGrid.cc deleted file mode 100644 index 55d448a52..000000000 --- a/src/QmlControls/VerticalFactValueGrid.cc +++ /dev/null @@ -1,30 +0,0 @@ -/**************************************************************************** - * - * (c) 2009-2020 QGROUNDCONTROL PROJECT - * - * QGroundControl is licensed according to the terms in the file - * COPYING.md in the root of the source code directory. - * - ****************************************************************************/ - -#include "VerticalFactValueGrid.h" -#include "InstrumentValueData.h" -#include "QGCApplication.h" -#include "QGCCorePlugin.h" - -#include - -const QString VerticalFactValueGrid::_valuePageUserSettingsGroup ("ValuePageUserSettings2"); -const QString VerticalFactValueGrid::valuePageDefaultSettingsGroup("ValuePageDefaultSettings2"); - -VerticalFactValueGrid::VerticalFactValueGrid(QQuickItem* parent) - : FactValueGrid(parent) -{ - _orientation = VerticalOrientation; -} - -VerticalFactValueGrid::VerticalFactValueGrid(const QString& defaultSettingsGroup) - : FactValueGrid(defaultSettingsGroup) -{ - _orientation = VerticalOrientation; -} diff --git a/src/QmlControls/VerticalFactValueGrid.h b/src/QmlControls/VerticalFactValueGrid.h deleted file mode 100644 index f022be138..000000000 --- a/src/QmlControls/VerticalFactValueGrid.h +++ /dev/null @@ -1,38 +0,0 @@ -/**************************************************************************** - * - * (c) 2009-2020 QGROUNDCONTROL PROJECT - * - * QGroundControl is licensed according to the terms in the file - * COPYING.md in the root of the source code directory. - * - ****************************************************************************/ - -#pragma once - -#include "FactSystem.h" -#include "QmlObjectListModel.h" -#include "QGCApplication.h" -#include "FactValueGrid.h" - -class InstrumentValueData; - -class VerticalFactValueGrid : public FactValueGrid -{ - Q_OBJECT - -public: - VerticalFactValueGrid(QQuickItem *parent = nullptr); - VerticalFactValueGrid(const QString& defaultSettingsGroup); - - Q_PROPERTY(QString valuePageDefaultSettingsGroup MEMBER valuePageDefaultSettingsGroup CONSTANT) - Q_PROPERTY(QString valuePageUserSettingsGroup MEMBER _valuePageUserSettingsGroup CONSTANT) - - static const QString valuePageDefaultSettingsGroup; - -private: - Q_DISABLE_COPY(VerticalFactValueGrid) - - static const QString _valuePageUserSettingsGroup; -}; - -QML_DECLARE_TYPE(VerticalFactValueGrid) diff --git a/src/QmlControls/VerticalFactValueGrid.qml b/src/QmlControls/VerticalFactValueGrid.qml deleted file mode 100644 index b34dbe54d..000000000 --- a/src/QmlControls/VerticalFactValueGrid.qml +++ /dev/null @@ -1,174 +0,0 @@ -/**************************************************************************** - * - * (c) 2009-2020 QGROUNDCONTROL PROJECT - * - * QGroundControl is licensed according to the terms in the file - * COPYING.md in the root of the source code directory. - * - ****************************************************************************/ - -import QtQuick 2.12 -import QtQuick.Layouts 1.2 -import QtQuick.Controls 2.5 -import QtQml 2.12 - -import QGroundControl.Templates 1.0 as T -import QGroundControl.Controls 1.0 -import QGroundControl.ScreenTools 1.0 -import QGroundControl.Controllers 1.0 -import QGroundControl.Palette 1.0 -import QGroundControl.FlightMap 1.0 -import QGroundControl 1.0 - -// Note: This control will spit out qWarnings like this: "QGridLayoutEngine::addItem: Cell (0, 1) already taken" -// This is due to Qt bug https://bugreports.qt.io/browse/QTBUG-65121 -// If this becomes a problem I'll implement our own grid layout control - -T.VerticalFactValueGrid { - id: _root - height: childrenRect.height - - property bool settingsUnlocked: false - - QGCPalette { id: qgcPal; colorGroupEnabled: enabled } - - QGCFlickable { - width: parent.width - height: topLevelRowLayout.height - flickableDirection: QGCFlickable.HorizontalFlick - contentWidth: topLevelRowLayout.width - - RowLayout { - id: topLevelRowLayout - spacing: 0 - - ColumnLayout { - spacing: 0 - - GridLayout { - id: valueGrid - Layout.minimumWidth: _root.width - (columnButtons.visible? columnButtons.width + columnSpacing : 0) - rows: _root.rows.count * 2 - rowSpacing: 0 - columnSpacing: 5 - - Repeater { - model: _root.rows - - Repeater { - id: labelRepeater - model: object - - property real _index: index - - InstrumentValueLabel { - Layout.row: labelRepeater._index * 2 - Layout.column: index - Layout.fillWidth: true - Layout.alignment: Qt.AlignHCenter - instrumentValueData: object - } - } - } - - Repeater { - model: _root.rows - - Repeater { - id: valueRepeater - model: object - - property real _index: index - - InstrumentValueValue { - Layout.row: valueRepeater._index * 2 + 1 - Layout.column: index - Layout.fillWidth: true - Layout.alignment: Qt.AlignHCenter - instrumentValueData: object - } - } - } - } - - RowLayout { - id: rowButtons - height: ScreenTools.minTouchPixels / 2 - Layout.fillWidth: true - spacing: 1 - visible: settingsUnlocked - - QGCButton { - Layout.fillWidth: true - Layout.preferredHeight: parent.height - text: qsTr("+") - onClicked: appendRow() - } - - QGCButton { - Layout.fillWidth: true - Layout.preferredHeight: parent.height - text: qsTr("-") - enabled: _root.rows.count > 1 - onClicked: deleteLastRow() - } - } - } - - ColumnLayout { - id: columnButtons - Layout.fillHeight: true - Layout.bottomMargin: rowButtons.height - width: ScreenTools.minTouchPixels / 2 - spacing: 1 - visible: settingsUnlocked - - QGCButton { - Layout.fillHeight: true - Layout.preferredHeight: ScreenTools.minTouchPixels - Layout.preferredWidth: parent.width - text: qsTr("+") - onClicked: appendColumn() - } - - QGCButton { - Layout.fillHeight: true - Layout.preferredHeight: ScreenTools.minTouchPixels - Layout.preferredWidth: parent.width - text: qsTr("-") - enabled: _root.columnCount > 1 - onClicked: deleteLastColumn() - } - } - } - - QGCMouseArea { - x: valueGrid.x - y: valueGrid.y - width: valueGrid.width - height: valueGrid.height - visible: settingsUnlocked - onClicked: { - var item = valueGrid.childAt(mouse.x, mouse.y) - //console.log(item, item ? item.instrumentValueData : "null", item && item.parent ? item.parent.instrumentValueData : "null") - if (item && item.instrumentValueData !== undefined) { - mainWindow.showPopupDialogFromComponent(valueEditDialog, { instrumentValueData: item.instrumentValueData }) - } - } - - /*Rectangle { - anchors.fill: parent - border.color: "green" - border.width: 1 - color: "transparent" - }*/ - } - } - - Component { - id: valueEditDialog - - InstrumentValueEditDialog { } - } -} - diff --git a/src/api/QGCCorePlugin.cc b/src/api/QGCCorePlugin.cc index 2954d7e1d..ce1936c55 100644 --- a/src/api/QGCCorePlugin.cc +++ b/src/api/QGCCorePlugin.cc @@ -23,7 +23,6 @@ #include "QGCLoggingCategory.h" #include "QGCCameraManager.h" #include "HorizontalFactValueGrid.h" -#include "VerticalFactValueGrid.h" #include "InstrumentValueData.h" #include @@ -298,65 +297,70 @@ void QGCCorePlugin::factValueGridCreateDefaultSettings(const QString& defaultSet factValueGrid.setFontSize(FactValueGrid::LargeFontSize); - factValueGrid.appendRow(); - factValueGrid.appendRow(); + factValueGrid.appendColumn(); factValueGrid.appendColumn(); factValueGrid.appendColumn(); if (includeFWValues) { factValueGrid.appendColumn(); } + factValueGrid.appendRow(); - int colIndex = 0; - QmlObjectListModel* row = factValueGrid.rows()->value(0); + int rowIndex = 0; + QmlObjectListModel* column = factValueGrid.columns()->value(0); - InstrumentValueData* value = row->value(colIndex++); + InstrumentValueData* value = column->value(rowIndex++); value->setFact("Vehicle", "AltitudeRelative"); value->setIcon("arrow-thick-up.svg"); value->setText(value->fact()->shortDescription()); value->setShowUnits(true); - value = row->value(colIndex++); - value->setFact("Vehicle", "ClimbRate"); - value->setIcon("arrow-simple-up.svg"); + value = column->value(rowIndex++); + value->setFact("Vehicle", "DistanceToHome"); + value->setIcon("bookmark copy 3.svg"); value->setText(value->fact()->shortDescription()); value->setShowUnits(true); - if (includeFWValues) { - value = row->value(colIndex++); - value->setFact("Vehicle", "AirSpeed"); - value->setText("AirSpd"); - value->setShowUnits(true); - } - - value = row->value(colIndex++); - value->setFact("Vehicle", "FlightTime"); - value->setIcon("timer.svg"); - value->setText(value->fact()->shortDescription()); - value->setShowUnits(false); + rowIndex = 0; + column = factValueGrid.columns()->value(1); - colIndex = 0; - row = factValueGrid.rows()->value(1); - - value = row->value(colIndex++); - value->setFact("Vehicle", "DistanceToHome"); - value->setIcon("bookmark copy 3.svg"); + value = column->value(rowIndex++); + value->setFact("Vehicle", "ClimbRate"); + value->setIcon("arrow-simple-up.svg"); value->setText(value->fact()->shortDescription()); value->setShowUnits(true); - value = row->value(colIndex++); + value = column->value(rowIndex++); value->setFact("Vehicle", "GroundSpeed"); value->setIcon("arrow-simple-right.svg"); value->setText(value->fact()->shortDescription()); value->setShowUnits(true); + if (includeFWValues) { - value = row->value(colIndex++); + rowIndex = 0; + column = factValueGrid.columns()->value(2); + + value = column->value(rowIndex++); + value->setFact("Vehicle", "AirSpeed"); + value->setText("AirSpd"); + value->setShowUnits(true); + + value = column->value(rowIndex++); value->setFact("Vehicle", "ThrottlePct"); value->setText("Thr"); value->setShowUnits(true); } - value = row->value(colIndex++); + rowIndex = 0; + column = factValueGrid.columns()->value(includeFWValues ? 3 : 2); + + value = column->value(rowIndex++); + value->setFact("Vehicle", "FlightTime"); + value->setIcon("timer.svg"); + value->setText(value->fact()->shortDescription()); + value->setShowUnits(false); + + value = column->value(rowIndex++); value->setFact("Vehicle", "FlightDistance"); value->setIcon("travel-walk.svg"); value->setText(value->fact()->shortDescription()); -- 2.22.0