From f0a80a675f3596ea2b6e89042982d3a8a348a2a3 Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Wed, 21 Feb 2018 23:57:01 +0100 Subject: [PATCH] Recalculate forms after command form changes Summary: notifyFormChanged is called by documentcommands when Form fields are changed. E.g. by Undo / Redo. We need to recalculate after such changes. Test Plan: Tested with simple_calculate example. Run the unit test with the added line commented out and it failed, with the added line it passes. Reviewers: #okular Subscribers: aacid, ltoscano Tags: #okular Maniphest Tasks: T7805 Differential Revision: https://phabricator.kde.org/D10547 --- autotests/calculatetexttest.cpp | 9 +++++++++ core/document.cpp | 1 + 2 files changed, 10 insertions(+) diff --git a/autotests/calculatetexttest.cpp b/autotests/calculatetexttest.cpp index d313367e4..f105daba4 100644 --- a/autotests/calculatetexttest.cpp +++ b/autotests/calculatetexttest.cpp @@ -91,6 +91,15 @@ void CalculateTextTest::testSimpleCalculate() // Test that updating the field also worked with sum QCOMPARE (fields[QStringLiteral ("Sum")]->text(), QStringLiteral( "40" )); + + // Test that undo / redo works + QVERIFY( m_document->canUndo() ); + m_document->undo(); + QCOMPARE( fields[QStringLiteral ("Sum")]->text(), QStringLiteral( "60" ) ); + + QVERIFY( m_document->canRedo() ); + m_document->redo(); + QCOMPARE( fields[QStringLiteral ("Sum")]->text(), QStringLiteral( "40" ) ); } QTEST_MAIN( CalculateTextTest ) diff --git a/core/document.cpp b/core/document.cpp index 33ac2107c..571099d0c 100644 --- a/core/document.cpp +++ b/core/document.cpp @@ -3406,6 +3406,7 @@ void DocumentPrivate::notifyAnnotationChanges( int page ) void DocumentPrivate::notifyFormChanges( int /*page*/ ) { + recalculateForms(); } void Document::addPageAnnotation( int page, Annotation * annotation )