X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/31230ccdb561c1088824796a4429b363c8616237..d47557dcd17a028596c4e0e7b0aabc5db4847bed:/src/views/renamedialog.cpp diff --git a/src/views/renamedialog.cpp b/src/views/renamedialog.cpp index 5b20942d5..512479512 100644 --- a/src/views/renamedialog.cpp +++ b/src/views/renamedialog.cpp @@ -21,7 +21,10 @@ #include #include -#include +#include +#include +#include +#include #include #include //TODO port to QCollator #include @@ -128,6 +131,23 @@ RenameDialog::~RenameDialog() { } +void RenameDialog::renameItem(const KFileItem &item, const QString& newName) +{ + const QUrl oldUrl = item.url(); + QUrl newUrl = oldUrl.adjusted(QUrl::RemoveFilename); + newUrl.setPath(newUrl.path() + KIO::encodeFileName(newName)); + + QWidget* widget = parentWidget(); + if (!widget) { + widget = this; + } + + KIO::Job * job = KIO::moveAs(oldUrl, newUrl); + KJobWidgets::setWindow(job, widget); + KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Rename, QList() << oldUrl, newUrl, job); + job->ui()->setAutoErrorHandlingEnabled(true); +} + void RenameDialog::slotButtonClicked(int button) { if (button == KDialog::Ok) { @@ -135,16 +155,7 @@ void RenameDialog::slotButtonClicked(int button) if (m_renameOneItem) { Q_ASSERT(m_items.count() == 1); - const KUrl oldUrl = m_items.first().url(); - KUrl newUrl = oldUrl; - newUrl.setFileName(KIO::encodeFileName(m_newName)); - - QWidget* widget = parentWidget(); - if (!widget) { - widget = this; - } - - KonqOperations::rename(widget, oldUrl, newUrl); + renameItem(m_items.first(), m_newName); } else { renameItems(); } @@ -179,23 +190,15 @@ void RenameDialog::renameItems() QString newName = indexedName(m_newName, index, QLatin1Char('#')); ++index; - const KUrl oldUrl = item.url(); - const QString extension = KMimeType::extractKnownExtension(oldUrl.prettyUrl().toLower()); + const QUrl oldUrl = item.url(); + const QString extension = KMimeType::extractKnownExtension(oldUrl.path().toLower()); if (!extension.isEmpty()) { newName.append(QLatin1Char('.')); newName.append(extension); } if (oldUrl.fileName() != newName) { - KUrl newUrl = oldUrl; - newUrl.setFileName(KIO::encodeFileName(newName)); - - QWidget* widget = parentWidget(); - if (!widget) { - widget = this; - } - - KonqOperations::rename(widget, oldUrl, newUrl); + renameItem(item, newName); } } }