aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp
diff options
context:
space:
mode:
authorKai Koehne <kai.koehne@nokia.com>2010-05-12 09:24:24 +0200
committerKai Koehne <kai.koehne@nokia.com>2010-05-12 17:47:35 +0200
commit15f2c63459f38f841637e6fd104dfc63dae6d714 (patch)
tree547cb080717d8201ef4880c9bcc25fafffc3e8d7 /src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp
parent1b6e383420b89cc73a32800aae323a1df7538f1d (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.cpp69
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