summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2013-10-02 11:19:18 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2013-10-28 12:58:07 +0100
commitd9124b3f30de8693da0e9d4f5ccc3cf815996e38 (patch)
treedc5e9ba6c1d4e2c713e49d79cfaf656dd9a5a040
parent40af3a9a08dade609cd2d5b5710072eaf44baf7d (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.odtbin0 -> 9462 bytes
-rw-r--r--sw/qa/extras/odfimport/odfimport.cxx17
-rw-r--r--sw/source/core/crsr/crsrsh.cxx4
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
new file mode 100644
index 000000000000..8f7d77ec62d1
--- /dev/null
+++ b/sw/qa/extras/odfimport/data/fdo69979.odt
Binary files differ
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();