We need to use the FileName methods when moving or removing a file,
so that refresh() gets called.

No status entry since this will be in 2.3.4.3.

(cherry picked from commit d930913898)
This commit is contained in:
Richard Kimberly Heck 2020-02-13 00:03:51 -05:00
parent 1b0e8b36da
commit 0be206c976

View File

@ -251,6 +251,7 @@ bool FileName::renameTo(FileName const & name) const
{
LYXERR(Debug::FILES, "Renaming " << name << " as " << *this);
bool success = QFile::rename(d->fi.absoluteFilePath(), name.d->fi.absoluteFilePath());
d->refresh();
if (!success)
LYXERR0("Could not rename file " << *this << " to " << name);
return success;
@ -264,12 +265,13 @@ bool FileName::moveTo(FileName const & name) const
// there's a locking problem on Windows sometimes, so
// we will keep trying for five seconds, in the hope
// that clears.
name.refresh();
if (name.exists()) {
bool removed = QFile::remove(name.d->fi.absoluteFilePath());
bool removed = name.removeFile();
int tries = 1;
while (!removed && tries < 6) {
QThread::sleep(1);
removed = QFile::remove(name.d->fi.absoluteFilePath());
removed = name.removeFile();
tries++;
}
}
@ -277,8 +279,7 @@ bool FileName::moveTo(FileName const & name) const
QFile::remove(name.d->fi.absoluteFilePath());
#endif
bool const success = QFile::rename(d->fi.absoluteFilePath(),
name.d->fi.absoluteFilePath());
bool const success = renameTo(name);
if (!success)
LYXERR0("Could not move file " << *this << " to " << name);
return success;