forked from qt-creator/qt-creator
QmlDesigner: Make pimpl pointer private
For some weird reason the d pointer of the model has been public. This is against all rules and therefore it is now private. To avoid adding too many friends I added a protected getter to AbstractProperty. Change-Id: I3ee77475a85063574d0b0c7c3d43d28deaa7eae6 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -44,6 +44,7 @@ class CollapseButton;
|
|||||||
class PropertyEditorWidget;
|
class PropertyEditorWidget;
|
||||||
class PropertyEditorView;
|
class PropertyEditorView;
|
||||||
class PropertyEditorQmlBackend;
|
class PropertyEditorQmlBackend;
|
||||||
|
class ModelNode;
|
||||||
|
|
||||||
class PropertyEditorView: public AbstractView
|
class PropertyEditorView: public AbstractView
|
||||||
{
|
{
|
||||||
@@ -66,8 +67,6 @@ public:
|
|||||||
|
|
||||||
void modelAboutToBeDetached(Model *model) override;
|
void modelAboutToBeDetached(Model *model) override;
|
||||||
|
|
||||||
ModelState modelState() const;
|
|
||||||
|
|
||||||
void variantPropertiesChanged(const QList<VariantProperty>& propertyList, PropertyChangeFlags propertyChange) override;
|
void variantPropertiesChanged(const QList<VariantProperty>& propertyList, PropertyChangeFlags propertyChange) override;
|
||||||
void bindingPropertiesChanged(const QList<BindingProperty>& propertyList, PropertyChangeFlags propertyChange) override;
|
void bindingPropertiesChanged(const QList<BindingProperty>& propertyList, PropertyChangeFlags propertyChange) override;
|
||||||
|
|
||||||
|
@@ -35,8 +35,6 @@ QT_END_NAMESPACE
|
|||||||
|
|
||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
|
|
||||||
class Model;
|
|
||||||
class ModelState;
|
|
||||||
class StatesEditorModel;
|
class StatesEditorModel;
|
||||||
class StatesEditorView;
|
class StatesEditorView;
|
||||||
class NodeInstanceView;
|
class NodeInstanceView;
|
||||||
|
@@ -108,6 +108,7 @@ protected:
|
|||||||
AbstractProperty(const PropertyName &propertyName, const Internal::InternalNodePointer &internalNode, Model* model, AbstractView *view);
|
AbstractProperty(const PropertyName &propertyName, const Internal::InternalNodePointer &internalNode, Model* model, AbstractView *view);
|
||||||
AbstractProperty(const Internal::InternalPropertyPointer &property, Model* model, AbstractView *view);
|
AbstractProperty(const Internal::InternalPropertyPointer &property, Model* model, AbstractView *view);
|
||||||
Internal::InternalNodePointer internalNode() const;
|
Internal::InternalNodePointer internalNode() const;
|
||||||
|
Internal::ModelPrivate *privateModel() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PropertyName m_propertyName;
|
PropertyName m_propertyName;
|
||||||
|
@@ -40,7 +40,10 @@ QT_END_NAMESPACE
|
|||||||
|
|
||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
|
|
||||||
namespace Internal { class ModelPrivate; }
|
namespace Internal {
|
||||||
|
class ModelPrivate;
|
||||||
|
class WriteLocker;
|
||||||
|
} //Internal
|
||||||
|
|
||||||
class AnchorLine;
|
class AnchorLine;
|
||||||
class ModelNode;
|
class ModelNode;
|
||||||
@@ -61,12 +64,10 @@ typedef QList<QPair<PropertyName, QVariant> > PropertyListType;
|
|||||||
class QMLDESIGNERCORE_EXPORT Model : public QObject
|
class QMLDESIGNERCORE_EXPORT Model : public QObject
|
||||||
{
|
{
|
||||||
friend class QmlDesigner::ModelNode;
|
friend class QmlDesigner::ModelNode;
|
||||||
friend class QmlDesigner::NodeState;
|
|
||||||
friend class QmlDesigner::ModelState;
|
|
||||||
friend class QmlDesigner::NodeAnchors;
|
|
||||||
friend class QmlDesigner::AbstractProperty;
|
friend class QmlDesigner::AbstractProperty;
|
||||||
friend class QmlDesigner::AbstractView;
|
friend class QmlDesigner::AbstractView;
|
||||||
friend class Internal::ModelPrivate;
|
friend class Internal::ModelPrivate;
|
||||||
|
friend class Internal::WriteLocker;
|
||||||
|
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
@@ -116,7 +117,7 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
Model();
|
Model();
|
||||||
|
|
||||||
public:
|
private:
|
||||||
Internal::ModelPrivate *d;
|
Internal::ModelPrivate *d;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -106,6 +106,11 @@ Internal::InternalNodePointer AbstractProperty::internalNode() const
|
|||||||
return m_internalNode;
|
return m_internalNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Internal::ModelPrivate *AbstractProperty::privateModel() const
|
||||||
|
{
|
||||||
|
return m_model ? m_model->d : nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
Model *AbstractProperty::model() const
|
Model *AbstractProperty::model() const
|
||||||
{
|
{
|
||||||
return m_model.data();
|
return m_model.data();
|
||||||
|
@@ -84,9 +84,9 @@ void BindingProperty::setExpression(const QString &expression)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isBindingProperty())
|
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isBindingProperty())
|
||||||
model()->d->removeProperty(internalNode()->property(name()));
|
privateModel()->removeProperty(internalNode()->property(name()));
|
||||||
|
|
||||||
model()->d->setBindingProperty(internalNode(), name(), expression);
|
privateModel()->setBindingProperty(internalNode(), name(), expression);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString BindingProperty::expression() const
|
QString BindingProperty::expression() const
|
||||||
@@ -239,9 +239,9 @@ void BindingProperty::setDynamicTypeNameAndExpression(const TypeName &typeName,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isBindingProperty())
|
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isBindingProperty())
|
||||||
model()->d->removeProperty(internalNode()->property(name()));
|
privateModel()->removeProperty(internalNode()->property(name()));
|
||||||
|
|
||||||
model()->d->setDynamicBindingProperty(internalNode(), name(), typeName, expression);
|
privateModel()->setDynamicBindingProperty(internalNode(), name(), typeName, expression);
|
||||||
}
|
}
|
||||||
|
|
||||||
QDebug operator<<(QDebug debug, const BindingProperty &property)
|
QDebug operator<<(QDebug debug, const BindingProperty &property)
|
||||||
|
@@ -40,8 +40,6 @@
|
|||||||
|
|
||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
|
|
||||||
class Model;
|
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
class InternalProperty;
|
class InternalProperty;
|
||||||
|
@@ -86,18 +86,18 @@ void NodeAbstractProperty::reparentHere(const ModelNode &modelNode, bool isNode
|
|||||||
throw InvalidReparentingException(__LINE__, __FUNCTION__, __FILE__);
|
throw InvalidReparentingException(__LINE__, __FUNCTION__, __FILE__);
|
||||||
|
|
||||||
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isNodeAbstractProperty())
|
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isNodeAbstractProperty())
|
||||||
model()->d->removeProperty(internalNode()->property(name()));
|
privateModel()->removeProperty(internalNode()->property(name()));
|
||||||
|
|
||||||
if (modelNode.hasParentProperty()) {
|
if (modelNode.hasParentProperty()) {
|
||||||
Internal::InternalNodeAbstractProperty::Pointer oldParentProperty = modelNode.internalNode()->parentProperty();
|
Internal::InternalNodeAbstractProperty::Pointer oldParentProperty = modelNode.internalNode()->parentProperty();
|
||||||
|
|
||||||
model()->d->reparentNode(internalNode(), name(), modelNode.internalNode(), isNodeList, dynamicTypeName);
|
privateModel()->reparentNode(internalNode(), name(), modelNode.internalNode(), isNodeList, dynamicTypeName);
|
||||||
|
|
||||||
Q_ASSERT(!oldParentProperty.isNull());
|
Q_ASSERT(!oldParentProperty.isNull());
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
model()->d->reparentNode(internalNode(), name(), modelNode.internalNode(), isNodeList, dynamicTypeName);
|
privateModel()->reparentNode(internalNode(), name(), modelNode.internalNode(), isNodeList, dynamicTypeName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -99,7 +99,7 @@ void NodeListProperty::slide(int from, int to) const
|
|||||||
if (to > count() - 1)
|
if (to > count() - 1)
|
||||||
throw InvalidPropertyException(__LINE__, __FUNCTION__, __FILE__, "<invalid node list sliding>");
|
throw InvalidPropertyException(__LINE__, __FUNCTION__, __FILE__, "<invalid node list sliding>");
|
||||||
|
|
||||||
model()->d->changeNodeOrder(internalNode(), name(), from, to);
|
privateModel()->changeNodeOrder(internalNode(), name(), from, to);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NodeListProperty::reparentHere(const ModelNode &modelNode)
|
void NodeListProperty::reparentHere(const ModelNode &modelNode)
|
||||||
|
@@ -59,9 +59,9 @@ void NodeProperty::setModelNode(const ModelNode &modelNode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isNodeProperty())
|
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isNodeProperty())
|
||||||
model()->d->removeProperty(internalNode()->property(name()));
|
privateModel()->removeProperty(internalNode()->property(name()));
|
||||||
|
|
||||||
model()->d->reparentNode(internalNode(), name(), modelNode.internalNode(), false); //### we have to add a flag that this is not a list
|
privateModel()->reparentNode(internalNode(), name(), modelNode.internalNode(), false); //### we have to add a flag that this is not a list
|
||||||
}
|
}
|
||||||
|
|
||||||
ModelNode NodeProperty::modelNode() const
|
ModelNode NodeProperty::modelNode() const
|
||||||
|
@@ -71,9 +71,9 @@ void SignalHandlerProperty::setSource(const QString &source)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isSignalHandlerProperty())
|
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isSignalHandlerProperty())
|
||||||
model()->d->removeProperty(internalNode()->property(name()));
|
privateModel()->removeProperty(internalNode()->property(name()));
|
||||||
|
|
||||||
model()->d->setSignalHandlerProperty(internalNode(), name(), source);
|
privateModel()->setSignalHandlerProperty(internalNode(), name(), source);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString SignalHandlerProperty::source() const
|
QString SignalHandlerProperty::source() const
|
||||||
|
@@ -71,9 +71,9 @@ void VariantProperty::setValue(const QVariant &value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isVariantProperty())
|
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isVariantProperty())
|
||||||
model()->d->removeProperty(internalNode()->property(name()));
|
privateModel()->removeProperty(internalNode()->property(name()));
|
||||||
|
|
||||||
model()->d->setVariantProperty(internalNode(), name(), value);
|
privateModel()->setVariantProperty(internalNode(), name(), value);
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant VariantProperty::value() const
|
QVariant VariantProperty::value() const
|
||||||
@@ -120,9 +120,9 @@ void VariantProperty::setDynamicTypeNameAndValue(const TypeName &type, const QVa
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isVariantProperty())
|
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isVariantProperty())
|
||||||
model()->d->removeProperty(internalNode()->property(name()));
|
privateModel()->removeProperty(internalNode()->property(name()));
|
||||||
|
|
||||||
model()->d->setDynamicVariantProperty(internalNode(), name(), type, value);
|
privateModel()->setDynamicVariantProperty(internalNode(), name(), type, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VariantProperty::setDynamicTypeNameAndEnumeration(const TypeName &type, const EnumerationName &enumerationName)
|
void VariantProperty::setDynamicTypeNameAndEnumeration(const TypeName &type, const EnumerationName &enumerationName)
|
||||||
|
Reference in New Issue
Block a user