From 5b65318aab7b1e12eade55442fa43a0e0f621f09 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Mon, 29 Jun 2015 11:58:16 -0700 Subject: [PATCH] Validation support --- src/FactSystem/FactControls/FactTextField.qml | 36 +++++++++++++++++-- src/QmlControls/QGCView.qml | 3 +- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/FactSystem/FactControls/FactTextField.qml b/src/FactSystem/FactControls/FactTextField.qml index 5beff149a..ac3b601b9 100644 --- a/src/FactSystem/FactControls/FactTextField.qml +++ b/src/FactSystem/FactControls/FactTextField.qml @@ -1,14 +1,44 @@ import QtQuick 2.2 import QtQuick.Controls 1.2 import QtQuick.Controls.Styles 1.2 +import QtQuick.Dialogs 1.2 + import QGroundControl.FactSystem 1.0 import QGroundControl.Palette 1.0 import QGroundControl.Controls 1.0 QGCTextField { - property Fact fact: null - text: fact.valueString + id: _textField + + property Fact fact: null + property string _validateString + + text: fact.valueString unitsLabel: fact.units - onEditingFinished: fact.value = text + + onEditingFinished: { + if (qgcView) { + var errorString = fact.validate(text, false /* convertOnly */) + if (errorString == "") { + fact.value = text + } else { + _validateString = text + qgcView.showDialog(editorDialogComponent, "Invalid Parameter Value", 50, StandardButton.Save) + } + } else { + fact.value = text + fact.valueChanged(fact.value) + } + } + + Component { + id: editorDialogComponent + + ParameterEditorDialog { + validate: true + validateValue: _validateString + fact: _textField.fact + } + } } diff --git a/src/QmlControls/QGCView.qml b/src/QmlControls/QGCView.qml index 9360cc7c1..28532ae0b 100644 --- a/src/QmlControls/QGCView.qml +++ b/src/QmlControls/QGCView.qml @@ -37,7 +37,8 @@ import QGroundControl.FactControls 1.0 FactPanel { id: __rootItem - property bool completedSignalled: false + property var qgcView: __rootItem /// Used by Fact controls for validation dialogs + property bool completedSignalled: false property var viewPanel -- 2.22.0