sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx | 7 +------ sw/qa/extras/odfimport/data/incorrectsum.odt |binary sw/qa/extras/odfimport/odfimport.cxx | 13 +++++++++++++ sw/source/filter/basflt/shellio.cxx | 2 +- 4 files changed, 15 insertions(+), 7 deletions(-)
New commits: commit c8e9df0b583e8a61a0570f72c0a476a5102f1fe9 Author: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de> AuthorDate: Mon Mar 6 17:00:10 2023 +0100 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Mon Apr 3 08:19:10 2023 +0200 Always update fields when loading document to make sure that table formulas are re-evaluated after loading. When a document has a wrong sum saved (which seems to happen sometimes), this sum is used until user clicks into the table or otherwise refreshes the formula. Change-Id: I5cc3f983524b395089c17aa35d8641847a388bad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148355 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de> (cherry picked from commit c132a1abd57c109331191c3b3fbd14e1c5e46631) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148957 Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx index e412c8249a65..8f95aa43e8b9 100644 --- a/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx +++ b/sw/qa/core/accessibilitycheck/AccessibilityCheckTest.cxx @@ -273,12 +273,7 @@ CPPUNIT_TEST_FIXTURE(AccessibilityCheckTest, testOnlineNodeSplitAppend) Scheduler::ProcessEventsToIdle(); - CPPUNIT_ASSERT_EQUAL(sal_Int32(0), - pDoc->getOnlineAccessibilityCheck()->getNumberOfAccessibilityIssues()); - // Trigger a11y checker - pWrtShell->Down(/*bSelect*/ false, /*nCount*/ 0); - - // Check we have 1 a11y issue + // Check we have 2 a11y issue CPPUNIT_ASSERT_EQUAL(sal_Int32(2), pDoc->getOnlineAccessibilityCheck()->getNumberOfAccessibilityIssues()); auto aIssues = scanAccessibilityIssuesOnNodes(pDoc); diff --git a/sw/qa/extras/odfimport/data/incorrectsum.odt b/sw/qa/extras/odfimport/data/incorrectsum.odt new file mode 100644 index 000000000000..0e1e99b0d699 Binary files /dev/null and b/sw/qa/extras/odfimport/data/incorrectsum.odt differ diff --git a/sw/qa/extras/odfimport/odfimport.cxx b/sw/qa/extras/odfimport/odfimport.cxx index 6c8e5ec8230f..4e87edc309dc 100644 --- a/sw/qa/extras/odfimport/odfimport.cxx +++ b/sw/qa/extras/odfimport/odfimport.cxx @@ -44,6 +44,7 @@ #include <comphelper/propertysequence.hxx> #include <editeng/boxitem.hxx> +#include <vcl/scheduler.hxx> #include <IDocumentSettingAccess.hxx> #include <wrtsh.hxx> @@ -587,6 +588,18 @@ CPPUNIT_TEST_FIXTURE(Test, testFdo56272) CPPUNIT_ASSERT_EQUAL(sal_Int32(422), xShape->getPosition().Y); // Was -2371 } +CPPUNIT_TEST_FIXTURE(Test, testIncorrectSum) +{ + createSwDoc("incorrectsum.odt"); + Scheduler::ProcessEventsToIdle(); + uno::Reference<text::XTextTablesSupplier> xTablesSupplier(mxComponent, uno::UNO_QUERY); + uno::Reference<container::XIndexAccess> xTables(xTablesSupplier->getTextTables( ), uno::UNO_QUERY); + uno::Reference<text::XTextTable> xTextTable(xTables->getByIndex(0), uno::UNO_QUERY); + uno::Reference<text::XTextRange> xCell(xTextTable->getCellByName("C3"), uno::UNO_QUERY); + // Use indexOf instead of exact match since the result contains an Euro sign which OUString doesn't like + CPPUNIT_ASSERT_EQUAL(sal_Int32(0), xCell->getString().indexOf("1,278")); +} + CPPUNIT_TEST_FIXTURE(Test, testTdf128737) { createSwDoc("tdf128737.odt"); diff --git a/sw/source/filter/basflt/shellio.cxx b/sw/source/filter/basflt/shellio.cxx index 3157943dcceb..c4bdc52c7590 100644 --- a/sw/source/filter/basflt/shellio.cxx +++ b/sw/source/filter/basflt/shellio.cxx @@ -383,7 +383,7 @@ ErrCode SwReader::Read( const Reader& rOptions ) // not insert: set the redline mode read from settings.xml eOld = ePostReadRedlineFlags & ~RedlineFlags::Ignore; - mxDoc->getIDocumentFieldsAccess().SetFieldsDirty(false, nullptr, SwNodeOffset(0)); + mxDoc->getIDocumentFieldsAccess().SetFieldsDirty(true, nullptr, SwNodeOffset(0)); } mxDoc->getIDocumentRedlineAccess().SetRedlineFlags_intern( eOld );