--Boundary-00=_gTov9qyXIJI5T54 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Am Tuesday 29 October 2002 12:09 schrieb David Faure: > On Tuesday 29 October 2002 00:00, Stephan Kulow wrote: > > OK, please check the attached patch. It disallows the move of trash > > and delete for protocols that do not support deleting. > > The _del change is ok, but the doFileCopy change isn't - it should do this > test only if _moving_, not if _copying_. > So I suggest to move the "filtering" under the "case QDropEvent::Move :" > near the end of doFileCopy(). It's not as easy as I don't want the "do you really want to move to Trash" message if it's not going to move it. See my next revision of the patch. Greetings, Stephan --Boundary-00=_gTov9qyXIJI5T54 Content-Type: text/x-diff; charset="iso-8859-1"; name="libkonq.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="libkonq.patch" Index: konq_operations.cc =================================================================== RCS file: /home/kde/kdebase/libkonq/konq_operations.cc,v retrieving revision 1.103 diff -u -3 -p -u -r1.103 konq_operations.cc --- konq_operations.cc 2002/09/27 18:04:04 1.103 +++ konq_operations.cc 2002/10/29 12:51:06 @@ -191,8 +191,17 @@ void KonqOperations::copy( QWidget * par (void) new KonqCommandRecorder( method==MOVE?KonqCommand::MOVE:KonqCommand::LINK, selectedURLs, destUrl, job ); }; -void KonqOperations::_del( int method, const KURL::List & selectedURLs, int confirmation ) +void KonqOperations::_del( int method, const KURL::List & _selectedURLs, int confirmation ) { + KURL::List selectedURLs; + for (KURL::List::ConstIterator it = _selectedURLs.begin(); it != _selectedURLs.end(); ++it) + if (KProtocolInfo::supportsDeleting(*it)) + selectedURLs.append(*it); + if (selectedURLs.isEmpty()) { + delete this; + return; + } + m_method = method; if ( confirmation == SKIP_CONFIRMATION || askDeleteConfirmation( selectedURLs, confirmation ) ) { @@ -538,9 +547,15 @@ void KonqOperations::doFileCopy() assert(m_info); // setDropInfo - and asyncDrop - should have been called before asyncDrop KURL::List lst = m_info->lst; QDropEvent::Action action = m_info->action; - if ( m_destURL.path( 1 ) == KGlobalSettings::trashPath() ) + + KURL::List mlst; + for (KURL::List::ConstIterator it = lst.begin(); it != lst.end(); ++it) + if ( KProtocolInfo::supportsDeleting( *it ) ) + mlst.append(*it); + + if ( !mlst.isEmpty() && m_destURL.path( 1 ) == KGlobalSettings::trashPath() ) { - if ( askDeleteConfirmation( lst, DEFAULT_CONFIRMATION ) ) + if ( askDeleteConfirmation( mlst, DEFAULT_CONFIRMATION ) ) action = QDropEvent::Move; else { @@ -606,7 +621,9 @@ void KonqOperations::doFileCopy() KIO::Job * job = 0; switch ( action ) { case QDropEvent::Move : - job = KIO::move( lst, m_destURL ); + if (mlst.isEmpty()) + return; + job = KIO::move( mlst, m_destURL ); job->setMetaData( m_info->metaData ); setOperation( job, MOVE, lst, m_destURL ); (void) new KonqCommandRecorder( KonqCommand::MOVE, lst, m_destURL, job ); --Boundary-00=_gTov9qyXIJI5T54--