Commit 6956eb1d authored by Thomas Hartmann's avatar Thomas Hartmann

QmlDesigner: crash fix

The subcomponent manager populates the item library.
This means the ItemLibraryView has to be properly
initialized before we call m_subComponentManager->update().

I added a helper function and call it from activateAutoSynchronization(),
after all views have been attached.

Change-Id: Ie802f93c7d0a76b42160d4a92e8448e900380b71
Reviewed-by: default avatarThomas Hartmann <Thomas.Hartmann@digia.com>
parent 4da344c0
......@@ -392,7 +392,6 @@ void DesignDocument::activateCurrentModel(TextModifier *textModifier)
// m_formEditorView->crumblePath()->pushElement(simplfiedDisplayName(), createCrumbleBarInfo());
m_documentLoaded = true;
m_subComponentManager->update(QUrl::fromLocalFile(fileName()), m_currentModel->imports());
Q_ASSERT(m_documentModel);
QApplication::restoreOverrideCursor();
}
......@@ -407,6 +406,7 @@ void DesignDocument::activateCurrentModel()
void DesignDocument::activateDocumentModel()
{
//this function seems to be unused!
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
Q_ASSERT(m_documentModel);
......@@ -417,7 +417,9 @@ void DesignDocument::activateDocumentModel()
m_currentModel = m_documentModel;
m_documentLoaded = true;
m_subComponentManager->update(QUrl::fromLocalFile(fileName()), m_currentModel->imports());
updateSubcomponentManager();
Q_ASSERT(m_documentModel);
QApplication::restoreOverrideCursor();
}
......@@ -443,6 +445,12 @@ void DesignDocument::close()
emit designDocumentClosed();
}
void DesignDocument::updateSubcomponentManager()
{
Q_ASSERT(m_subComponentManager);
m_subComponentManager->update(QUrl::fromLocalFile(fileName()), m_currentModel->imports());
}
void DesignDocument::deleteSelected()
{
if (!m_currentModel)
......
......@@ -82,6 +82,7 @@ public:
void activateCurrentModel();
void activateDocumentModel();
void close();
void updateSubcomponentManager();
bool isUndoAvailable() const;
bool isRedoAvailable() const;
......
......@@ -302,6 +302,7 @@ void QmlDesignerPlugin::activateAutoSynchronization()
m_mainWidget->showErrorMessage(errors);
}
currentDesignDocument()->updateSubcomponentManager();
connect(currentDesignDocument()->rewriterView(),
SIGNAL(errorsChanged(QList<RewriterView::Error>)),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment