aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/timelineeditor
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2020-06-09 18:30:10 +0200
committerTim Jenssen <tim.jenssen@qt.io>2020-06-11 10:31:01 +0000
commit417530c3a8ab2a11fc6348fd737376c1a33e8e56 (patch)
tree215a7a3787d3b37f4920c71c3bb5fa4a30684bb4 /src/plugins/qmldesigner/components/timelineeditor
parent8114a588476445f5611e415b245be4c50b653e54 (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.cpp33
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;