sc/qa/unit/ucalc.hxx            |    2 ++
 sc/qa/unit/ucalc_condformat.cxx |   33 +++++++++++++++++++++++++++++++++
 sc/source/core/data/table7.cxx  |    4 ++--
 3 files changed, 37 insertions(+), 2 deletions(-)

New commits:
commit 36d7e21c00d59eead018ad8ef339847a782b9734
Author: Markus Mohrhard <markus.mohrh...@googlemail.com>
Date:   Thu Mar 16 21:35:05 2017 +0100

    add test for tdf#106242
    
    Change-Id: I11f67c118617c78fa86b87afed87fcddba4e69e1
    Reviewed-on: https://gerrit.libreoffice.org/35295
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com>

diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx
index c48a25f126af..fb2390c1f5da 100644
--- a/sc/qa/unit/ucalc.hxx
+++ b/sc/qa/unit/ucalc.hxx
@@ -468,6 +468,7 @@ public:
     void testCondCopyPaste();
     void testCondCopyPasteSingleCell(); //e.g. fdo#82503
     void testCondCopyPasteSingleCellToRange(); //e.g. fdo#82503
+    void testCondCopyPasteSingleRowToRange(); //e.g. tdf#106242
     void testCondCopyPasteSheetBetweenDoc();
     void testCondCopyPasteSheet();
     void testIconSet();
@@ -745,6 +746,7 @@ public:
     CPPUNIT_TEST(testCondCopyPaste);
     CPPUNIT_TEST(testCondCopyPasteSingleCell);
     CPPUNIT_TEST(testCondCopyPasteSingleCellToRange);
+    CPPUNIT_TEST(testCondCopyPasteSingleRowToRange);
     CPPUNIT_TEST(testCondCopyPasteSheetBetweenDoc);
     CPPUNIT_TEST(testCondCopyPasteSheet);
     CPPUNIT_TEST(testCondFormatEndsWithStr);
diff --git a/sc/qa/unit/ucalc_condformat.cxx b/sc/qa/unit/ucalc_condformat.cxx
index ee0d8abee066..0b0a8a2af97b 100644
--- a/sc/qa/unit/ucalc_condformat.cxx
+++ b/sc/qa/unit/ucalc_condformat.cxx
@@ -378,6 +378,39 @@ void Test::testCondCopyPasteSingleCellToRange()
     m_pDoc->DeleteTab(0);
 }
 
+void Test::testCondCopyPasteSingleRowToRange()
+{
+    m_pDoc->InsertTab(0, "Test");
+
+    ScConditionalFormat* pFormat = new ScConditionalFormat(1, m_pDoc);
+    ScRange aCondFormatRange(0,0,0,0,0,0);
+    ScRangeList aRangeList(aCondFormatRange);
+    pFormat->SetRange(aRangeList);
+
+    ScCondFormatEntry* pEntry = new 
ScCondFormatEntry(SC_COND_DIRECT,"=B2","",m_pDoc,ScAddress(0,0,0),ScGlobal::GetRscString(STR_STYLENAME_RESULT));
+    pFormat->AddEntry(pEntry);
+    m_pDoc->AddCondFormat(pFormat, 0);
+
+    ScDocument aClipDoc(SCDOCMODE_CLIP);
+    copyToClip(m_pDoc, ScRange(0,0,0,MAXCOL,0,0), &aClipDoc);
+    ScRange aTargetRange(0,4,0,MAXCOL,4,0);
+    pasteOneCellFromClip(m_pDoc, aTargetRange, &aClipDoc);
+
+    std::set<sal_uLong> aCondFormatIndices;
+
+    ScConditionalFormat* pNewFormat = m_pDoc->GetCondFormat(0, 4, 0);
+    CPPUNIT_ASSERT(pNewFormat);
+    CPPUNIT_ASSERT(pNewFormat->GetKey() != pFormat->GetKey());
+
+    for (SCCOL nCol = 1; nCol <= MAXCOL; ++nCol)
+    {
+        ScConditionalFormat* pNewFormat2 = m_pDoc->GetCondFormat(nCol, 4, 0);
+        CPPUNIT_ASSERT(!pNewFormat2);
+    }
+
+    m_pDoc->DeleteTab(0);
+}
+
 void Test::testCondCopyPasteSheetBetweenDoc()
 {
     m_pDoc->InsertTab(0, "Test");
commit d4bdac90c3b12d1de74b99786f2e830ee2ae18dc
Author: Markus Mohrhard <markus.mohrh...@googlemail.com>
Date:   Thu Mar 16 21:46:57 2017 +0100

    CopyOneCellFromClip also copies one row ranges, tdf#106242
    
    Change-Id: I1750d411766ba2b4128fc1c00769a8b2e56e7547
    Reviewed-on: https://gerrit.libreoffice.org/35294
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Markus Mohrhard <markus.mohrh...@googlemail.com>

diff --git a/sc/source/core/data/table7.cxx b/sc/source/core/data/table7.cxx
index a84942912aa5..72595dae9b77 100644
--- a/sc/source/core/data/table7.cxx
+++ b/sc/source/core/data/table7.cxx
@@ -65,10 +65,10 @@ void ScTable::CopyOneCellFromClip(
         assert(nColOffset >= 0);
         aCol[nCol].CopyOneCellFromClip(rCxt, nRow1, nRow2, nColOffset);
 
-        if (rCxt.getInsertFlag() & InsertDeleteFlags::ATTRIB)
+        if ((rCxt.getInsertFlag() & InsertDeleteFlags::ATTRIB) && (nColOffset 
== 0))
         {
             for (SCROW nRow = nRow1; nRow <= nRow2; ++nRow)
-                CopyConditionalFormat(nCol, nRow, nCol, nRow, nCol - 
aSrcRange.aStart.Col(),
+                CopyConditionalFormat(nCol, nRow, nCol + nSrcColSize - 1, 
nRow, nCol - aSrcRange.aStart.Col(),
                         nRow - nSrcRow, pSrcTab);
         }
     }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to