[Libreoffice-commits] core.git: Branch 'private/kohei/chart-bugs' - sc/source
Kohei Yoshida
kohei.yoshida at collabora.com
Fri Jun 13 12:47:01 PDT 2014
sc/source/ui/app/drwtrans.cxx | 31 +++++++++++++++++++------------
sc/source/ui/inc/drwtrans.hxx | 2 ++
2 files changed, 21 insertions(+), 12 deletions(-)
New commits:
commit 272e92b99ced5e70403a2133e627a5f91807a6fb
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Fri Jun 13 15:43:45 2014 -0400
Extract common method.
Change-Id: I0b1368110a228a835108ab7958b97be086bec7a6
diff --git a/sc/source/ui/app/drwtrans.cxx b/sc/source/ui/app/drwtrans.cxx
index 1396857..bd80dac 100644
--- a/sc/source/ui/app/drwtrans.cxx
+++ b/sc/source/ui/app/drwtrans.cxx
@@ -335,12 +335,8 @@ void ScDrawTransferObj::AddSupportedFormats()
AddFormat( SOT_FORMATSTR_ID_OBJECTDESCRIPTOR );
AddFormat( SOT_FORMAT_GDIMETAFILE );
- if ( !aOleData.GetTransferable().is() )
- {
- SdrOle2Obj* pObj = GetSingleObject();
- if ( pObj && pObj->GetObjRef().is() )
- aOleData = TransferableDataHelper( new SvEmbedTransferHelper( pObj->GetObjRef(), pObj->GetGraphic(), pObj->GetAspect() ) ) ;
- }
+ CreateOLEData();
+
if ( aOleData.GetTransferable().is() )
{
// get format list from object snapshot
@@ -379,12 +375,7 @@ bool ScDrawTransferObj::GetData( const css::datatransfer::DataFlavor& rFlavor, c
if ( bOleObj && nFormat != SOT_FORMAT_GDIMETAFILE )
{
- if ( !aOleData.GetTransferable().is() )
- {
- SdrOle2Obj* pObj = GetSingleObject();
- if ( pObj && pObj->GetObjRef().is() )
- aOleData = TransferableDataHelper( new SvEmbedTransferHelper( pObj->GetObjRef(), pObj->GetGraphic(), pObj->GetAspect() ) ) ;
- }
+ CreateOLEData();
if( aOleData.GetTransferable().is() && aOleData.HasFormat( rFlavor ) )
{
@@ -715,6 +706,22 @@ SdrOle2Obj* ScDrawTransferObj::GetSingleObject()
return NULL;
}
+void ScDrawTransferObj::CreateOLEData()
+{
+ if (aOleData.GetTransferable().is())
+ // Already created.
+ return;
+
+ SdrOle2Obj* pObj = GetSingleObject();
+ if (!pObj || !pObj->GetObjRef().is())
+ // No OLE object present.
+ return;
+
+ aOleData = TransferableDataHelper(
+ new SvEmbedTransferHelper(
+ pObj->GetObjRef(), pObj->GetGraphic(), pObj->GetAspect()));
+}
+
// initialize aDocShellRef with a live document from the ClipDoc
diff --git a/sc/source/ui/inc/drwtrans.hxx b/sc/source/ui/inc/drwtrans.hxx
index 8893b19..55a7301 100644
--- a/sc/source/ui/inc/drwtrans.hxx
+++ b/sc/source/ui/inc/drwtrans.hxx
@@ -67,6 +67,8 @@ private:
void InitDocShell();
SdrOle2Obj* GetSingleObject();
+ void CreateOLEData();
+
public:
ScDrawTransferObj( SdrModel* pClipModel, ScDocShell* pContainerShell,
const TransferableObjectDescriptor& rDesc );
More information about the Libreoffice-commits
mailing list