forked from qt-creator/qt-creator
QmlDesigner: Only the rewriter for the document should block UI
We use different rewriter for different purposes. Only the rewriter that manages the current document should disable the UI. Change-Id: Ic410f7ee62ce13bb0eef133619f93c05b5632a56 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
committed by
Tim Jenssen
parent
cf43803032
commit
0087a74ecc
@@ -42,6 +42,7 @@ class DesignDocument;
|
||||
class AbstractCustomTool;
|
||||
class DesignerActionManager;
|
||||
class NodeInstanceView;
|
||||
class RewriterView;
|
||||
|
||||
namespace Internal { class DesignModeWidget; }
|
||||
|
||||
@@ -98,6 +99,8 @@ public:
|
||||
void qmlJSEditorHelpId(const Core::IContext::HelpIdCallback &callback) const;
|
||||
DesignDocument *currentDesignDocument() const;
|
||||
|
||||
bool usesRewriterView(RewriterView *rewriterView);
|
||||
|
||||
private: // functions
|
||||
Q_DISABLE_COPY(ViewManager)
|
||||
|
||||
|
@@ -873,8 +873,11 @@ void RewriterView::qmlTextChanged()
|
||||
amendQmlText();
|
||||
} else {
|
||||
#ifndef QMLDESIGNER_TEST
|
||||
QmlDesignerPlugin::instance()->viewManager().disableWidgets();
|
||||
m_amendTimer.start(400);
|
||||
auto &viewManager = QmlDesignerPlugin::instance()->viewManager();
|
||||
if (viewManager.usesRewriterView(this)) {
|
||||
QmlDesignerPlugin::instance()->viewManager().disableWidgets();
|
||||
m_amendTimer.start(400);
|
||||
}
|
||||
#else
|
||||
/*Keep test synchronous*/
|
||||
amendQmlText();
|
||||
|
@@ -449,6 +449,11 @@ void ViewManager::reformatFileUsingTextEditorView()
|
||||
d->textEditorView.reformatFile();
|
||||
}
|
||||
|
||||
bool ViewManager::usesRewriterView(RewriterView *rewriterView)
|
||||
{
|
||||
return currentDesignDocument()->rewriterView() == rewriterView;
|
||||
}
|
||||
|
||||
} // namespace QmlDesigner
|
||||
|
||||
#endif //QMLDESIGNER_TEST
|
||||
|
Reference in New Issue
Block a user