diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2020-06-09 18:30:10 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2020-06-11 10:31:01 +0000 |
commit | 417530c3a8ab2a11fc6348fd737376c1a33e8e56 (patch) | |
tree | 215a7a3787d3b37f4920c71c3bb5fa4a30684bb4 /src/plugins/qmldesigner/components/timelineeditor | |
parent | 8114a588476445f5611e415b245be4c50b653e54 (diff) |
QmlDesigner: Show "None" instead of magic -1 in timeline settings
When nothing is set as fixed frame we show "None" in the UI instead
of a missleading -1.
Task-number: QDS-1139
Change-Id: I22edfefe8f05a343467e66e66424d10b5ca8a4bc
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/components/timelineeditor')
-rw-r--r-- | src/plugins/qmldesigner/components/timelineeditor/timelinesettingsmodel.cpp | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsmodel.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsmodel.cpp index 6ecb4ef232..bdde94cf22 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsmodel.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinesettingsmodel.cpp @@ -31,16 +31,26 @@ #include <variantproperty.h> #include <qmlvisualnode.h> +#include <utils/optional.h> #include <utils/qtcassert.h> #include <QComboBox> #include <QItemEditorFactory> #include <QMessageBox> +#include <QSpinBox> #include <QStyledItemDelegate> #include <QTimer> namespace QmlDesigner { +static void setDataForFixedFrame(QStandardItem *item, Utils::optional<int> fixedValue) +{ + if (fixedValue) + item->setData(fixedValue.value(), Qt::EditRole); + else + item->setData(TimelineSettingsModel::tr("None"), Qt::EditRole); +} + class CustomDelegate : public QStyledItemDelegate { public: @@ -89,7 +99,12 @@ QWidget *TimelineEditorDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const { - QWidget *widget = QStyledItemDelegate::createEditor(parent, option, index); + QWidget *widget = nullptr; + + if (index.column() == TimelineSettingsModel::FixedFrameRow) + widget = new QSpinBox(parent); + else + widget = QStyledItemDelegate::createEditor(parent, option, index); const auto timelineSettingsModel = qobject_cast<const TimelineSettingsModel *>(index.model()); @@ -169,17 +184,17 @@ void TimelineSettingsModel::setupDelegates(QAbstractItemView *view) view->setItemDelegate(new TimelineEditorDelegate); } -static int propertyValueForState(const ModelNode &modelNode, +static Utils::optional<int> propertyValueForState(const ModelNode &modelNode, QmlModelState state, const PropertyName &propertyName) { if (!modelNode.isValid()) - return -1; + return {}; if (state.isBaseState()) { if (modelNode.hasVariantProperty(propertyName)) return modelNode.variantProperty(propertyName).value().toInt(); - return -1; + return {}; } if (state.hasPropertyChanges(modelNode)) { @@ -188,7 +203,7 @@ static int propertyValueForState(const ModelNode &modelNode, return propertyChanges.modelNode().variantProperty(propertyName).value().toInt(); } - return -1; + return {}; } static QStandardItem *createStateItem(const ModelNode &state) @@ -216,8 +231,8 @@ void TimelineSettingsModel::addState(const ModelNode &state) stateItem->setData(state.internalId()); stateItem->setFlags(Qt::ItemIsEnabled); - int fixedValue = propertyValueForState(timeline, state, "currentFrame"); - fixedFrameItem->setData(fixedValue, Qt::EditRole); + auto fixedValue = propertyValueForState(timeline, state, "currentFrame"); + setDataForFixedFrame(fixedFrameItem, fixedValue); items.append(stateItem); items.append(timelinelItem); @@ -396,9 +411,9 @@ void TimelineSettingsModel::resetRow(int row) } if (fixedFrameItem) { - int fixedValue = propertyValueForState(timeline, modelState, "currentFrame"); + auto fixedValue = propertyValueForState(timeline, modelState, "currentFrame"); if (fixedFrameItem->data(Qt::EditRole).toInt() != fixedValue) - fixedFrameItem->setData(fixedValue, Qt::EditRole); + setDataForFixedFrame(fixedFrameItem, fixedValue); } m_lock = false; |