sc/qa/unit/ucalc.cxx | 35 +++++++++++++++++++++++++++++++++++ sc/qa/unit/ucalc.hxx | 1 + sc/source/core/data/table2.cxx | 2 +- 3 files changed, 37 insertions(+), 1 deletion(-)
New commits: commit a14cfd3d77104aee3e3c3d981a135161295197df Author: Markus Mohrhard <[email protected]> Date: Mon Dec 2 07:37:15 2013 +0100 add test for fdo#72149 Change-Id: I303bbfe14c258f45985a6ed7a4130d1d0fe2dcd8 diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index 809b4c6..2fc7702 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -4678,6 +4678,41 @@ void Test::testCondFormatInsertRow() m_pDoc->DeleteTab(0); } +void Test::testCondCopyPaste() +{ + m_pDoc->InsertTab(0, "Test"); + + ScConditionalFormat* pFormat = new ScConditionalFormat(1, m_pDoc); + ScRange aCondFormatRange(0,0,0,3,3,0); + ScRangeList aRangeList(aCondFormatRange); + pFormat->AddRange(aRangeList); + + ScCondFormatEntry* pEntry = new ScCondFormatEntry(SC_COND_DIRECT,"=B2","",m_pDoc,ScAddress(0,0,0),ScGlobal::GetRscString(STR_STYLENAME_RESULT)); + pFormat->AddEntry(pEntry); + sal_uLong nIndex = m_pDoc->AddCondFormat(pFormat, 0); + + ScDocument aClipDoc(SCDOCMODE_CLIP); + copyToClip(m_pDoc, aCondFormatRange, &aClipDoc); + + ScRange aTargetRange(4,4,0,7,7,0); + pasteFromClip(m_pDoc, aTargetRange, &aClipDoc); + + ScConditionalFormat* pPastedFormat = m_pDoc->GetCondFormat(7,7,0); + CPPUNIT_ASSERT(pPastedFormat); + + CPPUNIT_ASSERT_EQUAL(ScRangeList(aTargetRange), pPastedFormat->GetRange()); + CPPUNIT_ASSERT( nIndex != pPastedFormat->GetKey()); + const SfxPoolItem* pItem = m_pDoc->GetAttr( 7, 7, 0, ATTR_CONDITIONAL ); + const ScCondFormatItem* pCondFormatItem = static_cast<const ScCondFormatItem*>(pItem); + + CPPUNIT_ASSERT(pCondFormatItem); + CPPUNIT_ASSERT_EQUAL(size_t(1), pCondFormatItem->GetCondFormatData().size()); + CPPUNIT_ASSERT( nIndex != pCondFormatItem->GetCondFormatData().at(0) ); + + + m_pDoc->DeleteTab(0); +} + void Test::testMixData() { m_pDoc->InsertTab(0, "Test"); diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx index 1298e73..6538efc 100644 --- a/sc/qa/unit/ucalc.hxx +++ b/sc/qa/unit/ucalc.hxx @@ -285,6 +285,7 @@ public: void testCondFormatINSDEL(); void testCondFormatInsertRow(); void testCondFormatInsertCol(); + void testCondCopyPaste(); CPPUNIT_TEST_SUITE(Test); #if CALC_TEST_PERF commit 7c2936757ca10ccb692b05e6564783313f3576d1 Author: Markus Mohrhard <[email protected]> Date: Mon Dec 2 06:05:19 2013 +0100 we want to delete anytime that attribs are overwritten, fdo#72149 Change-Id: I1ed50e6daf5b363c46e31d1a0efacf7728621b1a diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx index d7fca4f..30771ab 100644 --- a/sc/source/core/data/table2.cxx +++ b/sc/source/core/data/table2.cxx @@ -662,7 +662,7 @@ void ScTable::CopyFromClip( for ( SCCOL i = nCol1; i <= nCol2; i++) aCol[i].CopyFromClip(rCxt, nRow1, nRow2, nDy, pTable->aCol[i - nDx]); // notes are handles at column level - if (rCxt.getInsertFlag() == IDF_ATTRIB) + if (rCxt.getInsertFlag() & IDF_ATTRIB) { // make sure that there are no old references to the cond formats sal_uInt16 nWhichArray[2]; _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
