diff options
| author | David Faure <[email protected]> | 2014-09-04 18:14:43 +0200 |
|---|---|---|
| committer | David Faure <[email protected]> | 2014-09-22 22:37:44 +0200 |
| commit | 4425c659a001887d82664b41c0e4222e21beddbc (patch) | |
| tree | 818e4dacad6439e4c9f5fba93aa0ec3bb2c6d141 /src/panels/folders/folderspanel.cpp | |
| parent | 76ce61a05f924300ed4bed4a54464c1527bde73f (diff) | |
Port away from KonqOperations::rename
It's a bit more code, but this way if you want e.g. custom error handling
you know what to change :)
Diffstat (limited to 'src/panels/folders/folderspanel.cpp')
| -rw-r--r-- | src/panels/folders/folderspanel.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/panels/folders/folderspanel.cpp b/src/panels/folders/folderspanel.cpp index 1f7d007ca..674f04c0d 100644 --- a/src/panels/folders/folderspanel.cpp +++ b/src/panels/folders/folderspanel.cpp @@ -33,7 +33,10 @@ #include <kitemviews/kfileitemmodel.h> #include <KFileItem> -#include <konq_operations.h> +#include <KJobWidgets> +#include <KJobUiDelegate> +#include <KIO/CopyJob> +#include <KIO/FileUndoManager> #include <QApplication> #include <QBoxLayout> @@ -250,7 +253,14 @@ void FoldersPanel::slotRoleEditingFinished(int index, const QByteArray& role, co const KFileItem item = m_model->fileItem(index); const QString newName = value.toString(); if (!newName.isEmpty() && newName != item.text() && newName != QLatin1String(".") && newName != QLatin1String("..")) { - KonqOperations::rename(this, item.url(), newName); + const QUrl oldUrl = item.url(); + QUrl newUrl = oldUrl.adjusted(QUrl::RemoveFilename); + newUrl.setPath(newUrl.path() + KIO::encodeFileName(newName)); + + KIO::Job* job = KIO::moveAs(oldUrl, newUrl); + KJobWidgets::setWindow(job, this); + KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Rename, QList<QUrl>() << oldUrl, newUrl, job); + job->ui()->setAutoErrorHandlingEnabled(true); } } } |
