]> git.lyx.org Git - features.git/commitdiff
Do not kill the undo stack when doing a Save As...
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 21 Aug 2012 10:19:18 +0000 (12:19 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 21 Aug 2012 10:21:42 +0000 (12:21 +0200)
The code does a reload on the buffer to avoid loose pointers if the
file changes directory. This commit adds a bool parameter to
Buffer::reload to allow for keeping the undo stack intact. This is of
couse only wanted in this case, not when reloading an earlier version
of the file.

src/Buffer.cpp
src/Buffer.h
src/frontends/qt4/GuiView.cpp
status.20x

index 061f00ba656321e23b3af8de611017469af73969..c9d9e6b6ba704e437c39ff3c6ee284fc7a510c7b 100644 (file)
@@ -4419,8 +4419,8 @@ int Buffer::charCount(bool with_blanks) const
 {
        return d->charCount(with_blanks);
 }
-       
-Buffer::ReadStatus Buffer::reload()
+
+Buffer::ReadStatus Buffer::reload(bool clearUndo)
 {
        setBusy(true);
        // c.f. bug http://www.lyx.org/trac/ticket/6587
@@ -4438,7 +4438,8 @@ Buffer::ReadStatus Buffer::reload()
                updateTitles();
                markClean();
                message(bformat(_("Document %1$s reloaded."), disp_fn));
-               d->undo_.clear();
+               if (clearUndo)
+                       d->undo_.clear();
        } else {
                message(bformat(_("Could not reload document %1$s."), disp_fn));
        }       
index 410cb978a72a86d7aee683981ec89e6bc92241a6..c8cf926b3bb26f87d4477c4b3c54ba42af3f151d 100644 (file)
@@ -209,7 +209,8 @@ public:
        /// read a new document from a string
        bool readString(std::string const &);
        /// Reloads the LyX file
-       ReadStatus reload();
+       /// \param clearUndo if false, leave alone the undo stack.
+       ReadStatus reload(bool clearUndo = true);
 //FIXME: The following function should be private
 //private:
        /// read the header, returns number of unknown tokens
index f339119dde6805fd119f20225def67e09de86f20..ac9061f6953a9338e9da424950855e2557922556 100644 (file)
@@ -2294,7 +2294,7 @@ bool GuiView::renameBuffer(Buffer & b, docstring const & newname)
 
        bool const saved = saveBuffer(b, fname);
        if (saved)
-               b.reload();
+               b.reload(false);
        return saved;
 }
 
index d15a55ef1679870798542ee83170b8c58267fa89..f3725817cde7e02f605566a9fc97227f9bf911f0 100644 (file)
@@ -118,6 +118,8 @@ What's new
 - Make sure that undo restores paragraph longest label width correctly
   (bug 8242).
 
+- Do not forget the undo information when doing a Save As...
+
 - Replace current selection when pasting (bug 8027).
 
 - Fix enumitem module translation (bug #8201).