Kaydet (Commit) 84b4b7b9 authored tarafından Andrzej Hunt's avatar Andrzej Hunt Kaydeden (comit) Caolán McNamara

fdo#51525 Add Paste Unformatted Text to Impress.

Change-Id: I4eff66ee2990fd7bf6a9be6b9f0801e7a70206e9
Reviewed-on: https://gerrit.libreoffice.org/7783Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 7cd90162
...@@ -2927,6 +2927,12 @@ ...@@ -2927,6 +2927,12 @@
<value xml:lang="en-US">.uno:PasteSpecial</value> <value xml:lang="en-US">.uno:PasteSpecial</value>
</prop> </prop>
</node> </node>
<node oor:name="V_SHIFT_MOD1_MOD2" oor:op="replace">
<prop oor:name="Command">
<value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
<value xml:lang="en-US">.uno:PasteUnformatted</value>
</prop>
</node>
<node oor:name="X_MOD1" oor:op="replace"> <node oor:name="X_MOD1" oor:op="replace">
<prop oor:name="Command"> <prop oor:name="Command">
<value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value> <value xml:lang="x-no-translate">I10N SHORTCUTS - NO TRANSLATE</value>
......
...@@ -3425,6 +3425,11 @@ ...@@ -3425,6 +3425,11 @@
<value>1</value> <value>1</value>
</prop> </prop>
</node> </node>
<node oor:name=".uno:PasteUnformatted" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Paste Unformatted Text</value>
</prop>
</node>
<node oor:name=".uno:Delete" oor:op="replace"> <node oor:name=".uno:Delete" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string"> <prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Delete C~ontents...</value> <value xml:lang="en-US">Delete C~ontents...</value>
......
...@@ -1081,11 +1081,6 @@ ...@@ -1081,11 +1081,6 @@
<value>1</value> <value>1</value>
</prop> </prop>
</node> </node>
<node oor:name=".uno:PasteUnformatted" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Paste Unformatted Text</value>
</prop>
</node>
<node oor:name=".uno:PasteSpecial" oor:op="replace"> <node oor:name=".uno:PasteSpecial" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string"> <prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Paste ~Special...</value> <value xml:lang="en-US">Paste ~Special...</value>
......
...@@ -96,6 +96,11 @@ interface DrawView ...@@ -96,6 +96,11 @@ interface DrawView
ExecMethod = FuSupport ; ExecMethod = FuSupport ;
StateMethod = GetMenuState ; StateMethod = GetMenuState ;
] ]
SID_PASTE_UNFORMATTED
[
ExecMethod = FuSupport ;
StateMethod = GetMenuState ;
]
SID_CLIPBOARD_FORMAT_ITEMS SID_CLIPBOARD_FORMAT_ITEMS
[ [
ExecMethod = FuSupport ; ExecMethod = FuSupport ;
......
...@@ -36,6 +36,11 @@ interface OutlineView ...@@ -36,6 +36,11 @@ interface OutlineView
ExecMethod = FuSupport ; ExecMethod = FuSupport ;
StateMethod = GetMenuState ; StateMethod = GetMenuState ;
] ]
SID_PASTE_UNFORMATTED // ole : no, status : ?
[
ExecMethod = FuSupport ;
StateMethod = GetMenuState ;
]
SID_DELETE // ole : no, status : ? SID_DELETE // ole : no, status : ?
[ [
ExecMethod = FuSupport ; ExecMethod = FuSupport ;
......
...@@ -262,6 +262,7 @@ void SdDLL::RegisterControllers() ...@@ -262,6 +262,7 @@ void SdDLL::RegisterControllers()
svx::FormatPaintBrushToolBoxControl::RegisterControl(SID_FORMATPAINTBRUSH, pMod ); svx::FormatPaintBrushToolBoxControl::RegisterControl(SID_FORMATPAINTBRUSH, pMod );
SvxClipBoardControl::RegisterControl( SID_PASTE, pMod ); SvxClipBoardControl::RegisterControl( SID_PASTE, pMod );
SvxClipBoardControl::RegisterControl( SID_PASTE_UNFORMATTED, pMod );
svx::ExtrusionColorControl::RegisterControl( SID_EXTRUSION_3D_COLOR, pMod ); svx::ExtrusionColorControl::RegisterControl( SID_EXTRUSION_3D_COLOR, pMod );
svx::FontWorkShapeTypeControl::RegisterControl( SID_FONTWORK_SHAPE_TYPE, pMod ); svx::FontWorkShapeTypeControl::RegisterControl( SID_FONTWORK_SHAPE_TYPE, pMod );
......
...@@ -278,6 +278,21 @@ void FuOutlineText::DoPaste() ...@@ -278,6 +278,21 @@ void FuOutlineText::DoPaste()
pOutlineView->GetViewByWindow(mpWindow)->PasteSpecial(); pOutlineView->GetViewByWindow(mpWindow)->PasteSpecial();
} }
/**
* Paste object as unformatted text from clipboard
*/
void FuOutlineText::DoPasteUnformatted()
{
TransferableDataHelper aDataHelper( TransferableDataHelper::CreateFromSystemClipboard( mpViewShell->GetActiveWindow() ) );
if (aDataHelper.GetTransferable().is())
{
OUString aText;
if (aDataHelper.GetString(FORMAT_STRING, aText))
pOutlineView->GetViewByWindow(mpWindow)->InsertText(aText);
}
}
} // end of namespace sd } // end of namespace sd
......
...@@ -937,6 +937,24 @@ void FuPoor::DoPaste() ...@@ -937,6 +937,24 @@ void FuPoor::DoPaste()
} }
} }
/**
* Paste unformatted text from clipboard
*/
void FuPoor::DoPasteUnformatted()
{
if (mpView)
{
sal_Int8 nAction = DND_ACTION_COPY;
TransferableDataHelper aDataHelper( TransferableDataHelper::CreateFromSystemClipboard( mpViewShell->GetActiveWindow() ) );
if (aDataHelper.GetTransferable().is())
{
mpView->InsertData( aDataHelper,
mpWindow->PixelToLogic( Rectangle( Point(), mpWindow->GetOutputSizePixel() ).Center() ),
nAction, sal_False, FORMAT_STRING);
}
}
}
/** /**
* Timer handler for Drag&Drop * Timer handler for Drag&Drop
*/ */
......
...@@ -50,6 +50,7 @@ public: ...@@ -50,6 +50,7 @@ public:
virtual void DoCut(); virtual void DoCut();
virtual void DoCopy(); virtual void DoCopy();
virtual void DoPaste(); virtual void DoPaste();
virtual void DoPasteUnformatted();
virtual void Activate(); // Function aktivieren virtual void Activate(); // Function aktivieren
virtual void Deactivate(); // Function deaktivieren virtual void Deactivate(); // Function deaktivieren
......
...@@ -63,6 +63,7 @@ public: ...@@ -63,6 +63,7 @@ public:
virtual void DoCut(); virtual void DoCut();
virtual void DoCopy(); virtual void DoCopy();
virtual void DoPaste(); virtual void DoPaste();
virtual void DoPasteUnformatted();
// Mouse- & Key-Events; Returnwert=sal_True: Event wurde bearbeitet // Mouse- & Key-Events; Returnwert=sal_True: Event wurde bearbeitet
virtual sal_Bool KeyInput(const KeyEvent& rKEvt); virtual sal_Bool KeyInput(const KeyEvent& rKEvt);
......
...@@ -198,6 +198,7 @@ IMPL_LINK( DrawViewShell, ClipboardChanged, TransferableDataHelper*, pDataHelper ...@@ -198,6 +198,7 @@ IMPL_LINK( DrawViewShell, ClipboardChanged, TransferableDataHelper*, pDataHelper
SfxBindings& rBindings = GetViewFrame()->GetBindings(); SfxBindings& rBindings = GetViewFrame()->GetBindings();
rBindings.Invalidate( SID_PASTE ); rBindings.Invalidate( SID_PASTE );
rBindings.Invalidate( SID_PASTE_SPECIAL ); rBindings.Invalidate( SID_PASTE_SPECIAL );
rBindings.Invalidate( SID_PASTE_UNFORMATTED );
rBindings.Invalidate( SID_CLIPBOARD_FORMAT_ITEMS ); rBindings.Invalidate( SID_CLIPBOARD_FORMAT_ITEMS );
} }
return 0; return 0;
...@@ -601,6 +602,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet ) ...@@ -601,6 +602,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
// clipboard (paste) // clipboard (paste)
if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PASTE ) || if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PASTE ) ||
SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PASTE_SPECIAL ) || SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PASTE_SPECIAL ) ||
SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_PASTE_UNFORMATTED ) ||
SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CLIPBOARD_FORMAT_ITEMS ) ) SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CLIPBOARD_FORMAT_ITEMS ) )
{ {
if ( !mpClipEvtLstnr ) if ( !mpClipEvtLstnr )
...@@ -627,6 +629,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet ) ...@@ -627,6 +629,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
{ {
rSet.DisableItem( SID_PASTE ); rSet.DisableItem( SID_PASTE );
rSet.DisableItem( SID_PASTE_SPECIAL ); rSet.DisableItem( SID_PASTE_SPECIAL );
rSet.DisableItem( SID_PASTE_UNFORMATTED );
rSet.DisableItem( SID_CLIPBOARD_FORMAT_ITEMS ); rSet.DisableItem( SID_CLIPBOARD_FORMAT_ITEMS );
} }
else if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CLIPBOARD_FORMAT_ITEMS ) ) else if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_CLIPBOARD_FORMAT_ITEMS ) )
...@@ -1062,6 +1065,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet ) ...@@ -1062,6 +1065,7 @@ void DrawViewShell::GetMenuState( SfxItemSet &rSet )
{ {
rSet.DisableItem( SID_PASTE ); rSet.DisableItem( SID_PASTE );
rSet.DisableItem( SID_PASTE_SPECIAL ); rSet.DisableItem( SID_PASTE_SPECIAL );
rSet.DisableItem( SID_PASTE_UNFORMATTED );
rSet.DisableItem( SID_CLIPBOARD_FORMAT_ITEMS ); rSet.DisableItem( SID_CLIPBOARD_FORMAT_ITEMS );
rSet.DisableItem( SID_INSERT_FLD_DATE_FIX ); rSet.DisableItem( SID_INSERT_FLD_DATE_FIX );
......
...@@ -798,6 +798,30 @@ void DrawViewShell::FuSupport(SfxRequest& rReq) ...@@ -798,6 +798,30 @@ void DrawViewShell::FuSupport(SfxRequest& rReq)
} }
break; break;
case SID_PASTE_UNFORMATTED:
{
WaitObject aWait( (Window*)GetActiveWindow() );
if(HasCurrentFunction())
{
GetCurrentFunction()->DoPasteUnformatted();
}
else if(mpDrawView)
{
sal_Int8 nAction = DND_ACTION_COPY;
TransferableDataHelper aDataHelper( TransferableDataHelper::CreateFromSystemClipboard( GetActiveWindow() ) );
if (aDataHelper.GetTransferable().is())
{
mpDrawView->InsertData( aDataHelper,
GetActiveWindow()->PixelToLogic( Rectangle( Point(), GetActiveWindow()->GetOutputSizePixel() ).Center() ),
nAction, sal_False, FORMAT_STRING);
}
}
rReq.Ignore ();
}
break;
case SID_CLIPBOARD_FORMAT_ITEMS: case SID_CLIPBOARD_FORMAT_ITEMS:
{ {
WaitObject aWait( (Window*)GetActiveWindow() ); WaitObject aWait( (Window*)GetActiveWindow() );
......
...@@ -331,6 +331,7 @@ void OutlineViewShell::FuTemporary(SfxRequest &rReq) ...@@ -331,6 +331,7 @@ void OutlineViewShell::FuTemporary(SfxRequest &rReq)
Invalidate(SID_CUT); Invalidate(SID_CUT);
Invalidate(SID_COPY); Invalidate(SID_COPY);
Invalidate(SID_PASTE); Invalidate(SID_PASTE);
Invalidate(SID_PASTE_UNFORMATTED);
} }
void OutlineViewShell::ShowSlideShow(SfxRequest& rReq) void OutlineViewShell::ShowSlideShow(SfxRequest& rReq)
...@@ -628,6 +629,7 @@ void OutlineViewShell::FuTemporaryModify(SfxRequest &rReq) ...@@ -628,6 +629,7 @@ void OutlineViewShell::FuTemporaryModify(SfxRequest &rReq)
Invalidate(SID_CUT); Invalidate(SID_CUT);
Invalidate(SID_COPY); Invalidate(SID_COPY);
Invalidate(SID_PASTE); Invalidate(SID_PASTE);
Invalidate(SID_PASTE_UNFORMATTED);
} }
......
...@@ -475,6 +475,7 @@ void OutlineViewShell::FuSupport(SfxRequest &rReq) ...@@ -475,6 +475,7 @@ void OutlineViewShell::FuSupport(SfxRequest &rReq)
(nSlot == SID_TRANSLITERATE_KATAGANA) || (nSlot == SID_TRANSLITERATE_KATAGANA) ||
(nSlot == SID_CUT) || (nSlot == SID_CUT) ||
(nSlot == SID_PASTE) || (nSlot == SID_PASTE) ||
(nSlot == SID_PASTE_UNFORMATTED) ||
(nSlot == SID_DELETE))) (nSlot == SID_DELETE)))
{ {
aGuard.reset( new OutlineViewModelChangeGuard( *pOlView ) ); aGuard.reset( new OutlineViewModelChangeGuard( *pOlView ) );
...@@ -529,6 +530,29 @@ void OutlineViewShell::FuSupport(SfxRequest &rReq) ...@@ -529,6 +530,29 @@ void OutlineViewShell::FuSupport(SfxRequest &rReq)
} }
break; break;
case SID_PASTE_UNFORMATTED:
{
OutlineViewPageChangesGuard aGuard2(pOlView);
if(HasCurrentFunction())
{
GetCurrentFunction()->DoPasteUnformatted();
}
else if(pOlView)
{
sal_Int8 nAction = DND_ACTION_COPY;
TransferableDataHelper aDataHelper( TransferableDataHelper::CreateFromSystemClipboard( GetActiveWindow() ) );
if (aDataHelper.GetTransferable().is())
{
pOlView->InsertData( aDataHelper,
GetActiveWindow()->PixelToLogic( Rectangle( Point(), GetActiveWindow()->GetOutputSizePixel() ).Center() ),
nAction, sal_False, FORMAT_STRING);
}
}
rReq.Ignore ();
}
break;
case SID_DELETE: case SID_DELETE:
{ {
if( pOlView ) if( pOlView )
...@@ -735,6 +759,7 @@ IMPL_LINK( OutlineViewShell, ClipboardChanged, TransferableDataHelper*, pDataHel ...@@ -735,6 +759,7 @@ IMPL_LINK( OutlineViewShell, ClipboardChanged, TransferableDataHelper*, pDataHel
SfxBindings& rBindings = GetViewFrame()->GetBindings(); SfxBindings& rBindings = GetViewFrame()->GetBindings();
rBindings.Invalidate( SID_PASTE ); rBindings.Invalidate( SID_PASTE );
rBindings.Invalidate( SID_PASTE_SPECIAL ); rBindings.Invalidate( SID_PASTE_SPECIAL );
rBindings.Invalidate( SID_PASTE_UNFORMATTED );
rBindings.Invalidate( SID_CLIPBOARD_FORMAT_ITEMS ); rBindings.Invalidate( SID_CLIPBOARD_FORMAT_ITEMS );
} }
return 0; return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment