X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbuffer.h;h=ba3ec7c40c752569b620f5aad9b9cc11a6bd8aa4;hb=9ee46b846e5e84ad40ceda4f4af94aeb86cd90a2;hp=7e91df0a09f6e40fdbb130956f705ac3dff99ae1;hpb=ec94b42f515c771687a2f0b8ba9fb306081aaf47;p=lyx.git diff --git a/src/buffer.h b/src/buffer.h index 7e91df0a09..ba3ec7c40c 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -14,6 +14,8 @@ #include "InsetList.h" +#include "dociterator.h" + #include "support/limited_stack.h" #include "support/types.h" @@ -46,13 +48,19 @@ class ParIterator; class TeXErrors; class TexRow; class Undo; +class StableDocIterator; /** The buffer object. - This is the buffer object. It contains all the informations about - a document loaded into LyX. I am not sure if the class is complete or - minimal, probably not. - \author Lars Gullik Bjønnes + * This is the buffer object. It contains all the informations about + * a document loaded into LyX. + * The buffer object owns the LyXText (wrapped in an InsetText), which + * contains the individual paragraphs of the document. + * + * + * I am not sure if the class is complete or + * minimal, probably not. + * \author Lars Gullik Bjønnes */ class Buffer { public: @@ -85,8 +93,6 @@ public: /// load a new file bool readFile(std::string const & filename); - bool readFile(std::string const & filename, lyx::par_type pit); - /// read the header, returns number of unknown tokens int readHeader(LyXLex & lex); @@ -98,8 +104,8 @@ public: /// void insertStringAsLines(ParagraphList & plist, - lyx::par_type &, lyx::pos_type &, - LyXFont const &, std::string const &); + lyx::pit_type &, lyx::pos_type &, + LyXFont const &, std::string const &, bool); /// ParIterator getParFromID(int id) const; /// do we have a paragraph with this id? @@ -302,9 +308,10 @@ public: /// Set by buffer_funcs' newFile. void fully_loaded(bool); - /// + /// Our main text (inside the top InsetText) LyXText & text() const; - /// + + /// Our top InsetText! InsetBase & inset() const; // @@ -318,14 +325,20 @@ public: MacroData const & getMacro(std::string const & name) const; /// void insertMacro(std::string const & name, MacroData const & data); + /// + void saveCursor(StableDocIterator cursor, StableDocIterator anchor); + /// + StableDocIterator getCursor() const { return cursor_; } + /// + StableDocIterator getAnchor() const { return anchor_; } + /// + void changeRefsIfUnique(std::string const & from, std::string const & to); private: /** Inserts a file into a document - \param par if != 0 insert the file. \return \c false if method fails. */ - bool readFile(LyXLex &, std::string const & filename, - lyx::par_type pit); + bool readFile(LyXLex &, std::string const & filename); bool do_writeFile(std::ostream & ofs) const; @@ -333,6 +346,12 @@ private: class Impl; /// The pointer never changes although *pimpl_'s contents may. boost::scoped_ptr const pimpl_; + + /// Save the cursor Position on Buffer switch + /// this would not be needed if every Buffer would have + /// it's BufferView, this should be FIXED in future. + StableDocIterator cursor_; + StableDocIterator anchor_; }; #endif