diff options
author | Kai Koehne <kai.koehne@nokia.com> | 2010-05-12 09:24:24 +0200 |
---|---|---|
committer | Kai Koehne <kai.koehne@nokia.com> | 2010-05-12 17:47:35 +0200 |
commit | 15f2c63459f38f841637e6fd104dfc63dae6d714 (patch) | |
tree | 547cb080717d8201ef4880c9bcc25fafffc3e8d7 /src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp | |
parent | 1b6e383420b89cc73a32800aae323a1df7538f1d (diff) |
QuickDesigner: Clean up ItemLibraryInfo class
Remove dependencies to QMetaInfo & unify method names.
Reviewed-by: Thomas Hartmann
Diffstat (limited to 'src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp')
-rw-r--r-- | src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp | 69 |
1 files changed, 32 insertions, 37 deletions
diff --git a/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp index 15f681ea74..3485e4f0ed 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp @@ -58,8 +58,7 @@ public: typedef QSharedPointer<ItemLibraryInfoPrivate> Pointer; typedef QSharedPointer<ItemLibraryInfoPrivate> WeakPointer; - QMultiHash<NodeMetaInfo, ItemLibraryEntry> itemLibraryInfoHash; - QHash<QString, ItemLibraryEntry> itemLibraryInfoHashAll; + QHash<QString, ItemLibraryEntry> nameToEntryHash; Pointer parentData; }; @@ -157,9 +156,11 @@ void ItemLibraryEntry::setName(const QString &name) m_data->name = name; } -void ItemLibraryEntry::setTypeName(const QString &typeName) +void ItemLibraryEntry::setType(const QString &typeName, int majorVersion, int minorVersion) { m_data->typeName = typeName; + m_data->majorVersion = majorVersion; + m_data->minorVersion = minorVersion; } void ItemLibraryEntry::setIcon(const QIcon &icon) @@ -167,16 +168,6 @@ void ItemLibraryEntry::setIcon(const QIcon &icon) m_data->icon = icon; } -void ItemLibraryEntry::setMajorVersion(int majorVersion) -{ - m_data->majorVersion = majorVersion; -} - -void ItemLibraryEntry::setMinorVersion(int minorVersion) -{ - m_data->minorVersion = minorVersion; -} - void ItemLibraryEntry::setQml(const QString &qml) { m_data->qml = qml; @@ -254,66 +245,70 @@ ItemLibraryInfo ItemLibraryInfo::createItemLibraryInfo(const ItemLibraryInfo &pa return info; } -QList<ItemLibraryEntry> ItemLibraryInfo::entriesForNodeMetaInfo(const NodeMetaInfo &nodeMetaInfo) const +QList<ItemLibraryEntry> ItemLibraryInfo::entriesForType(const QString &typeName, int majorVersion, int minorVersion) const { - QList<ItemLibraryEntry> itemLibraryItems; + QList<ItemLibraryEntry> entries; Internal::ItemLibraryInfoPrivate::WeakPointer pointer(m_data); while (pointer) { - itemLibraryItems += pointer->itemLibraryInfoHash.values(nodeMetaInfo); + foreach (const ItemLibraryEntry &entry, m_data->nameToEntryHash.values()) { + if (entry.typeName() == typeName + && entry.majorVersion() == majorVersion + && entry.minorVersion() == minorVersion) + entries += entry; + } + pointer = pointer->parentData; } - return itemLibraryItems; + + return entries; } ItemLibraryEntry ItemLibraryInfo::entry(const QString &name) const { Internal::ItemLibraryInfoPrivate::WeakPointer pointer(m_data); while (pointer) { - if (pointer->itemLibraryInfoHashAll.contains(name)) - return pointer->itemLibraryInfoHashAll.value(name); + if (pointer->nameToEntryHash.contains(name)) + return pointer->nameToEntryHash.value(name); pointer = pointer->parentData; } return ItemLibraryEntry(); } - QList<ItemLibraryEntry> ItemLibraryInfo::entries() const { QList<ItemLibraryEntry> list; Internal::ItemLibraryInfoPrivate::WeakPointer pointer(m_data); while (pointer) { - list += pointer->itemLibraryInfoHashAll.values(); + list += pointer->nameToEntryHash.values(); pointer = pointer->parentData; } return list; } -ItemLibraryEntry ItemLibraryInfo::addItemLibraryEntry(const NodeMetaInfo &nodeMetaInfo, - const QString &itemLibraryRepresentationName) +void ItemLibraryInfo::addEntry(const ItemLibraryEntry &entry) { - ItemLibraryEntry itemLibraryType; - itemLibraryType.setName(itemLibraryRepresentationName); - itemLibraryType.setTypeName(nodeMetaInfo.typeName()); - itemLibraryType.setMajorVersion(nodeMetaInfo.majorVersion()); - itemLibraryType.setMinorVersion(nodeMetaInfo.minorVersion()); - m_data->itemLibraryInfoHash.insert(nodeMetaInfo, itemLibraryType); - m_data->itemLibraryInfoHashAll.insert(itemLibraryRepresentationName, itemLibraryType); - return itemLibraryType; + if (m_data->nameToEntryHash.contains(entry.name())) + throw InvalidMetaInfoException(__LINE__, __FUNCTION__, __FILE__); + m_data->nameToEntryHash.insert(entry.name(), entry); } -void ItemLibraryInfo::remove(const NodeMetaInfo &info) +bool ItemLibraryInfo::removeEntry(const QString &name) { - m_data->itemLibraryInfoHash.remove(info); - m_data->itemLibraryInfoHashAll.remove(info.typeName()); + Internal::ItemLibraryInfoPrivate::WeakPointer pointer(m_data); + while (pointer) { + if (pointer->nameToEntryHash.remove(name)) + return true; + pointer = pointer->parentData; + } + return false; } -void ItemLibraryInfo::clear() +void ItemLibraryInfo::clearEntries() { - m_data->itemLibraryInfoHash.clear(); - m_data->itemLibraryInfoHashAll.clear(); + m_data->nameToEntryHash.clear(); } } // namespace QmlDesigner |