forked from qt-creator/qt-creator
QmlDesigner: Switch back to edit mode if last .qml file closes
Fixes multiple ways to crash QmlDesigner after last .qml file is closed by enforcing a switch to Edit mode then. Patch originally done by con.
This commit is contained in:
@@ -207,7 +207,7 @@ void DesignMode::unregisterDesignWidget(QWidget *widget)
|
|||||||
// if editor changes, check if we have valid mimetype registered.
|
// if editor changes, check if we have valid mimetype registered.
|
||||||
void DesignMode::currentEditorChanged(Core::IEditor *editor)
|
void DesignMode::currentEditorChanged(Core::IEditor *editor)
|
||||||
{
|
{
|
||||||
if (d->m_currentEditor.data() == editor)
|
if (editor && (d->m_currentEditor.data() == editor))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
bool mimeEditorAvailable = false;
|
bool mimeEditorAvailable = false;
|
||||||
@@ -239,6 +239,8 @@ void DesignMode::currentEditorChanged(Core::IEditor *editor)
|
|||||||
|
|
||||||
if (!mimeEditorAvailable) {
|
if (!mimeEditorAvailable) {
|
||||||
setActiveContext(QList<int>());
|
setActiveContext(QList<int>());
|
||||||
|
if (core->modeManager()->currentMode() == this)
|
||||||
|
core->modeManager()->activateMode(Core::Constants::MODE_EDIT);
|
||||||
setEnabled(false);
|
setEnabled(false);
|
||||||
d->m_currentEditor = QWeakPointer<Core::IEditor>();
|
d->m_currentEditor = QWeakPointer<Core::IEditor>();
|
||||||
emit actionsUpdated(d->m_currentEditor.data());
|
emit actionsUpdated(d->m_currentEditor.data());
|
||||||
|
|||||||
Reference in New Issue
Block a user