]> git.lyx.org Git - lyx.git/blobdiff - src/Session.h
Fix bug #12609
[lyx.git] / src / Session.h
index 5af5554d967a99df2cf5a372c7a3d7dbaed413ed..a433cbaf59abdf5f5b3b938949754d5972b8e156 100644 (file)
@@ -196,7 +196,7 @@ public:
        /// top and bottom level information sometimes needs to be sync'ed. In particular,
        /// top_id is determined when a bookmark is restored from session; and
        /// bottom_pit and bottom_pos are determined from top_id when a bookmark
-       /// is save to session. (What a mess! :-)
+       /// is saved to session. (What a mess! :-)
        ///
        /// TODO: bottom level pit and pos will be replaced by StableDocIterator
        class Bookmark {
@@ -229,9 +229,8 @@ public:
        typedef std::vector<Bookmark> BookmarkList;
 
 public:
-       /// constructor, set max_bookmarks
-       /// allow 9 regular bookmarks, bookmark 0 is temporary
-       BookmarksSection() : bookmarks(10), max_bookmarks(9) {}
+       ///
+       BookmarksSection() : bookmarks(max_bookmarks + 1) {}
 
        /// Save the current position as bookmark
        void save(support::FileName const & fname, pit_type bottom_pit, pos_type bottom_pos,
@@ -247,7 +246,7 @@ public:
        bool hasValid() const;
 
        ///
-       unsigned int size() const { return max_bookmarks; }
+       unsigned int size() const { return bookmarks.size(); }
 
        /// clear all bookmarks
        void clear();
@@ -263,13 +262,27 @@ public:
        */
        BookmarkList & load() { return bookmarks; }
 
+       ///
+       typedef std::vector<std::pair<unsigned int, pos_type>> BookmarkPosList;
+
+       /// return a list of bookmarks and position for this paragraph
+       BookmarkPosList bookmarksInPar(support::FileName const & fn, int par_id) const;
+
+       /* An insertion/deletion in paragraph \c par_id of buffer \c fn
+        * lead to an offset \c offset after position \c pos. Update
+        * bookmarks accordingly.
+        */
+       void adjustPosAfterPos(support::FileName const & fn,
+                              int const par_id, pos_type pos, int offset);
+
 private:
 
+       /// allow 9 regular bookmarks, bookmark 0 is temporary
+       unsigned int const max_bookmarks = 9;
+
        /// a list of bookmarks
        BookmarkList bookmarks;
 
-       ///
-       unsigned int const max_bookmarks;
 };
 
 
@@ -289,7 +302,7 @@ public:
        void write(std::ostream & os) const override;
 
        /// Return lastcommands container (vector)
-       LastCommands const getcommands() const { return lastcommands; }
+       LastCommands const getcommands() const { return lastcommands; }
 
        /** add command to lastcommands list
            @param command command to add
@@ -348,7 +361,7 @@ class ShellEscapeSection : SessionSection
 {
 public:
        ///
-       explicit ShellEscapeSection() {};
+       explicit ShellEscapeSection() {}
 
        ///
        void read(std::istream & is) override;