forked from qt-creator/qt-creator
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: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
@@ -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>)),
|
||||
|
||||
Reference in New Issue
Block a user