X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBuffer.cpp;h=7522dce4343938d433bf26fed31bada34d1be385;hb=refs%2Fheads%2Fbugs%2F13017;hp=1f90df3ed18c543572321e84cecb9a288af52ffa;hpb=c609e9cbcf5f013e9bcc8f13a9a3de1f45d8d212;p=lyx.git diff --git a/src/Buffer.cpp b/src/Buffer.cpp index 1f90df3ed1..7522dce434 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -2434,7 +2434,7 @@ void Buffer::getLabelList(vector> & shared_ptr toc = d->toc_backend.toc("label"); for (auto const & tocit : *toc) { if (tocit.depth() == 0) { - list.push_back(make_tuple(tocit.str(), tocit.asString(),tocit.prettyStr())); + list.push_back(make_tuple(tocit.str(), tocit.asString(), tocit.prettyStr())); } } } @@ -2689,6 +2689,11 @@ bool Buffer::citeLabelsValid() const void Buffer::removeBiblioTempFiles() const { + if (theApp()->isBufferBusy(this)) { + removeBiblioTemps = true; + return; + } + // We remove files that contain LaTeX commands specific to the // particular bibliographic style being used, in order to avoid // LaTeX errors when we switch style. @@ -2702,6 +2707,7 @@ void Buffer::removeBiblioTempFiles() const Buffer const * const pbuf = parent(); if (pbuf) pbuf->removeBiblioTempFiles(); + removeBiblioTemps = false; } @@ -5342,6 +5348,10 @@ void Buffer::Impl::setLabel(ParIterator & it, UpdateType utype) const void Buffer::updateBuffer(ParIterator & parit, UpdateType utype, bool const deleted) const { + // if fomatted references are shown in workarea update buffer accordingly + if (params().use_formatted_ref) + utype = OutputUpdate; + pushIncludedBuffer(this); // LASSERT: Is it safe to continue here, or should we just return? LASSERT(parit.pit() == 0, /**/); @@ -5711,15 +5721,24 @@ void Buffer::Impl::fileExternallyModified(bool const exists) "checksum unchanged: " << filename); return; } + lyx_clean = false; // If the file has been deleted, only mark the file as dirty since it is // pointless to prompt for reloading. If later a file is moved into this // location, then the externally modified warning will appear then. if (exists) - externally_modified_ = true; + externally_modified_ = true; // Update external modification notification. // Dirty buffers must be visible at all times. - if (wa_ && wa_->unhide(owner_)) + if (wa_ && wa_->unhide(owner_)) { wa_->updateTitles(); + if (!exists) { + frontend::Alert::warning( + _("File deleted from disk"), + bformat(_("The file\n %1$s\n" + "has been deleted from disk!"), + from_utf8(filename.absFileName()))); + } + } else // Unable to unhide the buffer (e.g. no GUI or not current View) lyx_clean = true;