X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FInsetList.C;h=6d98e035908da0666844fd25b6bb12696828bb4e;hb=fe390e9da1538e20eabbc98977d845295f8e563d;hp=7aa023acfbae9dc9c8c1565264be64391455ed6f;hpb=260c7f3187a7dd392888b1d1eea513abffd8f2f7;p=lyx.git diff --git a/src/InsetList.C b/src/InsetList.C index 7aa023acfb..6d98e03590 100644 --- a/src/InsetList.C +++ b/src/InsetList.C @@ -3,7 +3,7 @@ #include "InsetList.h" #include "debug.h" -#include "insets/inset.h" +#include "insets/updatableinset.h" #include @@ -19,53 +19,16 @@ struct MatchIt { /// used by lower_bound and upper_bound inline int operator()(InsetList::InsetTable const & a, - InsetList::InsetTable const & b) const { + InsetList::InsetTable const & b) const + { return a.pos < b.pos; } }; -} - - -InsetList::iterator::iterator(InsetList::List::iterator const & iter) - : it(iter) -{} - - -InsetList::iterator & InsetList::iterator::operator++() -{ - ++it; - return *this; -} - - -InsetList::iterator InsetList::iterator::operator++(int) -{ - iterator tmp = *this; - ++*this; - return tmp; -} +} // namespace anon -pos_type InsetList::iterator::getPos() const -{ - return it->pos; -} - - -Inset * InsetList::iterator::getInset() const -{ - return it->inset; -} - - -void InsetList::iterator::setInset(Inset * inset) -{ - it->inset = inset; -} - - -InsetList::~InsetList() +InsetList::~InsetList() { // If we begin storing a shared_ptr in the List // this code can be removed. (Lgb) @@ -79,25 +42,25 @@ InsetList::~InsetList() InsetList::iterator InsetList::begin() { - return iterator(list.begin()); + return list.begin(); } InsetList::iterator InsetList::end() { - return iterator(list.end()); + return list.end(); } -InsetList::iterator InsetList::begin() const +InsetList::const_iterator InsetList::begin() const { - return iterator(const_cast(this)->list.begin()); + return list.begin(); } -InsetList::iterator InsetList::end() const +InsetList::const_iterator InsetList::end() const { - return iterator(const_cast(this)->list.end()); + return list.end(); } @@ -108,17 +71,18 @@ InsetList::insetIterator(pos_type pos) List::iterator it = lower_bound(list.begin(), list.end(), search_elem, MatchIt()); - return iterator(it); + return it; } void InsetList::insert(Inset * inset, lyx::pos_type pos) { InsetTable search_elem(pos, 0); + List::iterator end = list.end(); List::iterator it = lower_bound(list.begin(), - list.end(), + end, search_elem, MatchIt()); - if (it != list.end() && it->pos == pos) { + if (it != end && it->pos == pos) { lyxerr << "ERROR (InsetList::insert): " << "There is an inset in position: " << pos << endl; } else { @@ -130,11 +94,12 @@ void InsetList::insert(Inset * inset, lyx::pos_type pos) void InsetList::erase(pos_type pos) { InsetTable search_elem(pos, 0); + List::iterator end = list.end(); List::iterator it = lower_bound(list.begin(), - list.end(), + end, search_elem, MatchIt()); - if (it != list.end() && it->pos == pos) { + if (it != end && it->pos == pos) { delete it->inset; list.erase(it); } @@ -144,11 +109,12 @@ void InsetList::erase(pos_type pos) Inset * InsetList::release(pos_type pos) { InsetTable search_elem(pos, 0); + List::iterator end = list.end(); List::iterator it = lower_bound(list.begin(), - list.end(), + end, search_elem, MatchIt()); - if (it != list.end() && it->pos == pos) { + if (it != end && it->pos == pos) { Inset * tmp = it->inset; it->inset = 0; return tmp; @@ -156,15 +122,16 @@ Inset * InsetList::release(pos_type pos) return 0; } - + Inset * InsetList::get(pos_type pos) const { InsetTable search_elem(pos, 0); - List::iterator it = - lower_bound(const_cast(this)->list.begin(), - const_cast(this)->list.end(), + List::const_iterator end = list.end(); + List::const_iterator it = + lower_bound(list.begin(), + end, search_elem, MatchIt()); - if (it != const_cast(this)->list.end() && it->pos == pos) + if (it != end && it->pos == pos) return it->inset; return 0; } @@ -173,10 +140,10 @@ Inset * InsetList::get(pos_type pos) const void InsetList::increasePosAfterPos(pos_type pos) { InsetTable search_elem(pos, 0); + List::iterator end = list.end(); List::iterator it = lower_bound(list.begin(), - list.end(), + end, search_elem, MatchIt()); - List::iterator end = list.end(); for (; it != end; ++it) { ++it->pos; } @@ -224,19 +191,3 @@ void InsetList::resizeInsetsLyXText(BufferView * bv) } } } - - - -bool operator==(InsetList::iterator const & i1, - InsetList::iterator const & i2) -{ - return i1.it == i2.it; - -} - - -bool operator!=(InsetList::iterator const & i1, - InsetList::iterator const & i2) -{ - return !(i1 == i2); -}