summaryrefslogtreecommitdiff
path: root/include/sfx2
diff options
context:
space:
mode:
Diffstat (limited to 'include/sfx2')
-rw-r--r--include/sfx2/docfac.hxx2
-rw-r--r--include/sfx2/docfile.hxx13
-rw-r--r--include/sfx2/docfilt.hxx8
-rw-r--r--include/sfx2/fcontnr.hxx44
-rw-r--r--include/sfx2/filedlghelper.hxx4
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