diff options
author | Oliver Bolte <obo@openoffice.org> | 2006-07-13 11:06:32 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2006-07-13 11:06:32 +0000 |
commit | df298aaf0b8b73679fc798b3a50107f6737b0061 (patch) | |
tree | b441b6a9f3a71c4b1e2b08fa7a11b65ffd839925 /svtools/source | |
parent | ebb3255783f4f6e5dddd0591fa4b520373e59e61 (diff) |
INTEGRATION: CWS pathoptions01 (1.26.22); FILE MERGED
2006/07/07 10:18:46 mav 1.26.22.1: #i66157# disable possibility to change/delete preinstalled or uno-package contents
Diffstat (limited to 'svtools/source')
-rw-r--r-- | svtools/source/contnr/svlbox.cxx | 47 |
1 files changed, 37 insertions, 10 deletions
diff --git a/svtools/source/contnr/svlbox.cxx b/svtools/source/contnr/svlbox.cxx index 5ddf44020042..f0b17d0699cb 100644 --- a/svtools/source/contnr/svlbox.cxx +++ b/svtools/source/contnr/svlbox.cxx @@ -4,9 +4,9 @@ * * $RCSfile: svlbox.cxx,v $ * - * $Revision: 1.26 $ + * $Revision: 1.27 $ * - * last change: $Author: hr $ $Date: 2006-06-19 20:52:27 $ + * last change: $Author: obo $ $Date: 2006-07-13 12:06:32 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -1078,6 +1078,11 @@ BOOL SvLBox::CopySelection( SvLBox* pSource, SvLBoxEntry* pTarget ) // Rueckgabe: Alle Entries wurden verschoben BOOL SvLBox::MoveSelection( SvLBox* pSource, SvLBoxEntry* pTarget ) { + return MoveSelectionCopyFallbackPossible( pSource, pTarget, sal_False ); +} + +BOOL SvLBox::MoveSelectionCopyFallbackPossible( SvLBox* pSource, SvLBoxEntry* pTarget, sal_Bool bAllowCopyFallback ) +{ DBG_CHKTHIS(SvLBox,0); nCurEntrySelPos = 0; // Selektionszaehler fuer NotifyMoving/Copying BOOL bSuccess = TRUE; @@ -1101,8 +1106,15 @@ BOOL SvLBox::MoveSelection( SvLBox* pSource, SvLBoxEntry* pTarget ) { SvLBoxEntry* pNewParent = 0; ULONG nInsertionPos = LIST_APPEND; - BOOL bOk= NotifyMoving(pTarget,pSourceEntry,pNewParent,nInsertionPos); - if ( bOk ) + sal_Bool bOk = NotifyMoving(pTarget,pSourceEntry,pNewParent,nInsertionPos); + sal_Bool bCopyOk = bOk; + if ( !bOk && bAllowCopyFallback ) + { + nInsertionPos = LIST_APPEND; + bCopyOk = NotifyCopying(pTarget,pSourceEntry,pNewParent,nInsertionPos); + } + + if ( bOk || bCopyOk ) { if ( bClone ) { @@ -1114,8 +1126,12 @@ BOOL SvLBox::MoveSelection( SvLBox* pSource, SvLBoxEntry* pTarget ) } else { - pModel->Move( (SvListEntry*)pSourceEntry, - (SvListEntry*)pNewParent, nInsertionPos ); + if ( bOk ) + pModel->Move( (SvListEntry*)pSourceEntry, + (SvListEntry*)pNewParent, nInsertionPos ); + else + pModel->Copy( (SvListEntry*)pSourceEntry, + (SvListEntry*)pNewParent, nInsertionPos ); } } else @@ -1667,10 +1683,21 @@ sal_Int8 SvLBox::ExecuteDrop( const ExecuteDropEvent& rEvt, SvLBox* pSourceView SvLBoxEntry* pTarget = pTargetEntry; // !!! kann 0 sein !!! - if( DND_ACTION_COPY == rEvt.mnAction - ? CopySelection( aDDInfo.pSource, pTarget ) - : MoveSelection( aDDInfo.pSource, pTarget )) - nRet = rEvt.mnAction; + if( DND_ACTION_COPY == rEvt.mnAction ) + { + if ( CopySelection( aDDInfo.pSource, pTarget ) ) + nRet = rEvt.mnAction; + } + else if( DND_ACTION_MOVE == rEvt.mnAction ) + { + if ( MoveSelection( aDDInfo.pSource, pTarget ) ) + nRet = rEvt.mnAction; + } + else if( DND_ACTION_COPYMOVE == rEvt.mnAction ) + { + if ( MoveSelectionCopyFallbackPossible( aDDInfo.pSource, pTarget, sal_True ) ) + nRet = rEvt.mnAction; + } } return nRet; } |