diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp index 6bd5522d637..82584dc70e5 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp @@ -40,6 +40,11 @@ #include #include +#ifndef QMLDESIGNER_TEST +#include +#include +#endif + #include #include #include @@ -855,15 +860,17 @@ void RewriterView::qmlTextChanged() } case Amend: { - if (m_instantQmlTextUpdate) + if (m_instantQmlTextUpdate) { amendQmlText(); - else + } else { #ifndef QMLDESIGNER_TEST + QmlDesignerPlugin::instance()->viewManager().disableWidgets(); m_amendTimer.start(400); #else /*Keep test synchronous*/ amendQmlText(); #endif + } break; } } diff --git a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp index 16078ecb739..e212b8d52a6 100644 --- a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp +++ b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp @@ -360,15 +360,21 @@ QWidget *ViewManager::widget(const QString &uniqueId) const void ViewManager::disableWidgets() { foreach (const WidgetInfo &widgetInfo, widgetInfos()) - if (widgetInfo.widgetFlags == DesignerWidgetFlags::DisableOnError) + if (widgetInfo.widgetFlags == DesignerWidgetFlags::DisableOnError) { widgetInfo.widget->setEnabled(false); + if (auto parentWidget = widgetInfo.widget->parentWidget()) + parentWidget->setEnabled(false); + } } void ViewManager::enableWidgets() { foreach (const WidgetInfo &widgetInfo, widgetInfos()) - if (widgetInfo.widgetFlags == DesignerWidgetFlags::DisableOnError) + if (widgetInfo.widgetFlags == DesignerWidgetFlags::DisableOnError) { widgetInfo.widget->setEnabled(true); + if (auto parentWidget = widgetInfo.widget->parentWidget()) + parentWidget->setEnabled(true); + } } void ViewManager::pushFileOnCrumbleBar(const Utils::FileName &fileName)