diff options
author | Cédric Bosdonnat <cedric.bosdonnat@free.fr> | 2012-12-12 22:33:49 +0100 |
---|---|---|
committer | Cédric Bosdonnat <cedric.bosdonnat@free.fr> | 2012-12-12 22:46:56 +0100 |
commit | 35211d334e36dc970624705dd9a663b5be8c2479 (patch) | |
tree | 8146afd5e1c8095cab50da630c39738ef241879b /sfx2/source/control | |
parent | a5bfc2c6be6795dea5d615a7c3b5c6018354ace0 (diff) |
Template manager: filter on extensions, file type is localized
Change-Id: I4b4a4f8aaf253e663bbeb4f061c6aa87411b730f
Diffstat (limited to 'sfx2/source/control')
-rw-r--r-- | sfx2/source/control/templateabstractview.cxx | 28 | ||||
-rw-r--r-- | sfx2/source/control/templatelocalview.cxx | 29 |
2 files changed, 20 insertions, 37 deletions
diff --git a/sfx2/source/control/templateabstractview.cxx b/sfx2/source/control/templateabstractview.cxx index a93ccdce3c66..613f0da18536 100644 --- a/sfx2/source/control/templateabstractview.cxx +++ b/sfx2/source/control/templateabstractview.cxx @@ -12,6 +12,7 @@ #include <comphelper/processfactory.hxx> #include <sfx2/templateview.hxx> #include <sfx2/templateviewitem.hxx> +#include <tools/urlobj.hxx> #include <unotools/ucbstreamhelper.hxx> #include <vcl/pngread.hxx> @@ -22,32 +23,37 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/lang/XSingleServiceFactory.hpp> -bool ViewFilter_Application::operator () (const ThumbnailViewItem *pItem) +bool ViewFilter_Application::isValid (const OUString &rPath) const { - const TemplateViewItem *pTempItem = static_cast<const TemplateViewItem*>(pItem); + bool bRet = true; + INetURLObject aUrl(rPath); + OUString aExt = aUrl.getExtension(); if (mApp == FILTER_APP_WRITER) { - return pTempItem->getFileType() == "OpenDocument Text" || - pTempItem->getFileType() == "OpenDocument Text Template"; + bRet = aExt == "ott" || aExt == "stw" || aExt == "oth" || aExt == "dot" || aExt == "dotx"; } else if (mApp == FILTER_APP_CALC) { - return pTempItem->getFileType() == "OpenDocument Spreadsheet" || - pTempItem->getFileType() == "OpenDocument Spreadsheet Template"; + bRet = aExt == "ots" || aExt == "stc" || aExt == "xlt" || aExt == "xltm" || aExt == "xltx"; } else if (mApp == FILTER_APP_IMPRESS) { - return pTempItem->getFileType() == "OpenDocument Presentation" || - pTempItem->getFileType() == "OpenDocument Presentation Template"; + bRet = aExt == "otp" || aExt == "sti" || aExt == "pot" || aExt == "potm" || aExt == "potx"; } else if (mApp == FILTER_APP_DRAW) { - return pTempItem->getFileType() == "OpenDocument Drawing" || - pTempItem->getFileType() == "OpenDocument Drawing Template"; + bRet = aExt == "otg" || aExt == "std"; } - return true; + return bRet; +} + +bool ViewFilter_Application::operator () (const ThumbnailViewItem *pItem) +{ + const TemplateViewItem *pTempItem = static_cast<const TemplateViewItem*>(pItem); + + return isValid(pTempItem->getPath()); } bool ViewFilter_Keyword::operator ()(const ThumbnailViewItem *pItem) diff --git a/sfx2/source/control/templatelocalview.cxx b/sfx2/source/control/templatelocalview.cxx index 5147014135b9..b77a57421a63 100644 --- a/sfx2/source/control/templatelocalview.cxx +++ b/sfx2/source/control/templatelocalview.cxx @@ -33,12 +33,12 @@ using namespace ::com::sun::star::frame; static void lcl_updateThumbnails (TemplateLocalViewItem *pItem); -class FolderFilter_Application +class FolderFilter_Application : public ViewFilter_Application { public: FolderFilter_Application (FILTER_APPLICATION eApp) - : meApp(eApp) + : ViewFilter_Application(eApp) { } @@ -56,7 +56,7 @@ public: for (size_t i = 0, n = rTemplates.size(); i < n; ++i) { - if (isValid(rTemplates[i].aType)) + if (isValid(rTemplates[i].aPath)) { ++nVisCount; if ( pFolderItem->maPreview1.IsEmpty( ) ) @@ -77,29 +77,6 @@ public: return meApp != FILTER_APP_NONE ? nVisCount : true ; } - bool isValid (const OUString &rType) const - { - bool bRet = true; - - if (meApp == FILTER_APP_WRITER) - { - bRet = rType == "OpenDocument Text" || rType == "OpenDocument Text Template"; - } - else if (meApp == FILTER_APP_CALC) - { - bRet = rType == "OpenDocument Spreadsheet" || rType == "OpenDocument Spreadsheet Template"; - } - else if (meApp == FILTER_APP_IMPRESS) - { - bRet = rType == "OpenDocument Presentation" || rType == "OpenDocument Presentation Template"; - } - else if (meApp == FILTER_APP_DRAW) - { - bRet = rType == "OpenDocument Drawing" || rType == "OpenDocument Drawing Template"; - } - - return bRet; - } private: |