diff options
author | Sarper Akdemir <sarper.akdemir@allotropia.de> | 2024-06-21 12:40:11 +0200 |
---|---|---|
committer | Sarper Akdemir <sarper.akdemir@allotropia.de> | 2024-06-28 12:06:25 +0200 |
commit | 2ad7d5cfb0288559921b0d9ccad0a23d95cde452 (patch) | |
tree | 251a5106cb6bc904754f379f570bd3ec6414e1fa /unotools/source | |
parent | 93dbba5361b2fd4b4b9a62725edab5e59b8be575 (diff) |
use non-scoped interaction handler instead of the scoped
SimpleFileAccessInteraction so that errors will be handled
with correct pop-up dialogs.
Also throw the correct type of DAVException for
USC_CONNECT_FAILED in Content::Open
Change-Id: If2031dfa2796f91fad6866bc9608194c92658b96
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169519
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Diffstat (limited to 'unotools/source')
-rw-r--r-- | unotools/source/ucbhelper/ucbstreamhelper.cxx | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/unotools/source/ucbhelper/ucbstreamhelper.cxx b/unotools/source/ucbhelper/ucbstreamhelper.cxx index 72a3d7cbe64b..f68a503370c1 100644 --- a/unotools/source/ucbhelper/ucbstreamhelper.cxx +++ b/unotools/source/ucbhelper/ucbstreamhelper.cxx @@ -137,24 +137,37 @@ static std::unique_ptr<SvStream> lcl_CreateStream( const OUString& rFileName, St return pStream; } -std::unique_ptr<SvStream> UcbStreamHelper::CreateStream(const OUString& rFileName, StreamMode eOpenMode, css::uno::Reference<css::awt::XWindow> xParentWin) +std::unique_ptr<SvStream> +UcbStreamHelper::CreateStream(const OUString& rFileName, StreamMode eOpenMode, + css::uno::Reference<css::awt::XWindow> xParentWin, + bool bUseSimpleFileAccessInteraction) { // related tdf#99312 // create a specialized interaction handler to manages Web certificates and Web credentials when needed Reference< XInteractionHandler > xIH( css::task::InteractionHandler::createWithParent(comphelper::getProcessComponentContext(), xParentWin)); + + if (!bUseSimpleFileAccessInteraction) + return lcl_CreateStream(rFileName, eOpenMode, xIH, true /* bEnsureFileExists */); + Reference<XInteractionHandler> xIHScoped(new comphelper::SimpleFileAccessInteraction(xIH)); return lcl_CreateStream( rFileName, eOpenMode, xIHScoped, true /* bEnsureFileExists */ ); } -std::unique_ptr<SvStream> UcbStreamHelper::CreateStream(const OUString& rFileName, StreamMode eOpenMode, - bool bFileExists, css::uno::Reference<css::awt::XWindow> xParentWin) +std::unique_ptr<SvStream> +UcbStreamHelper::CreateStream(const OUString& rFileName, StreamMode eOpenMode, bool bFileExists, + css::uno::Reference<css::awt::XWindow> xParentWin, + bool bUseSimpleFileAccessInteraction) { // related tdf#99312 // create a specialized interaction handler to manages Web certificates and Web credentials when needed Reference< XInteractionHandler > xIH( css::task::InteractionHandler::createWithParent(comphelper::getProcessComponentContext(), xParentWin)); + + if (!bUseSimpleFileAccessInteraction) + return lcl_CreateStream(rFileName, eOpenMode, xIH, !bFileExists); + Reference<XInteractionHandler> xIHScoped(new comphelper::SimpleFileAccessInteraction(xIH)); return lcl_CreateStream( rFileName, eOpenMode, xIHScoped,!bFileExists ); } |