diff options
author | Fawzi Mohamed <fawzi.mohamed@digia.com> | 2014-07-03 12:38:23 +0200 |
---|---|---|
committer | Fawzi Mohamed <fawzi.mohamed@digia.com> | 2014-07-04 14:06:22 +0200 |
commit | 9a6013744837ef5433398018739e96fe7b1a9cf0 (patch) | |
tree | fe208f20d92f14a5cf994259159d6e58ec5f5b46 | |
parent | ef54a29c7b47a73d74df27e0465892bf04935647 (diff) |
qmljs: add explicit typeName to exports
Change-Id: If777f312c6532db9a37214f173c10b5542c02e60
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
-rw-r--r-- | src/libs/qmljs/qmljsdocument.cpp | 6 | ||||
-rw-r--r-- | src/libs/qmljs/qmljsimportdependencies.cpp | 19 | ||||
-rw-r--r-- | src/libs/qmljs/qmljsimportdependencies.h | 9 |
3 files changed, 20 insertions, 14 deletions
diff --git a/src/libs/qmljs/qmljsdocument.cpp b/src/libs/qmljs/qmljsdocument.cpp index b81ce57b21..1e92b35e08 100644 --- a/src/libs/qmljs/qmljsdocument.cpp +++ b/src/libs/qmljs/qmljsdocument.cpp @@ -38,6 +38,7 @@ #include <QCryptographicHash> #include <QDir> +#include <QFileInfo> #include <algorithm> @@ -525,7 +526,7 @@ void Snapshot::insert(const Document::Ptr &document, bool allowInvalid) cImport.importId = document->importId(); cImport.language = document->language(); cImport.possibleExports << Export(ImportKey(ImportType::File, fileName), - QString(), true); + QString(), true, QFileInfo(fileName).baseName()); cImport.fingerprint = document->fingerprint(); _dependencies.addCoreImport(cImport); } @@ -606,8 +607,7 @@ void Snapshot::insertLibraryInfo(const QString &path, const LibraryInfo &info) } foreach (const QmlDirParser::Component &component, info.components()) { foreach (const Export &e, cImport.possibleExports) - // renaming of type name not really represented here... fix? - _dependencies.addExport(component.fileName, e.exportName, e.pathRequired); + _dependencies.addExport(component.fileName, e.exportName, e.pathRequired, e.typeName); } cImport.fingerprint = info.fingerprint(); _dependencies.addCoreImport(cImport); diff --git a/src/libs/qmljs/qmljsimportdependencies.cpp b/src/libs/qmljs/qmljsimportdependencies.cpp index e4fa8fba97..269b087c90 100644 --- a/src/libs/qmljs/qmljsimportdependencies.cpp +++ b/src/libs/qmljs/qmljsimportdependencies.cpp @@ -471,12 +471,14 @@ bool operator <(const ImportKey &i1, const ImportKey &i2) return i1.compare(i2) < 0; } +const QString Export::LibraryTypeName = QLatin1String("%Library%"); + Export::Export() : intrinsic(false) { } -Export::Export(ImportKey exportName, QString pathRequired, bool intrinsic) - : exportName(exportName), pathRequired(pathRequired), intrinsic(intrinsic) +Export::Export(ImportKey exportName, QString pathRequired, bool intrinsic, const QString &typeName) + : exportName(exportName), pathRequired(pathRequired), typeName(typeName), intrinsic(intrinsic) { } bool Export::visibleInVContext(const ViewerContext &vContext) const @@ -488,7 +490,8 @@ bool operator ==(const Export &i1, const Export &i2) { return i1.exportName == i2.exportName && i1.pathRequired == i2.pathRequired - && i1.intrinsic == i2.intrinsic; + && i1.intrinsic == i2.intrinsic + && i1.typeName == i2.typeName; } bool operator !=(const Export &i1, const Export &i2) @@ -770,32 +773,32 @@ void ImportDependencies::removeImportCacheEntry(const ImportKey &importKey, cons } void ImportDependencies::addExport(const QString &importId, const ImportKey &importKey, - const QString &requiredPath) + const QString &requiredPath, const QString &typeName) { if (!m_coreImports.contains(importId)) { CoreImport newImport(importId); newImport.language = Language::AnyLanguage; - newImport.possibleExports.append(Export(importKey, requiredPath, false)); + newImport.possibleExports.append(Export(importKey, requiredPath, false, typeName)); m_coreImports.insert(newImport.importId, newImport); m_importCache[importKey].append(importId); return; } CoreImport &importValue = m_coreImports[importId]; - importValue.possibleExports.append(Export(importKey, requiredPath, false)); + importValue.possibleExports.append(Export(importKey, requiredPath, false, typeName)); m_importCache[importKey].append(importId); qCDebug(importsLog) << "added export "<< importKey.toString() << " for id " <<importId << " (" << requiredPath << ")"; } void ImportDependencies::removeExport(const QString &importId, const ImportKey &importKey, - const QString &requiredPath) + const QString &requiredPath, const QString &typeName) { if (!m_coreImports.contains(importId)) { qCWarning(importsLog) << "non existing core import for removeExport(" << importId << ", " << importKey.toString() << ")"; } else { CoreImport &importValue = m_coreImports[importId]; - if (!importValue.possibleExports.removeOne(Export(importKey, requiredPath, false))) { + if (!importValue.possibleExports.removeOne(Export(importKey, requiredPath, false, typeName))) { qCWarning(importsLog) << "non existing export for removeExport(" << importId << ", " << importKey.toString() << ")"; } diff --git a/src/libs/qmljs/qmljsimportdependencies.h b/src/libs/qmljs/qmljsimportdependencies.h index 0ca0dbcf34..0d2978e21c 100644 --- a/src/libs/qmljs/qmljsimportdependencies.h +++ b/src/libs/qmljs/qmljsimportdependencies.h @@ -128,10 +128,13 @@ bool operator <(const ImportKey &i1, const ImportKey &i2); class QMLJS_EXPORT Export { public: + static const QString LibraryTypeName; Export(); - Export(ImportKey exportName, QString pathRequired, bool intrinsic = false); + Export(ImportKey exportName, QString pathRequired, bool intrinsic = false, + const QString &typeName = LibraryTypeName); ImportKey exportName; QString pathRequired; + QString typeName; bool intrinsic; bool visibleInVContext(const ViewerContext &vContext) const; }; @@ -205,9 +208,9 @@ public: void removeCoreImport(const QString &importId); void addExport(const QString &importId, const ImportKey &importKey, - const QString &requiredPath); + const QString &requiredPath, const QString &typeName = Export::LibraryTypeName); void removeExport(const QString &importId, const ImportKey &importKey, - const QString &requiredPath); + const QString &requiredPath, const QString &typeName = Export::LibraryTypeName); void iterateOnCoreImports(const ViewerContext &vContext, std::function<bool(const CoreImport &)> const &iterF) const; |