[Libreoffice-commits] core.git: include/editeng include/svx offapi/com svx/source sw/inc sw/source

Tomaž Vajngerl tomaz.vajngerl at collabora.co.uk
Fri Apr 27 09:18:39 UTC 2018


 include/editeng/unoprnms.hxx                   |    1 
 include/svx/unoshprp.hxx                       |    1 
 offapi/com/sun/star/drawing/FillProperties.idl |    8 +++++
 svx/source/xoutdev/xattrbmp.cxx                |   37 ++++++++++++++++++++-----
 sw/inc/unoprnms.hxx                            |    1 
 sw/source/core/unocore/unomapproperties.hxx    |    1 
 6 files changed, 43 insertions(+), 6 deletions(-)

New commits:
commit dfdc165a48d711b867961d1f75ee36a1c9596dc0
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Wed Apr 25 19:36:21 2018 +0900

    restore and deprecate FillBitmapURL
    
    FillBitmapURL was restored so when setting the property, it loads
    the Bitmap from the provided URL and creates a XBitmap. Get is
    not supported anymore however.
    
    Change-Id: Ie250d9f751ba33fc45b759dd3a773b4ec5c864d3
    Reviewed-on: https://gerrit.libreoffice.org/53443
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/include/editeng/unoprnms.hxx b/include/editeng/unoprnms.hxx
index 5e56fdd5d2d1..d90be0f6b45d 100644
--- a/include/editeng/unoprnms.hxx
+++ b/include/editeng/unoprnms.hxx
@@ -35,6 +35,7 @@
 #define UNO_NAME_FILLHATCH                      "FillHatch"
 #define UNO_NAME_FILLHATCHNAME                  "FillHatchName"
 #define UNO_NAME_FILLBITMAP                     "FillBitmap"
+#define UNO_NAME_FILLBITMAPURL                  "FillBitmapURL"
 #define UNO_NAME_FILLBITMAPNAME                 "FillBitmapName"
 #define UNO_NAME_FILLGRADIENTSTEPCOUNT          "FillGradientStepCount"
 #define UNO_NAME_FILLBACKGROUND                 "FillBackground"
diff --git a/include/svx/unoshprp.hxx b/include/svx/unoshprp.hxx
index 56050252fd58..1794f1d9d96d 100644
--- a/include/svx/unoshprp.hxx
+++ b/include/svx/unoshprp.hxx
@@ -258,6 +258,7 @@
     FILL_PROPERTIES_DEFAULTS \
     { OUString(UNO_NAME_FILLBACKGROUND),    XATTR_FILLBACKGROUND    , cppu::UnoType<bool>::get(),              0,   0}, \
     { OUString(UNO_NAME_FILLBITMAP),        XATTR_FILLBITMAP        , cppu::UnoType<css::awt::XBitmap>::get()  ,       0,     MID_BITMAP}, \
+    { OUString(UNO_NAME_FILLBITMAPURL),     XATTR_FILLBITMAP        , cppu::UnoType<OUString>::get(),                  0,     MID_BITMAP }, \
     { OUString(UNO_NAME_FILLBITMAPNAME),           XATTR_FILLBITMAP        , ::cppu::UnoType<OUString>::get(), 0, MID_NAME }, \
     { OUString(UNO_NAME_FILLGRADIENTSTEPCOUNT),    XATTR_GRADIENTSTEPCOUNT , ::cppu::UnoType<sal_Int16>::get(), 0, 0}, \
     { OUString(UNO_NAME_FILLGRADIENT),      XATTR_FILLGRADIENT      , ::cppu::UnoType<css::awt::Gradient>::get(),        0,     MID_FILLGRADIENT}, \
diff --git a/offapi/com/sun/star/drawing/FillProperties.idl b/offapi/com/sun/star/drawing/FillProperties.idl
index 8897a826a07a..a1fdbf41189f 100644
--- a/offapi/com/sun/star/drawing/FillProperties.idl
+++ b/offapi/com/sun/star/drawing/FillProperties.idl
@@ -104,6 +104,14 @@ published service FillProperties
 
     /** If the property #FillStyle is set to
         FillStyle::BITMAP, this is a URL to the bitmap used.
+
+        @deprecated as of LibreOffice 6.1, use FillBitmap
+
+        Note the new behaviour since it this was deprecated:
+        This property can only be set and only external URLs are
+        supported (no more vnd.sun.star.GraphicObject scheme). When a
+        URL is set, then it will load the bitmap and set the FillBitmap
+        property.
     */
     [optional, property] string FillBitmapURL;
 
diff --git a/svx/source/xoutdev/xattrbmp.cxx b/svx/source/xoutdev/xattrbmp.cxx
index bad890bdc1a5..c4328daef724 100644
--- a/svx/source/xoutdev/xattrbmp.cxx
+++ b/svx/source/xoutdev/xattrbmp.cxx
@@ -38,6 +38,7 @@
 #include <vcl/salbtype.hxx>
 #include <vcl/bitmapaccess.hxx>
 #include <vcl/BitmapTools.hxx>
+#include <vcl/GraphicLoader.hxx>
 #include <vcl/dibtools.hxx>
 
 #include <libxml/xmlwriter.h>
@@ -262,8 +263,8 @@ bool XFillBitmapItem::QueryValue(css::uno::Any& rVal, sal_uInt8 nMemberId) const
         aInternalName = GetName();
     }
 
-    if( nMemberId == MID_BITMAP ||
-        nMemberId == 0  )
+    if (nMemberId == MID_BITMAP ||
+        nMemberId == 0)
     {
         xBmp.set(GetGraphicObject().GetGraphic().GetXGraphic(), uno::UNO_QUERY);
     }
@@ -294,9 +295,11 @@ bool XFillBitmapItem::PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId )
     nMemberId &= ~CONVERT_TWIPS;
 
     OUString aName;
+    OUString aURL;
     css::uno::Reference< css::awt::XBitmap > xBmp;
     css::uno::Reference< css::graphic::XGraphic > xGraphic;
 
+    bool bSetURL    = false;
     bool bSetName   = false;
     bool bSetBitmap = false;
 
@@ -304,9 +307,21 @@ bool XFillBitmapItem::PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId )
         bSetName = (rVal >>= aName);
     else if( nMemberId == MID_BITMAP )
     {
-        bSetBitmap = (rVal >>= xBmp);
-        if ( !bSetBitmap )
-            bSetBitmap = (rVal >>= xGraphic );
+        if (rVal.has<OUString>())
+        {
+            bSetURL = true;
+            aURL = rVal.get<OUString>();
+        }
+        else if (rVal.has<uno::Reference<awt::XBitmap>>())
+        {
+            bSetBitmap = true;
+            xBmp = rVal.get<uno::Reference<awt::XBitmap>>();
+        }
+        else if (rVal.has<uno::Reference<graphic::XGraphic>>())
+        {
+            bSetBitmap = true;
+            xGraphic = rVal.get<uno::Reference<graphic::XGraphic>>();
+        }
     }
     else
     {
@@ -320,6 +335,8 @@ bool XFillBitmapItem::PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId )
                     bSetName = (aPropSeq[n].Value >>= aName);
                 else if ( aPropSeq[n].Name == "Bitmap" )
                     bSetBitmap = (aPropSeq[n].Value >>= xBmp);
+                else if ( aPropSeq[n].Name == "FillBitmapURL" )
+                    bSetURL = (aPropSeq[n].Value >>= aURL);
             }
         }
     }
@@ -328,7 +345,15 @@ bool XFillBitmapItem::PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId )
     {
         SetName( aName );
     }
-    if( bSetBitmap )
+    if (bSetURL && !aURL.isEmpty())
+    {
+        Graphic aGraphic = vcl::graphic::loadFromURL(aURL);
+        if (aGraphic)
+        {
+            maGraphicObject.SetGraphic(aGraphic.GetXGraphic());
+        }
+    }
+    else if( bSetBitmap )
     {
         if (xBmp.is())
         {
diff --git a/sw/inc/unoprnms.hxx b/sw/inc/unoprnms.hxx
index c314a4a021d4..9ef136eccd26 100644
--- a/sw/inc/unoprnms.hxx
+++ b/sw/inc/unoprnms.hxx
@@ -606,6 +606,7 @@
 #define UNO_NAME_SW_FILLCOLOR UNO_NAME_FILLCOLOR
 #define UNO_NAME_SW_FILLBACKGROUND UNO_NAME_FILLBACKGROUND
 #define UNO_NAME_SW_FILLBITMAP UNO_NAME_FILLBITMAP
+#define UNO_NAME_SW_FILLBITMAPURL UNO_NAME_FILLBITMAPURL
 #define UNO_NAME_SW_FILLBITMAPNAME UNO_NAME_FILLBITMAPNAME
 #define UNO_NAME_SW_FILLGRADIENTSTEPCOUNT UNO_NAME_FILLGRADIENTSTEPCOUNT
 #define UNO_NAME_SW_FILLGRADIENT UNO_NAME_FILLGRADIENT
diff --git a/sw/source/core/unocore/unomapproperties.hxx b/sw/source/core/unocore/unomapproperties.hxx
index 1c2cf138a03b..f5d422b43efc 100644
--- a/sw/source/core/unocore/unomapproperties.hxx
+++ b/sw/source/core/unocore/unomapproperties.hxx
@@ -500,6 +500,7 @@
     FILL_PROPERTIES_SW_DEFAULTS \
     { OUString(UNO_NAME_SW_FILLBACKGROUND),                 XATTR_FILLBACKGROUND,           cppu::UnoType<bool>::get(),        0, 0}, \
     { OUString(UNO_NAME_SW_FILLBITMAP),                     XATTR_FILLBITMAP,               cppu::UnoType<css::awt::XBitmap>::get(), 0, MID_BITMAP}, \
+    { OUString(UNO_NAME_SW_FILLBITMAPURL),                  XATTR_FILLBITMAP,               cppu::UnoType<OUString>::get(),          0, MID_BITMAP }, \
     { OUString(UNO_NAME_SW_FILLBITMAPNAME),                 XATTR_FILLBITMAP,               cppu::UnoType<OUString>::get(),    0,  MID_NAME }, \
     { OUString(UNO_NAME_SW_FILLGRADIENTSTEPCOUNT),          XATTR_GRADIENTSTEPCOUNT,        cppu::UnoType<sal_Int16>::get(),   0,  0}, \
     { OUString(UNO_NAME_SW_FILLGRADIENT),                   XATTR_FILLGRADIENT,             cppu::UnoType<css::awt::Gradient>::get(), 0, MID_FILLGRADIENT}, \


More information about the Libreoffice-commits mailing list