From 5b55c5d2577a76a87e8f18bb751062f8cdb70195 Mon Sep 17 00:00:00 2001 From: Mitch Curtis Date: Fri, 29 Jun 2018 23:15:09 +0200 Subject: [PATCH] Fix guides in the process of being created not being rendered --- app/imagecanvas.cpp | 2 ++ tests/tst_app.cpp | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/app/imagecanvas.cpp b/app/imagecanvas.cpp index 44c4ce7b..5421a313 100644 --- a/app/imagecanvas.cpp +++ b/app/imagecanvas.cpp @@ -2327,6 +2327,8 @@ void ImageCanvas::mouseMoveEvent(QMouseEvent *event) mSplitter.setPosition(mCursorX / width()); } else if (mPressedRuler) { update(); + // Ensure that the guide being created is drawn. + mGuidesItem->update(); } else if (mPressedGuideIndex != -1) { mGuidesItem->update(); } else { diff --git a/tests/tst_app.cpp b/tests/tst_app.cpp index 6e5f9e60..09490600 100644 --- a/tests/tst_app.cpp +++ b/tests/tst_app.cpp @@ -3096,8 +3096,16 @@ void tst_App::rulersAndGuides() QTest::mousePress(window, Qt::LeftButton, Qt::NoModifier, cursorWindowPos); QVERIFY(canvas->pressedRuler()); + // Do the actual moving onto the canvas. setCursorPosInPixels(QPoint(50, rulerThickness + 10)); QTest::mouseMove(window, cursorWindowPos); + + // Now it should be visible on the canvas. + QVERIFY(imageGrabber.requestImage(canvas)); + QTRY_VERIFY(imageGrabber.isReady()); + const QImage grabWithGuide = imageGrabber.takeImage(); + QCOMPARE(grabWithGuide.pixelColor(50, rulerThickness + 10), QColor(Qt::cyan)); + QTest::mouseRelease(window, Qt::LeftButton, Qt::NoModifier, cursorWindowPos); QVERIFY(!canvas->pressedRuler()); QCOMPARE(project->guides().size(), 1);