13 changed files with 138 additions and 366 deletions
@ -1,30 +0,0 @@ |
|||||||
/****************************************************************************
|
|
||||||
* |
|
||||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
|
||||||
* |
|
||||||
* 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 <QSettings> |
|
||||||
|
|
||||||
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; |
|
||||||
} |
|
@ -1,38 +0,0 @@ |
|||||||
/****************************************************************************
|
|
||||||
* |
|
||||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
|
|
||||||
* |
|
||||||
* 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) |
|
@ -1,174 +0,0 @@ |
|||||||
/**************************************************************************** |
|
||||||
* |
|
||||||
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
|
||||||
* |
|
||||||
* 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 { } |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
Loading…
Reference in new issue