qmljs: ensure that opening an editor always updates the modelmanager

Change-Id: Ia23d9c84240bd2c54b0c331494474d0fa74674e8
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
Fawzi Mohamed
2014-04-29 16:39:16 +02:00
parent 08163f3b9a
commit 8b8c5e8fe8
4 changed files with 13 additions and 0 deletions

View File

@@ -189,6 +189,14 @@ ModelManagerInterface::WorkingCopy ModelManagerInterface::workingCopy()
return WorkingCopy(); return WorkingCopy();
} }
void ModelManagerInterface::activateScan()
{
if (!m_shouldScanImports) {
m_shouldScanImports = true;
updateImportPaths();
}
}
QHash<QString, Language::Enum> ModelManagerInterface::languageForSuffix() const QHash<QString, Language::Enum> ModelManagerInterface::languageForSuffix() const
{ {
return defaultLanguageMapping(); return defaultLanguageMapping();

View File

@@ -156,6 +156,7 @@ public:
QmlJS::Snapshot snapshot() const; QmlJS::Snapshot snapshot() const;
QmlJS::Snapshot newestSnapshot() const; QmlJS::Snapshot newestSnapshot() const;
void activateScan();
void updateSourceFiles(const QStringList &files, void updateSourceFiles(const QStringList &files,
bool emitDocumentOnDiskChanged); bool emitDocumentOnDiskChanged);
void fileChangedOnDisk(const QString &path); void fileChangedOnDisk(const QString &path);

View File

@@ -139,6 +139,8 @@ void QmlJSTextEditorWidget::ctor()
m_modelManager = QmlJS::ModelManagerInterface::instance(); m_modelManager = QmlJS::ModelManagerInterface::instance();
m_contextPane = ExtensionSystem::PluginManager::getObject<QmlJS::IContextPane>(); m_contextPane = ExtensionSystem::PluginManager::getObject<QmlJS::IContextPane>();
m_modelManager->activateScan();
m_contextPaneTimer = new QTimer(this); m_contextPaneTimer = new QTimer(this);
m_contextPaneTimer->setInterval(UPDATE_OUTLINE_INTERVAL); m_contextPaneTimer->setInterval(UPDATE_OUTLINE_INTERVAL);
m_contextPaneTimer->setSingleShot(true); m_contextPaneTimer->setSingleShot(true);

View File

@@ -448,6 +448,8 @@ QmlJSEditorDocumentPrivate::QmlJSEditorDocumentPrivate(QmlJSEditorDocument *pare
m_updateOutlineModelTimer.setInterval(UPDATE_OUTLINE_INTERVAL); m_updateOutlineModelTimer.setInterval(UPDATE_OUTLINE_INTERVAL);
m_updateOutlineModelTimer.setSingleShot(true); m_updateOutlineModelTimer.setSingleShot(true);
connect(&m_updateOutlineModelTimer, SIGNAL(timeout()), this, SLOT(updateOutlineModel())); connect(&m_updateOutlineModelTimer, SIGNAL(timeout()), this, SLOT(updateOutlineModel()));
modelManager->updateSourceFiles(QStringList(parent->filePath()), false);
} }
QmlJSEditorDocumentPrivate::~QmlJSEditorDocumentPrivate() QmlJSEditorDocumentPrivate::~QmlJSEditorDocumentPrivate()