Commit 0ea45f38 authored by Don Gagne's avatar Don Gagne

Show help button on FactTextFields

parent 6d8385ed
......@@ -14,6 +14,7 @@ QGCTextField {
text: fact ? fact.valueString : ""
unitsLabel: fact ? fact.units : ""
showUnits: true
showHelp: true
property Fact fact: null
property string _validateString
......@@ -31,7 +32,7 @@ QGCTextField {
fact.value = text
} else {
_validateString = text
qgcView.showDialog(editorDialogComponent, qsTr("Invalid Parameter Value"), qgcView.showDialogDefaultWidth, StandardButton.Save)
qgcView.showDialog(validationErrorDialogComponent, qsTr("Invalid Value"), qgcView.showDialogDefaultWidth, StandardButton.Save)
}
} else {
fact.value = text
......@@ -39,8 +40,11 @@ QGCTextField {
}
}
onHelpClicked: qgcView.showDialog(helpDialogComponent, qsTr("Value Details"), qgcView.showDialogDefaultWidth, StandardButton.Save)
Component {
id: editorDialogComponent
id: validationErrorDialogComponent
ParameterEditorDialog {
validate: true
......@@ -48,4 +52,12 @@ QGCTextField {
fact: _textField.fact
}
}
Component {
id: helpDialogComponent
ParameterEditorDialog {
fact: _textField.fact
}
}
}
......@@ -750,7 +750,7 @@ int FactMetaData::decimalPlaces(void) const
return actualDecimalPlaces;
}
FactMetaData* FactMetaData::_createFromJsonObject(const QJsonObject& json, QObject* metaDataParent)
FactMetaData* FactMetaData::createFromJsonObject(const QJsonObject& json, QObject* metaDataParent)
{
QString errorString;
......@@ -855,7 +855,7 @@ QMap<QString, FactMetaData*> FactMetaData::createMapFromJsonFile(const QString&
continue;
}
QJsonObject jsonObject = jsonValue.toObject();
FactMetaData* metaData = _createFromJsonObject(jsonObject, metaDataParent);
FactMetaData* metaData = createFromJsonObject(jsonObject, metaDataParent);
if (metaDataMap.contains(metaData->name())) {
qWarning() << QStringLiteral("Duplicate fact name:") << metaData->name();
......
......@@ -48,6 +48,8 @@ public:
static QMap<QString, FactMetaData*> createMapFromJsonFile(const QString& jsonFilename, QObject* metaDataParent);
static FactMetaData* createFromJsonObject(const QJsonObject& json, QObject* metaDataParent);
const FactMetaData& operator=(const FactMetaData& other);
/// Converts from meters to the user specified distance unit
......@@ -144,7 +146,6 @@ private:
QVariant _minForType(void) const;
QVariant _maxForType(void) const;
void _setAppSettingsTranslators(void);
static FactMetaData* _createFromJsonObject(const QJsonObject& json, QObject* metaDataParent);
// Built in translators
static QVariant _defaultTranslator(const QVariant& from) { return from; }
......
......@@ -85,7 +85,8 @@ QGCViewDialog {
QGCLabel {
width: parent.width
wrapMode: Text.WordWrap
text: fact.shortDescription ? fact.shortDescription : qsTr("Parameter Description (not defined)")
visible: fact.shortDescription
text: fact.shortDescription
}
QGCLabel {
......@@ -156,7 +157,10 @@ QGCViewDialog {
}
}
QGCLabel { text: fact.name }
QGCLabel {
text: fact.name
visible: fact.componentId > 0 // > 0 means it's a parameter fact
}
Column {
spacing: defaultTextHeight / 2
......@@ -202,7 +206,7 @@ QGCViewDialog {
QGCLabel {
width: parent.width
wrapMode: Text.WordWrap
text: qsTr("Warning: Modifying parameters while vehicle is in flight can lead to vehicle instability and possible vehicle loss. ") +
text: qsTr("Warning: Modifying values while vehicle is in flight can lead to vehicle instability and possible vehicle loss. ") +
qsTr("Make sure you know what you are doing and double-check your values before Save!")
}
......
import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
import QtQuick.Layouts 1.2
import QGroundControl.Palette 1.0
import QGroundControl.ScreenTools 1.0
......@@ -9,17 +10,22 @@ TextField {
id: root
property bool showUnits: false
property bool showHelp: false
property string unitsLabel: ""
signal helpClicked
property real _helpLayoutWidth: 0
Component.onCompleted: {
if (typeof qgcTextFieldforwardKeysTo !== 'undefined') {
root.Keys.forwardTo = [qgcTextFieldforwardKeysTo]
}
}
property var __qgcPal: QGCPalette { colorGroupEnabled: enabled }
QGCPalette { id: qgcPal; colorGroupEnabled: enabled }
textColor: __qgcPal.textFieldText
textColor: qgcPal.textFieldText
height: Math.round(Math.max(25, ScreenTools.defaultFontPixelHeight * (ScreenTools.isMobile ? 2.5 : 1.2)))
QGCLabel {
......@@ -35,6 +41,8 @@ TextField {
background: Item {
id: backgroundItem
property bool showHelp: control.showHelp && control.activeFocus
Rectangle {
anchors.fill: parent
anchors.bottomMargin: -1
......@@ -44,32 +52,58 @@ TextField {
Rectangle {
anchors.fill: parent
border.color: control.activeFocus ? "#47b" : "#999"
color: __qgcPal.textField
color: qgcPal.textField
}
Text {
id: unitsLabel
RowLayout {
id: unitsHelpLayout
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.rightMargin: backgroundItem.showHelp ? 0 : control.__contentHeight * 0.333
anchors.right: parent.right
spacing: 4
verticalAlignment: Text.AlignVCenter
horizontalAlignment:Text.AlignHCenter
x: parent.width - width
width: unitsLabelWidthGenerator.width
Component.onCompleted: control._helpLayoutWidth = unitsHelpLayout.width
onWidthChanged: control._helpLayoutWidth = unitsHelpLayout.width
Text {
anchors.verticalCenter: parent.verticalCenter
text: control.unitsLabel
font.pointSize: ScreenTools.defaultFontPointSize
font.pointSize: backgroundItem.showHelp ? ScreenTools.smallFontPointSize : ScreenTools.defaultFontPointSize
font.family: ScreenTools.normalFontFamily
antialiasing: true
color: control.textColor
visible: control.showUnits
}
Rectangle {
anchors.margins: 2
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.right: parent.right
width: height * 0.75
color: control.textColor
radius: 2
visible: backgroundItem.showHelp
QGCLabel {
anchors.fill: parent
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
color: qgcPal.textField
text: "?"
}
}
}
MouseArea {
anchors.fill: unitsHelpLayout
enabled: control.activeFocus
onClicked: root.helpClicked()
}
}
padding.right: control.showUnits ? unitsLabelWidthGenerator.width : control.__contentHeight * 0.333
padding.right: control._helpLayoutWidth //control.showUnits ? unitsLabelWidthGenerator.width : control.__contentHeight * 0.333
}
onActiveFocusChanged: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment