diff options
author | Krisztian Pinter <pin.terminator@gmail.com> | 2013-08-11 18:29:58 +0200 |
---|---|---|
committer | Jan Holesovsky <kendy@suse.cz> | 2013-08-13 18:35:03 +0200 |
commit | 85e4d35f1926b8568dfcbe9571ebdc9879fa52b4 (patch) | |
tree | 9309a169e3754458fcc6115d8fdabcfe5a73a36a /sfx2 | |
parent | 2ace414bd8350a682ad6d482413e50bfa05893f5 (diff) |
startcenter: Improve thumbnails in RecentDocsView
Change-Id: Ib33e20996267f3e178079174fde014aa28638fcf
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/control/recentdocsview.cxx | 60 | ||||
-rw-r--r-- | sfx2/source/control/recentdocsviewitem.cxx | 16 |
2 files changed, 66 insertions, 10 deletions
diff --git a/sfx2/source/control/recentdocsview.cxx b/sfx2/source/control/recentdocsview.cxx index 2aea3f7a49c4..73c585fde1af 100644 --- a/sfx2/source/control/recentdocsview.cxx +++ b/sfx2/source/control/recentdocsview.cxx @@ -21,6 +21,8 @@ #include <sfx2/templateabstractview.hxx> #include <sfx2/app.hxx> +#include <sfx2/sfx.hrc> +#include <sfx2/sfxresid.hxx> #include <unotools/historyoptions.hxx> #include <vcl/builder.hxx> #include <vcl/svapp.hxx> @@ -59,6 +61,64 @@ RecentDocsView::~RecentDocsView() { } +bool RecentDocsView::isFilteredExtension(APPLICATION_FILTER filter, const OUString &rExt) +{ + bool bRet = true; + + if (filter == FILTER_WRITER) + { + bRet = rExt == "odt" || rExt == "doc" || rExt == "docx" || + rExt == "rtf" || rExt == "txt"; + } + else if (filter == FILTER_CALC) + { + bRet = rExt == "ods" || rExt == "xls" || rExt == "xlsx"; + } + else if (filter == FILTER_IMPRESS) + { + bRet = rExt == "odp" || rExt == "pps" || rExt == "ppt" || + rExt == "pptx"; + } + else if (filter == FILTER_DRAW) + { + bRet = rExt == "odg"; + } + else if (filter == FILTER_DATABASE) + { + bRet = rExt == "odb"; + } + else if (filter == FILTER_MATH) + { + bRet = rExt == "odf"; + } + + return bRet; +} + +BitmapEx RecentDocsView::getDefaultThumbnail(const OUString &rURL) +{ + BitmapEx aImg; + INetURLObject aUrl(rURL); + OUString aExt = aUrl.getExtension(); + + if ( isFilteredExtension( FILTER_WRITER, aExt) ) + aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_TEXT ) ); + else if ( isFilteredExtension( FILTER_CALC, aExt) ) + aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_SHEET ) ); + else if ( isFilteredExtension( FILTER_IMPRESS, aExt) ) + aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_PRESENTATION ) ); + else if ( isFilteredExtension( FILTER_DRAW, aExt) ) + aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_DRAWING ) ); + else if ( isFilteredExtension( FILTER_DATABASE, aExt) ) + aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_DATABASE ) ); + else if ( isFilteredExtension( FILTER_MATH, aExt) ) + aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_MATH ) ); + else + aImg = BitmapEx ( SfxResId( SFX_FILE_THUMBNAIL_DEFAULT ) ); + + return aImg; +} + void RecentDocsView::insertItem(const OUString &rURL, const OUString &rTitle) { RecentDocsViewItem *pChild = new RecentDocsViewItem(*this, rURL, rTitle); diff --git a/sfx2/source/control/recentdocsviewitem.cxx b/sfx2/source/control/recentdocsviewitem.cxx index 996d064330f7..a4024ae36629 100644 --- a/sfx2/source/control/recentdocsviewitem.cxx +++ b/sfx2/source/control/recentdocsviewitem.cxx @@ -9,16 +9,17 @@ #include <sfx2/recentdocsviewitem.hxx> -#include <sfx2/sfxresid.hxx> -#include "../doc/doc.hrc" - #include <sfx2/templateabstractview.hxx> +#include <sfx2/recentdocsview.hxx> #include <tools/urlobj.hxx> RecentDocsViewItem::RecentDocsViewItem(ThumbnailView &rView, const OUString &rURL, const OUString &rTitle) : ThumbnailViewItem(rView) { + RecentDocsView& rRecentView = dynamic_cast<RecentDocsView&>(rView); + long nThumbnailSize = rRecentView.GetThumbnailSize(); OUString aTitle = rTitle; + if( !aTitle.getLength() ) { // If we have no title, get filename from the URL @@ -30,17 +31,12 @@ RecentDocsViewItem::RecentDocsViewItem(ThumbnailView &rView, const OUString &rUR if( aThumbnail.IsEmpty() ) { // Use the default thumbnail if we have nothing else - aThumbnail = TemplateAbstractView::getDefaultThumbnail(rURL); - } - if( aThumbnail.IsEmpty() ) - { - // Last fallback - aThumbnail = BitmapEx ( SfxResId( SFX_THUMBNAIL_TEXT ) ); + aThumbnail = RecentDocsView::getDefaultThumbnail(rURL); } maURL = rURL; maTitle = aTitle; - maPreview1 = TemplateAbstractView::scaleImg(aThumbnail, 150, 150); + maPreview1 = TemplateAbstractView::scaleImg(aThumbnail, nThumbnailSize, nThumbnailSize); } void RecentDocsViewItem::setEditTitle (bool edit, bool bChangeFocus) |