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 "propertyeditorcontextobject.h"
|
||||||
|
#include "timelineeditor/easingcurvedialog.h"
|
||||||
|
|
||||||
#include <abstractview.h>
|
#include <abstractview.h>
|
||||||
#include <nodemetainfo.h>
|
#include <nodemetainfo.h>
|
||||||
#include <qmldesignerplugin.h>
|
#include <qmldesignerplugin.h>
|
||||||
#include <qmlobjectnode.h>
|
#include <qmlobjectnode.h>
|
||||||
|
#include <qmlmodelnodeproxy.h>
|
||||||
#include <rewritingexception.h>
|
#include <rewritingexception.h>
|
||||||
|
|
||||||
#include <coreplugin/messagebox.h>
|
#include <coreplugin/messagebox.h>
|
||||||
@@ -39,6 +41,8 @@
|
|||||||
#include <QCursor>
|
#include <QCursor>
|
||||||
#include <QQmlContext>
|
#include <QQmlContext>
|
||||||
|
|
||||||
|
#include <coreplugin/icore.h>
|
||||||
|
|
||||||
static uchar fromHex(const uchar c, const uchar c2)
|
static uchar fromHex(const uchar c, const uchar c2)
|
||||||
{
|
{
|
||||||
uchar rv = 0;
|
uchar rv = 0;
|
||||||
@@ -406,4 +410,38 @@ void PropertyEditorContextObject::restoreCursor()
|
|||||||
QApplication::restoreOverrideCursor();
|
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
|
} //QmlDesigner
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <model.h>
|
#include <model.h>
|
||||||
|
#include <modelnode.h>
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
@@ -170,4 +171,30 @@ private:
|
|||||||
bool m_setHasActiveTimeline = false;
|
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 {
|
} //QmlDesigner {
|
||||||
|
@@ -38,6 +38,7 @@
|
|||||||
#include "qmlanchorbindingproxy.h"
|
#include "qmlanchorbindingproxy.h"
|
||||||
#include "theme.h"
|
#include "theme.h"
|
||||||
#include "aligndistribute.h"
|
#include "aligndistribute.h"
|
||||||
|
#include "propertyeditorcontextobject.h"
|
||||||
#include "tooltip.h"
|
#include "tooltip.h"
|
||||||
|
|
||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
@@ -67,6 +68,7 @@ void Quick2PropertyEditorView::registerQmlTypes()
|
|||||||
AnnotationEditor::registerDeclarativeType();
|
AnnotationEditor::registerDeclarativeType();
|
||||||
AlignDistribute::registerDeclarativeType();
|
AlignDistribute::registerDeclarativeType();
|
||||||
Tooltip::registerDeclarativeType();
|
Tooltip::registerDeclarativeType();
|
||||||
|
EasingCurveEditor::registerDeclarativeType();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user