summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmin Le Grand <alg@apache.org>2012-06-11 14:56:06 +0000
committerArmin Le Grand <alg@apache.org>2012-06-11 14:56:06 +0000
commitbc85939149f7ae5b65343d7f27bf302a8e31d4b1 (patch)
tree1c4019a9eb109c227d826b8cd4016d3f0780dac4
parentfc17d3e1c60f18916786ddb4547a1c24d95ae51a (diff)
#119287# Adapted to get the needed style as default style for all SdrGrafObj and SDrOle2Objs. Checked various scenarios, works well.
Notes
-rw-r--r--sd/source/core/drawdoc.cxx3
-rw-r--r--sd/source/ui/func/fuinsert.cxx19
-rw-r--r--sd/source/ui/view/sdview4.cxx19
-rw-r--r--svx/inc/svx/svdmodel.hxx5
-rw-r--r--svx/source/svdraw/svdmodel.cxx1
-rw-r--r--svx/source/svdraw/svdograf.cxx20
-rw-r--r--svx/source/svdraw/svdoole2.cxx22
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 )