diff --git a/src/panels/folders/folderspanel.cpp b/src/panels/folders/folderspanel.cpp --- a/src/panels/folders/folderspanel.cpp +++ b/src/panels/folders/folderspanel.cpp @@ -105,7 +105,6 @@ m_controller->view()->editRole(index, "text"); } else { RenameDialog* dialog = new RenameDialog(this, KFileItemList() << item); - dialog->setAttribute(Qt::WA_DeleteOnClose); dialog->show(); dialog->raise(); dialog->activateWindow(); diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -634,10 +634,8 @@ this, &DolphinView::slotRoleEditingFinished); } else { RenameDialog* dialog = new RenameDialog(this, items); - connect(dialog, &RenameDialog::renamingFinished, this, &DolphinView::slotRenameDialogRenamingFinished); - dialog->setAttribute(Qt::WA_DeleteOnClose); dialog->show(); dialog->raise(); dialog->activateWindow(); diff --git a/src/views/renamedialog.h b/src/views/renamedialog.h --- a/src/views/renamedialog.h +++ b/src/views/renamedialog.h @@ -33,6 +33,8 @@ class KJob; /** * @brief Dialog for renaming a variable number of files. + * + * The dialog deletes itself when accepted or rejected. */ class DOLPHIN_EXPORT RenameDialog : public QDialog { diff --git a/src/views/renamedialog.cpp b/src/views/renamedialog.cpp --- a/src/views/renamedialog.cpp +++ b/src/views/renamedialog.cpp @@ -62,6 +62,7 @@ m_okButton->setShortcut(Qt::CTRL + Qt::Key_Return); connect(buttonBox, &QDialogButtonBox::accepted, this, &RenameDialog::slotAccepted); connect(buttonBox, &QDialogButtonBox::rejected, this, &RenameDialog::reject); + connect(buttonBox, &QDialogButtonBox::rejected, this, &QObject::deleteLater); m_okButton->setDefault(true); KGuiItem::assign(m_okButton, KGuiItem(i18nc("@action:button", "&Rename"), QStringLiteral("dialog-ok-apply"))); @@ -178,6 +179,7 @@ KIO::FileUndoManager::self()->recordJob(cmdType, srcList, parentUrl, job); connect(job, &KJob::result, this, &RenameDialog::slotResult); + connect(job, &KJob::result, this, &QObject::deleteLater); job->uiDelegate()->setAutoErrorHandlingEnabled(true);