1
0
mirror of https://invent.kde.org/system/dolphin synced 2024-07-04 17:30:55 +00:00

Always automatically choose a new file name while duplicating

Since now when duplicating items we automatically generate a name for the new item, we can do the same if an item with that name already exists.

BUG: 475410
This commit is contained in:
Eugene Popov 2023-12-28 12:06:09 +02:00 committed by Méven Car
parent 3619e74eb1
commit c8dffc433c
2 changed files with 15 additions and 7 deletions

View File

@ -863,9 +863,12 @@ void DolphinView::duplicateSelectedItems()
const QMimeDatabase db;
m_clearSelectionBeforeSelectingNewItems = true;
m_markFirstNewlySelectedItemAsCurrent = true;
m_selectJobCreatedItems = true;
// Duplicate all selected items and append "copy" to the end of the file name
// but before the filename extension, if present
QList<QUrl> newSelection;
for (const auto &item : itemList) {
const QUrl originalURL = item.url();
const QString originalDirectoryPath = originalURL.adjusted(QUrl::RemoveFilename).path();
@ -890,15 +893,14 @@ void DolphinView::duplicateSelectedItems()
}
KIO::CopyJob *job = KIO::copyAs(originalURL, duplicateURL);
job->setAutoRename(true);
KJobWidgets::setWindow(job, this);
if (job) {
newSelection << duplicateURL;
KIO::FileUndoManager::self()->recordCopyJob(job);
}
connect(job, &KIO::CopyJob::result, this, &DolphinView::slotJobResult);
connect(job, &KIO::CopyJob::copyingDone, this, &DolphinView::slotItemCreatedFromJob);
connect(job, &KIO::CopyJob::copyingLinkDone, this, &DolphinView::slotItemLinkCreatedFromJob);
KIO::FileUndoManager::self()->recordCopyJob(job);
}
forceUrlsSelection(newSelection.first(), newSelection);
}
void DolphinView::stopLoading()
@ -1422,6 +1424,11 @@ void DolphinView::slotItemCreatedFromJob(KIO::Job *, const QUrl &, const QUrl &t
slotItemCreated(to);
}
void DolphinView::slotItemLinkCreatedFromJob(KIO::Job *, const QUrl &, const QString &, const QUrl &to)
{
slotItemCreated(to);
}
void DolphinView::slotItemCreated(const QUrl &url)
{
if (m_markFirstNewlySelectedItemAsCurrent) {

View File

@ -695,6 +695,7 @@ private Q_SLOTS:
void slotRenameDialogRenamingFinished(const QList<QUrl> &urls);
void slotSelectedItemTextPressed(int index);
void slotItemCreatedFromJob(KIO::Job *, const QUrl &, const QUrl &to);
void slotItemLinkCreatedFromJob(KIO::Job *, const QUrl &, const QString &, const QUrl &to);
void slotIncreaseZoom();
void slotDecreaseZoom();
void slotSwipeUp();