diff options
-rw-r--r-- | dbaccess/source/ui/app/AppController.cxx | 2 | ||||
-rw-r--r-- | include/unotools/historyoptions.hxx | 3 | ||||
-rw-r--r-- | sfx2/source/appl/newhelp.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/appl/sfxpicklist.cxx | 35 | ||||
-rw-r--r-- | unotools/source/config/historyoptions.cxx | 17 |
5 files changed, 35 insertions, 24 deletions
diff --git a/dbaccess/source/ui/app/AppController.cxx b/dbaccess/source/ui/app/AppController.cxx index 50731edd846f..99234fa833ce 100644 --- a/dbaccess/source/ui/app/AppController.cxx +++ b/dbaccess/source/ui/app/AppController.cxx @@ -399,7 +399,7 @@ void SAL_CALL OApplicationController::disposing() aFilter, getStrippedDatabaseName(), OUString(), - OUString()); + boost::none); // add to recent document list if ( aURL.GetProtocol() == INetProtocol::File ) diff --git a/include/unotools/historyoptions.hxx b/include/unotools/historyoptions.hxx index aaf0e2e62ed6..e90ba592a4de 100644 --- a/include/unotools/historyoptions.hxx +++ b/include/unotools/historyoptions.hxx @@ -20,6 +20,7 @@ #ifndef INCLUDED_UNOTOOLS_HISTORYOPTIONS_HXX #define INCLUDED_UNOTOOLS_HISTORYOPTIONS_HXX +#include <boost/optional.hpp> #include <unotools/unotoolsdllapi.h> #include <sal/types.h> #include <osl/mutex.hxx> @@ -94,7 +95,7 @@ public: */ void AppendItem(EHistoryType eHistory, const OUString& sURL, const OUString& sFilter, const OUString& sTitle, - const OUString& sPassword, const OUString& sThumbnail); + const OUString& sPassword, const boost::optional<OUString>& sThumbnail); /** Delete item from the specified list. */ diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx index 11b838edaab3..c936655737b8 100644 --- a/sfx2/source/appl/newhelp.cxx +++ b/sfx2/source/appl/newhelp.cxx @@ -1198,7 +1198,7 @@ void BookmarksBox_Impl::dispose() { OUString aTitle = GetEntry(i); OUString* pURL = static_cast<OUString*>(GetEntryData(i)); - aHistOpt.AppendItem(eHELPBOOKMARKS, *pURL, sEmpty, aTitle, sEmpty, sEmpty); + aHistOpt.AppendItem(eHELPBOOKMARKS, *pURL, sEmpty, aTitle, sEmpty, boost::none); delete pURL; } ListBox::dispose(); diff --git a/sfx2/source/appl/sfxpicklist.cxx b/sfx2/source/appl/sfxpicklist.cxx index 7e59beb047e7..5029b7d089dd 100644 --- a/sfx2/source/appl/sfxpicklist.cxx +++ b/sfx2/source/appl/sfxpicklist.cxx @@ -194,26 +194,33 @@ void SfxPickList::AddDocumentToPickList( SfxObjectShell* pDocSh ) aFilter = pFilter->GetFilterName(); // generate a thumbnail - OUString aThumbnail; + boost::optional<OUString> aThumbnail; // don't generate thumbnail when in headless mode, or on non-desktop (?) #if HAVE_FEATURE_DESKTOP - SFX_ITEMSET_ARG( pMed->GetItemSet(), pEncryptionDataItem, SfxUnoAnyItem, SID_ENCRYPTIONDATA, false ); - - if (!pDocSh->IsModified() && !pEncryptionDataItem && !Application::IsHeadlessModeEnabled()) + if (!pDocSh->IsModified() && !Application::IsHeadlessModeEnabled()) { // not modified => the document matches what is in the shell - std::shared_ptr<GDIMetaFile> xMetaFile = pDocSh->GetPreviewMetaFile(); - BitmapEx aResultBitmap; - if (xMetaFile->CreateThumbnail(aResultBitmap)) + SFX_ITEMSET_ARG( pMed->GetItemSet(), pEncryptionDataItem, SfxUnoAnyItem, SID_ENCRYPTIONDATA, false ); + if ( pEncryptionDataItem ) + { + // encrypted document, will show a generic document icon instead + aThumbnail = OUString(); + } + else { - SvMemoryStream aStream(65535, 65535); - vcl::PNGWriter aWriter(aResultBitmap); - if (aWriter.Write(aStream)) + std::shared_ptr<GDIMetaFile> xMetaFile = pDocSh->GetPreviewMetaFile(); + BitmapEx aResultBitmap; + if (xMetaFile->CreateThumbnail(aResultBitmap)) { - Sequence<sal_Int8> aSequence(static_cast<const sal_Int8*>(aStream.GetData()), aStream.Tell()); - OUStringBuffer aBuffer; - ::sax::Converter::encodeBase64(aBuffer, aSequence); - aThumbnail = aBuffer.makeStringAndClear(); + SvMemoryStream aStream(65535, 65535); + vcl::PNGWriter aWriter(aResultBitmap); + if (aWriter.Write(aStream)) + { + Sequence<sal_Int8> aSequence(static_cast<const sal_Int8*>(aStream.GetData()), aStream.Tell()); + OUStringBuffer aBuffer; + ::sax::Converter::encodeBase64(aBuffer, aSequence); + aThumbnail = aBuffer.makeStringAndClear(); + } } } } diff --git a/unotools/source/config/historyoptions.cxx b/unotools/source/config/historyoptions.cxx index 94d87bdfc28d..86da95611e08 100644 --- a/unotools/source/config/historyoptions.cxx +++ b/unotools/source/config/historyoptions.cxx @@ -87,7 +87,7 @@ public: void AppendItem(EHistoryType eHistory, const OUString& sURL, const OUString& sFilter, const OUString& sTitle, - const OUString& sPassword, const OUString& sThumbnail); + const OUString& sPassword, const boost::optional<OUString>& sThumbnail); void DeleteItem(EHistoryType eHistory, const OUString& sURL); @@ -352,7 +352,7 @@ Sequence< Sequence<PropertyValue> > SvtHistoryOptions_Impl::GetList(EHistoryType void SvtHistoryOptions_Impl::AppendItem(EHistoryType eHistory, const OUString& sURL, const OUString& sFilter, const OUString& sTitle, - const OUString& sPassword, const OUString& sThumbnail) + const OUString& sPassword, const boost::optional<OUString>& sThumbnail) { uno::Reference<container::XNameAccess> xListAccess(GetListAccess(eHistory)); if (!xListAccess.is()) @@ -377,9 +377,12 @@ void SvtHistoryOptions_Impl::AppendItem(EHistoryType eHistory, // The item to be appended already exists if (xItemList->hasByName(sURL)) { - // update the thumbnail - xItemList->getByName(sURL) >>= xSet; - xSet->setPropertyValue(s_sThumbnail, uno::makeAny(sThumbnail)); + if (sThumbnail) + { + // update the thumbnail + xItemList->getByName(sURL) >>= xSet; + xSet->setPropertyValue(s_sThumbnail, uno::makeAny(*sThumbnail)); + } for (sal_Int32 i=0; i<nLength; ++i) { @@ -466,7 +469,7 @@ void SvtHistoryOptions_Impl::AppendItem(EHistoryType eHistory, xSet->setPropertyValue(s_sFilter, uno::makeAny(sFilter)); xSet->setPropertyValue(s_sTitle, uno::makeAny(sTitle)); xSet->setPropertyValue(s_sPassword, uno::makeAny(sPassword)); - xSet->setPropertyValue(s_sThumbnail, uno::makeAny(sThumbnail)); + xSet->setPropertyValue(s_sThumbnail, uno::makeAny(sThumbnail.get_value_or(OUString()))); ::comphelper::ConfigurationHelper::flush(m_xCfg); } @@ -605,7 +608,7 @@ Sequence< Sequence< PropertyValue > > SvtHistoryOptions::GetList( EHistoryType e void SvtHistoryOptions::AppendItem(EHistoryType eHistory, const OUString& sURL, const OUString& sFilter, const OUString& sTitle, - const OUString& sPassword, const OUString& sThumbnail) + const OUString& sPassword, const boost::optional<OUString>& sThumbnail) { MutexGuard aGuard(theHistoryOptionsMutex::get()); |