diff options
author | Dirk Voelzke <dv@openoffice.org> | 2010-06-25 15:18:20 +0200 |
---|---|---|
committer | Dirk Voelzke <dv@openoffice.org> | 2010-06-25 15:18:20 +0200 |
commit | 1404c71e271169299640a1d1b6fb7e46407792b7 (patch) | |
tree | cd14d07cf01a745a324d84eeaf2a5ce38605324f /uui/source/iahndl.cxx | |
parent | f8e7afbac976ca862a801b9648fd95b2107757b2 (diff) |
dv19#i29340# Implmented handler for NameClashResolveRequests
Diffstat (limited to 'uui/source/iahndl.cxx')
-rwxr-xr-x[-rw-r--r--] | uui/source/iahndl.cxx | 77 |
1 files changed, 28 insertions, 49 deletions
diff --git a/uui/source/iahndl.cxx b/uui/source/iahndl.cxx index e883bd60848d..ee233f5ac9de 100644..100755 --- a/uui/source/iahndl.cxx +++ b/uui/source/iahndl.cxx @@ -89,6 +89,7 @@ #include "newerverwarn.hxx" #include "iahndl.hxx" +#include "nameclashdlg.hxx" /** === begin UNO using === **/ using ::com::sun::star::uno::Sequence; @@ -867,14 +868,13 @@ UUIInteractionHelper::handleRequest_impl( if ( handleCertificateValidationRequest( rRequest ) ) return true; -// @@@ Todo #i29340#: activate! -// ucb::NameClashResolveRequest aNameClashResolveRequest; -// if (aAnyRequest >>= aNameClashResolveRequest) -// { -// handleNameClashResolveRequest(aNameClashResolveRequest, -// rRequest->getContinuations()); -// return true; -// } + ucb::NameClashResolveRequest aNameClashResolveRequest; + if (aAnyRequest >>= aNameClashResolveRequest) + { + handleNameClashResolveRequest(aNameClashResolveRequest, + rRequest->getContinuations()); + return true; + } if ( handleMasterPasswordRequest( rRequest ) ) return true; @@ -1187,32 +1187,22 @@ executeMessageBox( return aResult; } -enum NameClashResolveDialogResult { ABORT, RENAME, OVERWRITE }; - -NameClashResolveDialogResult -executeNameClashResolveDialog( - Window * /*pParent*/, - rtl::OUString const & /*rTargetFolderURL*/, - rtl::OUString const & /*rClashingName*/, - rtl::OUString & /*rProposedNewName*/) +NameClashResolveDialogResult executeSimpleNameClashResolveDialog( Window *pParent, + rtl::OUString const & rTargetFolderURL, + rtl::OUString const & rClashingName, + rtl::OUString & rProposedNewName, + bool bAllowOverwrite ) { - // @@@ Todo DV: execute overwrite-rename dialog, deliver result - OSL_ENSURE( false, - "executeNameClashResolveDialog not yet implemented!" ); - return ABORT; -} + std::auto_ptr< ResMgr > xManager( ResMgr::CreateResMgr( CREATEVERSIONRESMGR_NAME( uui ) ) ); + if ( !xManager.get() ) + return ABORT; -NameClashResolveDialogResult -executeSimpleNameClashResolveDialog( - Window * /*pParent*/, - rtl::OUString const & /*rTargetFolderURL*/, - rtl::OUString const & /*rClashingName*/, - rtl::OUString & /*rProposedNewName*/) -{ - // @@@ Todo DV: execute rename-only dialog, deliver result - OSL_ENSURE( false, - "executeSimpleNameClashResolveDialog not yet implemented!" ); - return ABORT; + NameClashDialog aDialog( pParent, xManager.get(), rTargetFolderURL, + rClashingName, rProposedNewName, bAllowOverwrite ); + + NameClashResolveDialogResult eResult = (NameClashResolveDialogResult) aDialog.Execute(); + rProposedNewName = aDialog.getNewName(); + return eResult; } } // namespace @@ -1246,18 +1236,12 @@ UUIInteractionHelper::handleNameClashResolveRequest( NameClashResolveDialogResult eResult = ABORT; rtl::OUString aProposedNewName( rRequest.ProposedNewName ); - if ( xReplaceExistingData.is() ) - eResult = executeNameClashResolveDialog( - getParentProperty(), - rRequest.TargetFolderURL, - rRequest.ClashingName, - aProposedNewName); - else - eResult = executeSimpleNameClashResolveDialog( - getParentProperty(), - rRequest.TargetFolderURL, - rRequest.ClashingName, - aProposedNewName); + + eResult = executeSimpleNameClashResolveDialog( getParentProperty(), + rRequest.TargetFolderURL, + rRequest.ClashingName, + aProposedNewName, + xReplaceExistingData.is() ); switch ( eResult ) { @@ -1277,11 +1261,6 @@ UUIInteractionHelper::handleNameClashResolveRequest( "No ReplaceExistingData continuation available!" ); xReplaceExistingData->select(); break; - - default: - OSL_ENSURE( false, "Unknown NameClashResolveDialogResult value. " - "Interaction Request not handled!" ); - break; } } |