From 067c19fe0f7e2ec970f713a853c3252c2323587d Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Mon, 30 Jul 2018 20:33:50 -0700 Subject: [PATCH 1/2] Add flickable --- src/QmlControls/QGCViewMessage.qml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/QmlControls/QGCViewMessage.qml b/src/QmlControls/QGCViewMessage.qml index 9d58df0..02f994b 100644 --- a/src/QmlControls/QGCViewMessage.qml +++ b/src/QmlControls/QGCViewMessage.qml @@ -20,9 +20,16 @@ import QGroundControl.Palette 1.0 QGCViewDialog { property string message - QGCLabel { + QGCFlickable { anchors.fill: parent - wrapMode: Text.WordWrap - text: message + contentHeight: label.contentHeight + + QGCLabel { + id: label + anchors.left: parent.left + anchors.right: parent.right + wrapMode: Text.WordWrap + text: message + } } } From 1f68cdcfcbb4f67b88c87501f57cef0820616ecf Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Mon, 30 Jul 2018 20:34:04 -0700 Subject: [PATCH 2/2] Fix initial value calculations --- src/FactSystem/FactValueSliderListModel.cc | 19 ++++++++----------- src/FactSystem/FactValueSliderListModel.h | 6 ++++-- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/FactSystem/FactValueSliderListModel.cc b/src/FactSystem/FactValueSliderListModel.cc index bbf985d..a91e30f 100644 --- a/src/FactSystem/FactValueSliderListModel.cc +++ b/src/FactSystem/FactValueSliderListModel.cc @@ -27,7 +27,7 @@ FactValueSliderListModel::FactValueSliderListModel(Fact& fact, QObject* parent) , _cPrevValues (0) , _cNextValues (0) , _initialValue (0) - , _initialValueRounded (0) + , _initialValueAtPrecision (0) , _increment (0) { QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); @@ -47,14 +47,14 @@ int FactValueSliderListModel::resetInitialValue(void) } _initialValue = _fact.cookedValue().toDouble(); - _initialValueRounded = qRound(_initialValue); + _initialValueAtPrecision = _valueAtPrecision(_initialValue); if (qRound(_fact.rawIncrement()) == _fact.rawIncrement()) { _increment = qRound(_fact.cookedIncrement()); } else { _increment = _fact.cookedIncrement(); } - _cPrevValues = qMin((_initialValue - _fact.cookedMin().toDouble()), 100.0) / _increment; - _cNextValues = qMin((_fact.cookedMax().toDouble() - _initialValue), 100.0) / _increment; + _cPrevValues = qMin((_initialValue - _fact.cookedMin().toDouble()) / _increment, 100.0); + _cNextValues = qMin((_fact.cookedMax().toDouble() - _initialValue) / _increment, 100.0); _initialValueIndex = _cPrevValues; int totalValueCount = _cPrevValues + 1 + _cNextValues; @@ -93,12 +93,9 @@ QVariant FactValueSliderListModel::data(const QModelIndex &index, int role) cons if (cIncrementCount == 0) { value = _initialValue; } else { - value = _initialValueRounded + (cIncrementCount * _increment); + value = initialValueAtPrecision() + (cIncrementCount * _increment); } - double precision = qPow(10, _fact.decimalPlaces()); - double atPrecision = qRound(value * precision) / precision; - //qDebug() << value << precision << atPrecision << _fact.decimalPlaces() << _fact.name(); - return QVariant(atPrecision); + return QVariant(_valueAtPrecision(value)); } else if (role == _valueIndexRole) { return QVariant::fromValue(valueIndex); } else { @@ -129,8 +126,8 @@ int FactValueSliderListModel::valueIndexAtModelIndex(int index) return data(createIndex(index, 0), _valueIndexRole).toInt(); } -double FactValueSliderListModel::initialValueAtPrecision(void) +double FactValueSliderListModel::_valueAtPrecision(double value) const { double precision = qPow(10, _fact.decimalPlaces()); - return qRound(_initialValue * precision) / precision; + return qRound(value * precision) / precision; } diff --git a/src/FactSystem/FactValueSliderListModel.h b/src/FactSystem/FactValueSliderListModel.h index 0f140d8..21914b5 100644 --- a/src/FactSystem/FactValueSliderListModel.h +++ b/src/FactSystem/FactValueSliderListModel.h @@ -25,7 +25,7 @@ public: /// The initial value of the Fact at the meta data specified decimal place precision Q_PROPERTY(double initialValueAtPrecision READ initialValueAtPrecision NOTIFY initialValueAtPrecisionChanged) - double initialValueAtPrecision(void); + double initialValueAtPrecision(void) const { return _initialValueAtPrecision; } Q_INVOKABLE int resetInitialValue(void); Q_INVOKABLE double valueAtModelIndex(int index); @@ -35,6 +35,8 @@ signals: void initialValueAtPrecisionChanged(void); private: + double _valueAtPrecision(double value) const; + // Overrides from QAbstractListModel int rowCount(const QModelIndex & parent = QModelIndex()) const override; QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const override; @@ -48,7 +50,7 @@ private: int _cNextValues; int _windowSize; double _initialValue; - double _initialValueRounded; + double _initialValueAtPrecision; double _increment; static const int _valueRole;