diff options
-rw-r--r-- | include/ucbhelper/simpleinteractionrequest.hxx | 39 | ||||
-rw-r--r-- | sc/source/ui/unoobj/warnpassword.cxx | 20 | ||||
-rw-r--r-- | ucb/source/ucp/webdav-neon/webdavcontent.cxx | 11 | ||||
-rw-r--r-- | ucb/source/ucp/webdav/webdavcontent.cxx | 10 | ||||
-rw-r--r-- | ucbhelper/source/provider/simpleinteractionrequest.cxx | 71 |
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: */ |