X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbuffer.h;h=3e7b72c81d3b250760e06e0ac9958ab70d291723;hb=29f01faa17495e3d80c08f234c8f049c7d699ac1;hp=438593e8091496cff2608d22758f3a53dcc2ba0e;hpb=9681e21dae96d2152df6387ec2e8626ee5b0bd42;p=lyx.git diff --git a/src/buffer.h b/src/buffer.h index 438593e809..3e7b72c81d 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -27,16 +27,17 @@ #include "ParagraphList.h" #include "paragraph.h" +#include #include class BufferView; +class Counters; class LyXRC; class TeXErrors; class LaTeXFeatures; class Language; class ParIterator; -#define NO_COMPABILITY 1 /// struct DEPCLEAN { @@ -126,13 +127,6 @@ public: /// void insertStringAsLines(Paragraph *&, lyx::pos_type &, LyXFont const &, string const &) const; -#ifndef NO_COMPABILITY - /// - Inset * isErtInset(Paragraph * par, int pos) const; - /// - void insertErtContents(Paragraph * par, int & pos, - bool set_inactive = true); -#endif /// Paragraph * getParFromID(int id) const; private: @@ -153,7 +147,7 @@ public: /// void writeFileAscii(std::ostream &, int); /// - string const asciiParagraph(Paragraph const *, unsigned int linelen, + string const asciiParagraph(Paragraph const &, unsigned int linelen, bool noparbreak = false) const; /// Just a wrapper for the method below, first creating the ofstream. void makeLaTeXFile(string const & filename, @@ -317,6 +311,9 @@ public: /// Used when typesetting to place errorboxes. TexRow texrow; + /// Buffer-wide counter array + Counters & counters() const; + private: /// is save needed mutable bool lyx_clean; @@ -350,6 +347,9 @@ private: */ BufferView * users; + /// The pointer is const although its contents may not be + boost::scoped_ptr const ctrs; + public: /// class inset_iterator { @@ -359,47 +359,28 @@ public: typedef ptrdiff_t difference_type; typedef Inset * pointer; typedef Inset & reference; + typedef ParagraphList::iterator base_type; - - /// - inset_iterator() : par(0) /*, it(0)*/ {} - // - inset_iterator(Paragraph * paragraph) : par(paragraph) { - setParagraph(); - } /// - inset_iterator(Paragraph * paragraph, lyx::pos_type pos); + inset_iterator(); /// - inset_iterator & operator++() { // prefix ++ - if (par) { - ++it; - if (it == par->insetlist.end()) { - par = par->next(); - setParagraph(); - } - } - return *this; - } + inset_iterator(base_type p, base_type e); /// - inset_iterator operator++(int) { // postfix ++ - inset_iterator tmp(par, it.getPos()); - if (par) { - ++it; - if (it == par->insetlist.end()) { - par = par->next(); - setParagraph(); - } - } - return tmp; - } + inset_iterator(base_type p, lyx::pos_type pos, base_type e); + /// prefix ++ + inset_iterator & operator++(); + /// postfix ++ + inset_iterator operator++(int); /// - Inset * operator*() { return it.getInset(); } + reference operator*(); + /// + pointer operator->(); /// - Paragraph * getPar() { return par; } + Paragraph * getPar(); /// - lyx::pos_type getPos() const { return it.getPos(); } + lyx::pos_type getPos() const; /// friend bool operator==(inset_iterator const & iter1, @@ -408,23 +389,28 @@ public: /// void setParagraph(); /// - Paragraph * par; + ParagraphList::iterator pit; + /// + ParagraphList::iterator pend; /// InsetList::iterator it; }; /// inset_iterator inset_iterator_begin() { - return inset_iterator(&*paragraphs.begin()); + return inset_iterator(paragraphs.begin(), paragraphs.end()); } + /// inset_iterator inset_iterator_end() { return inset_iterator(); } + /// inset_iterator inset_const_iterator_begin() const { - return inset_iterator(&*paragraphs.begin()); + return inset_iterator(paragraphs.begin(), paragraphs.end()); } + /// inset_iterator inset_const_iterator_end() const { return inset_iterator(); @@ -439,143 +425,9 @@ public: Inset * getInsetFromID(int id_arg) const; }; - -inline -void Buffer::addUser(BufferView * u) -{ - users = u; -} - - -inline -void Buffer::delUser(BufferView *) -{ - users = 0; -} - - -inline -Language const * Buffer::getLanguage() const -{ - return params.language; -} - - -inline -bool Buffer::isClean() const -{ - return lyx_clean; -} - - -inline -bool Buffer::isBakClean() const -{ - return bak_clean; -} - - -inline -void Buffer::markClean() const -{ - if (!lyx_clean) { - lyx_clean = true; - updateTitles(); - } - // if the .lyx file has been saved, we don't need an - // autosave - bak_clean = true; -} - - -inline -void Buffer::markBakClean() -{ - bak_clean = true; -} - - -inline -void Buffer::setUnnamed(bool flag) -{ - unnamed = flag; -} - - -inline -bool Buffer::isUnnamed() -{ - return unnamed; -} - - -inline -void Buffer::markDirty() -{ - if (lyx_clean) { - lyx_clean = false; - updateTitles(); - } - bak_clean = false; - DEPCLEAN * tmp = dep_clean; - while (tmp) { - tmp->clean = false; - tmp = tmp->next; - } -} - - -inline -string const & Buffer::fileName() const -{ - return filename_; -} - - -inline -string const & Buffer::filePath() const -{ - return filepath_; -} - - -inline -bool Buffer::isReadonly() const -{ - return read_only; -} - - -inline -BufferView * Buffer::getUser() const -{ - return users; -} - - -inline -void Buffer::setParentName(string const & name) -{ - params.parentname = name; -} - - -/// -inline bool operator==(Buffer::inset_iterator const & iter1, - Buffer::inset_iterator const & iter2) -{ - return iter1.par == iter2.par - && (iter1.par == 0 || iter1.it == iter2.it); -} + Buffer::inset_iterator const & iter2); - -/// -inline bool operator!=(Buffer::inset_iterator const & iter1, - Buffer::inset_iterator const & iter2) -{ - return !(iter1 == iter2); -} - + Buffer::inset_iterator const & iter2); #endif