diff options
author | Kohei Yoshida <kohei.yoshida@suse.com> | 2011-09-10 00:43:05 -0400 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@suse.com> | 2011-09-12 13:22:07 -0400 |
commit | ea280cef9c5293a1865786a2e8736bb9524f8751 (patch) | |
tree | f66823d542fb64568657ea208ea01edb09937613 | |
parent | 463b1b56868474808eed087da1d1e542f2fed067 (diff) |
Added code to handle paste functions and skip empties.
-rw-r--r-- | sc/source/ui/view/viewfun3.cxx | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx index e839a7089181..aaa07f94577a 100644 --- a/sc/source/ui/view/viewfun3.cxx +++ b/sc/source/ui/view/viewfun3.cxx @@ -1792,6 +1792,21 @@ bool ScViewFunc::PasteFromClipToMultiRanges( } } + std::auto_ptr<ScDocument> pMixDoc; + if (bSkipEmpty || nFunction) + { + if (nFlags & IDF_CONTENTS) + { + pMixDoc.reset(new ScDocument(SCDOCMODE_UNDO)); + pMixDoc->InitUndoSelected(pDoc, aMark, false, false); + for (size_t i = 0, n = aRanges.size(); i < n; ++i) + { + pDoc->CopyToDocument( + *aRanges[i], IDF_CONTENTS, false, pMixDoc.get(), &aMark, true); + } + } + } + if (nFlags & IDF_OBJECTS) pDocSh->MakeDrawLayer(); if (pDoc->IsUndoEnabled()) @@ -1807,6 +1822,12 @@ bool ScViewFunc::PasteFromClipToMultiRanges( false, false, true, bSkipEmpty, NULL); } + if (pMixDoc.get()) + { + for (size_t i = 0, n = aRanges.size(); i < n; ++i) + pDoc->MixDocument(*aRanges[i], nFunction, bSkipEmpty, pMixDoc.get()); + } + AdjustBlockHeight(); // update row heights before pasting objects // Then paste the objects. |