From 4c1f1357c1c5dc3fcd03d27270657a130f35c2ed Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Wed, 7 Dec 2011 20:35:29 +0000 Subject: [PATCH] Fix bug #7921. We should not allow the user to save a file thereby over-writing a file that is already open. So we issue a warning and ask if they'd like to try a different name. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40420 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt4/GuiView.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp index 4ac5d6b94a..b84c6f310e 100644 --- a/src/frontends/qt4/GuiView.cpp +++ b/src/frontends/qt4/GuiView.cpp @@ -2280,9 +2280,27 @@ bool GuiView::renameBuffer(Buffer & b, docstring const & newname) } // fname is now the new Buffer location. + + // if there is already a Buffer open with this name, we do not want + // to have another one. + if (theBufferList().exists(fname)) { + docstring const text = + bformat(_("The file\n%1$s\nis already open in your current session.\n" + "Please close it before attempting to overwrite it.\n" + "Do you want to choose a new filename?"), + from_utf8(fname.absFileName())); + int const ret = Alert::prompt(_("Chosen File Already Open"), + text, 0, 1, _("&Rename"), _("&Cancel")); + switch (ret) { + case 0: return renameBuffer(b, docstring()); + case 1: return false; + } + //return false; + } + if (FileName(fname).exists()) { docstring const file = makeDisplayPath(fname.absFileName(), 30); - docstring text = bformat(_("The document %1$s already " + docstring const text = bformat(_("The document %1$s already " "exists.\n\nDo you want to " "overwrite that document?"), file);