aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.h')
-rw-r--r--src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.h b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.h
new file mode 100644
index 0000000000..faa383c621
--- /dev/null
+++ b/src/plugins/qmldesigner/components/transitioneditor/transitioneditorview.h
@@ -0,0 +1,97 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+****************************************************************************/
+
+#pragma once
+
+#include "animationcurvedialog.h"
+#include "animationcurveeditormodel.h"
+#include "treeitem.h"
+
+#include <abstractview.h>
+
+#include <QPointer>
+
+namespace QmlDesigner {
+
+class TransitionEditorWidget;
+
+class TransitionEditorView : public AbstractView
+{
+ Q_OBJECT
+
+public:
+ explicit TransitionEditorView(QObject *parent = nullptr);
+ ~TransitionEditorView() override;
+ //Abstract View
+ WidgetInfo widgetInfo() override;
+ void modelAttached(Model *model) override;
+ void modelAboutToBeDetached(Model *model) override;
+ void nodeCreated(const ModelNode &createdNode) override;
+ void nodeAboutToBeRemoved(const ModelNode &removedNode) override;
+ void nodeRemoved(const ModelNode &removedNode,
+ const NodeAbstractProperty &parentProperty,
+ PropertyChangeFlags propertyChange) override;
+ void nodeReparented(const ModelNode &node,
+ const NodeAbstractProperty &newPropertyParent,
+ const NodeAbstractProperty &oldPropertyParent,
+ PropertyChangeFlags propertyChange) override;
+ void instancePropertyChanged(const QList<QPair<ModelNode, PropertyName>> &propertyList) override;
+ void variantPropertiesChanged(const QList<VariantProperty> &propertyList,
+ PropertyChangeFlags propertyChange) override;
+ void bindingPropertiesChanged(const QList<BindingProperty> &propertyList,
+ PropertyChangeFlags propertyChange) override;
+ void selectedNodesChanged(const QList<ModelNode> &selectedNodeList,
+ const QList<ModelNode> &lastSelectedNodeList) override;
+
+ void propertiesAboutToBeRemoved(const QList<AbstractProperty> &propertyList) override;
+ void propertiesRemoved(const QList<AbstractProperty> &propertyList) override;
+
+ bool hasWidget() const override;
+
+ void nodeIdChanged(const ModelNode &node, const QString &, const QString &) override;
+
+ void currentStateChanged(const ModelNode &node) override;
+
+ TransitionEditorWidget *widget() const;
+
+ void insertKeyframe(const ModelNode &target, const PropertyName &propertyName);
+
+ void registerActions();
+
+ ModelNode addNewTransition();
+
+ void openSettingsDialog();
+
+ const QList<ModelNode> allTransitions() const;
+
+ void asyncUpdate(const ModelNode &transition);
+
+private:
+ TransitionEditorWidget *createWidget();
+
+ TransitionEditorWidget *m_transitionEditorWidget = nullptr;
+};
+
+} // namespace QmlDesigner