diff options
author | Armin Le Grand <alg@apache.org> | 2012-06-11 14:56:06 +0000 |
---|---|---|
committer | Armin Le Grand <alg@apache.org> | 2012-06-11 14:56:06 +0000 |
commit | bc85939149f7ae5b65343d7f27bf302a8e31d4b1 (patch) | |
tree | 1c4019a9eb109c227d826b8cd4016d3f0780dac4 | |
parent | fc17d3e1c60f18916786ddb4547a1c24d95ae51a (diff) |
#119287# Adapted to get the needed style as default style for all SdrGrafObj and SDrOle2Objs. Checked various scenarios, works well.
Notes
merged as: 0a29c5bedda700a86b46e3c3cd9c9e1ce1d4f278
-rw-r--r-- | sd/source/core/drawdoc.cxx | 3 | ||||
-rw-r--r-- | sd/source/ui/func/fuinsert.cxx | 19 | ||||
-rw-r--r-- | sd/source/ui/view/sdview4.cxx | 19 | ||||
-rw-r--r-- | svx/inc/svx/svdmodel.hxx | 5 | ||||
-rw-r--r-- | svx/source/svdraw/svdmodel.cxx | 1 | ||||
-rw-r--r-- | svx/source/svdraw/svdograf.cxx | 20 | ||||
-rw-r--r-- | svx/source/svdraw/svdoole2.cxx | 22 |
7 files changed, 51 insertions, 38 deletions
diff --git a/sd/source/core/drawdoc.cxx b/sd/source/core/drawdoc.cxx index ad66284c19af..cce06aba7acf 100644 --- a/sd/source/core/drawdoc.cxx +++ b/sd/source/core/drawdoc.cxx @@ -645,6 +645,9 @@ void SdDrawDocument::NewOrLoadCompleted(DocCreationMode eMode) String aName( SdResId(STR_STANDARD_STYLESHEET_NAME)); SetDefaultStyleSheet(static_cast<SfxStyleSheet*>(mxStyleSheetPool->Find(aName, SD_STYLE_FAMILY_GRAPHICS))); + // #119287# Set default StyleSheet for SdrGrafObj and SdrOle2Obj + SetDefaultStyleSheetForSdrGrafObjAndSdrOle2Obj(static_cast<SfxStyleSheet*>(mxStyleSheetPool->Find(String( SdResId(STR_POOLSHEET_OBJNOLINENOFILL)), SD_STYLE_FAMILY_GRAPHICS))); + // Draw-Outliner und Dokument Outliner initialisieren, // aber nicht den globalen Outliner, den der ist ja nicht // dokumentspezifisch wie StyleSheetPool und StyleRequestHandler diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx index 4b32b499c09e..23b31bee2fe6 100644 --- a/sd/source/ui/func/fuinsert.cxx +++ b/sd/source/ui/func/fuinsert.cxx @@ -354,25 +354,6 @@ void FuInsertOLE::DoExecute( SfxRequest& rReq ) SdrOle2Obj* pOleObj = new SdrOle2Obj( svt::EmbeddedObjectRef( xObj, nAspect ), aObjName, aRect ); SdrPageView* pPV = mpView->GetSdrPageView(); - if(pOleObj) - { - // #119287# - SdrModel* pModel = mpView ? mpView->GetModel() : 0; - SfxStyleSheetBasePool* pSfxStyleSheetBasePool = pModel ? pModel->GetStyleSheetPool() : 0; - SfxStyleSheet* pSheet = pSfxStyleSheetBasePool ? dynamic_cast< SfxStyleSheet* >(pSfxStyleSheetBasePool->Find(String(SdResId(STR_POOLSHEET_OBJNOLINENOFILL)), SD_STYLE_FAMILY_GRAPHICS)) : 0; - - if(pSheet) - { - pOleObj->SetStyleSheet(pSheet, false); - } - else - { - pOleObj->SetMergedItem(XFillStyleItem(XFILL_NONE)); - pOleObj->SetMergedItem(XLineStyleItem(XLINE_NONE)); - OSL_ENSURE(false, "Style Sheet for OLE not found (!)"); - } - } - // if we have a pick obj we need to make this new ole a pres obj replacing the current pick obj if( pPickObj ) { diff --git a/sd/source/ui/view/sdview4.cxx b/sd/source/ui/view/sdview4.cxx index eabd8cb01c89..7e836d4036e9 100644 --- a/sd/source/ui/view/sdview4.cxx +++ b/sd/source/ui/view/sdview4.cxx @@ -223,25 +223,6 @@ SdrGrafObj* View::InsertGraphic( const Graphic& rGraphic, sal_Int8& rAction, bIsPresTarget = pP->IsPresObj(pPickObj); } - if(pNewGrafObj) - { - // #119287# - SdrModel* pModel = pPV->GetView().GetModel(); - SfxStyleSheetBasePool* pSfxStyleSheetBasePool = pModel ? pModel->GetStyleSheetPool() : 0; - SfxStyleSheet* pSheet = pSfxStyleSheetBasePool ? dynamic_cast< SfxStyleSheet* >(pSfxStyleSheetBasePool->Find(String(SdResId(STR_POOLSHEET_OBJNOLINENOFILL)), SD_STYLE_FAMILY_GRAPHICS)) : 0; - - if(pSheet) - { - pNewGrafObj->SetStyleSheet(pSheet, false); - } - else - { - pNewGrafObj->SetMergedItem(XFillStyleItem(XFILL_NONE)); - pNewGrafObj->SetMergedItem(XLineStyleItem(XLINE_NONE)); - OSL_ENSURE(false, "Style Sheet for GraphicObject not found (!)"); - } - } - if( ( mnAction & DND_ACTION_MOVE ) && pPickObj && !bIsPresTarget ) { // replace object diff --git a/svx/inc/svx/svdmodel.hxx b/svx/inc/svx/svdmodel.hxx index 9d4c603191d4..be85f8781c63 100644 --- a/svx/inc/svx/svdmodel.hxx +++ b/svx/inc/svx/svdmodel.hxx @@ -208,6 +208,7 @@ protected: sal_uIntPtr nProgressOfs; // -Handler rtl::Reference< SfxStyleSheetBasePool > mxStyleSheetPool; SfxStyleSheet* pDefaultStyleSheet; + SfxStyleSheet* mpDefaultStyleSheetForSdrGrafObjAndSdrOle2Obj; // #119287# sfx2::LinkManager* pLinkManager; // LinkManager Container* pUndoStack; Container* pRedoStack; @@ -400,6 +401,10 @@ public: SfxStyleSheet* GetDefaultStyleSheet() const { return pDefaultStyleSheet; } void SetDefaultStyleSheet(SfxStyleSheet* pDefSS) { pDefaultStyleSheet = pDefSS; } + // #119287# default StyleSheet for SdrGrafObj and SdrOle2Obj + SfxStyleSheet* GetDefaultStyleSheetForSdrGrafObjAndSdrOle2Obj() const { return mpDefaultStyleSheetForSdrGrafObjAndSdrOle2Obj; } + void SetDefaultStyleSheetForSdrGrafObjAndSdrOle2Obj(SfxStyleSheet* pDefSS) { mpDefaultStyleSheetForSdrGrafObjAndSdrOle2Obj = pDefSS; } + sfx2::LinkManager* GetLinkManager() { return pLinkManager; } void SetLinkManager( sfx2::LinkManager* pLinkMgr ) { pLinkManager = pLinkMgr; } diff --git a/svx/source/svdraw/svdmodel.cxx b/svx/source/svdraw/svdmodel.cxx index 2fb1b26f21af..4f00079b2754 100644 --- a/svx/source/svdraw/svdmodel.cxx +++ b/svx/source/svdraw/svdmodel.cxx @@ -134,6 +134,7 @@ void SdrModel::ImpCtor(SfxItemPool* pPool, ::comphelper::IEmbeddedHelper* _pEmbe nProgressMax=0; nProgressOfs=0; pDefaultStyleSheet=NULL; + mpDefaultStyleSheetForSdrGrafObjAndSdrOle2Obj = 0; pLinkManager=NULL; pUndoStack=NULL; pRedoStack=NULL; diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx index 18edd53c0662..ddecc010385f 100644 --- a/svx/source/svdraw/svdograf.cxx +++ b/svx/source/svdraw/svdograf.cxx @@ -1083,6 +1083,26 @@ void SdrGrafObj::SetPage( SdrPage* pNewPage ) ImpLinkAbmeldung(); } + if(!pModel && !GetStyleSheet() && pNewPage->GetModel()) + { + // #119287# Set default StyleSheet for SdrGrafObj here, it is different from 'Default'. This + // needs to be done before the style 'Default' is set from the :SetModel() call which is triggered + // from the following :SetPage(). + // TTTT: Needs to be moved in branch aw080 due to having a SdrModel from the beginning, is at this + // place for convenience currently (works in both versions, is not in the way) + SfxStyleSheet* pSheet = pNewPage->GetModel()->GetDefaultStyleSheetForSdrGrafObjAndSdrOle2Obj(); + + if(pSheet) + { + SetStyleSheet(pSheet, false); + } + else + { + SetMergedItem(XFillStyleItem(XFILL_NONE)); + SetMergedItem(XLineStyleItem(XLINE_NONE)); + } + } + SdrRectObj::SetPage( pNewPage ); if(aFileName.Len() && bInsert) diff --git a/svx/source/svdraw/svdoole2.cxx b/svx/source/svdraw/svdoole2.cxx index ea18d7fa547f..3093d636a4de 100644 --- a/svx/source/svdraw/svdoole2.cxx +++ b/svx/source/svdraw/svdoole2.cxx @@ -94,6 +94,8 @@ #include <basegfx/polygon/b2dpolypolygon.hxx> #include <editeng/outlobj.hxx> +#include <svx/svdpage.hxx> + using namespace ::rtl; using namespace ::com::sun::star; @@ -1525,6 +1527,26 @@ void SdrOle2Obj::SetPage(SdrPage* pNewPage) if (bRemove && mpImpl->mbConnected ) Disconnect(); + if(!pModel && !GetStyleSheet() && pNewPage->GetModel()) + { + // #119287# Set default StyleSheet for SdrGrafObj here, it is different from 'Default'. This + // needs to be done before the style 'Default' is set from the :SetModel() call which is triggered + // from the following :SetPage(). + // TTTT: Needs to be moved in branch aw080 due to having a SdrModel from the beginning, is at this + // place for convenience currently (works in both versions, is not in the way) + SfxStyleSheet* pSheet = pNewPage->GetModel()->GetDefaultStyleSheetForSdrGrafObjAndSdrOle2Obj(); + + if(pSheet) + { + SetStyleSheet(pSheet, false); + } + else + { + SetMergedItem(XFillStyleItem(XFILL_NONE)); + SetMergedItem(XLineStyleItem(XLINE_NONE)); + } + } + SdrRectObj::SetPage(pNewPage); if (bInsert && !mpImpl->mbConnected ) |