summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/ucbhelper/simpleinteractionrequest.hxx39
-rw-r--r--sc/source/ui/unoobj/warnpassword.cxx20
-rw-r--r--ucb/source/ucp/webdav-neon/webdavcontent.cxx11
-rw-r--r--ucb/source/ucp/webdav/webdavcontent.cxx10
-rw-r--r--ucbhelper/source/provider/simpleinteractionrequest.cxx71
5 files changed, 54 insertions, 97 deletions
diff --git a/include/ucbhelper/simpleinteractionrequest.hxx b/include/ucbhelper/simpleinteractionrequest.hxx
index 9ffa8475275e..64b892ae801d 100644
--- a/include/ucbhelper/simpleinteractionrequest.hxx
+++ b/include/ucbhelper/simpleinteractionrequest.hxx
@@ -22,28 +22,31 @@
#include <ucbhelper/interactionrequest.hxx>
#include <ucbhelper/ucbhelperdllapi.h>
-
-namespace ucbhelper {
+#include <o3tl/typed_flags_set.hxx>
/** These are the constants that can be passed to the constructor of class
* SimpleInteractionRequest and that are returned by method
* SimpleInteractionRequest::getResponse().
*/
-/** The request was not (yet) handled by the interaction handler. */
-static const sal_Int32 CONTINUATION_UNKNOWN = 0;
-
-/** The interaction handler selected XInteractionAbort. */
-static const sal_Int32 CONTINUATION_ABORT = 1;
-
-/** The interaction handler selected XInteractionRetry. */
-static const sal_Int32 CONTINUATION_RETRY = 2;
-
-/** The interaction handler selected XInteractionApprove. */
-static const sal_Int32 CONTINUATION_APPROVE = 4;
+enum class ContinuationFlags {
+ /** The request was not (yet) handled by the interaction handler. */
+ NONE = 0,
+ /** The interaction handler selected XInteractionAbort. */
+ Abort = 1,
+ /** The interaction handler selected XInteractionRetry. */
+ Retry = 2,
+ /** The interaction handler selected XInteractionApprove. */
+ Approve = 4,
+ /** The interaction handler selected XInteractionDisapprove. */
+ Disapprove = 8,
+};
+namespace o3tl
+{
+ template<> struct typed_flags<ContinuationFlags> : is_typed_flags<ContinuationFlags, 0x0f> {};
+}
-/** The interaction handler selected XInteractionDisapprove. */
-static const sal_Int32 CONTINUATION_DISAPPROVE = 8;
+namespace ucbhelper {
/**
* This class implements a simple interaction request. The user must not deal
@@ -71,16 +74,16 @@ public:
* listed above.
*/
SimpleInteractionRequest( const css::uno::Any & rRequest,
- const sal_Int32 nContinuations );
+ const ContinuationFlags nContinuations );
/**
* After passing this request to XInteractionHandler::handle, this method
* returns the continuation that was chosen by the interaction handler.
*
* @return the continuation chosen by an interaction handler or
- * CONTINUATION_UNKNOWN, if the request was not (yet) handled.
+ * ContinuationFlags::NONE, if the request was not (yet) handled.
*/
- sal_Int32 getResponse() const;
+ ContinuationFlags getResponse() const;
};
} // namespace ucbhelper
diff --git a/sc/source/ui/unoobj/warnpassword.cxx b/sc/source/ui/unoobj/warnpassword.cxx
index b35a81cd561c..c69303137f6d 100644
--- a/sc/source/ui/unoobj/warnpassword.cxx
+++ b/sc/source/ui/unoobj/warnpassword.cxx
@@ -52,26 +52,14 @@ bool ScWarnPassword::WarningOnPassword( SfxMedium& rMedium )
rtl::Reference< ucbhelper::SimpleInteractionRequest > xRequest
= new ucbhelper::SimpleInteractionRequest(
aException,
- ucbhelper::CONTINUATION_APPROVE
- | ucbhelper::CONTINUATION_DISAPPROVE );
+ ContinuationFlags::Approve | ContinuationFlags::Disapprove );
xHandler->handle( xRequest.get() );
- const sal_Int32 nResp = xRequest->getResponse();
+ const ContinuationFlags nResp = xRequest->getResponse();
- switch ( nResp )
- {
- case ucbhelper::CONTINUATION_UNKNOWN:
- break;
-
- case ucbhelper::CONTINUATION_APPROVE:
- // Continue
- break;
-
- case ucbhelper::CONTINUATION_DISAPPROVE:
- bReturn = false;
- break;
- }
+ if ( nResp == ContinuationFlags::Disapprove )
+ bReturn = false;
}
return bReturn;
}
diff --git a/ucb/source/ucp/webdav-neon/webdavcontent.cxx b/ucb/source/ucp/webdav-neon/webdavcontent.cxx
index 790349d5f6e2..c141e269a78b 100644
--- a/ucb/source/ucp/webdav-neon/webdavcontent.cxx
+++ b/ucb/source/ucp/webdav-neon/webdavcontent.cxx
@@ -2586,25 +2586,24 @@ void Content::insert(
rtl::Reference< ucbhelper::SimpleInteractionRequest > xRequest
= new ucbhelper::SimpleInteractionRequest(
aExAsAny,
- ucbhelper::CONTINUATION_APPROVE
- | ucbhelper::CONTINUATION_DISAPPROVE );
+ ContinuationFlags::Approve | ContinuationFlags::Disapprove );
xIH->handle( xRequest.get() );
- const sal_Int32 nResp = xRequest->getResponse();
+ const ContinuationFlags nResp = xRequest->getResponse();
switch ( nResp )
{
- case ucbhelper::CONTINUATION_UNKNOWN:
+ case ContinuationFlags::NONE:
// Not handled; throw.
throw aEx;
// break;
- case ucbhelper::CONTINUATION_APPROVE:
+ case ContinuationFlags::Approve:
// Continue -> Overwrite.
bReplaceExisting = true;
break;
- case ucbhelper::CONTINUATION_DISAPPROVE:
+ case ContinuationFlags::Disapprove:
// Abort.
throw ucb::CommandFailedException(
OUString(),
diff --git a/ucb/source/ucp/webdav/webdavcontent.cxx b/ucb/source/ucp/webdav/webdavcontent.cxx
index d549d7a3a1c6..f01598a7185c 100644
--- a/ucb/source/ucp/webdav/webdavcontent.cxx
+++ b/ucb/source/ucp/webdav/webdavcontent.cxx
@@ -2435,25 +2435,25 @@ void Content::insert(
rtl::Reference< ucbhelper::SimpleInteractionRequest > xRequest
= new ucbhelper::SimpleInteractionRequest(
aExAsAny,
- ucbhelper::CONTINUATION_APPROVE
- | ucbhelper::CONTINUATION_DISAPPROVE );
+ ContinuationFlags::Approve
+ | ContinuationFlags::Disapprove );
xIH->handle( xRequest.get() );
const sal_Int32 nResp = xRequest->getResponse();
switch ( nResp )
{
- case ucbhelper::CONTINUATION_UNKNOWN:
+ case ContinuationFlags::NONE:
// Not handled; throw.
throw aEx;
// break;
- case ucbhelper::CONTINUATION_APPROVE:
+ case ContinuationFlags::Approve:
// Continue -> Overwrite.
bReplaceExisting = true;
break;
- case ucbhelper::CONTINUATION_DISAPPROVE:
+ case ContinuationFlags::Disapprove:
// Abort.
throw ucb::CommandFailedException(
OUString(),
diff --git a/ucbhelper/source/provider/simpleinteractionrequest.cxx b/ucbhelper/source/provider/simpleinteractionrequest.cxx
index ea4d7ef5bb5f..69f8ba4906f3 100644
--- a/ucbhelper/source/provider/simpleinteractionrequest.cxx
+++ b/ucbhelper/source/provider/simpleinteractionrequest.cxx
@@ -18,6 +18,7 @@
*/
#include <ucbhelper/simpleinteractionrequest.hxx>
+#include <comphelper/sequence.hxx>
#include <osl/diagnose.h>
@@ -27,69 +28,35 @@ using namespace ucbhelper;
SimpleInteractionRequest::SimpleInteractionRequest(
const uno::Any & rRequest,
- const sal_Int32 nContinuations )
+ const ContinuationFlags nContinuations )
: InteractionRequest( rRequest )
{
// Set continuations.
- OSL_ENSURE( nContinuations != CONTINUATION_UNKNOWN,
+ OSL_ENSURE( nContinuations != ContinuationFlags::NONE,
"SimpleInteractionRequest - No continuation!" );
- sal_Int32 nLength = 0;
-
- uno::Reference< task::XInteractionContinuation > xAbort;
- uno::Reference< task::XInteractionContinuation > xRetry;
- uno::Reference< task::XInteractionContinuation > xApprove;
- uno::Reference< task::XInteractionContinuation > xDisapprove;
-
- if ( nContinuations & CONTINUATION_ABORT )
+ std::vector< uno::Reference< task::XInteractionContinuation > > aContinuations;
+ if ( nContinuations & ContinuationFlags::Abort )
{
- ++nLength;
- xAbort = new InteractionAbort( this );
+ aContinuations.push_back( new InteractionAbort( this ) );
}
-
- if ( nContinuations & CONTINUATION_RETRY )
+ if ( nContinuations & ContinuationFlags::Retry )
{
- ++nLength;
- xRetry = new InteractionRetry( this );
+ aContinuations.push_back( new InteractionRetry( this ) );
}
-
- if ( nContinuations & CONTINUATION_APPROVE )
+ if ( nContinuations & ContinuationFlags::Approve )
{
- ++nLength;
- xApprove = new InteractionApprove( this );
+ aContinuations.push_back( new InteractionApprove( this ) );
}
-
- if ( nContinuations & CONTINUATION_DISAPPROVE )
+ if ( nContinuations & ContinuationFlags::Disapprove )
{
- ++nLength;
- xDisapprove = new InteractionDisapprove( this );
+ aContinuations.push_back( new InteractionDisapprove( this ) );
}
-
- OSL_ENSURE( nLength > 0,
- "SimpleInteractionRequest - No continuation!" );
-
- uno::Sequence< uno::Reference< task::XInteractionContinuation > >
- aContinuations( nLength );
-
- nLength = 0;
-
- if ( xAbort.is() )
- aContinuations[ nLength++ ] = xAbort;
-
- if ( xRetry.is() )
- aContinuations[ nLength++ ] = xRetry;
-
- if ( xApprove.is() )
- aContinuations[ nLength++ ] = xApprove;
-
- if ( xDisapprove.is() )
- aContinuations[ nLength++ ] = xDisapprove;
-
- setContinuations( aContinuations );
+ setContinuations( comphelper::containerToSequence(aContinuations) );
}
-sal_Int32 SimpleInteractionRequest::getResponse() const
+ContinuationFlags SimpleInteractionRequest::getResponse() const
{
rtl::Reference< InteractionContinuation > xSelection = getSelection();
if ( xSelection.is() )
@@ -99,26 +66,26 @@ sal_Int32 SimpleInteractionRequest::getResponse() const
uno::Reference< task::XInteractionAbort > xAbort(
pSelection, uno::UNO_QUERY );
if ( xAbort.is() )
- return CONTINUATION_ABORT;
+ return ContinuationFlags::Abort;
uno::Reference< task::XInteractionRetry > xRetry(
pSelection, uno::UNO_QUERY );
if ( xRetry.is() )
- return CONTINUATION_RETRY;
+ return ContinuationFlags::Retry;
uno::Reference< task::XInteractionApprove > xApprove(
pSelection, uno::UNO_QUERY );
if ( xApprove.is() )
- return CONTINUATION_APPROVE;
+ return ContinuationFlags::Approve;
uno::Reference< task::XInteractionDisapprove > xDisapprove(
pSelection, uno::UNO_QUERY );
if ( xDisapprove.is() )
- return CONTINUATION_DISAPPROVE;
+ return ContinuationFlags::Disapprove;
OSL_FAIL( "SimpleInteractionRequest::getResponse - Unknown continuation!" );
}
- return CONTINUATION_UNKNOWN;
+ return ContinuationFlags::NONE;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */