]> git.lyx.org Git - lyx.git/blobdiff - src/DocIterator.h
prepare Qt 5.6 builds
[lyx.git] / src / DocIterator.h
index 24c9e07f5e7edd0aa358abd5ce24c7ccad71578a..471f52d4be18079a6638682a540efff7fb99f7fe 100644 (file)
@@ -15,7 +15,7 @@
 #include "CursorSlice.h"
 
 #include <vector>
-
+#include <algorithm>
 
 namespace lyx {
 
@@ -72,6 +72,11 @@ public:
        bool empty() const { return slices_.empty(); }
        /// is this the end position?
        bool atEnd() const { return slices_.empty(); }
+       /// is this the last possible position?
+       bool atLastPos() const { return pit() == lastpit() && pos() == lastpos(); }
+
+       /// checks the cursor slices for disabled spell checker insets
+       bool allowSpellCheck() const;
 
        //
        // access to slice at tip
@@ -162,6 +167,8 @@ public:
        Paragraph & innerParagraph() const;
        /// return the inner text slice.
        CursorSlice const & innerTextSlice() const;
+       /// returns a DocIterator for the containing text inset
+       DocIterator getInnerText() const;
        /// the first and last positions of a word at top cursor slice
        /// \warning only works within text!
        FontSpan locateWord(word_location const loc) const;
@@ -200,7 +207,7 @@ public:
        /// move backward one paragraph
        void backwardPar();
        /// move backward one inset
-       /// FIXME: This is not implemented!
+       /// not used currently, uncomment if you need it
        //void backwardInset();
 
        /// are we some 'extension' (i.e. deeper nested) of the given iterator
@@ -229,6 +236,9 @@ public:
        /// fix DocIterator in circumstances that should never happen.
        /// \return true if the DocIterator was fixed.
        bool fixIfBroken();
+       /// Repopulate the slices insets from bottom to top. Useful
+       /// for stable iterators or Undo data.
+       void sanitize();
 
        /// find index of CursorSlice with &cell() == &cell (or -1 if not found)
        int find(MathData const & cell) const;