forked from qt-creator/qt-creator
QmlDesigner: Expose CurveEditor in PropertyEditor
Change-Id: I3b9b74b206a5b4948d8353b7fbc2572429dcbed0 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -24,11 +24,13 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include "propertyeditorcontextobject.h"
|
||||
#include "timelineeditor/easingcurvedialog.h"
|
||||
|
||||
#include <abstractview.h>
|
||||
#include <nodemetainfo.h>
|
||||
#include <qmldesignerplugin.h>
|
||||
#include <qmlobjectnode.h>
|
||||
#include <qmlmodelnodeproxy.h>
|
||||
#include <rewritingexception.h>
|
||||
|
||||
#include <coreplugin/messagebox.h>
|
||||
@@ -39,6 +41,8 @@
|
||||
#include <QCursor>
|
||||
#include <QQmlContext>
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
|
||||
static uchar fromHex(const uchar c, const uchar c2)
|
||||
{
|
||||
uchar rv = 0;
|
||||
@@ -406,4 +410,38 @@ void PropertyEditorContextObject::restoreCursor()
|
||||
QApplication::restoreOverrideCursor();
|
||||
}
|
||||
|
||||
void EasingCurveEditor::registerDeclarativeType()
|
||||
{
|
||||
qmlRegisterType<EasingCurveEditor>("HelperWidgets", 2, 0, "EasingCurveEditor");
|
||||
}
|
||||
|
||||
void EasingCurveEditor::runDialog()
|
||||
{
|
||||
if (m_modelNode.isValid())
|
||||
EasingCurveDialog::runDialog({ m_modelNode }, Core::ICore::dialogParent());
|
||||
}
|
||||
|
||||
void EasingCurveEditor::setModelNodeBackend(const QVariant &modelNodeBackend)
|
||||
{
|
||||
if (!modelNodeBackend.isNull() && modelNodeBackend.isValid()) {
|
||||
m_modelNodeBackend = modelNodeBackend;
|
||||
|
||||
const auto modelNodeBackendObject = m_modelNodeBackend.value<QObject*>();
|
||||
|
||||
const auto backendObjectCasted =
|
||||
qobject_cast<const QmlDesigner::QmlModelNodeProxy *>(modelNodeBackendObject);
|
||||
|
||||
if (backendObjectCasted) {
|
||||
m_modelNode = backendObjectCasted->qmlObjectNode().modelNode();
|
||||
}
|
||||
|
||||
emit modelNodeBackendChanged();
|
||||
}
|
||||
}
|
||||
|
||||
QVariant EasingCurveEditor::modelNodeBackend() const
|
||||
{
|
||||
return m_modelNodeBackend;
|
||||
}
|
||||
|
||||
} //QmlDesigner
|
||||
|
@@ -26,6 +26,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <model.h>
|
||||
#include <modelnode.h>
|
||||
|
||||
#include <QObject>
|
||||
#include <QUrl>
|
||||
@@ -170,4 +171,30 @@ private:
|
||||
bool m_setHasActiveTimeline = false;
|
||||
};
|
||||
|
||||
class EasingCurveEditor : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(QVariant modelNodeBackendProperty READ modelNodeBackend WRITE setModelNodeBackend NOTIFY modelNodeBackendChanged)
|
||||
|
||||
public:
|
||||
EasingCurveEditor(QObject *parent = nullptr) : QObject(parent)
|
||||
{}
|
||||
|
||||
static void registerDeclarativeType();
|
||||
Q_INVOKABLE void runDialog();
|
||||
void setModelNodeBackend(const QVariant &modelNodeBackend);
|
||||
|
||||
signals:
|
||||
void modelNodeBackendChanged();
|
||||
|
||||
private:
|
||||
QVariant modelNodeBackend() const;
|
||||
|
||||
private:
|
||||
QVariant m_modelNodeBackend;
|
||||
QmlDesigner::ModelNode m_modelNode;
|
||||
};
|
||||
|
||||
|
||||
} //QmlDesigner {
|
||||
|
@@ -38,6 +38,7 @@
|
||||
#include "qmlanchorbindingproxy.h"
|
||||
#include "theme.h"
|
||||
#include "aligndistribute.h"
|
||||
#include "propertyeditorcontextobject.h"
|
||||
#include "tooltip.h"
|
||||
|
||||
namespace QmlDesigner {
|
||||
@@ -67,6 +68,7 @@ void Quick2PropertyEditorView::registerQmlTypes()
|
||||
AnnotationEditor::registerDeclarativeType();
|
||||
AlignDistribute::registerDeclarativeType();
|
||||
Tooltip::registerDeclarativeType();
|
||||
EasingCurveEditor::registerDeclarativeType();
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user