[Libreoffice-commits] core.git: include/svx sc/source sd/source svx/source sw/source
Armin Le Grand
alg at apache.org
Thu Jun 6 09:25:05 PDT 2013
include/svx/charthelper.hxx | 12 ++++++++++++
sc/source/filter/excel/xiescher.cxx | 5 +++++
sc/source/filter/starcalc/scfobj.cxx | 5 +++++
sc/source/ui/drawfunc/fuins2.cxx | 21 +++++----------------
sc/source/ui/unoobj/chartuno.cxx | 5 +++++
sc/source/ui/view/output3.cxx | 4 ----
sd/source/ui/func/fuinsert.cxx | 4 ++--
sd/source/ui/inc/ViewShell.hxx | 3 ---
sd/source/ui/view/viewshe2.cxx | 30 ++----------------------------
svx/source/svdraw/charthelper.cxx | 34 ++++++++++++++++++++++++++++++++++
sw/source/ui/table/tablemgr.cxx | 4 ++++
11 files changed, 74 insertions(+), 53 deletions(-)
New commits:
commit 7c486ba2574486f886612b8c4c130c55acd7d93e
Author: Armin Le Grand <alg at apache.org>
Date: Wed Nov 14 11:09:12 2012 +0000
Resolves: #i121334# Changed default for charts background to be none...
(from white) to allow fill settings in the various apps to have an
effect
(cherry picked from commit 0050a8e4eace17ed1b55c7ec919edaa0daadc3a7)
Conflicts:
chart2/source/model/main/PageBackground.cxx
sc/source/ui/drawfunc/fuins2.cxx
sd/source/ui/view/viewshe2.cxx
Related: #i121334# turned back chart non-fill defaults...
done the non-fill using tooling when creating new chart modules
(cherry picked from commit af9220c24c9d80e5415d9d7d8f273b28d0d27cdb)
Conflicts:
chart2/source/model/main/PageBackground.cxx
sc/source/filter/starcalc/scfobj.cxx
sd/source/ui/view/viewshe2.cxx
svx/inc/svx/charthelper.hxx
svx/source/svdraw/charthelper.cxx
sw/source/ui/table/tablemgr.cxx
Related: #i121334# deactivated setting chart OLE background to transparent...
for better UI experience and better back-compatibility to other OpenOffice
derivates
(cherry picked from commit 5fa621198a981ea994d9903298e8a1d884ee686b)
Unname unused arguments to prevent compiler warnings.
(cherry picked from commit c3c4df7647d8d4ab1425bb3c7f38932c4adcbe74)
Change-Id: I1b4579aca701a4d637d21d7963b87f637458d0a5
01855cc3d4ec3c321109f924f6de4cdfbec4cd5d
18757f64ae84a415dc781929db4b76f571172ab1
de9879c2e1c249c0d957e4e46723b167ae1a8e90
diff --git a/include/svx/charthelper.hxx b/include/svx/charthelper.hxx
index 3b43c4b..1575a0b 100644
--- a/include/svx/charthelper.hxx
+++ b/include/svx/charthelper.hxx
@@ -24,6 +24,7 @@
#include <basegfx/range/b2drange.hxx>
#include <svx/svxdllapi.h>
#include <drawinglayer/primitive2d/baseprimitive2d.hxx>
+#include <com/sun/star/embed/XEmbeddedObject.hpp>
//////////////////////////////////////////////////////////////////////////////
// predeclarations
@@ -45,6 +46,17 @@ public:
static drawinglayer::primitive2d::Primitive2DSequence tryToGetChartContentAsPrimitive2DSequence(
const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rXModel,
basegfx::B2DRange& rRange);
+
+ // #i121334# Allow to switch off line and fill style by setting these as attributes
+ // at the OLE chart object. This is needed to allow fill styles of the covering objects
+ // to make their own fill/line settings work. This should not be done by changing
+ // the defaults at the chart (see StaticPageBackgroundDefaults_Initializer::lcl_AddDefaultsToMap)
+ // since this would not be saved/loaded, thus the compatibility will be better when setting it at
+ // newly created charts using this method
+ static void AdaptDefaultsForChart(
+ const com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject > & xEmbObj,
+ bool bNoFillStyle = true,
+ bool bNoLineStyle = true);
};
//////////////////////////////////////////////////////////////////////////////
diff --git a/sc/source/filter/excel/xiescher.cxx b/sc/source/filter/excel/xiescher.cxx
index 7db78f3..87014d7 100644
--- a/sc/source/filter/excel/xiescher.cxx
+++ b/sc/source/filter/excel/xiescher.cxx
@@ -67,6 +67,7 @@
#include <svx/unoapi.hxx>
#include <svx/svditer.hxx>
#include <editeng/writingmodeitem.hxx>
+#include <svx/charthelper.hxx>
#include "scitems.hxx"
#include <editeng/eeitem.hxx>
@@ -1660,6 +1661,10 @@ SdrObject* XclImpChartObj::DoCreateSdrObj( XclImpDffConverter& rDffConv, const R
::com::sun::star::awt::Size aAwtSize( aSize.Width(), aSize.Height() );
xEmbObj->setVisualAreaSize( nAspect, aAwtSize );
+ // #i121334# This call will change the chart's default background fill from white to transparent.
+ // Add here again if this is wanted (see task description for details)
+ // ChartHelper::AdaptDefaultsForChart( xEmbObj );
+
// create the container OLE object
xSdrObj.reset( new SdrOle2Obj( svt::EmbeddedObjectRef( xEmbObj, nAspect ), aEmbObjName, rAnchorRect ) );
}
diff --git a/sc/source/filter/starcalc/scfobj.cxx b/sc/source/filter/starcalc/scfobj.cxx
index 1ce0037..cc05e71 100644
--- a/sc/source/filter/starcalc/scfobj.cxx
+++ b/sc/source/filter/starcalc/scfobj.cxx
@@ -25,6 +25,7 @@
using namespace com::sun::star;
#include <unotools/moduleoptions.hxx>
+#include <svx/charthelper.hxx>
#include <svx/svdoole2.hxx>
#include <svx/svdpage.hxx>
#include <sfx2/objsh.hxx>
@@ -76,6 +77,10 @@ void Sc10InsertObject::InsertChart( ScDocument* pDoc, SCTAB nDestTab, const Rect
aSz.Height = rRect.GetSize().Height();
xObj->setVisualAreaSize( embed::Aspects::MSOLE_CONTENT, aSz );
+ // #i121334# This call will change the chart's default background fill from white to transparent.
+ // Add here again if this is wanted (see task description for details)
+ // ChartHelper::AdaptDefaultsForChart( xObj );
+
// hier kann das Chart noch nicht mit Daten gefuettert werden,
// weil die Formeln noch nicht berechnet sind.
// Deshalb in die ChartCollection, die Daten werden dann im
diff --git a/sc/source/ui/drawfunc/fuins2.cxx b/sc/source/ui/drawfunc/fuins2.cxx
index 3faea47..5673502 100644
--- a/sc/source/ui/drawfunc/fuins2.cxx
+++ b/sc/source/ui/drawfunc/fuins2.cxx
@@ -43,6 +43,7 @@
#include <svx/svdpage.hxx>
#include <svx/svdundo.hxx>
#include <sfx2/msgpool.hxx>
+#include <svx/charthelper.hxx>
#include <scmod.hxx>
// BM/IHA --
@@ -81,8 +82,6 @@ using namespace ::com::sun::star;
#include "drawview.hxx"
#include "markdata.hxx"
-extern SdrObject* pSkipPaintObj; // output.cxx - dieses Objekt nicht zeichnen
-
namespace {
void lcl_ChartInit( const uno::Reference < embed::XEmbeddedObject >& xObj, ScViewData* pViewData,
@@ -368,12 +367,6 @@ FuInsertOLE::FuInsertOLE(ScTabViewShell* pViewSh, Window* pWin, ScDrawView* pVie
aPnt.X() -= aSize.Width(); // move position to left edge
Rectangle aRect (aPnt, aSize);
SdrOle2Obj* pObj = new SdrOle2Obj( aObjRef, aName, aRect);
-
- // Dieses Objekt nicht vor dem Aktivieren zeichnen
- // (in MarkListHasChanged kommt ein Update)
- if (!bIsFromFile)
- pSkipPaintObj = pObj;
-
SdrPageView* pPV = pView->GetSdrPageView();
pView->InsertObjectAtView(pObj, *pPV);
@@ -411,7 +404,6 @@ FuInsertOLE::FuInsertOLE(ScTabViewShell* pViewSh, Window* pWin, ScDrawView* pVie
else
{
pViewShell->ActivateObject( (SdrOle2Obj*) pObj, SVVERB_SHOW );
- pSkipPaintObj = NULL;
}
}
@@ -628,13 +620,12 @@ FuInsertChart::FuInsertChart(ScTabViewShell* pViewSh, Window* pWin, ScDrawView*
Rectangle aRect (aStart, aSize);
SdrOle2Obj* pObj = new SdrOle2Obj( svt::EmbeddedObjectRef( xObj, nAspect ), aName, aRect);
-
- // Dieses Objekt nicht vor dem Aktivieren zeichnen
- // (in MarkListHasChanged kommt ein Update)
- pSkipPaintObj = pObj;
-
SdrPageView* pPV = pView->GetSdrPageView();
+ // #i121334# This call will change the chart's default background fill from white to transparent.
+ // Add here again if this is wanted (see task description for details)
+ // ChartHelper::AdaptDefaultsForChart( xObj );
+
// pView->InsertObjectAtView(pObj, *pPV);//this call leads to an immidiate redraw and asks the chart for a visual representation
// use the page instead of the view to insert, so no undo action is created yet
@@ -798,8 +789,6 @@ FuInsertChartFromFile::FuInsertChartFromFile( ScTabViewShell* pViewSh, Window* p
Rectangle aRect (aStart, aSize);
SdrOle2Obj* pObj = new SdrOle2Obj( svt::EmbeddedObjectRef( xObj, nAspect ), aName, aRect);
- pSkipPaintObj = pObj;
-
SdrPageView* pPV = pView->GetSdrPageView();
// use the page instead of the view to insert, so no undo action is created yet
diff --git a/sc/source/ui/unoobj/chartuno.cxx b/sc/source/ui/unoobj/chartuno.cxx
index 0db6aac..e4b485e 100644
--- a/sc/source/ui/unoobj/chartuno.cxx
+++ b/sc/source/ui/unoobj/chartuno.cxx
@@ -33,6 +33,7 @@
#include <unotools/moduleoptions.hxx>
#include <comphelper/classids.hxx>
#include <toolkit/helper/vclunohelper.hxx>
+#include <svx/charthelper.hxx>
#include "chartuno.hxx"
#include "miscuno.hxx"
@@ -287,6 +288,10 @@ void SAL_CALL ScChartsObj::addNewByName( const OUString& rName,
if( xObj.is())
xObj->setVisualAreaSize( nAspect, aSz );
+ // #i121334# This call will change the chart's default background fill from white to transparent.
+ // Add here again if this is wanted (see task description for details)
+ // ChartHelper::AdaptDefaultsForChart( xObj );
+
pPage->InsertObject( pObj );
pModel->AddUndo( new SdrUndoInsertObj( *pObj ) );
}
diff --git a/sc/source/ui/view/output3.cxx b/sc/source/ui/view/output3.cxx
index eb4ff52..fda65f6 100644
--- a/sc/source/ui/view/output3.cxx
+++ b/sc/source/ui/view/output3.cxx
@@ -34,10 +34,6 @@
#include <svx/fmview.hxx>
-// STATIC DATA -----------------------------------------------------------
-
-SdrObject* pSkipPaintObj = NULL;
-
//==================================================================
// #i72502#
diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx
index abe5311..48378a4 100644
--- a/sd/source/ui/func/fuinsert.cxx
+++ b/sd/source/ui/func/fuinsert.cxx
@@ -61,8 +61,8 @@
#include <svx/svdpagv.hxx>
#include <vcl/msgbox.hxx>
#include <sfx2/opengrf.hxx>
-
#include <sfx2/viewfrm.hxx>
+#include <svx/charthelper.hxx>
#include "app.hrc"
#include "sdresid.hxx"
@@ -370,7 +370,7 @@ void FuInsertOLE::DoExecute( SfxRequest& rReq )
// note, that this call modified the chart model which
// results in a change notification. So call this after
// everything else is finished.
- mpViewShell->AdaptDefaultsForChart( xObj );
+ ChartHelper::AdaptDefaultsForChart( xObj );
}
}
}
diff --git a/sd/source/ui/inc/ViewShell.hxx b/sd/source/ui/inc/ViewShell.hxx
index 94f5d72..a136480 100644
--- a/sd/source/ui/inc/ViewShell.hxx
+++ b/sd/source/ui/inc/ViewShell.hxx
@@ -419,9 +419,6 @@ public:
*/
virtual bool RelocateToParentWindow (::Window* pParentWindow);
- void AdaptDefaultsForChart(
- const ::com::sun::star::uno::Reference < ::com::sun::star::embed::XEmbeddedObject > & xEmbObj );
-
/** Depending on the given request create a new page or duplicate an
existing one. A new page is created behind the given slide.
@param rRequest
diff --git a/sd/source/ui/view/viewshe2.cxx b/sd/source/ui/view/viewshe2.cxx
index ac74080..f658605 100644
--- a/sd/source/ui/view/viewshe2.cxx
+++ b/sd/source/ui/view/viewshe2.cxx
@@ -69,6 +69,7 @@
#include <sfx2/viewfrm.hxx>
#include <svtools/soerr.hxx>
#include <toolkit/helper/vclunohelper.hxx>
+#include <svx/charthelper.hxx>
using namespace com::sun::star;
@@ -877,7 +878,7 @@ sal_Bool ViewShell::ActivateObject(SdrOle2Obj* pObj, long nVerb)
if( bChangeDefaultsForChart && xObj.is())
{
- AdaptDefaultsForChart( xObj );
+ ChartHelper::AdaptDefaultsForChart( xObj );
}
pSdClient->DoVerb(nVerb); // if necessary, ErrCode is outputted by Sfx
@@ -1055,33 +1056,6 @@ Point ViewShell::GetViewOrigin() const
return mpContentWindow->GetViewOrigin();
}
-void ViewShell::AdaptDefaultsForChart(
- const uno::Reference < embed::XEmbeddedObject > & xEmbObj )
-{
- if( xEmbObj.is())
- {
- uno::Reference< chart2::XChartDocument > xChartDoc( xEmbObj->getComponent(), uno::UNO_QUERY );
- OSL_ENSURE( xChartDoc.is(), "Trying to set chart property to non-chart OLE" );
- if( !xChartDoc.is())
- return;
-
- try
- {
- // set background to transparent (none)
- uno::Reference< beans::XPropertySet > xPageProp( xChartDoc->getPageBackground());
- if( xPageProp.is())
- xPageProp->setPropertyValue( "FillStyle" , uno::makeAny( drawing::FillStyle_NONE ));
- // set no border
- if( xPageProp.is())
- xPageProp->setPropertyValue( "LineStyle" , uno::makeAny( drawing::LineStyle_NONE ));
- }
- catch( const uno::Exception & )
- {
- OSL_FAIL( "Exception caught in AdaptDefaultsForChart" );
- }
- }
-}
-
} // end of namespace sd
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/svdraw/charthelper.cxx b/svx/source/svdraw/charthelper.cxx
index 9d4c520..0676f96 100644
--- a/svx/source/svdraw/charthelper.cxx
+++ b/svx/source/svdraw/charthelper.cxx
@@ -29,6 +29,9 @@
#include <comphelper/processfactory.hxx>
#include <com/sun/star/graphic/PrimitiveFactory2D.hpp>
#include <drawinglayer/geometry/viewinformation2d.hxx>
+#include <com/sun/star/chart2/XChartDocument.hpp>
+#include <com/sun/star/drawing/FillStyle.hpp>
+#include <com/sun/star/drawing/LineStyle.hpp>
using namespace ::com::sun::star;
@@ -118,4 +121,35 @@ drawinglayer::primitive2d::Primitive2DSequence ChartHelper::tryToGetChartContent
return aRetval;
}
+void ChartHelper::AdaptDefaultsForChart(
+ const uno::Reference < embed::XEmbeddedObject > & xEmbObj,
+ bool /* bNoFillStyle */,
+ bool /* bNoLineStyle */)
+{
+ if( xEmbObj.is())
+ {
+ uno::Reference< chart2::XChartDocument > xChartDoc( xEmbObj->getComponent(), uno::UNO_QUERY );
+ OSL_ENSURE( xChartDoc.is(), "Trying to set chart property to non-chart OLE" );
+ if( !xChartDoc.is())
+ return;
+
+ try
+ {
+ // set background to transparent (none)
+ uno::Reference< beans::XPropertySet > xPageProp( xChartDoc->getPageBackground());
+ if( xPageProp.is())
+ xPageProp->setPropertyValue( "FillStyle",
+ uno::makeAny( drawing::FillStyle_NONE ));
+ // set no border
+ if( xPageProp.is())
+ xPageProp->setPropertyValue( "LineStyle",
+ uno::makeAny( drawing::LineStyle_NONE ));
+ }
+ catch( const uno::Exception & )
+ {
+ OSL_FAIL( "Exception caught in AdaptDefaultsForChart" );
+ }
+ }
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/ui/table/tablemgr.cxx b/sw/source/ui/table/tablemgr.cxx
index c7e4401..a76b624 100644
--- a/sw/source/ui/table/tablemgr.cxx
+++ b/sw/source/ui/table/tablemgr.cxx
@@ -25,6 +25,7 @@
#include <sot/storage.hxx>
#include <comphelper/classids.hxx>
+#include <svx/charthelper.hxx>
#include "edtwin.hxx"
#include "wrtsh.hxx"
@@ -265,6 +266,9 @@ uno::Reference< frame::XModel > SwTableFUNC::InsertChart(
//this does the DoVerb in the SfxViewShell.
ErrCode nErr = pClient->DoVerb( SVVERB_SHOW );
(void) nErr;
+
+ // #i121334#
+ ChartHelper::AdaptDefaultsForChart( xObj );
}
uno::Reference< chart2::data::XDataReceiver > xDataReceiver( xChartModel, uno::UNO_QUERY );
More information about the Libreoffice-commits
mailing list