forked from qt-creator/qt-creator
qmljs: new import/dep tracking
Change-Id: I9f4de2a06aad3afb80372a4b80e56db658683575 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
@@ -1121,6 +1121,34 @@ LibraryInfo ModelManager::builtins(const Document::Ptr &doc) const
|
||||
return _validSnapshot.libraryInfo(info.qtImportsPath);
|
||||
}
|
||||
|
||||
ViewerContext ModelManager::completeVContext(const ViewerContext &vCtx,
|
||||
const Document::Ptr &doc) const
|
||||
{
|
||||
Q_UNUSED(doc);
|
||||
ViewerContext res = vCtx;
|
||||
switch (res.flags) {
|
||||
case ViewerContext::Complete:
|
||||
break;
|
||||
case ViewerContext::AddQtPath:
|
||||
case ViewerContext::AddAllPaths:
|
||||
res.paths << importPaths();
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
ViewerContext ModelManager::defaultVContext(bool autoComplete, const Document::Ptr &doc) const
|
||||
{
|
||||
if (autoComplete)
|
||||
return completeVContext(m_vContext, doc);
|
||||
else
|
||||
return m_vContext;
|
||||
}
|
||||
|
||||
void ModelManager::setDefaultVContext(const ViewerContext &vContext)
|
||||
{
|
||||
m_vContext = vContext;
|
||||
}
|
||||
|
||||
void ModelManager::joinAllThreads()
|
||||
{
|
||||
foreach (QFuture<void> future, m_synchronizer.futures())
|
||||
|
||||
@@ -115,6 +115,14 @@ public:
|
||||
|
||||
QmlJS::LibraryInfo builtins(const QmlJS::Document::Ptr &doc) const QTC_OVERRIDE;
|
||||
|
||||
QmlJS::ViewerContext completeVContext(
|
||||
const QmlJS::ViewerContext &vCtx,
|
||||
const QmlJS::Document::Ptr &doc = QmlJS::Document::Ptr(0)) const QTC_OVERRIDE;
|
||||
QmlJS::ViewerContext defaultVContext(
|
||||
bool autoComplete = true,
|
||||
const QmlJS::Document::Ptr &doc = QmlJS::Document::Ptr(0)) const QTC_OVERRIDE;
|
||||
void setDefaultVContext(const QmlJS::ViewerContext &vContext) QTC_OVERRIDE;
|
||||
|
||||
void joinAllThreads() QTC_OVERRIDE;
|
||||
|
||||
public slots:
|
||||
@@ -158,6 +166,7 @@ private:
|
||||
QStringList m_defaultImportPaths;
|
||||
QmlJS::QmlLanguageBundles m_activeBundles;
|
||||
QmlJS::QmlLanguageBundles m_extendedBundles;
|
||||
QmlJS::ViewerContext m_vContext;
|
||||
|
||||
QTimer *m_updateCppQmlTypesTimer;
|
||||
QTimer *m_asyncResetTimer;
|
||||
|
||||
@@ -53,7 +53,7 @@ void QmlJSTools::Internal::QmlJSToolsPlugin::test_basic()
|
||||
Document::Ptr doc = snapshot.document(welcomescreenRootPath);
|
||||
QVERIFY(doc && doc->isQmlDocument());
|
||||
|
||||
ContextPtr context = Link(snapshot, QStringList(), LibraryInfo())();
|
||||
ContextPtr context = Link(snapshot, ViewerContext(), LibraryInfo())();
|
||||
QVERIFY(context);
|
||||
|
||||
const CppComponentValue *rectangleValue = context->valueOwner()->cppQmlTypes().objectByQualifiedName(
|
||||
|
||||
Reference in New Issue
Block a user