diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2013-10-02 11:19:18 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2013-10-28 12:58:07 +0100 |
commit | d9124b3f30de8693da0e9d4f5ccc3cf815996e38 (patch) | |
tree | dc5e9ba6c1d4e2c713e49d79cfaf656dd9a5a040 | |
parent | 40af3a9a08dade609cd2d5b5710072eaf44baf7d (diff) |
bnc#825891 fdo#69979 SwCrsrShell::ExtendedSelectAll: exclude headers, too
It turns out, normal Ctrl-A doesn't select headers, footers and fly
content, either (just like not selecting footnotes). So do the same when
in the "doc starts with table" special mode.
Change-Id: Ib9bc397944a4d07ea03bc326f1536733c57f42e6
(cherry picked from commit 232df42b8dc0b4f7a335d2931fc0f29e73b8bca0)
Conflicts:
sw/qa/extras/odfimport/odfimport.cxx
sw/source/core/crsr/crsrsh.cxx
-rw-r--r-- | sw/qa/extras/odfimport/data/fdo69979.odt | bin | 0 -> 9462 bytes | |||
-rw-r--r-- | sw/qa/extras/odfimport/odfimport.cxx | 17 | ||||
-rw-r--r-- | sw/source/core/crsr/crsrsh.cxx | 4 |
3 files changed, 19 insertions, 2 deletions
diff --git a/sw/qa/extras/odfimport/data/fdo69979.odt b/sw/qa/extras/odfimport/data/fdo69979.odt Binary files differnew file mode 100644 index 000000000000..8f7d77ec62d1 --- /dev/null +++ b/sw/qa/extras/odfimport/data/fdo69979.odt diff --git a/sw/qa/extras/odfimport/odfimport.cxx b/sw/qa/extras/odfimport/odfimport.cxx index 6a1240e6a3f8..eb8a819109c4 100644 --- a/sw/qa/extras/odfimport/odfimport.cxx +++ b/sw/qa/extras/odfimport/odfimport.cxx @@ -49,6 +49,7 @@ public: void testFdo37606(); void testFdo37606Copy(); void testFdo69862(); + void testFdo69979(); CPPUNIT_TEST_SUITE(Test); #if !defined(MACOSX) && !defined(WNT) @@ -70,6 +71,7 @@ void Test::run() {"fdo37606.odt", &Test::testFdo37606}, {"fdo37606.odt", &Test::testFdo37606Copy}, {"fdo69862.odt", &Test::testFdo69862}, + {"fdo69979.odt", &Test::testFdo69979}, }; for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i) { @@ -371,7 +373,22 @@ void Test::testFdo69862() SwTxtNode& rEnd = dynamic_cast<SwTxtNode&>(pShellCrsr->End()->nNode.GetNode()); CPPUNIT_ASSERT_EQUAL(String("H" "\x01" "ello."), rEnd.GetTxt()); +} + +void Test::testFdo69979() +{ + // The test doc is special in that it starts with a table and it also has a header. + SwXTextDocument* pTxtDoc = dynamic_cast<SwXTextDocument *>(mxComponent.get()); + SwWrtShell* pWrtShell = pTxtDoc->GetDocShell()->GetWrtShell(); + SwShellCrsr* pShellCrsr = pWrtShell->getShellCrsr(false); + pWrtShell->SelAll(); + SwTxtNode& rStart = dynamic_cast<SwTxtNode&>(pShellCrsr->Start()->nNode.GetNode()); + // This was "", as Ctrl-A also selected headers, but it should not. + CPPUNIT_ASSERT_EQUAL(String("A1"), rStart.GetTxt()); + + SwTxtNode& rEnd = dynamic_cast<SwTxtNode&>(pShellCrsr->End()->nNode.GetNode()); + CPPUNIT_ASSERT_EQUAL(String("Hello."), rEnd.GetTxt()); } CPPUNIT_TEST_SUITE_REGISTRATION(Test); diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx index 357e9c947765..2b02fa1e3288 100644 --- a/sw/source/core/crsr/crsrsh.cxx +++ b/sw/source/core/crsr/crsrsh.cxx @@ -539,7 +539,7 @@ void SwCrsrShell::ExtendedSelectAll(bool bFootnotes) { SwNodes& rNodes = GetDoc()->GetNodes(); SwPosition* pPos = pCurCrsr->GetPoint(); - pPos->nNode = bFootnotes ? rNodes.GetEndOfPostIts() : rNodes.GetEndOfInserts(); + pPos->nNode = bFootnotes ? rNodes.GetEndOfPostIts() : rNodes.GetEndOfAutotext(); pPos->nContent.Assign( rNodes.GoNext( &pPos->nNode ), 0 ); pPos = pCurCrsr->GetMark(); pPos->nNode = rNodes.GetEndOfContent(); @@ -550,7 +550,7 @@ void SwCrsrShell::ExtendedSelectAll(bool bFootnotes) bool SwCrsrShell::ExtendedSelectedAll(bool bFootnotes) { SwNodes& rNodes = GetDoc()->GetNodes(); - SwNodeIndex nNode = bFootnotes ? rNodes.GetEndOfPostIts() : rNodes.GetEndOfInserts(); + SwNodeIndex nNode = bFootnotes ? rNodes.GetEndOfPostIts() : rNodes.GetEndOfAutotext(); SwCntntNode* pStart = rNodes.GoNext(&nNode); nNode = rNodes.GetEndOfContent(); |