#include <KLineEdit>
#include <KLocale>
-#include <konq_operations.h>
+#include <KJobWidgets>
+#include <KJobUiDelegate>
+#include <KIO/CopyJob>
+#include <KIO/FileUndoManager>
#include <KStringHandler>
#include <kstringhandler_deprecated.h> //TODO port to QCollator
#include <knuminput.h>
{
}
+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<QUrl>() << oldUrl, newUrl, job);
+ job->ui()->setAutoErrorHandlingEnabled(true);
+}
+
void RenameDialog::slotButtonClicked(int button)
{
if (button == KDialog::Ok) {
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();
}
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);
}
}
}