X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FParIterator.h;h=f1e2752009590d19297cbe7db73bc90282385f1b;hb=d9082639080b9de993742bd352f92e5183058cf5;hp=b45c0fa5fd9f1c8024958ad60b001f43ea2b1bed;hpb=e0d54dd3b497b78094ea16ab0f38ccdc8c1642e2;p=lyx.git diff --git a/src/ParIterator.h b/src/ParIterator.h index b45c0fa5fd..f1e2752009 100644 --- a/src/ParIterator.h +++ b/src/ParIterator.h @@ -4,7 +4,7 @@ * Licence details can be found in the file COPYING. * * \author unknown - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * * Full author contact details are available in file CREDITS. */ @@ -16,13 +16,12 @@ #include "support/types.h" -#include - namespace lyx { +class Buffer; class Inset; -class Text; +class Paragraph; class ParagraphList; @@ -38,14 +37,14 @@ public: typedef StdIt::reference reference; /// - ParIterator() : DocIterator() {} - /// - ParIterator(Inset &, pit_type pit); + ParIterator(Buffer * buf) : DocIterator(buf) {} /// - ParIterator(ParIterator const &); + ParIterator(ParIterator const & pi) : + DocIterator(DocIterator(pi)) {} /// - ParIterator(DocIterator const &); + explicit ParIterator(DocIterator const & dit) : + DocIterator(dit) {} /// This really should be implemented... //ParIterator & operator=(ParIterator const &); @@ -71,18 +70,21 @@ public: }; -DocIterator makeDocIterator(ParIterator const &, pos_type); - ParIterator par_iterator_begin(Inset & inset); ParIterator par_iterator_end(Inset & inset); /// -bool operator==(ParIterator const & iter1, ParIterator const & iter2); +//bool operator==(ParIterator const & it1, ParIterator const & it2); -/// -bool operator!=(ParIterator const & iter1, ParIterator const & iter2); +// FIXME: Unfortunately operator!=(ParIterator &, ParIterator &) is +// implemented with operator!=(DocIterator &, DocIterator &) that gives +// false if the positions are different, even if the pars are the same. +// So ultimately it's a bug in operator!=(ParIterator &, ParIterator &) +// I'd say (nevertheless, I would be reluctant to change it, because I +// fear that some part of the code could rely on this "bug". --Alfredo +//bool operator!=(ParIterator const & it1, ParIterator const & it2); class ParConstIterator : public std::iterator(buf)) {} /// - ParConstIterator(ParConstIterator const &); + ParConstIterator(ParConstIterator const & pi) + : DocIterator(DocIterator(pi)) {} /// - ParConstIterator(DocIterator const &); + explicit ParConstIterator(DocIterator const & dit) + : DocIterator(dit) {} /// + void push_back(Inset const &); ParConstIterator & operator++(); /// @@ -109,17 +115,9 @@ public: ParagraphList const & plist() const; }; -bool operator==(ParConstIterator const & iter1, - ParConstIterator const & iter2); - -bool operator!=(ParConstIterator const & iter1, - ParConstIterator const & iter2); - - -ParConstIterator par_const_iterator_begin(Inset const & inset); - -ParConstIterator par_const_iterator_end(Inset const & inset); +//bool operator==(ParConstIterator const & it1, ParConstIterator const & it2); +//bool operator!=(ParConstIterator const & it1, ParConstIterator const & it2); } // namespace lyx