diff options
author | Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk> | 2016-12-18 14:31:14 +0100 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2016-12-19 07:26:24 +0000 |
commit | bf5f6df9e47bd31dc052c6411f6f88ec2d4e3cea (patch) | |
tree | f573562af0d55e5cdb0bfe405db2967efd72d2e8 | |
parent | f9a97a5d5aca8473845bca2e17c5826b772b8f3c (diff) |
vcl: separate ImplImageTree - ImageTree singleton and public iface
ImplImageTree was used outside of VCL which is not consistent with
the name and the header also contains a lot of implementation
detail. This separates the implementation to ImplImageTree and
the public interface and singleton to ImageTree only.
Change-Id: I3a26444f0f6971a6b1d83472e9cef19c93192d3e
Reviewed-on: https://gerrit.libreoffice.org/32134
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
-rw-r--r-- | compilerplugins/clang/badstatics.cxx | 4 | ||||
-rw-r--r-- | include/vcl/BitmapTools.hxx | 2 | ||||
-rw-r--r-- | include/vcl/ImageTree.hxx | 78 | ||||
-rw-r--r-- | ucb/source/ucp/image/ucpimage.cxx | 6 | ||||
-rw-r--r-- | vcl/Library_vcl.mk | 1 | ||||
-rw-r--r-- | vcl/backendtest/VisualBackendTest.cxx | 1 | ||||
-rw-r--r-- | vcl/inc/implimagetree.hxx (renamed from include/vcl/implimagetree.hxx) | 33 | ||||
-rw-r--r-- | vcl/inc/pch/precompiled_vcl.hxx | 2 | ||||
-rw-r--r-- | vcl/inc/vcldemo-debug.hxx | 25 | ||||
-rw-r--r-- | vcl/osx/vclnsapp.mm | 16 | ||||
-rw-r--r-- | vcl/source/app/settings.cxx | 2 | ||||
-rw-r--r-- | vcl/source/app/svmain.cxx | 4 | ||||
-rw-r--r-- | vcl/source/bitmap/BitmapTools.cxx | 2 | ||||
-rw-r--r-- | vcl/source/control/fixed.cxx | 2 | ||||
-rw-r--r-- | vcl/source/gdi/bitmapex.cxx | 4 | ||||
-rw-r--r-- | vcl/source/image/Image.cxx | 2 | ||||
-rw-r--r-- | vcl/source/image/ImageArrayData.cxx | 4 | ||||
-rw-r--r-- | vcl/source/image/ImageList.cxx | 2 | ||||
-rw-r--r-- | vcl/source/image/ImageRepository.cxx | 6 | ||||
-rw-r--r-- | vcl/source/image/ImageTree.cxx | 56 | ||||
-rw-r--r-- | vcl/source/image/ImplImageTree.cxx | 19 | ||||
-rw-r--r-- | vcl/workben/vcldemo.cxx | 9 |
22 files changed, 183 insertions, 97 deletions
diff --git a/compilerplugins/clang/badstatics.cxx b/compilerplugins/clang/badstatics.cxx index 463a3a38a457..2e2a1ce61e4a 100644 --- a/compilerplugins/clang/badstatics.cxx +++ b/compilerplugins/clang/badstatics.cxx @@ -177,8 +177,8 @@ public: || name == "g_pHyphIter" // SwEditShell::HyphEnd() || name == "pFieldEditEngine" // ScGlobal::Clear() || name == "xDrawClipDocShellRef" // ScGlobal::Clear() - || name == "s_ImplImageTree" - // ImplImageTree::get(), ImplImageTree::shutDown() + || name == "s_ImageTree" + // ImageTree::get(), ImageTree::shutDown() || name == "s_pMouseFrame" // vcl/osx/salframeview.mm, mouseEntered/Exited, not owning || name == "pCurrentMenuBar" diff --git a/include/vcl/BitmapTools.hxx b/include/vcl/BitmapTools.hxx index 51ae59a097a8..e2777d88c957 100644 --- a/include/vcl/BitmapTools.hxx +++ b/include/vcl/BitmapTools.hxx @@ -13,7 +13,7 @@ #include <vcl/bitmapex.hxx> #include <tools/stream.hxx> -#include <vcl/implimagetree.hxx> +#include <vcl/ImageTree.hxx> namespace vcl { namespace bitmap { diff --git a/include/vcl/ImageTree.hxx b/include/vcl/ImageTree.hxx new file mode 100644 index 000000000000..80a6f3b5970c --- /dev/null +++ b/include/vcl/ImageTree.hxx @@ -0,0 +1,78 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef INCLUDED_INCLUDE_VCL_IMAGETREE_HXX +#define INCLUDED_INCLUDE_VCL_IMAGETREE_HXX + +#include <sal/config.h> +#include <vcl/dllapi.h> +#include <vcl/bitmapex.hxx> + +enum class ImageLoadFlags : sal_uInt16 +{ + NONE = 0, + IgnoreScalingFactor = 1, + IgnoreDarkTheme = 2, +}; + +namespace o3tl { +template<> struct typed_flags<ImageLoadFlags>: is_typed_flags<ImageLoadFlags, 0x3> {}; +} + +namespace com { namespace sun { namespace star { namespace container { + class XNameAccess; +}}}} + +class ImplImageTree; + +class ImageTree +{ +private: + std::unique_ptr<ImplImageTree> mpImplImageTree; + +public: + ImageTree(); + + VCL_DLLPUBLIC static ImageTree & get(); + + VCL_DLLPUBLIC OUString getImageUrl( + OUString const & name, OUString const & style, OUString const & lang); + + bool loadImage( + OUString const & name, OUString const & style, + BitmapEx & bitmap, bool localized, + const ImageLoadFlags eFlags = ImageLoadFlags::NONE); + + bool loadDefaultImage( + OUString const & style, + BitmapEx& bitmap, + const ImageLoadFlags eFlags = ImageLoadFlags::NONE); + + VCL_DLLPUBLIC css::uno::Reference<css::container::XNameAccess> getNameAccess(); + + + /** a crude form of life cycle control (called from DeInitVCL; otherwise, + * if the ImplImageTree singleton were destroyed during exit that would + * be too late for the destructors of the bitmaps in maIconCache)*/ + void shutdown(); +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/ucb/source/ucp/image/ucpimage.cxx b/ucb/source/ucp/image/ucpimage.cxx index fb3acff4e4ae..723e7a22aaf0 100644 --- a/ucb/source/ucp/image/ucpimage.cxx +++ b/ucb/source/ucp/image/ucpimage.cxx @@ -20,13 +20,13 @@ #include <osl/mutex.hxx> #include <rtl/uri.hxx> #include <rtl/ustrbuf.hxx> -#include <vcl/implimagetree.hxx> +#include <vcl/ImageTree.hxx> #include <vcl/svapp.hxx> #include <ucbhelper/content.hxx> // A LO-private ("implementation detail") UCP used to access images from help // content, with theme fallback and localization support as provided by VCL's -// ImplImageTree. +// ImageTree. // // The URL scheme is // @@ -133,7 +133,7 @@ private: OUString newUrl; { SolarMutexGuard g; - newUrl = ImplImageTree::get().getImageUrl(decPath, auth, lang); + newUrl = ImageTree::get().getImageUrl(decPath, auth, lang); } ucbhelper::Content content; return diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index a57fdb4a7bc4..7a7686811579 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -310,6 +310,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/image/Image \ vcl/source/image/ImageArrayData \ vcl/source/image/ImageList \ + vcl/source/image/ImageTree \ vcl/source/image/ImageRepository \ vcl/source/image/ImplImage \ vcl/source/image/ImplImageList \ diff --git a/vcl/backendtest/VisualBackendTest.cxx b/vcl/backendtest/VisualBackendTest.cxx index ced23d971f7d..fd6f27b2cb63 100644 --- a/vcl/backendtest/VisualBackendTest.cxx +++ b/vcl/backendtest/VisualBackendTest.cxx @@ -41,7 +41,6 @@ #include <basegfx/numeric/ftools.hxx> #include <basegfx/matrix/b2dhommatrix.hxx> -#include <vcldemo-debug.hxx> #include <rtl/math.hxx> diff --git a/include/vcl/implimagetree.hxx b/vcl/inc/implimagetree.hxx index 3064e578999a..a229177c4709 100644 --- a/include/vcl/implimagetree.hxx +++ b/vcl/inc/implimagetree.hxx @@ -17,8 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#ifndef INCLUDED_INCLUDE_VCL_IMPLIMAGETREE_HXX -#define INCLUDED_INCLUDE_VCL_IMPLIMAGETREE_HXX +#ifndef INCLUDED_VCL_INC_IMPLIMAGETREE_HXX +#define INCLUDED_VCL_INC_IMPLIMAGETREE_HXX #include <sal/config.h> @@ -32,30 +32,19 @@ #include <vcl/bitmapex.hxx> #include <vcl/dllapi.h> #include <i18nlangtag/languagetag.hxx> +#include <vcl/ImageTree.hxx> namespace com { namespace sun { namespace star { namespace container { class XNameAccess; -} } } } +}}}} -enum class ImageLoadFlags : sal_uInt16 +class ImplImageTree { - NONE = 0, - IgnoreScalingFactor = 1, - IgnoreDarkTheme = 2, -}; - -namespace o3tl { - -template<> struct typed_flags<ImageLoadFlags>: is_typed_flags<ImageLoadFlags, 0x3> {}; - -} - - -class ImplImageTree { public: - VCL_DLLPUBLIC static ImplImageTree & get(); + ImplImageTree(); + ~ImplImageTree(); - VCL_DLLPUBLIC OUString getImageUrl( + OUString getImageUrl( OUString const & name, OUString const & style, OUString const & lang); bool loadImage( @@ -71,15 +60,11 @@ public: /** a crude form of life cycle control (called from DeInitVCL; otherwise, * if the ImplImageTree singleton were destroyed during exit that would * be too late for the destructors of the bitmaps in maIconCache)*/ - void shutDown(); + void shutdown(); css::uno::Reference< css::container::XNameAccess > getNameAccess(); private: - ImplImageTree(); - - ~ImplImageTree(); - ImplImageTree(const ImplImageTree&) = delete; ImplImageTree& operator=(const ImplImageTree&) = delete; diff --git a/vcl/inc/pch/precompiled_vcl.hxx b/vcl/inc/pch/precompiled_vcl.hxx index ec459c710e0e..94c0fcd18778 100644 --- a/vcl/inc/pch/precompiled_vcl.hxx +++ b/vcl/inc/pch/precompiled_vcl.hxx @@ -150,7 +150,7 @@ #include <vcl/help.hxx> #include <vcl/i18nhelp.hxx> #include <vcl/image.hxx> -#include <vcl/implimagetree.hxx> +#include <vcl/ImageTree.hxx> #include <vcl/keycod.hxx> #include <vcl/keycodes.hxx> #include <vcl/layout.hxx> diff --git a/vcl/inc/vcldemo-debug.hxx b/vcl/inc/vcldemo-debug.hxx deleted file mode 100644 index 37dae2481b9e..000000000000 --- a/vcl/inc/vcldemo-debug.hxx +++ /dev/null @@ -1,25 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#ifndef INCLUDED_VCL_INC_VCLDEMO_DEBUG_HXX -#define INCLUDED_VCL_INC_VCLDEMO_DEBUG_HXX - -#include <sal/config.h> - -#include <com/sun/star/uno/Sequence.hxx> -#include <rtl/ustring.hxx> -#include <sal/types.h> -#include <vcl/dllapi.h> - -// For vcldemo / debugging -VCL_DLLPUBLIC css::uno::Sequence< OUString > ImageTree_getAllImageNames(); - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/osx/vclnsapp.mm b/vcl/osx/vclnsapp.mm index a8eb84aa297d..4c38466961b0 100644 --- a/vcl/osx/vclnsapp.mm +++ b/vcl/osx/vclnsapp.mm @@ -24,7 +24,7 @@ #include <sal/main.h> #include <vcl/commandevent.hxx> -#include <vcl/implimagetree.hxx> +#include <vcl/ImageTree.hxx> #include <vcl/svapp.hxx> #include <vcl/window.hxx> @@ -374,8 +374,8 @@ SAL_WNODEPRECATED_DECLARATIONS_POP (void)app; std::vector<OUString> aFile; aFile.push_back( GetOUString( pFile ) ); - const ApplicationEvent* pAppEvent = new ApplicationEvent(ApplicationEvent::Type::Print, aFile); - AquaSalInstance::aAppEventList.push_back( pAppEvent ); + const ApplicationEvent* pAppEvent = new ApplicationEvent(ApplicationEvent::Type::Print, aFile); + AquaSalInstance::aAppEventList.push_back( pAppEvent ); return YES; } -(NSApplicationPrintReply)application: (NSApplication *) app printFiles:(NSArray *)files withSettings: (NSDictionary *)printSettings showPrintPanels:(BOOL)bShowPrintPanels @@ -393,8 +393,8 @@ SAL_WNODEPRECATED_DECLARATIONS_POP { aFileList.push_back( GetOUString( pFile ) ); } - const ApplicationEvent* pAppEvent = new ApplicationEvent(ApplicationEvent::Type::Print, aFileList); - AquaSalInstance::aAppEventList.push_back( pAppEvent ); + const ApplicationEvent* pAppEvent = new ApplicationEvent(ApplicationEvent::Type::Print, aFileList); + AquaSalInstance::aAppEventList.push_back( pAppEvent ); // we have no back channel here, we have to assume success // correct handling would be NSPrintingReplyLater and then send [app replyToOpenOrPrint] return NSPrintingSuccess; @@ -425,7 +425,7 @@ SAL_WNODEPRECATED_DECLARATIONS_POP { ApplicationEvent aEv(ApplicationEvent::Type::PrivateDoShutdown); GetpApp()->AppEvent( aEv ); - ImplImageTree::get().shutDown(); + ImageTree::get().shutdown(); // DeInitVCL should be called in ImplSVMain - unless someon _exits first which // can occur in Desktop::doShutdown for example } @@ -440,8 +440,8 @@ SAL_WNODEPRECATED_DECLARATIONS_POP SolarMutexGuard aGuard; const SalData* pSalData = GetSalData(); - if( !pSalData->maFrames.empty() ) - pSalData->maFrames.front()->CallCallback( SalEvent::SettingsChanged, nullptr ); + if( !pSalData->maFrames.empty() ) + pSalData->maFrames.front()->CallCallback( SalEvent::SettingsChanged, nullptr ); } -(void)screenParametersChanged: (NSNotification*) pNotification diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx index 1888379f966a..3222dcf2b3d6 100644 --- a/vcl/source/app/settings.cxx +++ b/vcl/source/app/settings.cxx @@ -42,7 +42,7 @@ #include <vcl/event.hxx> #include <vcl/settings.hxx> #include <vcl/i18nhelp.hxx> -#include <vcl/implimagetree.hxx> +#include <vcl/ImageTree.hxx> #include <vcl/configsettings.hxx> #include <vcl/gradient.hxx> #include <vcl/outdev.hxx> diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx index 2012764b18c2..2cd613727ab4 100644 --- a/vcl/source/app/svmain.cxx +++ b/vcl/source/app/svmain.cxx @@ -38,7 +38,7 @@ #include <vcl/cvtgrf.hxx> #include <vcl/scheduler.hxx> #include <vcl/image.hxx> -#include <vcl/implimagetree.hxx> +#include <vcl/ImageTree.hxx> #include <vcl/settings.hxx> #include <vcl/unowrap.hxx> #include <vcl/commandinfoprovider.hxx> @@ -403,7 +403,7 @@ void DeInitVCL() SAL_WARN_IF( nBadTopWindows!=0, "vcl", aBuf.getStr() ); #endif - ImplImageTree::get().shutDown(); + ImageTree::get().shutdown(); osl_removeSignalHandler( pExceptionHandler); pExceptionHandler = nullptr; diff --git a/vcl/source/bitmap/BitmapTools.cxx b/vcl/source/bitmap/BitmapTools.cxx index 1016a78e1504..40e79b721b71 100644 --- a/vcl/source/bitmap/BitmapTools.cxx +++ b/vcl/source/bitmap/BitmapTools.cxx @@ -42,7 +42,7 @@ BitmapEx loadFromName(const OUString& rFileName, const ImageLoadFlags eFlags) OUString aIconTheme = Application::GetSettings().GetStyleSettings().DetermineIconTheme(); - ImplImageTree::get().loadImage(rFileName, aIconTheme, aBitmapEx, true, eFlags); + ImageTree::get().loadImage(rFileName, aIconTheme, aBitmapEx, true, eFlags); return aBitmapEx; } diff --git a/vcl/source/control/fixed.cxx b/vcl/source/control/fixed.cxx index dae1d42bc335..688c7785ecb3 100644 --- a/vcl/source/control/fixed.cxx +++ b/vcl/source/control/fixed.cxx @@ -23,7 +23,7 @@ #include <vcl/dialog.hxx> #include <vcl/event.hxx> #include <vcl/fixed.hxx> -#include <vcl/implimagetree.hxx> +#include <vcl/ImageTree.hxx> #include <vcl/svapp.hxx> #include <vcl/settings.hxx> diff --git a/vcl/source/gdi/bitmapex.cxx b/vcl/source/gdi/bitmapex.cxx index efd1ad5ca6f1..1743aa75ee27 100644 --- a/vcl/source/gdi/bitmapex.cxx +++ b/vcl/source/gdi/bitmapex.cxx @@ -25,7 +25,7 @@ #include <tools/stream.hxx> #include <tools/debug.hxx> #include <tools/rc.h> -#include <vcl/implimagetree.hxx> +#include <vcl/ImageTree.hxx> #include <vcl/salbtype.hxx> #include <vcl/outdev.hxx> #include <vcl/alpha.hxx> @@ -110,7 +110,7 @@ void BitmapEx::loadFromIconTheme( const OUString& rIconName ) { OUString aIconTheme = Application::GetSettings().GetStyleSettings().DetermineIconTheme(); - if( !ImplImageTree::get().loadImage( rIconName, aIconTheme, *this, true ) ) + if (!ImageTree::get().loadImage(rIconName, aIconTheme, *this, true)) { #ifdef DBG_UTIL OStringBuffer aErrorStr( diff --git a/vcl/source/image/Image.cxx b/vcl/source/image/Image.cxx index 22b6fbc451de..51dcca4ed94e 100644 --- a/vcl/source/image/Image.cxx +++ b/vcl/source/image/Image.cxx @@ -30,7 +30,7 @@ #include <vcl/svapp.hxx> #include <vcl/image.hxx> #include <vcl/imagerepository.hxx> -#include <vcl/implimagetree.hxx> +#include <vcl/ImageTree.hxx> #include <sal/types.h> #include <image.h> diff --git a/vcl/source/image/ImageArrayData.cxx b/vcl/source/image/ImageArrayData.cxx index bd2f1dfec1d7..543543804a70 100644 --- a/vcl/source/image/ImageArrayData.cxx +++ b/vcl/source/image/ImageArrayData.cxx @@ -26,7 +26,7 @@ #include <vcl/image.hxx> #include <vcl/settings.hxx> #include <vcl/svapp.hxx> -#include <vcl/implimagetree.hxx> +#include <vcl/ImageTree.hxx> #include <image.h> #include <memory> @@ -70,7 +70,7 @@ void ImageAryData::Load(const OUString &rPrefix) OUString aFileName = rPrefix; aFileName += maName; - bool bSuccess = ImplImageTree::get().loadImage(aFileName, aIconTheme, maBitmapEx, true); + bool bSuccess = ImageTree::get().loadImage(aFileName, aIconTheme, maBitmapEx, true); if (bSuccess) {} diff --git a/vcl/source/image/ImageList.cxx b/vcl/source/image/ImageList.cxx index f72ee83c0f4e..572bc6bbb2ce 100644 --- a/vcl/source/image/ImageList.cxx +++ b/vcl/source/image/ImageList.cxx @@ -30,7 +30,7 @@ #include <vcl/svapp.hxx> #include <vcl/image.hxx> #include <vcl/imagerepository.hxx> -#include <vcl/implimagetree.hxx> +#include <vcl/ImageTree.hxx> #include <image.h> ImageList::ImageList() diff --git a/vcl/source/image/ImageRepository.cxx b/vcl/source/image/ImageRepository.cxx index 855ae80c6306..7b9255f32348 100644 --- a/vcl/source/image/ImageRepository.cxx +++ b/vcl/source/image/ImageRepository.cxx @@ -19,7 +19,7 @@ #include <vcl/bitmapex.hxx> #include <vcl/imagerepository.hxx> -#include <vcl/implimagetree.hxx> +#include <vcl/ImageTree.hxx> #include <vcl/settings.hxx> #include <vcl/svapp.hxx> @@ -29,13 +29,13 @@ namespace vcl { OUString sIconTheme = Application::GetSettings().GetStyleSettings().DetermineIconTheme(); - return ImplImageTree::get().loadImage( _rName, sIconTheme, _out_rImage, _bSearchLanguageDependent ); + return ImageTree::get().loadImage( _rName, sIconTheme, _out_rImage, _bSearchLanguageDependent ); } bool ImageRepository::loadDefaultImage( BitmapEx& _out_rImage) { OUString sIconTheme = Application::GetSettings().GetStyleSettings().DetermineIconTheme(); - return ImplImageTree::get().loadDefaultImage( sIconTheme,_out_rImage); + return ImageTree::get().loadDefaultImage( sIconTheme,_out_rImage); } } // namespace vcl diff --git a/vcl/source/image/ImageTree.cxx b/vcl/source/image/ImageTree.cxx new file mode 100644 index 000000000000..0c9dcac957a6 --- /dev/null +++ b/vcl/source/image/ImageTree.cxx @@ -0,0 +1,56 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + */ + +#include <vcl/ImageTree.hxx> +#include "implimagetree.hxx" +#include <com/sun/star/uno/Reference.hxx> +#include <com/sun/star/uno/Sequence.hxx> +#include <com/sun/star/container/XNameAccess.hpp> + +ImageTree & ImageTree::get() { + static ImageTree s_ImageTree; + return s_ImageTree; +} + +ImageTree::ImageTree() + : mpImplImageTree(new ImplImageTree) +{ +} + +OUString ImageTree::getImageUrl(OUString const & rName, OUString const & rStyle, OUString const & rLang) + +{ + return mpImplImageTree->getImageUrl(rName, rStyle, rLang); +} + +bool ImageTree::loadImage(OUString const & rName, OUString const & rStyle, + BitmapEx & rBitmap, bool bLocalized, + const ImageLoadFlags eFlags) +{ + return mpImplImageTree->loadImage(rName, rStyle, rBitmap, bLocalized, eFlags); +} + +bool ImageTree::loadDefaultImage(OUString const & rStyle, BitmapEx& rBitmap, + const ImageLoadFlags eFlags) +{ + return mpImplImageTree->loadDefaultImage(rStyle, rBitmap, eFlags); +} + +css::uno::Reference<css::container::XNameAccess> ImageTree::getNameAccess() +{ + return mpImplImageTree->getNameAccess(); +} + +void ImageTree::shutdown() +{ + mpImplImageTree->shutdown(); +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/image/ImplImageTree.cxx b/vcl/source/image/ImplImageTree.cxx index 28d0427ba3d7..452164577517 100644 --- a/vcl/source/image/ImplImageTree.cxx +++ b/vcl/source/image/ImplImageTree.cxx @@ -37,13 +37,13 @@ #include "tools/stream.hxx" #include "tools/urlobj.hxx" +#include "implimagetree.hxx" + #include <vcl/bitmapex.hxx> #include <vcl/dibtools.hxx> -#include <vcl/implimagetree.hxx> #include <vcl/pngread.hxx> #include <vcl/settings.hxx> #include <vcl/svapp.hxx> -#include <vcldemo-debug.hxx> #include <vcl/BitmapProcessor.hxx> #include <vcl/BitmapTools.hxx> @@ -171,11 +171,6 @@ void loadImageFromStream(std::shared_ptr<SvStream> const & xStream, OUString con } -ImplImageTree & ImplImageTree::get() { - static ImplImageTree s_ImplImageTree; - return s_ImplImageTree; -} - ImplImageTree::ImplImageTree() { } @@ -368,7 +363,7 @@ bool ImplImageTree::doLoadImage(OUString const & name, OUString const & style, B return found; } -void ImplImageTree::shutDown() +void ImplImageTree::shutdown() { maCurrentStyle.clear(); maIconSets.clear(); @@ -545,12 +540,4 @@ css::uno::Reference<css::container::XNameAccess> ImplImageTree::getNameAccess() return getCurrentIconSet().maNameAccess; } -/// Recursively dump all names ... -css::uno::Sequence<OUString> ImageTree_getAllImageNames() -{ - css::uno::Reference<css::container::XNameAccess> xRef(ImplImageTree::get().getNameAccess()); - - return xRef->getElementNames(); -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/workben/vcldemo.cxx b/vcl/workben/vcldemo.cxx index 5458bb4799fd..964904fdf71f 100644 --- a/vcl/workben/vcldemo.cxx +++ b/vcl/workben/vcldemo.cxx @@ -17,6 +17,9 @@ #include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/registry/XSimpleRegistry.hpp> #include <com/sun/star/ucb/UniversalContentBroker.hpp> +#include <com/sun/star/uno/Reference.hxx> +#include <com/sun/star/uno/Sequence.hxx> +#include <com/sun/star/container/XNameAccess.hpp> #include <osl/time.h> #include <vcl/vclmain.hxx> @@ -38,10 +41,10 @@ #include <vcl/bitmapaccess.hxx> #include <vcl/help.hxx> #include <vcl/menu.hxx> +#include <vcl/ImageTree.hxx> #include <basegfx/numeric/ftools.hxx> #include <basegfx/matrix/b2dhommatrix.hxx> -#include <vcldemo-debug.hxx> #include <opengl/zone.hxx> // internal headers for OpenGLTests class. @@ -1211,7 +1214,9 @@ public: return; bHasLoadedAll = true; - css::uno::Sequence< OUString > aAllIcons = ImageTree_getAllImageNames(); + css::uno::Reference<css::container::XNameAccess> xRef(ImageTree::get().getNameAccess()); + css::uno::Sequence< OUString > aAllIcons = xRef->getElementNames(); + for (sal_Int32 i = 0; i < aAllIcons.getLength(); i++) { if (aAllIcons[i].endsWithIgnoreAsciiCase("svg")) |