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 PropertyEditorView;
|
||||
class PropertyEditorQmlBackend;
|
||||
class ModelNode;
|
||||
|
||||
class PropertyEditorView: public AbstractView
|
||||
{
|
||||
@@ -66,8 +67,6 @@ public:
|
||||
|
||||
void modelAboutToBeDetached(Model *model) override;
|
||||
|
||||
ModelState modelState() const;
|
||||
|
||||
void variantPropertiesChanged(const QList<VariantProperty>& propertyList, PropertyChangeFlags propertyChange) override;
|
||||
void bindingPropertiesChanged(const QList<BindingProperty>& propertyList, PropertyChangeFlags propertyChange) override;
|
||||
|
||||
|
@@ -35,8 +35,6 @@ QT_END_NAMESPACE
|
||||
|
||||
namespace QmlDesigner {
|
||||
|
||||
class Model;
|
||||
class ModelState;
|
||||
class StatesEditorModel;
|
||||
class StatesEditorView;
|
||||
class NodeInstanceView;
|
||||
|
@@ -108,6 +108,7 @@ protected:
|
||||
AbstractProperty(const PropertyName &propertyName, const Internal::InternalNodePointer &internalNode, Model* model, AbstractView *view);
|
||||
AbstractProperty(const Internal::InternalPropertyPointer &property, Model* model, AbstractView *view);
|
||||
Internal::InternalNodePointer internalNode() const;
|
||||
Internal::ModelPrivate *privateModel() const;
|
||||
|
||||
private:
|
||||
PropertyName m_propertyName;
|
||||
|
@@ -40,7 +40,10 @@ QT_END_NAMESPACE
|
||||
|
||||
namespace QmlDesigner {
|
||||
|
||||
namespace Internal { class ModelPrivate; }
|
||||
namespace Internal {
|
||||
class ModelPrivate;
|
||||
class WriteLocker;
|
||||
} //Internal
|
||||
|
||||
class AnchorLine;
|
||||
class ModelNode;
|
||||
@@ -61,12 +64,10 @@ typedef QList<QPair<PropertyName, QVariant> > PropertyListType;
|
||||
class QMLDESIGNERCORE_EXPORT Model : public QObject
|
||||
{
|
||||
friend class QmlDesigner::ModelNode;
|
||||
friend class QmlDesigner::NodeState;
|
||||
friend class QmlDesigner::ModelState;
|
||||
friend class QmlDesigner::NodeAnchors;
|
||||
friend class QmlDesigner::AbstractProperty;
|
||||
friend class QmlDesigner::AbstractView;
|
||||
friend class Internal::ModelPrivate;
|
||||
friend class Internal::WriteLocker;
|
||||
|
||||
Q_OBJECT
|
||||
|
||||
@@ -116,7 +117,7 @@ public:
|
||||
protected:
|
||||
Model();
|
||||
|
||||
public:
|
||||
private:
|
||||
Internal::ModelPrivate *d;
|
||||
};
|
||||
|
||||
|
@@ -106,6 +106,11 @@ Internal::InternalNodePointer AbstractProperty::internalNode() const
|
||||
return m_internalNode;
|
||||
}
|
||||
|
||||
Internal::ModelPrivate *AbstractProperty::privateModel() const
|
||||
{
|
||||
return m_model ? m_model->d : nullptr;
|
||||
}
|
||||
|
||||
Model *AbstractProperty::model() const
|
||||
{
|
||||
return m_model.data();
|
||||
|
@@ -84,9 +84,9 @@ void BindingProperty::setExpression(const QString &expression)
|
||||
}
|
||||
|
||||
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
|
||||
@@ -239,9 +239,9 @@ void BindingProperty::setDynamicTypeNameAndExpression(const TypeName &typeName,
|
||||
}
|
||||
|
||||
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)
|
||||
|
@@ -40,8 +40,6 @@
|
||||
|
||||
namespace QmlDesigner {
|
||||
|
||||
class Model;
|
||||
|
||||
namespace Internal {
|
||||
|
||||
class InternalProperty;
|
||||
|
@@ -86,18 +86,18 @@ void NodeAbstractProperty::reparentHere(const ModelNode &modelNode, bool isNode
|
||||
throw InvalidReparentingException(__LINE__, __FUNCTION__, __FILE__);
|
||||
|
||||
if (internalNode()->hasProperty(name()) && !internalNode()->property(name())->isNodeAbstractProperty())
|
||||
model()->d->removeProperty(internalNode()->property(name()));
|
||||
privateModel()->removeProperty(internalNode()->property(name()));
|
||||
|
||||
if (modelNode.hasParentProperty()) {
|
||||
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());
|
||||
|
||||
|
||||
} 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)
|
||||
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)
|
||||
|
@@ -59,9 +59,9 @@ void NodeProperty::setModelNode(const ModelNode &modelNode)
|
||||
}
|
||||
|
||||
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
|
||||
|
@@ -71,9 +71,9 @@ void SignalHandlerProperty::setSource(const QString &source)
|
||||
}
|
||||
|
||||
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
|
||||
|
@@ -71,9 +71,9 @@ void VariantProperty::setValue(const QVariant &value)
|
||||
}
|
||||
|
||||
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
|
||||
@@ -120,9 +120,9 @@ void VariantProperty::setDynamicTypeNameAndValue(const TypeName &type, const QVa
|
||||
}
|
||||
|
||||
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)
|
||||
|
Reference in New Issue
Block a user