summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dbaccess/source/ui/app/AppController.cxx2
-rw-r--r--include/unotools/historyoptions.hxx3
-rw-r--r--sfx2/source/appl/newhelp.cxx2
-rw-r--r--sfx2/source/appl/sfxpicklist.cxx35
-rw-r--r--unotools/source/config/historyoptions.cxx17
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());