diff options
Diffstat (limited to 'src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp')
-rw-r--r-- | src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp index afd2aaa9a5..e6a61800e6 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp @@ -25,6 +25,7 @@ #include "nodemetainfo.h" #include "model.h" +#include "model/model_p.h" #include "metainfo.h" #include <enumeration.h> @@ -620,8 +621,6 @@ public: QSet<QByteArray> &prototypeCachePositives(); QSet<QByteArray> &prototypeCacheNegatives(); - static void clearCache(); - private: NodeMetaInfoPrivate(Model *model, TypeName type, int maj = -1, int min = -1); @@ -657,13 +656,10 @@ private: const Document *document() const; QPointer<Model> m_model; - static QHash<TypeName, Pointer> m_nodeMetaInfoCache; const ObjectValue *m_objectValue = nullptr; bool m_propertiesSetup = false; }; -QHash<TypeName, NodeMetaInfoPrivate::Pointer> NodeMetaInfoPrivate::m_nodeMetaInfoCache; - bool NodeMetaInfoPrivate::isFileComponent() const { return m_isFileComponent; @@ -705,11 +701,6 @@ QSet<QByteArray> &NodeMetaInfoPrivate::prototypeCacheNegatives() return m_prototypeCacheNegatives; } -void NodeMetaInfoPrivate::clearCache() -{ - m_nodeMetaInfoCache.clear(); -} - PropertyName NodeMetaInfoPrivate::defaultPropertyName() const { if (!m_defaultPropertyName.isEmpty()) @@ -724,17 +715,12 @@ static inline TypeName stringIdentifier( const TypeName &type, int maj, int min) NodeMetaInfoPrivate::Pointer NodeMetaInfoPrivate::create(Model *model, const TypeName &type, int major, int minor) { - if (m_nodeMetaInfoCache.contains(stringIdentifier(type, major, minor))) { - const Pointer &info = m_nodeMetaInfoCache.value(stringIdentifier(type, major, minor)); - if (info->model() == model) - return info; - else - m_nodeMetaInfoCache.clear(); - } + if (model->d->m_nodeMetaInfoCache.contains(stringIdentifier(type, major, minor))) + return model->d->m_nodeMetaInfoCache.value(stringIdentifier(type, major, minor)); Pointer newData(new NodeMetaInfoPrivate(model, type, major, minor)); if (newData->isValid()) - m_nodeMetaInfoCache.insert(stringIdentifier(type, major, minor), newData); + model->d->m_nodeMetaInfoCache.insert(stringIdentifier(type, major, minor), newData); return newData; } @@ -1671,11 +1657,6 @@ bool NodeMetaInfo::isQmlItem() const || isSubclassOf("QtQml.QtObject"); } -void NodeMetaInfo::clearCache() -{ - Internal::NodeMetaInfoPrivate::clearCache(); -} - bool NodeMetaInfo::isLayoutable() const { if (isSubclassOf("<cpp>.QDeclarativeBasePositioner")) |