mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-20 00:41:23 +00:00
Port to the new pasteMimeData/pasteClipboard
When pasting/dropping raw data, this creates the file with the right permission and makes undo work (deletes the file). Needs kdelibs > 92e4dfab0d589d0ee663fb600a2cb2a046017b19 (April 20)
This commit is contained in:
parent
6b5271fa5f
commit
48afcff729
|
@ -140,12 +140,17 @@ void KonqOperations::doPaste( QWidget * parent, const KUrl & destUrl, const QPoi
|
|||
KIO::Job *job = KIO::pasteClipboard( destUrl, parent, move );
|
||||
if (job) {
|
||||
KonqOperations * op = new KonqOperations( parent );
|
||||
KIO::CopyJob * copyJob = static_cast<KIO::CopyJob *>(job);
|
||||
KIOPasteInfo * pi = new KIOPasteInfo;
|
||||
pi->mousePos = pos;
|
||||
op->setPasteInfo( pi );
|
||||
op->setOperation( job, move ? MOVE : COPY, copyJob->destUrl() );
|
||||
KIO::FileUndoManager::self()->recordJob( move ? KIO::FileUndoManager::Move : KIO::FileUndoManager::Copy, KUrl::List(), destUrl, job );
|
||||
KIO::CopyJob * copyJob = qobject_cast<KIO::CopyJob *>(job);
|
||||
if (copyJob) {
|
||||
op->setOperation( job, move ? MOVE : COPY, copyJob->destUrl() );
|
||||
KIO::FileUndoManager::self()->recordJob( move ? KIO::FileUndoManager::Move : KIO::FileUndoManager::Copy, KUrl::List(), destUrl, job );
|
||||
} else if (KIO::SimpleJob* simpleJob = qobject_cast<KIO::SimpleJob *>(job)) {
|
||||
op->setOperation(job, PUT, simpleJob->url());
|
||||
KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Put, KUrl::List(), simpleJob->url(), job);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -328,13 +333,12 @@ KonqOperations *KonqOperations::doDrop( const KFileItem & destItem, const KUrl &
|
|||
{
|
||||
//kDebug(1203) << "Pasting to " << dest.url();
|
||||
KonqOperations * op = new KonqOperations(parent);
|
||||
KIO::Job* job = KIO::pasteMimeData( ev->mimeData(), dest,
|
||||
i18n( "File name for dropped contents:" ),
|
||||
parent );
|
||||
if ( job ) // 0 if canceled by user
|
||||
{
|
||||
op->setOperation( job, COPY, dest );
|
||||
KIO::FileUndoManager::self()->recordJob( KIO::FileUndoManager::Copy, KUrl::List(), dest, job );
|
||||
KIO::Job* job = KIO::pasteMimeData(ev->mimeData(), dest,
|
||||
i18n( "File name for dropped contents:" ),
|
||||
parent);
|
||||
if (KIO::SimpleJob* simpleJob = qobject_cast<KIO::SimpleJob *>(job)) {
|
||||
op->setOperation(job, PUT, simpleJob->url());
|
||||
KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Put, KUrl::List(), simpleJob->url(), simpleJob);
|
||||
}
|
||||
ev->acceptProposedAction();
|
||||
return op;
|
||||
|
|
|
@ -37,7 +37,7 @@ class KFileItemListProperties;
|
|||
|
||||
/**
|
||||
* Implements file operations (move,del,trash,paste,copy,move,link...)
|
||||
* for konqueror and kdesktop whatever the view mode is (icon, tree, ...)
|
||||
* for file managers
|
||||
*/
|
||||
class LIBKONQ_EXPORT KonqOperations : public QObject
|
||||
{
|
||||
|
@ -53,7 +53,7 @@ public:
|
|||
*/
|
||||
static void editMimeType( const QString & mimeType, QWidget* parent );
|
||||
|
||||
enum Operation { TRASH, DEL, COPY, MOVE, LINK, EMPTYTRASH, STAT, MKDIR, RESTORE, UNKNOWN };
|
||||
enum Operation { TRASH, DEL, COPY, MOVE, LINK, EMPTYTRASH, STAT, MKDIR, RESTORE, UNKNOWN, PUT };
|
||||
/**
|
||||
* Delete the @p selectedUrls if possible.
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue