diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-02-28 10:18:05 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2014-02-28 15:32:52 +0100 |
commit | a6e78bdebcacbe823114ffa03999c5bf1c28242f (patch) | |
tree | f38722f883c28e92aca57fe8914d6eefb248c026 /src | |
parent | 0f76f56e9f4f11b118c10cfcad1f21bf2e80f759 (diff) |
store search paths in file context
This will be needed for loading extensions from JS files.
Change-Id: I1810a5d6afc0427904c2b7502ff4dc91e9507a48
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/corelib/language/filecontextbase.cpp | 1 | ||||
-rw-r--r-- | src/lib/corelib/language/filecontextbase.h | 14 | ||||
-rw-r--r-- | src/lib/corelib/language/itemreaderastvisitor.cpp | 1 | ||||
-rw-r--r-- | src/lib/corelib/language/resolvedfilecontext.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/tools/persistence.cpp | 2 |
5 files changed, 19 insertions, 1 deletions
diff --git a/src/lib/corelib/language/filecontextbase.cpp b/src/lib/corelib/language/filecontextbase.cpp index c6e77b1bc..52d16bd23 100644 --- a/src/lib/corelib/language/filecontextbase.cpp +++ b/src/lib/corelib/language/filecontextbase.cpp @@ -43,6 +43,7 @@ FileContextBase::FileContextBase(const FileContextBase &other) : m_filePath(other.m_filePath) , m_jsImports(other.m_jsImports) , m_jsExtensions(other.m_jsExtensions) + , m_searchPaths(other.m_searchPaths) { } diff --git a/src/lib/corelib/language/filecontextbase.h b/src/lib/corelib/language/filecontextbase.h index 3a465ffaa..d56692d8e 100644 --- a/src/lib/corelib/language/filecontextbase.h +++ b/src/lib/corelib/language/filecontextbase.h @@ -49,6 +49,9 @@ public: void setJsExtensions(const QStringList &extensions); QStringList jsExtensions() const; + void setSearchPaths(const QStringList &paths); + QStringList searchPaths() const; + QString dirPath() const; protected: @@ -58,6 +61,7 @@ protected: QString m_filePath; JsImports m_jsImports; QStringList m_jsExtensions; + QStringList m_searchPaths; }; inline void FileContextBase::setFilePath(const QString &filePath) @@ -90,6 +94,16 @@ inline QStringList FileContextBase::jsExtensions() const return m_jsExtensions; } +inline void FileContextBase::setSearchPaths(const QStringList &paths) +{ + m_searchPaths = paths; +} + +inline QStringList FileContextBase::searchPaths() const +{ + return m_searchPaths; +} + } // namespace Internal } // namespace qbs diff --git a/src/lib/corelib/language/itemreaderastvisitor.cpp b/src/lib/corelib/language/itemreaderastvisitor.cpp index dda6855e3..40ec5050c 100644 --- a/src/lib/corelib/language/itemreaderastvisitor.cpp +++ b/src/lib/corelib/language/itemreaderastvisitor.cpp @@ -68,6 +68,7 @@ bool ItemReaderASTVisitor::visit(AST::UiProgram *ast) m_sourceValue.clear(); m_file = FileContext::create(); m_file->m_filePath = m_filePath; + m_file->m_searchPaths = m_reader->searchPaths(); if (Q_UNLIKELY(!ast->members->member)) throw ErrorInfo(Tr::tr("No root item found in %1.").arg(m_filePath)); diff --git a/src/lib/corelib/language/resolvedfilecontext.cpp b/src/lib/corelib/language/resolvedfilecontext.cpp index bf36b4e79..50cf241ed 100644 --- a/src/lib/corelib/language/resolvedfilecontext.cpp +++ b/src/lib/corelib/language/resolvedfilecontext.cpp @@ -59,6 +59,7 @@ void ResolvedFileContext::load(PersistentPool &pool) { m_filePath = pool.idLoadString(); m_jsExtensions = pool.idLoadStringList(); + m_searchPaths = pool.idLoadStringList(); pool.stream() >> m_jsImports; } @@ -66,6 +67,7 @@ void ResolvedFileContext::store(PersistentPool &pool) const { pool.storeString(m_filePath); pool.storeStringList(m_jsExtensions); + pool.storeStringList(m_searchPaths); pool.stream() << m_jsImports; } diff --git a/src/lib/corelib/tools/persistence.cpp b/src/lib/corelib/tools/persistence.cpp index a01d35b46..bea21b4e9 100644 --- a/src/lib/corelib/tools/persistence.cpp +++ b/src/lib/corelib/tools/persistence.cpp @@ -40,7 +40,7 @@ namespace qbs { namespace Internal { -static const char QBS_PERSISTENCE_MAGIC[] = "QBSPERSISTENCE-65"; +static const char QBS_PERSISTENCE_MAGIC[] = "QBSPERSISTENCE-66"; PersistentPool::PersistentPool(const Logger &logger) : m_logger(logger) { |