mirror of
https://invent.kde.org/system/dolphin
synced 2024-08-22 01:40:02 +00:00
Fix scrolling to renamed file when using the rename dialog
Summary: The `RenameDialog::slotResult()` slot is currently never called because the dialog is deleted first, due to the usage of the `WA_DeleteOnClose` attribute. This breaks the scroll-to-renamed-file feature when the inline renaming is disabled. Instead of deleting the dialog on close, we can use `deleteLater()` when we are sure the dialog has actually finished its job, which is when the KIO move job emits the `result` signal. Test Plan: - Disable inline renaming - Rename a file so that it goes out of the view - Check whether the view scrolls to the renamed file. Reviewers: #dolphin, emateli Subscribers: kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D13304
This commit is contained in:
parent
a8bd6f4b1f
commit
e308985de4
|
@ -105,7 +105,6 @@ void FoldersPanel::rename(const KFileItem& item)
|
|||
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();
|
||||
|
|
|
@ -634,10 +634,8 @@ void DolphinView::renameSelectedItems()
|
|||
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();
|
||||
|
|
|
@ -62,6 +62,7 @@ RenameDialog::RenameDialog(QWidget *parent, const KFileItemList& items) :
|
|||
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 @@ void RenameDialog::slotAccepted()
|
|||
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);
|
||||
|
||||
|
|
|
@ -33,6 +33,8 @@ class QPushButton;
|
|||
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
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue