diff options
Diffstat (limited to 'include/sfx2')
-rw-r--r-- | include/sfx2/docfac.hxx | 2 | ||||
-rw-r--r-- | include/sfx2/docfile.hxx | 13 | ||||
-rw-r--r-- | include/sfx2/docfilt.hxx | 8 | ||||
-rw-r--r-- | include/sfx2/fcontnr.hxx | 44 | ||||
-rw-r--r-- | include/sfx2/filedlghelper.hxx | 4 |
5 files changed, 39 insertions, 32 deletions
diff --git a/include/sfx2/docfac.hxx b/include/sfx2/docfac.hxx index 0e98186bc29a..547ad584b19a 100644 --- a/include/sfx2/docfac.hxx +++ b/include/sfx2/docfac.hxx @@ -68,7 +68,7 @@ public: SfxViewFactory* GetViewFactoryByViewName( const OUString& i_rViewName ) const; // Filter - const SfxFilter* GetTemplateFilter() const; + std::shared_ptr<const SfxFilter> GetTemplateFilter() const; static OUString GetStandardTemplate( const OUString& rServiceName ); static void SetStandardTemplate( const OUString& rServiceName, const OUString& rTemplateName ); static void SetSystemTemplate( const OUString& rServiceName, const OUString& rTemplateName ); diff --git a/include/sfx2/docfile.hxx b/include/sfx2/docfile.hxx index 12b25efbcf78..bbf9c4e37298 100644 --- a/include/sfx2/docfile.hxx +++ b/include/sfx2/docfile.hxx @@ -74,7 +74,7 @@ public: */ SfxMedium( const OUString &rName, StreamMode nOpenMode, - const SfxFilter *pFilter = nullptr, + std::shared_ptr<const SfxFilter> pFilter = nullptr, SfxItemSet *pSet = nullptr ); /** * @param pSet Takes ownership @@ -82,7 +82,7 @@ public: SfxMedium( const OUString &rName, const OUString &rReferer, StreamMode nOpenMode, - const SfxFilter *pFilter = nullptr, + std::shared_ptr<const SfxFilter> pFilter = nullptr, SfxItemSet *pSet = nullptr ); /** @@ -113,9 +113,12 @@ public: void SetLoadTargetFrame(SfxFrame* pFrame ); SfxFrame* GetLoadTargetFrame() const; - void SetFilter(const SfxFilter *pFlt); - const SfxFilter* GetFilter() const; - const SfxFilter* GetOrigFilter() const; + /** + * Does not take ownership of pFlt but pFlt needs to be around as long as the SfxMedium instance. + */ + void SetFilter(std::shared_ptr<const SfxFilter> pFilter); + std::shared_ptr<const SfxFilter> GetFilter() const; + std::shared_ptr<const SfxFilter> GetOrigFilter() const; const OUString& GetOrigURL() const; SfxItemSet * GetItemSet() const; diff --git a/include/sfx2/docfilt.hxx b/include/sfx2/docfilt.hxx index f67a69f2f410..0a68d80e9243 100644 --- a/include/sfx2/docfilt.hxx +++ b/include/sfx2/docfilt.hxx @@ -31,6 +31,8 @@ #include <sfx2/dllapi.h> #include <tools/wldcrd.hxx> +#include <memory> + class SfxFilterContainer; class SotStorage; @@ -104,9 +106,9 @@ public: const OUString& GetServiceName() const { return aServiceName; } const OUString& GetProviderName() const { return maProvider;} - static const SfxFilter* GetDefaultFilter( const OUString& rName ); - static const SfxFilter* GetFilterByName( const OUString& rName ); - static const SfxFilter* GetDefaultFilterFromFactory( const OUString& rServiceName ); + static std::shared_ptr<const SfxFilter> GetDefaultFilter( const OUString& rName ); + static std::shared_ptr<const SfxFilter> GetFilterByName( const OUString& rName ); + static std::shared_ptr<const SfxFilter> GetDefaultFilterFromFactory( const OUString& rServiceName ); static OUString GetTypeFromStorage( const SotStorage& rStg ); static OUString GetTypeFromStorage( diff --git a/include/sfx2/fcontnr.hxx b/include/sfx2/fcontnr.hxx index 54f48508e57a..ce5681c3ace5 100644 --- a/include/sfx2/fcontnr.hxx +++ b/include/sfx2/fcontnr.hxx @@ -66,17 +66,17 @@ public: const OUString GetName() const; - const SfxFilter* GetAnyFilter( SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; - const SfxFilter* GetFilter4EA( const OUString& rEA, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; - const SfxFilter* GetFilter4Extension( const OUString& rExt, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; - const SfxFilter* GetFilter4FilterName( const OUString& rName, SfxFilterFlags nMust = SfxFilterFlags::NONE, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; + std::shared_ptr<const SfxFilter> GetAnyFilter( SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; + std::shared_ptr<const SfxFilter> GetFilter4EA( const OUString& rEA, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; + std::shared_ptr<const SfxFilter> GetFilter4Extension( const OUString& rExt, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; + std::shared_ptr<const SfxFilter> GetFilter4FilterName( const OUString& rName, SfxFilterFlags nMust = SfxFilterFlags::NONE, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; SAL_DLLPRIVATE static void ReadFilters_Impl( bool bUpdate=false ); SAL_DLLPRIVATE static void ReadSingleFilter_Impl( const OUString& rName, const css::uno::Reference< css::container::XNameAccess >& xTypeCFG, const css::uno::Reference< css::container::XNameAccess >& xFilterCFG, bool bUpdate ); - SAL_DLLPRIVATE static const SfxFilter* GetDefaultFilter_Impl( const OUString& ); + SAL_DLLPRIVATE static std::shared_ptr<const SfxFilter> GetDefaultFilter_Impl( const OUString& ); }; class SfxFilterMatcher_Impl; @@ -92,22 +92,22 @@ public: SfxFilterMatcher(const SfxFilterMatcher&) = delete; SfxFilterMatcher& operator=( const SfxFilterMatcher& ) = delete; - SAL_DLLPRIVATE static bool IsFilterInstalled_Impl( const SfxFilter* pFilter ); + SAL_DLLPRIVATE static bool IsFilterInstalled_Impl( std::shared_ptr<const SfxFilter> pFilter ); DECL_DLLPRIVATE_LINK_TYPED( MaybeFileHdl_Impl, OUString*, bool ); - sal_uInt32 GuessFilterIgnoringContent( SfxMedium& rMedium, const SfxFilter ** ) const; - sal_uInt32 GuessFilter( SfxMedium& rMedium, const SfxFilter **, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; - sal_uInt32 GuessFilterControlDefaultUI( SfxMedium& rMedium, const SfxFilter **, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED, bool bDefUI = true ) const; - sal_uInt32 DetectFilter( SfxMedium& rMedium, const SfxFilter ** ) const; - - const SfxFilter* GetFilter4Mime( const OUString& rMime, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED) const; - const SfxFilter* GetFilter4ClipBoardId( SotClipboardFormatId nId, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; - const SfxFilter* GetFilter4EA( const OUString& rEA, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; - const SfxFilter* GetFilter4Extension( const OUString& rExt, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; - const SfxFilter* GetFilter4FilterName( const OUString& rName, SfxFilterFlags nMust = SfxFilterFlags::NONE, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; - const SfxFilter* GetFilter4UIName( const OUString& rName, SfxFilterFlags nMust = SfxFilterFlags::NONE, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; - const SfxFilter* GetFilterForProps( const css::uno::Sequence < css::beans::NamedValue >& aSeq, SfxFilterFlags nMust = SfxFilterFlags::NONE, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; - const SfxFilter* GetAnyFilter( SfxFilterFlags nMust=SfxFilterFlags::NONE, SfxFilterFlags nDont=SFX_FILTER_NOTINSTALLED ) const; + sal_uInt32 GuessFilterIgnoringContent( SfxMedium& rMedium, std::shared_ptr<const SfxFilter>& ) const; + sal_uInt32 GuessFilter( SfxMedium& rMedium, std::shared_ptr<const SfxFilter>& , SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; + sal_uInt32 GuessFilterControlDefaultUI( SfxMedium& rMedium, std::shared_ptr<const SfxFilter>&, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED, bool bDefUI = true ) const; + sal_uInt32 DetectFilter( SfxMedium& rMedium, std::shared_ptr<const SfxFilter>& ) const; + + std::shared_ptr<const SfxFilter> GetFilter4Mime( const OUString& rMime, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED) const; + std::shared_ptr<const SfxFilter> GetFilter4ClipBoardId( SotClipboardFormatId nId, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; + std::shared_ptr<const SfxFilter> GetFilter4EA( const OUString& rEA, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; + std::shared_ptr<const SfxFilter> GetFilter4Extension( const OUString& rExt, SfxFilterFlags nMust = SfxFilterFlags::IMPORT, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; + std::shared_ptr<const SfxFilter> GetFilter4FilterName( const OUString& rName, SfxFilterFlags nMust = SfxFilterFlags::NONE, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; + std::shared_ptr<const SfxFilter> GetFilter4UIName( const OUString& rName, SfxFilterFlags nMust = SfxFilterFlags::NONE, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; + std::shared_ptr<const SfxFilter> GetFilterForProps( const css::uno::Sequence < css::beans::NamedValue >& aSeq, SfxFilterFlags nMust = SfxFilterFlags::NONE, SfxFilterFlags nDont = SFX_FILTER_NOTINSTALLED ) const; + std::shared_ptr<const SfxFilter> GetAnyFilter( SfxFilterFlags nMust=SfxFilterFlags::NONE, SfxFilterFlags nDont=SFX_FILTER_NOTINSTALLED ) const; }; class SfxFilterContainer_Impl; @@ -119,14 +119,14 @@ class SFX2_DLLPUBLIC SfxFilterMatcherIter sal_uInt16 nCurrent; const SfxFilterMatcher_Impl &m_rMatch; - SAL_DLLPRIVATE const SfxFilter* Find_Impl(); + SAL_DLLPRIVATE std::shared_ptr<const SfxFilter> Find_Impl(); public: SfxFilterMatcherIter( const SfxFilterMatcher& rMatcher, SfxFilterFlags nMask = SfxFilterFlags::NONE, SfxFilterFlags nNotMask = SFX_FILTER_NOTINSTALLED ); SfxFilterMatcherIter(const SfxFilterMatcherIter&) = delete; SfxFilterMatcherIter& operator=( const SfxFilterMatcherIter& ) = delete; - const SfxFilter* First(); - const SfxFilter* Next(); + std::shared_ptr<const SfxFilter> First(); + std::shared_ptr<const SfxFilter> Next(); }; diff --git a/include/sfx2/filedlghelper.hxx b/include/sfx2/filedlghelper.hxx index 741507af7d89..9e49d1d24794 100644 --- a/include/sfx2/filedlghelper.hxx +++ b/include/sfx2/filedlghelper.hxx @@ -33,6 +33,8 @@ #include <sfx2/sfxuno.hxx> #include <sfx2/docfilt.hxx> +#include <memory> + namespace com { namespace sun @@ -248,7 +250,7 @@ ErrCode FileOpenDialog_Impl( sal_Int16 nDialogType, const css::uno::Sequence< OUString >& rBlackList = css::uno::Sequence< OUString >()); -ErrCode RequestPassword(const SfxFilter* pCurrentFilter, OUString& aURL, SfxItemSet* pSet); +ErrCode RequestPassword(std::shared_ptr<const SfxFilter> pCurrentFilter, OUString& aURL, SfxItemSet* pSet); } #endif |