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:
parent
3619e74eb1
commit
c8dffc433c
|
@ -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) {
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue
Block a user