summaryrefslogtreecommitdiff
path: root/vcl/source/gdi/impgraph.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/source/gdi/impgraph.cxx')
-rw-r--r--vcl/source/gdi/impgraph.cxx68
1 files changed, 25 insertions, 43 deletions
diff --git a/vcl/source/gdi/impgraph.cxx b/vcl/source/gdi/impgraph.cxx
index ca63d8645063..65f8fb25a827 100644
--- a/vcl/source/gdi/impgraph.cxx
+++ b/vcl/source/gdi/impgraph.cxx
@@ -65,20 +65,19 @@ private:
OUString maOriginURL;
public:
- ImpSwapFile(INetURLObject const & rSwapURL, OUString aOriginURL)
- : SwapFile(rSwapURL)
- , maOriginURL(std::move(aOriginURL))
+ ImpSwapFile(OUString aOriginURL)
+ : maOriginURL(std::move(aOriginURL))
{
}
OUString const & getOriginURL() const { return maOriginURL; }
};
-OUString ImpGraphic::getSwapFileURL() const
+SvStream* ImpGraphic::getSwapFileStream() const
{
if (mpSwapFile)
- return mpSwapFile->getSwapURL().GetMainURL(INetURLObject::DecodeMechanism::NONE);
- return OUString();
+ return mpSwapFile->getStream();
+ return nullptr;
}
ImpGraphic::ImpGraphic() :
@@ -1320,28 +1319,25 @@ bool ImpGraphic::swapOut()
}
else
{
- // Create a temp filename for the swap file
- const INetURLObject aTempFileURL(utl::CreateTempURL());
-
// Create a swap file
- auto pSwapFile = o3tl::make_shared<ImpSwapFile>(aTempFileURL, getOriginURL());
+ auto pSwapFile = o3tl::make_shared<ImpSwapFile>(getOriginURL());
// Open a stream to write the swap file to
{
- std::unique_ptr<SvStream> xOutputStream = pSwapFile->openOutputStream();
+ SvStream* pOutputStream = pSwapFile->getStream();
- if (!xOutputStream)
+ if (!pOutputStream)
return false;
// Write to stream
- xOutputStream->SetVersion(SOFFICE_FILEFORMAT_50);
- xOutputStream->SetCompressMode(SvStreamCompressFlags::NATIVE);
- xOutputStream->SetBufferSize(GRAPHIC_STREAMBUFSIZE);
+ pOutputStream->SetVersion(SOFFICE_FILEFORMAT_50);
+ pOutputStream->SetCompressMode(SvStreamCompressFlags::NATIVE);
+ pOutputStream->SetBufferSize(GRAPHIC_STREAMBUFSIZE);
- if (!xOutputStream->GetError() && swapOutContent(*xOutputStream))
+ if (!pOutputStream->GetError() && swapOutContent(*pOutputStream))
{
- xOutputStream->FlushBuffer();
- bResult = !xOutputStream->GetError();
+ pOutputStream->FlushBuffer();
+ bResult = !pOutputStream->GetError();
}
}
@@ -1511,39 +1507,25 @@ bool ImpGraphic::swapIn()
}
else
{
- OUString aSwapURL;
+ SvStream* pStream = nullptr;
if (mpSwapFile)
- aSwapURL = mpSwapFile->getSwapURL().GetMainURL(INetURLObject::DecodeMechanism::NONE);
+ pStream = mpSwapFile->getStream();
- if (!aSwapURL.isEmpty())
+ if (pStream)
{
- std::unique_ptr<SvStream> xStream;
- try
- {
- xStream = ::utl::UcbStreamHelper::CreateStream(aSwapURL, StreamMode::READWRITE | StreamMode::SHARE_DENYWRITE);
- }
- catch( const css::uno::Exception& )
- {
- }
+ pStream->SetVersion(SOFFICE_FILEFORMAT_50);
+ pStream->SetCompressMode(SvStreamCompressFlags::NATIVE);
+ pStream->SetBufferSize(GRAPHIC_STREAMBUFSIZE);
+ pStream->Seek(STREAM_SEEK_TO_BEGIN);
- if (xStream)
- {
- xStream->SetVersion(SOFFICE_FILEFORMAT_50);
- xStream->SetCompressMode(SvStreamCompressFlags::NATIVE);
- xStream->SetBufferSize(GRAPHIC_STREAMBUFSIZE);
-
- bReturn = swapInFromStream(*xStream);
-
- xStream.reset();
+ bReturn = swapInFromStream(*pStream);
- restoreFromSwapInfo();
+ restoreFromSwapInfo();
- if (mpSwapFile)
- setOriginURL(mpSwapFile->getOriginURL());
+ setOriginURL(mpSwapFile->getOriginURL());
- mpSwapFile.reset();
- }
+ mpSwapFile.reset();
}
}