From ee946d362c64ee35af932b3cad54d23ad786fe55 Mon Sep 17 00:00:00 2001 From: David Faure Date: Fri, 22 Aug 2014 10:16:48 +0200 Subject: [PATCH] Port away from KonqOperations::askDeleteConfirmation and KonqOperations::del and remove them. Porting docs added to https://community.kde.org/Frameworks/Porting_Notes#libkonq --- src/panels/folders/treeviewcontextmenu.cpp | 23 ++++++++++++++-- src/views/dolphinview.cpp | 32 ++++++++++++++++------ src/views/dolphinview.h | 6 ++++ 3 files changed, 50 insertions(+), 11 deletions(-) diff --git a/src/panels/folders/treeviewcontextmenu.cpp b/src/panels/folders/treeviewcontextmenu.cpp index 932d102b86..9450d3e179 100644 --- a/src/panels/folders/treeviewcontextmenu.cpp +++ b/src/panels/folders/treeviewcontextmenu.cpp @@ -22,9 +22,12 @@ #include #include +#include #include +#include #include #include +#include #include #include #include @@ -32,6 +35,7 @@ #include #include #include +#include #include #include "folderspanel.h" @@ -187,12 +191,27 @@ void TreeViewContextMenu::rename() void TreeViewContextMenu::moveToTrash() { - KonqOperations::del(m_parent, KonqOperations::TRASH, KUrl::List() << m_fileItem.url()); + KUrl::List list = KUrl::List() << m_fileItem.url(); + KIO::JobUiDelegate uiDelegate; + uiDelegate.setWindow(m_parent); + if (uiDelegate.askDeleteConfirmation(list, KIO::JobUiDelegate::Trash, KIO::JobUiDelegate::DefaultConfirmation)) { + KIO::Job* job = KIO::trash(list); + KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Trash, list, KUrl("trash:/"), job); + KJobWidgets::setWindow(job, m_parent); + job->ui()->setAutoErrorHandlingEnabled(true); + } } void TreeViewContextMenu::deleteItem() { - KonqOperations::del(m_parent, KonqOperations::DEL, KUrl::List() << m_fileItem.url()); + KUrl::List list = KUrl::List() << m_fileItem.url(); + KIO::JobUiDelegate uiDelegate; + uiDelegate.setWindow(m_parent); + if (uiDelegate.askDeleteConfirmation(list, KIO::JobUiDelegate::Delete, KIO::JobUiDelegate::DefaultConfirmation)) { + KIO::Job* job = KIO::del(list); + KJobWidgets::setWindow(job, m_parent); + job->ui()->setAutoErrorHandlingEnabled(true); + } } void TreeViewContextMenu::showProperties() diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp index 00358a268c..e57881c10e 100644 --- a/src/views/dolphinview.cpp +++ b/src/views/dolphinview.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #include #include #include @@ -673,22 +674,26 @@ void DolphinView::renameSelectedItems() void DolphinView::trashSelectedItems() { const KUrl::List list = simplifiedSelectedUrls(); - KonqOperations::del(this, KonqOperations::TRASH, list); + KIO::JobUiDelegate uiDelegate; + uiDelegate.setWindow(window()); + if (uiDelegate.askDeleteConfirmation(list, KIO::JobUiDelegate::Trash, KIO::JobUiDelegate::DefaultConfirmation)) { + KIO::Job* job = KIO::trash(list); + KIO::FileUndoManager::self()->recordJob(KIO::FileUndoManager::Trash, list, KUrl("trash:/"), job); + KJobWidgets::setWindow(job, this); + connect(job, &KIO::Job::result, + this, &DolphinView::slotTrashFileFinished); + } } void DolphinView::deleteSelectedItems() { const KUrl::List list = simplifiedSelectedUrls(); - const bool del = KonqOperations::askDeleteConfirmation(list, - KonqOperations::DEL, - KonqOperations::DEFAULT_CONFIRMATION, - this); - if (del) { + KIO::JobUiDelegate uiDelegate; + uiDelegate.setWindow(window()); + if (uiDelegate.askDeleteConfirmation(list, KIO::JobUiDelegate::Delete, KIO::JobUiDelegate::DefaultConfirmation)) { KIO::Job* job = KIO::del(list); - if (job->ui()) { - KJobWidgets::setWindow(job, this); - } + KJobWidgets::setWindow(job, this); connect(job, &KIO::Job::result, this, &DolphinView::slotDeleteFileFinished); } @@ -1357,6 +1362,15 @@ void DolphinView::calculateItemCount(int& fileCount, } } +void DolphinView::slotTrashFileFinished(KJob* job) +{ + if (job->error() == 0) { + emit operationCompletedMessage(i18nc("@info:status", "Trash operation completed.")); + } else if (job->error() != KIO::ERR_USER_CANCELED) { + emit errorMessage(job->errorString()); + } +} + void DolphinView::slotDeleteFileFinished(KJob* job) { if (job->error() == 0) { diff --git a/src/views/dolphinview.h b/src/views/dolphinview.h index e7a030aac1..688699096f 100644 --- a/src/views/dolphinview.h +++ b/src/views/dolphinview.h @@ -619,6 +619,12 @@ private slots: */ void slotDeleteFileFinished(KJob* job); + /** + * Indicates in the status bar that the trash operation + * of the job \a job has been finished. + */ + void slotTrashFileFinished(KJob* job); + void slotRenamingFailed(const KUrl& oldUrl, const KUrl& newUrl); /**