vcl/source/graphic/GraphicLoader.cxx | 42 ++++++++++++++++------------------- 1 file changed, 20 insertions(+), 22 deletions(-)
New commits: commit e4db2bcaef12877258f691febab1a1260dcf9916 Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> Date: Thu Mar 15 20:09:41 2018 +0900 more robust method to load a Graphic from URL, +clean up Change-Id: Ib7fb107a56a3cc9fffb6cfaa9bbc2117434902df Reviewed-on: https://gerrit.libreoffice.org/51329 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/vcl/source/graphic/GraphicLoader.cxx b/vcl/source/graphic/GraphicLoader.cxx index 03ca2a6f56a3..b07b345cb982 100644 --- a/vcl/source/graphic/GraphicLoader.cxx +++ b/vcl/source/graphic/GraphicLoader.cxx @@ -14,10 +14,7 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/graphic/GraphicProvider.hpp> #include <com/sun/star/graphic/XGraphicProvider.hpp> -//#include <com/sun/star/lang/XUnoTunnel.hpp> -//#include <com/sun/star/lang/XTypeProvider.hpp> #include <com/sun/star/graphic/XGraphic.hpp> -//#include <cppuhelper/typeprovider.hxx> using namespace css; @@ -27,31 +24,32 @@ namespace graphic { Graphic loadFromURL(OUString const& rURL) { - uno::Reference<css::graphic::XGraphic> xGraphic; + Graphic aGraphic; - uno::Reference<uno::XComponentContext> xContext(comphelper::getProcessComponentContext()); - uno::Reference<css::graphic::XGraphicProvider> xProv( - css::graphic::GraphicProvider::create(xContext)); - - uno::Sequence<beans::PropertyValue> aLoadProps(1); - aLoadProps[0].Name = "URL"; - aLoadProps[0].Value <<= rURL; - - xGraphic = xProv->queryGraphic(aLoadProps); - - std::unique_ptr<Graphic> pGraphic; - if (xGraphic.is()) + try { - pGraphic.reset(new Graphic(xGraphic)); + uno::Reference<css::graphic::XGraphic> xGraphic; + uno::Reference<uno::XComponentContext> xContext(comphelper::getProcessComponentContext()); + uno::Reference<css::graphic::XGraphicProvider> xProvider; + xProvider.set(css::graphic::GraphicProvider::create(xContext)); + + uno::Sequence<beans::PropertyValue> aLoadProps(1); + aLoadProps[0].Name = "URL"; + aLoadProps[0].Value <<= rURL; + + xGraphic = xProvider->queryGraphic(aLoadProps); + + if (xGraphic.is()) + aGraphic = Graphic(xGraphic); + else + aGraphic.SetDefaultType(); + aGraphic.setOriginURL(rURL); } - else + catch (uno::Exception const&) { - pGraphic.reset(new Graphic); - pGraphic->SetDefaultType(); } - pGraphic->setOriginURL(rURL); - return *pGraphic.get(); + return aGraphic; } } } // end vcl::graphic _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits