]> git.lyx.org Git - lyx.git/commitdiff
Add a constructor of UndoGroupHelper that uses a CursorData parameter
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 20 Jun 2024 15:52:19 +0000 (17:52 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Thu, 20 Jun 2024 15:52:19 +0000 (17:52 +0200)
This aloows to se the the `before' cursor of the undo group.

Not used for now.

src/Undo.cpp
src/Undo.h

index 8dcffff32b61b9444da7a14722977acba4d73049..80dff34baa138e57ff643dd762f32258d220cc96 100644 (file)
@@ -704,6 +704,12 @@ UndoGroupHelper::UndoGroupHelper(Buffer * buf) : d(new UndoGroupHelper::Impl)
 }
 
 
 }
 
 
+UndoGroupHelper::UndoGroupHelper(CursorData & cur) : d(new UndoGroupHelper::Impl)
+{
+       resetBuffer(cur);
+}
+
+
 UndoGroupHelper::~UndoGroupHelper()
 {
        for (Buffer * buf : d->buffers_)
 UndoGroupHelper::~UndoGroupHelper()
 {
        for (Buffer * buf : d->buffers_)
@@ -712,6 +718,7 @@ UndoGroupHelper::~UndoGroupHelper()
        delete d;
 }
 
        delete d;
 }
 
+
 void UndoGroupHelper::resetBuffer(Buffer * buf)
 {
        if (buf && d->buffers_.count(buf) == 0) {
 void UndoGroupHelper::resetBuffer(Buffer * buf)
 {
        if (buf && d->buffers_.count(buf) == 0) {
@@ -721,4 +728,13 @@ void UndoGroupHelper::resetBuffer(Buffer * buf)
 }
 
 
 }
 
 
+void UndoGroupHelper::resetBuffer(CursorData & cur)
+{
+       if (!cur.empty() && d->buffers_.count(cur.buffer()) == 0) {
+               d->buffers_.insert(cur.buffer());
+               cur.buffer()->undo().beginUndoGroup(cur);
+       }
+}
+
+
 } // namespace lyx
 } // namespace lyx
index b6d84569c5baa09412d2bc4257d2c40bc94d2a0b..32be7d2ede769359439f9489b2d51af78843f553 100644 (file)
@@ -140,12 +140,18 @@ class UndoGroupHelper {
 public:
        // Begin a new undo group for buffer \c buf.
        UndoGroupHelper(Buffer * buf);
 public:
        // Begin a new undo group for buffer \c buf.
        UndoGroupHelper(Buffer * buf);
+       // Begin an undo group for the buffer of \c cur with the the
+       // `before' cursor set to \c cur.
+       UndoGroupHelper(CursorData & cur);
        // End all active undo groups.
        ~UndoGroupHelper();
 
        // Begin if needed an undo group for buffer \c buf.
        void resetBuffer(Buffer * buf);
 
        // End all active undo groups.
        ~UndoGroupHelper();
 
        // Begin if needed an undo group for buffer \c buf.
        void resetBuffer(Buffer * buf);
 
+       // Begin if needed an undo group for the buffer of \c cur with the
+       // the `before' cursor set to \c cur.
+       void resetBuffer(CursorData & cur);
 private:
        class Impl;
        Impl * const d;
 private:
        class Impl;
        Impl * const d;