void GuiView::reloadBuffer()
{
Buffer * buf = &documentBufferView()->buffer();
+ reloadBuffer(buf);
+}
+
+
+void GuiView::reloadBuffer(Buffer * buf)
+{
FileName filename = buf->fileName();
Buffer const * master = buf->masterBuffer();
bool const is_child = master != buf;
}
+void GuiView::checkExternallyModifiedBuffers()
+{
+ BufferList::iterator bit = theBufferList().begin();
+ BufferList::iterator const bend = theBufferList().end();
+ for (; bit != bend; ++bit) {
+ if ((*bit)->isExternallyModified(Buffer::checksum_method)) {
+ docstring text = bformat(_("Document \n%1$s\n has been externally modified."
+ " Reload now? Any local changes will be lost."),
+ from_utf8((*bit)->absFileName()));
+ int const ret = Alert::prompt(_("Reload externally changed document?"),
+ text, 0, 1, _("&Reload"), _("&Cancel"));
+ if (!ret)
+ reloadBuffer(*bit);
+ }
+ }
+}
+
+
void GuiView::dispatchVC(FuncRequest const & cmd)
{
Buffer * buffer = documentBufferView()
if (ensureBufferClean(buffer)) {
string res = buffer->lyxvc().repoUpdate();
message(from_utf8(res));
- reloadBuffer();
+ checkExternallyModifiedBuffers();
}
break;
/// called on timeout
void autoSave();
+ /// check for external change of any opened buffer, mainly for svn usage
+ void checkExternallyModifiedBuffers();
+
/** redraw \c inset in all the BufferViews in which it is currently
* visible. If successful return a pointer to the owning Buffer.
*/
Dialog * build(std::string const & name);
///
void reloadBuffer();
+ void reloadBuffer(Buffer * buf);
///
void dispatchVC(FuncRequest const & cmd);
///