[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