+void RenameDialog::slotAccepted()
+{
+ QWidget* widget = parentWidget();
+ if (!widget) {
+ widget = this;
+ }
+
+ KIO::FileUndoManager::CommandType cmdType;
+ if (m_renameOneItem) {
+ Q_ASSERT(m_items.count() == 1);
+ cmdType = KIO::FileUndoManager::Rename;
+ } else {
+ cmdType = KIO::FileUndoManager::BatchRename;
+ }
+
+ const QList<QUrl> srcList = m_items.urlList();
+ KIO::BatchRenameJob* job = KIO::batchRename(srcList, m_lineEdit->text(), m_spinBox->value(), QLatin1Char('#'));
+ KJobWidgets::setWindow(job, widget);
+ const QUrl parentUrl = srcList.first().adjusted(QUrl::RemoveFilename | QUrl::StripTrailingSlash);
+ KIO::FileUndoManager::self()->recordJob(cmdType, srcList, parentUrl, job);
+
+ connect(job, &KIO::BatchRenameJob::fileRenamed, this, &RenameDialog::slotFileRenamed);
+ connect(job, &KIO::BatchRenameJob::result, this, &RenameDialog::slotResult);
+
+ job->uiDelegate()->setAutoErrorHandlingEnabled(true);
+
+ accept();
+}
+
+void RenameDialog::slotTextChanged(const QString& newName)