QmlDesigner: Fix disappearing plus states editor

* Fix issue the plus (Canvas) in the states editor is not drawn when
  the view was hidden before and comes back on
* Improve paint method

Task-number: QDS-8419
Change-Id: I959b4b6a418deba95380d8f5cafc7af09a0362e8
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Henning Gruendl
2022-11-24 17:45:34 +01:00
committed by Henning Gründl
parent ccbda4655e
commit fd1864d678
2 changed files with 15 additions and 10 deletions

View File

@@ -45,6 +45,10 @@ Rectangle {
onWidthChanged: root.responsiveResize(root.width, root.height)
onHeightChanged: root.responsiveResize(root.width, root.height)
function showEvent() {
addCanvas.requestPaint()
}
Component.onCompleted: root.responsiveResize(root.width, root.height)
function numFit(overall, size, space) {
@@ -860,22 +864,22 @@ Rectangle {
width: root.thumbWidth
height: root.thumbHeight
property int plusExtend: 20
property int halfWidth: addCanvas.width / 2
property int halfHeight: addCanvas.height / 2
onPaint: {
var ctx = getContext("2d")
ctx.strokeStyle = StudioTheme.Values.themeStateHighlight
ctx.lineWidth = 6
var plusExtend = 20
var halfWidth = addCanvas.width / 2
var halfHeight = addCanvas.height / 2
ctx.beginPath()
ctx.moveTo(halfWidth, halfHeight - plusExtend)
ctx.lineTo(halfWidth, halfHeight + plusExtend)
ctx.moveTo(addCanvas.halfWidth, addCanvas.halfHeight - addCanvas.plusExtend)
ctx.lineTo(addCanvas.halfWidth, addCanvas.halfHeight + addCanvas.plusExtend)
ctx.moveTo(halfWidth - plusExtend, halfHeight)
ctx.lineTo(halfWidth + plusExtend, halfHeight)
ctx.moveTo(addCanvas.halfWidth - addCanvas.plusExtend, addCanvas.halfHeight)
ctx.lineTo(addCanvas.halfWidth + addCanvas.plusExtend, addCanvas.halfHeight)
ctx.stroke()
ctx.save()

View File

@@ -43,10 +43,10 @@
#include <QApplication>
#include <QFileInfo>
#include <QShortcut>
#include <QBoxLayout>
#include <QFileInfo>
#include <QKeySequence>
#include <QShortcut>
#include <QQmlContext>
#include <QQmlEngine>
@@ -142,6 +142,7 @@ void StatesEditorWidget::showEvent(QShowEvent *event)
{
QQuickWidget::showEvent(event);
update();
QMetaObject::invokeMethod(rootObject(), "showEvent");
}
void StatesEditorWidget::focusOutEvent(QFocusEvent *focusEvent)