sc/qa/unit/ucalc.cxx | 55 ++++++++++++++++++++++++++++++++++++++++ sc/qa/unit/ucalc.hxx | 2 + sc/source/core/data/column3.cxx | 4 +- 3 files changed, 59 insertions(+), 2 deletions(-)
New commits: commit f4673ccd5e26d38a28f297d64ed70ba719d21ef2 Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Fri May 9 14:04:30 2014 -0400 fdo#77379: Don't return from the call. Notes are handled at the end. Returning prematurely would end up skipping pasting of notes. Change-Id: I79e0968023342a68fe729f31eb6cfc3cfacd5850 diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx index e3a81a5..8bb8223 100644 --- a/sc/source/core/data/column3.cxx +++ b/sc/source/core/data/column3.cxx @@ -873,7 +873,7 @@ public: case sc::element_type_string: { if (!bString) - return; + break; sc::string_block::const_iterator it = sc::string_block::begin(*node.data); std::advance(it, nOffset); @@ -897,7 +897,7 @@ public: case sc::element_type_edittext: { if (!bString) - return; + break; sc::edittext_block::const_iterator it = sc::edittext_block::begin(*node.data); std::advance(it, nOffset); commit 71cd1ca57faf423fb607fab64914719238bc1e4f Author: Kohei Yoshida <kohei.yosh...@collabora.com> Date: Fri May 9 13:50:31 2014 -0400 fdo#77379: Write test for this. Change-Id: Iccc0b499abae90f5b780aebab17ff6315b5690ec diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index 1ca19b8..4cf444f 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -5400,6 +5400,61 @@ void Test::testNoteLifeCycle() m_pDoc->DeleteTab(0); } +void Test::testNoteCopyPaste() +{ + m_pDoc->InsertTab(0, "Test"); + + // We need a drawing layer in order to create caption objects. + m_pDoc->InitDrawLayer(&getDocShell()); + + // Insert in B2 a text and cell comment. + ScAddress aPos(1,1,0); + m_pDoc->SetString(aPos, "Text"); + ScPostIt* pNote = m_pDoc->GetOrCreateNote(aPos); + CPPUNIT_ASSERT(pNote); + pNote->SetText(aPos, "Note1"); + + // Insert in B4 a number and cell comment. + aPos.SetRow(3); + m_pDoc->SetValue(aPos, 1.1); + pNote = m_pDoc->GetOrCreateNote(aPos); + CPPUNIT_ASSERT(pNote); + pNote->SetText(aPos, "Note2"); + + // Copy B2:B4 to clipboard. + ScMarkData aMark; + aMark.SelectOneTable(0); + ScRange aCopyRange(1,1,0,1,3,0); + ScDocument aClipDoc(SCDOCMODE_CLIP); + aClipDoc.ResetClip(m_pDoc, &aMark); + ScClipParam aClipParam(aCopyRange, false); + m_pDoc->CopyToClip(aClipParam, &aClipDoc, &aMark, false, false, false, true, false); + + // Make sure the notes are in the clipboard. + pNote = aClipDoc.GetNote(ScAddress(1,1,0)); + CPPUNIT_ASSERT(pNote); + CPPUNIT_ASSERT_EQUAL(OUString("Note1"), pNote->GetText()); + + pNote = aClipDoc.GetNote(ScAddress(1,3,0)); + CPPUNIT_ASSERT(pNote); + CPPUNIT_ASSERT_EQUAL(OUString("Note2"), pNote->GetText()); + + // Paste to B6:B8 but only cell notes. + ScRange aDestRange(1,5,0,1,7,0); + m_pDoc->CopyFromClip(aDestRange, aMark, IDF_NOTE, NULL, &aClipDoc); + + // Make sure the notes are there. + pNote = m_pDoc->GetNote(ScAddress(1,5,0)); + CPPUNIT_ASSERT(pNote); + CPPUNIT_ASSERT_EQUAL(OUString("Note1"), pNote->GetText()); + + pNote = m_pDoc->GetNote(ScAddress(1,7,0)); + CPPUNIT_ASSERT(pNote); + CPPUNIT_ASSERT_EQUAL(OUString("Note2"), pNote->GetText()); + + m_pDoc->DeleteTab(0); +} + void Test::testAreasWithNotes() { ScDocument* pDoc = getDocShell().GetDocument(); diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx index dbe84e7..76c74cc 100644 --- a/sc/qa/unit/ucalc.hxx +++ b/sc/qa/unit/ucalc.hxx @@ -341,6 +341,7 @@ public: void testNoteDeleteRow(); void testNoteDeleteCol(); void testNoteLifeCycle(); + void testNoteCopyPaste(); void testAreasWithNotes(); void testAnchoredRotatedShape(); void testCellTextWidth(); @@ -499,6 +500,7 @@ public: CPPUNIT_TEST(testNoteDeleteRow); CPPUNIT_TEST(testNoteDeleteCol); CPPUNIT_TEST(testNoteLifeCycle); + CPPUNIT_TEST(testNoteCopyPaste); CPPUNIT_TEST(testAreasWithNotes); CPPUNIT_TEST(testAnchoredRotatedShape); CPPUNIT_TEST(testCellTextWidth); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits