forked from qt-creator/qt-creator
QmlDesigner: Avoid visual artefacts
Avoid visual artefacts when changing states. Change-Id: I00aa1499ff027d060b06699b60ebd2d5162d0e16 Reviewed-by: Henning Gründl <henning.gruendl@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -234,12 +234,12 @@ void FormEditorView::createFormEditorWidget()
|
|||||||
connect(m_formEditorWidget->resetAction(), &QAction::triggered, this, &FormEditorView::resetNodeInstanceView);
|
connect(m_formEditorWidget->resetAction(), &QAction::triggered, this, &FormEditorView::resetNodeInstanceView);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FormEditorView::temporaryBlockView()
|
void FormEditorView::temporaryBlockView(int duration)
|
||||||
{
|
{
|
||||||
m_formEditorWidget->graphicsView()->setUpdatesEnabled(false);
|
m_formEditorWidget->graphicsView()->setUpdatesEnabled(false);
|
||||||
static auto timer = new QTimer(qApp);
|
static auto timer = new QTimer(qApp);
|
||||||
timer->setSingleShot(true);
|
timer->setSingleShot(true);
|
||||||
timer->start(1000);
|
timer->start(duration);
|
||||||
|
|
||||||
connect(timer, &QTimer::timeout, this, [this]() {
|
connect(timer, &QTimer::timeout, this, [this]() {
|
||||||
m_formEditorWidget->graphicsView()->setUpdatesEnabled(true);
|
m_formEditorWidget->graphicsView()->setUpdatesEnabled(true);
|
||||||
@@ -496,6 +496,11 @@ void FormEditorView::customNotification(const AbstractView * /*view*/, const QSt
|
|||||||
m_formEditorWidget->zoomAction()->zoomOut();
|
m_formEditorWidget->zoomAction()->zoomOut();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FormEditorView::currentStateChanged(const ModelNode & /*node*/)
|
||||||
|
{
|
||||||
|
temporaryBlockView(100);
|
||||||
|
}
|
||||||
|
|
||||||
AbstractFormEditorTool *FormEditorView::currentTool() const
|
AbstractFormEditorTool *FormEditorView::currentTool() const
|
||||||
{
|
{
|
||||||
return m_currentTool;
|
return m_currentTool;
|
||||||
|
@@ -84,7 +84,12 @@ public:
|
|||||||
|
|
||||||
void documentMessagesChanged(const QList<DocumentMessage> &errors, const QList<DocumentMessage> &warnings) override;
|
void documentMessagesChanged(const QList<DocumentMessage> &errors, const QList<DocumentMessage> &warnings) override;
|
||||||
|
|
||||||
void customNotification(const AbstractView *view, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data) override;
|
void customNotification(const AbstractView *view,
|
||||||
|
const QString &identifier,
|
||||||
|
const QList<ModelNode> &nodeList,
|
||||||
|
const QList<QVariant> &data) override;
|
||||||
|
|
||||||
|
void currentStateChanged(const ModelNode &node) override;
|
||||||
|
|
||||||
// FormEditorView
|
// FormEditorView
|
||||||
WidgetInfo widgetInfo() override;
|
WidgetInfo widgetInfo() override;
|
||||||
@@ -134,7 +139,7 @@ private:
|
|||||||
void removeNodeFromScene(const QmlItemNode &qmlItemNode);
|
void removeNodeFromScene(const QmlItemNode &qmlItemNode);
|
||||||
void hideNodeFromScene(const QmlItemNode &qmlItemNode);
|
void hideNodeFromScene(const QmlItemNode &qmlItemNode);
|
||||||
void createFormEditorWidget();
|
void createFormEditorWidget();
|
||||||
void temporaryBlockView();
|
void temporaryBlockView(int duration = 1000);
|
||||||
void resetNodeInstanceView();
|
void resetNodeInstanceView();
|
||||||
|
|
||||||
QPointer<FormEditorWidget> m_formEditorWidget;
|
QPointer<FormEditorWidget> m_formEditorWidget;
|
||||||
|
Reference in New Issue
Block a user