diff options
author | Jan Holesovsky <kendy@collabora.com> | 2014-02-04 00:33:14 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2014-02-04 09:11:29 +0100 |
commit | e2eda70f2746f08376d8cdf5e5360df217335aef (patch) | |
tree | 31051c577e388dc8f9730381e69e46a5735ae5cf /sfx2/source/control/recentdocsview.cxx | |
parent | 56b404001ef83cc151727cc5a489dc493c6b65ec (diff) |
startcenter: fdo#72469: Thumbnails also for other file types than ODF.
Change-Id: If905b2f3e51adf7e64df9385ede74368acd11771
Diffstat (limited to 'sfx2/source/control/recentdocsview.cxx')
-rw-r--r-- | sfx2/source/control/recentdocsview.cxx | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/sfx2/source/control/recentdocsview.cxx b/sfx2/source/control/recentdocsview.cxx index 5f225bccd249..34ae603bc238 100644 --- a/sfx2/source/control/recentdocsview.cxx +++ b/sfx2/source/control/recentdocsview.cxx @@ -17,14 +17,15 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <sax/tools/converter.hxx> #include <sfx2/recentdocsview.hxx> -#include <vcl/svapp.hxx> #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/pngread.hxx> #include <vcl/svapp.hxx> #include <tools/urlobj.hxx> #include <com/sun/star/util/URLTransformer.hpp> @@ -140,9 +141,9 @@ BitmapEx RecentDocsView::getDefaultThumbnail(const OUString &rURL) return aImg; } -void RecentDocsView::insertItem(const OUString &rURL, const OUString &rTitle, sal_uInt16 nId) +void RecentDocsView::insertItem(const OUString &rURL, const OUString &rTitle, const BitmapEx &rThumbnail, sal_uInt16 nId) { - RecentDocsViewItem *pChild = new RecentDocsViewItem(*this, rURL, rTitle, nId); + RecentDocsViewItem *pChild = new RecentDocsViewItem(*this, rURL, rTitle, rThumbnail, nId); AppendItem(pChild); } @@ -158,6 +159,7 @@ void RecentDocsView::loadRecentDocs() OUString aURL; OUString aTitle; + BitmapEx aThumbnail; for ( int j = 0; j < rRecentEntry.getLength(); j++ ) { @@ -167,11 +169,25 @@ void RecentDocsView::loadRecentDocs() a >>= aURL; else if (rRecentEntry[j].Name == "Title") a >>= aTitle; + else if (rRecentEntry[j].Name == "Thumbnail") + { + OUString aBase64; + a >>= aBase64; + if (!aBase64.isEmpty()) + { + Sequence<sal_Int8> aDecoded; + sax::Converter::decodeBase64(aDecoded, aBase64); + + SvMemoryStream aStream(aDecoded.getArray(), aDecoded.getLength(), STREAM_READ); + vcl::PNGReader aReader(aStream); + aThumbnail = aReader.Read(); + } + } } - if( isAcceptedFile(aURL) ) + if (isAcceptedFile(aURL)) { - insertItem(aURL, aTitle, i+1); + insertItem(aURL, aTitle, aThumbnail, i+1); } } |