Compare commits
No commits in common. "e63fae92c8fbdb67e441abbb22d6fd47aecfb130" and "fda709c0e233a3c349ec4f221cbcaf4d5c6c7a51" have entirely different histories.
e63fae92c8
...
fda709c0e2
|
|
@ -1,71 +0,0 @@
|
||||||
#include "PropertyTypeCustomization_PointF.h"
|
|
||||||
#include "QQuickDetailsViewLayoutBuilder.h"
|
|
||||||
#include "QQuickDetailsViewMananger.h"
|
|
||||||
#include "QPropertyHandle.h"
|
|
||||||
#include <QPointF>
|
|
||||||
#include <QQmlEngine>
|
|
||||||
#include <QQmlContext>
|
|
||||||
|
|
||||||
void PropertyTypeCustomization_PointF::customizeHeaderRow(QPropertyHandle* inPropertyHandle, QQuickDetailsViewRowBuilder* inBuilder)
|
|
||||||
{
|
|
||||||
auto slotPair = inBuilder->makeNameValueSlot();
|
|
||||||
|
|
||||||
QQuickItem* nameEditor = inPropertyHandle->setupNameEditor(slotPair.first);
|
|
||||||
|
|
||||||
QQuickItem* valueLabel = inBuilder->setupItem(slotPair.second, R"(
|
|
||||||
import QtQuick;
|
|
||||||
import QtQuick.Controls;
|
|
||||||
import ColorPalette;
|
|
||||||
Item{
|
|
||||||
property string pointText
|
|
||||||
implicitHeight: 25
|
|
||||||
width: parent.width
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
Text {
|
|
||||||
anchors.fill: parent
|
|
||||||
verticalAlignment: Text.AlignVCenter
|
|
||||||
text: pointText
|
|
||||||
color: ColorPalette.theme.textPrimary
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)");
|
|
||||||
|
|
||||||
auto updateLabel = [valueLabel](const QVariant& var) {
|
|
||||||
QPointF pt = var.value<QPointF>();
|
|
||||||
valueLabel->setProperty("pointText", QString(" (%1, %2)").arg(pt.x(), 0, 'f', 3).arg(pt.y(), 0, 'f', 3));
|
|
||||||
};
|
|
||||||
updateLabel(inPropertyHandle->getVar());
|
|
||||||
|
|
||||||
QObject::connect(inPropertyHandle, &QPropertyHandle::asVarChanged, valueLabel, updateLabel);
|
|
||||||
|
|
||||||
QQmlEngine* engine = qmlEngine(inBuilder->rootItem());
|
|
||||||
QQmlContext* context = qmlContext(inBuilder->rootItem());
|
|
||||||
context->parentContext()->setContextProperty("heightProxy", valueLabel);
|
|
||||||
}
|
|
||||||
|
|
||||||
void PropertyTypeCustomization_PointF::customizeChildren(QPropertyHandle* inPropertyHandle, QQuickDetailsViewLayoutBuilder* inBuilder)
|
|
||||||
{
|
|
||||||
auto makeChild = [&](const QString& name, std::function<QVariant(const QPointF&)> getter) {
|
|
||||||
inBuilder->addProperty(
|
|
||||||
inPropertyHandle->findOrCreateChild(
|
|
||||||
QMetaType::fromType<double>(),
|
|
||||||
name,
|
|
||||||
[inPropertyHandle, getter]() -> QVariant {
|
|
||||||
return getter(inPropertyHandle->getVar().value<QPointF>());
|
|
||||||
},
|
|
||||||
[inPropertyHandle, name](const QVariant& var) {
|
|
||||||
QPointF pt = inPropertyHandle->getVar().value<QPointF>();
|
|
||||||
if (name == "x")
|
|
||||||
pt.setX(var.toDouble());
|
|
||||||
else
|
|
||||||
pt.setY(var.toDouble());
|
|
||||||
inPropertyHandle->setVar(pt);
|
|
||||||
}
|
|
||||||
),
|
|
||||||
name
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
makeChild("x", [](const QPointF& pt) { return pt.x(); });
|
|
||||||
makeChild("y", [](const QPointF& pt) { return pt.y(); });
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
#ifndef PropertyTypeCustomization_PointF_h__
|
|
||||||
#define PropertyTypeCustomization_PointF_h__
|
|
||||||
|
|
||||||
#include "IPropertyTypeCustomization.h"
|
|
||||||
|
|
||||||
class PropertyTypeCustomization_PointF : public IPropertyTypeCustomization {
|
|
||||||
protected:
|
|
||||||
virtual void customizeHeaderRow(QPropertyHandle* inPropertyHandle, QQuickDetailsViewRowBuilder* inBuilder) override;
|
|
||||||
virtual void customizeChildren(QPropertyHandle* inPropertyHandle, QQuickDetailsViewLayoutBuilder* inBuilder) override;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // PropertyTypeCustomization_PointF_h__
|
|
||||||
|
|
@ -8,11 +8,9 @@
|
||||||
#include "Customization/PropertyTypeCustomization_ObjectDefault.h"
|
#include "Customization/PropertyTypeCustomization_ObjectDefault.h"
|
||||||
#include "Customization/PropertyTypeCustomization_Matrix4x4.h"
|
#include "Customization/PropertyTypeCustomization_Matrix4x4.h"
|
||||||
#include "Customization/PropertyTypeCustomization_Font.h"
|
#include "Customization/PropertyTypeCustomization_Font.h"
|
||||||
#include "Customization/PropertyTypeCustomization_PointF.h"
|
|
||||||
#include <QtQuickControls2/QQuickStyle>
|
#include <QtQuickControls2/QQuickStyle>
|
||||||
#include <QMatrix4x4>
|
#include <QMatrix4x4>
|
||||||
#include <QFont>
|
#include <QFont>
|
||||||
#include <QPointF>
|
|
||||||
|
|
||||||
QQuickDetailsViewManager* QQuickDetailsViewManager::Get()
|
QQuickDetailsViewManager* QQuickDetailsViewManager::Get()
|
||||||
{
|
{
|
||||||
|
|
@ -146,9 +144,5 @@ QQuickDetailsViewManager::QQuickDetailsViewManager()
|
||||||
mMetaTypeCustomizationMap.insert(QMetaType::fromType<QFont>(), []() {
|
mMetaTypeCustomizationMap.insert(QMetaType::fromType<QFont>(), []() {
|
||||||
return QSharedPointer<PropertyTypeCustomization_Font>::create();
|
return QSharedPointer<PropertyTypeCustomization_Font>::create();
|
||||||
});
|
});
|
||||||
|
|
||||||
mMetaTypeCustomizationMap.insert(QMetaType::fromType<QPointF>(), []() {
|
|
||||||
return QSharedPointer<PropertyTypeCustomization_PointF>::create();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue