mirror of
https://invent.kde.org/graphics/okular
synced 2024-10-02 14:14:10 +00:00
Merge remote-tracking branch 'origin/release/22.08'
This commit is contained in:
commit
d0359e6342
|
@ -2684,6 +2684,9 @@ bool Part::saveAs(const QUrl &saveUrl, SaveAsFlags flags)
|
|||
bool setModifiedAfterSave = false;
|
||||
|
||||
QString tmpFileName;
|
||||
// don't turn the file_copy that use this to a file_move
|
||||
// doesn't work on Windows
|
||||
bool deleteTmpFileName = false;
|
||||
{
|
||||
// Own scope for the QTemporaryFile since we only care about the random name
|
||||
// we need to destroy it so the file gets deleted otherwise windows will complain
|
||||
|
@ -2734,7 +2737,8 @@ bool Part::saveAs(const QUrl &saveUrl, SaveAsFlags flags)
|
|||
return false;
|
||||
}
|
||||
|
||||
copyJob = KIO::file_move(QUrl::fromLocalFile(tmpFileName), realSaveUrl, -1, KIO::Overwrite);
|
||||
copyJob = KIO::file_copy(QUrl::fromLocalFile(tmpFileName), realSaveUrl, -1, KIO::Overwrite);
|
||||
deleteTmpFileName = true;
|
||||
} else {
|
||||
bool wontSaveForms, wontSaveAnnotations;
|
||||
checkNativeSaveDataLoss(&wontSaveForms, &wontSaveAnnotations);
|
||||
|
@ -2806,7 +2810,8 @@ bool Part::saveAs(const QUrl &saveUrl, SaveAsFlags flags)
|
|||
return false;
|
||||
}
|
||||
|
||||
copyJob = KIO::file_move(QUrl::fromLocalFile(tmpFileName), realSaveUrl, -1, KIO::Overwrite);
|
||||
copyJob = KIO::file_copy(QUrl::fromLocalFile(tmpFileName), realSaveUrl, -1, KIO::Overwrite);
|
||||
deleteTmpFileName = true;
|
||||
} else {
|
||||
// If the generators doesn't support saving changes, we will
|
||||
// just copy the original file.
|
||||
|
@ -2822,7 +2827,8 @@ bool Part::saveAs(const QUrl &saveUrl, SaveAsFlags flags)
|
|||
return false;
|
||||
}
|
||||
|
||||
copyJob = KIO::file_move(QUrl::fromLocalFile(tmpFileName), realSaveUrl, -1, KIO::Overwrite);
|
||||
copyJob = KIO::file_copy(QUrl::fromLocalFile(tmpFileName), realSaveUrl, -1, KIO::Overwrite);
|
||||
deleteTmpFileName = true;
|
||||
} else {
|
||||
// Otherwise just copy the open file.
|
||||
// make use of the already downloaded (in case of remote URLs) file,
|
||||
|
@ -2864,6 +2870,13 @@ bool Part::saveAs(const QUrl &saveUrl, SaveAsFlags flags)
|
|||
unsetFileToWatch();
|
||||
}
|
||||
|
||||
const auto deleteTmpFileFunction = [deleteTmpFileName, tmpFileName] {
|
||||
Q_ASSERT(deleteTmpFileName == QFile::exists(tmpFileName));
|
||||
if (deleteTmpFileName) {
|
||||
QFile::remove(tmpFileName);
|
||||
}
|
||||
};
|
||||
|
||||
KJobWidgets::setWindow(copyJob, widget());
|
||||
if (!copyJob->exec()) {
|
||||
KMessageBox::information(widget(), i18n("File could not be saved in '%1'. Error: '%2'. Try to save it to another location.", saveUrl.toDisplayString(), copyJob->errorString()));
|
||||
|
@ -2873,8 +2886,11 @@ bool Part::saveAs(const QUrl &saveUrl, SaveAsFlags flags)
|
|||
setFileToWatch(localFilePath());
|
||||
}
|
||||
|
||||
deleteTmpFileFunction();
|
||||
|
||||
return false;
|
||||
}
|
||||
deleteTmpFileFunction();
|
||||
|
||||
m_document->setHistoryClean(true);
|
||||
|
||||
|
|
Loading…
Reference in a new issue