tdf#112935 Paste as Unformatted doesn't work in shapes and comments
The shapes and comments code in sw and sc assumes
that OutlinerView::Paste does paste as unformatted
text, and OutlinerView::PasteSpecial does paste as
formatted, similar to the corresponding methods of
EditView, which it's supposed to call internally.
But the reality is that OutlinerView::Paste just
calls PasteSpecial, with a comment "HACK(SD does
not call PasteSpecial)". All this situation goes
back to "initial import" commits.
This commit changes OutlinerView::Paste to paste
as unformatted (by default). Call sites that were
using it, but apparently wanted formatted output,
were changed to an explicit PasteSpecial call.
Change-Id: I1d7472039fb9fe09810260a199e216ec95765b10
Reviewed-on: https://gerrit.libreoffice.org/59904
Tested-by: Jenkins
Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
diff --git a/editeng/source/outliner/outlvw.cxx b/editeng/source/outliner/outlvw.cxx
index b51cbbb..f86f707 100644
--- a/editeng/source/outliner/outlvw.cxx
+++ b/editeng/source/outliner/outlvw.cxx
@@ -669,12 +669,12 @@ void OutlinerView::Cut()
}
}
void OutlinerView::Paste()
void OutlinerView::PasteSpecial()
{
PasteSpecial(); // HACK(SD does not call PasteSpecial)
Paste( true );
}
void OutlinerView::PasteSpecial()
void OutlinerView::Paste( bool bUseSpecial )
{
if ( !ImpCalcSelectedPages( false ) || pOwner->ImpCanDeleteSelectedPages( this ) )
{
@@ -682,7 +682,11 @@ void OutlinerView::PasteSpecial()
pOwner->pEditEngine->SetUpdateMode( false );
pOwner->bPasting = true;
pEditView->PasteSpecial();
if ( bUseSpecial )
pEditView->PasteSpecial();
else
pEditView->Paste();
if ( pOwner->ImplGetOutlinerMode() == OutlinerMode::OutlineObject )
{
diff --git a/editeng/source/uno/unoviwou.cxx b/editeng/source/uno/unoviwou.cxx
index ca404db..4da6560 100644
--- a/editeng/source/uno/unoviwou.cxx
+++ b/editeng/source/uno/unoviwou.cxx
@@ -150,7 +150,7 @@ bool SvxDrawOutlinerViewForwarder::Cut()
bool SvxDrawOutlinerViewForwarder::Paste()
{
mrOutlinerView.Paste();
mrOutlinerView.PasteSpecial();
return true;
}
diff --git a/include/editeng/outliner.hxx b/include/editeng/outliner.hxx
index e425858..b630859 100644
--- a/include/editeng/outliner.hxx
+++ b/include/editeng/outliner.hxx
@@ -274,7 +274,7 @@ public:
void Cut();
void Copy();
void Paste();
void Paste( bool bUseSpecial = false );
void PasteSpecial();
const SfxStyleSheet* GetStyleSheet() const;
diff --git a/sw/source/uibase/shells/annotsh.cxx b/sw/source/uibase/shells/annotsh.cxx
index 021d23f6..19a5133 100644
--- a/sw/source/uibase/shells/annotsh.cxx
+++ b/sw/source/uibase/shells/annotsh.cxx
@@ -904,7 +904,7 @@ void SwAnnotationShell::ExecClpbrd(SfxRequest const &rReq)
break;
case SID_PASTE:
if (pPostItMgr->GetActiveSidebarWin()->GetLayoutStatus()!=SwPostItHelper::DELETED)
pOLV->Paste();
pOLV->PasteSpecial();
break;
case SID_PASTE_SPECIAL:
{