From: Lars Gullik Bjønnes Date: Tue, 8 Feb 2005 13:18:05 +0000 (+0000) Subject: dociterator dont inherit from std::vector and updates X-Git-Tag: 1.6.10~14563 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=aa491cdb98f6e99827324c41fede08bb789d67c6;p=features.git dociterator dont inherit from std::vector and updates git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9602 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/BufferView.C b/src/BufferView.C index ecc66f0e05..2011ece20a 100644 --- a/src/BufferView.C +++ b/src/BufferView.C @@ -326,13 +326,14 @@ LyXText * BufferView::text() const void BufferView::setCursor(ParIterator const & par, lyx::pos_type pos) { - for (int i = 0, n = par.size(); i < n; ++i) + for (int i = 0, n = par.depth(); i < n; ++i) par[i].inset().edit(cursor(), true); cursor().setCursor(makeDocIterator(par, pos)); cursor().selection() = false; } + void BufferView::putSelectionAt(DocIterator const & cur, int length, bool backwards) { diff --git a/src/BufferView_pimpl.C b/src/BufferView_pimpl.C index 2766e50deb..ea00412459 100644 --- a/src/BufferView_pimpl.C +++ b/src/BufferView_pimpl.C @@ -484,7 +484,7 @@ void BufferView::Pimpl::scrollDocView(int value) } -void BufferView::Pimpl::scroll(int lines) +void BufferView::Pimpl::scroll(int /*lines*/) { // if (!buffer_) // return; @@ -540,11 +540,11 @@ void BufferView::Pimpl::selectionRequested() } if (!xsel_cache_.set || - cur.back() != xsel_cache_.cursor || - cur.anchor_.back() != xsel_cache_.anchor) + cur.top() != xsel_cache_.cursor || + cur.anchor_.top() != xsel_cache_.anchor) { - xsel_cache_.cursor = cur.back(); - xsel_cache_.anchor = cur.anchor_.back(); + xsel_cache_.cursor = cur.top(); + xsel_cache_.anchor = cur.anchor_.top(); xsel_cache_.set = cur.selection(); sel = cur.selectionAsString(false); if (!sel.empty()) diff --git a/src/ChangeLog b/src/ChangeLog index b74e12d712..da9c5ff1f3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,37 @@ +2005-02-08 Lars Gullik Bjonnes + + * text3.C (dispatch): size() -> depth() + + * text2.C: remove some debug output + + * paragraph.C: ws changes only + + * lyxfunc.C (getStatus): size() -> depth() + + * dociterator.h (clear, push_back, pop_back, internalData, + operator[], resize, empty): new functions + Make StableDocIterator and operator== be friends. Don't inherit + from std::vector use a privat class variable slices_ instead. + Modify to fit. + + * dociterator.C: update because of not inheriting from std::vector + anymore. Call explictly to slices_ instead. Use depth() instead of + size() and top() instead of back() + + * cursor.C: chagne size() -> depth and back() -> top(). Also + remove some direct operator[](i) calls in favour of foo[i] + (getFont): remove some dead code + + * bufferview_funcs.C (coordOffset): size() -> depth() + + * buffer.C: ws changes only + + * CutAndPaste.C (eraseSelection): back() -> top() + + * BufferView_pimpl.C (selectionRequested): back() -> top() + + * BufferView.C (setCursor): size() -> depth() + 2005-02-08 Lars Gullik Bjonnes * text3.C (cursorPrevious): return true if depm changed something diff --git a/src/CutAndPaste.C b/src/CutAndPaste.C index 32bbbdf7a3..ea55f938b8 100644 --- a/src/CutAndPaste.C +++ b/src/CutAndPaste.C @@ -681,7 +681,7 @@ void eraseSelection(LCursor & cur) for (InsetBase::col_type col = c1; col <= c2; ++col) p->cell(p->index(row, col)).clear(); } - cur.back() = i1; + cur.top() = i1; cur.pos() = 0; // We've deleted the whole cell. Only pos 0 is valid. cur.resetAnchor(); } else { diff --git a/src/buffer.C b/src/buffer.C index 8acdc91f38..9287b877ba 100644 --- a/src/buffer.C +++ b/src/buffer.C @@ -482,7 +482,7 @@ void Buffer::insertStringAsLines(ParagraphList & pars, // insert the string, don't insert doublespace bool space_inserted = true; for (string::const_iterator cit = str.begin(); - cit != str.end(); ++cit) { + cit != str.end(); ++cit) { Paragraph & par = pars[pit]; if (*cit == '\n') { if (autobreakrows && (!par.empty() || par.allowEmpty())) { diff --git a/src/bufferview_funcs.C b/src/bufferview_funcs.C index e83ce1ae85..8032e6cdac 100644 --- a/src/bufferview_funcs.C +++ b/src/bufferview_funcs.C @@ -156,9 +156,10 @@ Point coordOffset(DocIterator const & dit) int y = 0; // Contribution of nested insets - for (size_t i = 1; i != dit.size(); ++i) { + for (size_t i = 1; i != dit.depth(); ++i) { CursorSlice const & sl = dit[i]; - int xx = 0, yy = 0; + int xx = 0; + int yy = 0; sl.inset().getCursorPos(sl, xx, yy); x += xx; y += yy; @@ -184,7 +185,7 @@ Point getPos(DocIterator const & dit) CoordCache::InnerParPosCache::const_iterator it = cache.find(bot.pit()); if (it == cache.end()) { //lyxerr << "cursor out of view" << std::endl; - return Point(-1,-1); + return Point(-1, -1); } Point p = coordOffset(dit); // offset from outer paragraph p.y_ += it->second.y_; diff --git a/src/cursor.C b/src/cursor.C index e0b4e20453..6aeaec8884 100644 --- a/src/cursor.C +++ b/src/cursor.C @@ -69,11 +69,11 @@ namespace { positionable(DocIterator const & cursor, DocIterator const & anchor) { // avoid deeper nested insets when selecting - if (cursor.size() > anchor.size()) + if (cursor.depth() > anchor.depth()) return false; // anchor might be deeper, should have same path then - for (size_t i = 0; i < cursor.size(); ++i) + for (size_t i = 0; i < cursor.depth(); ++i) if (&cursor[i].inset() != &anchor[i].inset()) return false; @@ -91,11 +91,12 @@ namespace { DocIterator result; DocIterator it = c; - it.back().pos() = 0; + it.top().pos() = 0; DocIterator et = c; - et.back().pos() = et.back().asMathInset()->cell(et.back().idx()).size(); + et.top().pos() = et.top().asMathInset()->cell(et.top().idx()).size(); for (int i = 0; ; ++i) { - int xo, yo; + int xo; + int yo; LCursor cur = c; cur.setCursor(it); cur.inset().getCursorPos(cur.top(), xo, yo); @@ -192,15 +193,16 @@ void LCursor::setCursor(DocIterator const & cur) void LCursor::dispatch(FuncRequest const & cmd0) { - lyxerr[Debug::DEBUG] << "LCursor::dispatch: cmd: " - << cmd0 << endl << *this << endl; + lyxerr[Debug::DEBUG] << BOOST_CURRENT_FUNCTION + << " cmd: " << cmd0 << '\n' + << *this << endl; if (empty()) return; FuncRequest cmd = cmd0; LCursor safe = *this; - for (; size(); pop()) { + for (; depth(); pop()) { lyxerr[Debug::DEBUG] << "LCursor::dispatch: cmd: " << cmd0 << endl << *this << endl; BOOST_ASSERT(pos() <= lastpos()); @@ -249,7 +251,7 @@ Buffer & LCursor::buffer() const void LCursor::pop() { - BOOST_ASSERT(size() >= 1); + BOOST_ASSERT(depth() >= 1); pop_back(); } @@ -297,7 +299,7 @@ bool LCursor::popRight() int LCursor::currentMode() { BOOST_ASSERT(!empty()); - for (int i = size() - 1; i >= 0; --i) { + for (int i = depth() - 1; i >= 0; --i) { int res = operator[](i).inset().currentMode(); if (res != InsetBase::UNDECIDED_MODE) return res; @@ -347,9 +349,9 @@ bool LCursor::posRight() CursorSlice LCursor::anchor() const { - BOOST_ASSERT(anchor_.size() >= size()); - CursorSlice normal = anchor_[size() - 1]; - if (size() < anchor_.size() && back() <= normal) { + BOOST_ASSERT(anchor_.depth() >= depth()); + CursorSlice normal = anchor_[depth() - 1]; + if (depth() < anchor_.depth() && top() <= normal) { // anchor is behind cursor -> move anchor behind the inset ++normal.pos(); } @@ -360,16 +362,16 @@ CursorSlice LCursor::anchor() const CursorSlice LCursor::selBegin() const { if (!selection()) - return back(); - return anchor() < back() ? anchor() : back(); + return top(); + return anchor() < top() ? anchor() : top(); } CursorSlice LCursor::selEnd() const { if (!selection()) - return back(); - return anchor() > back() ? anchor() : back(); + return top(); + return anchor() > top() ? anchor() : top(); } @@ -377,7 +379,7 @@ DocIterator LCursor::selectionBegin() const { if (!selection()) return *this; - return anchor() < back() ? anchor_ : *this; + return anchor() < top() ? anchor_ : *this; } @@ -385,7 +387,7 @@ DocIterator LCursor::selectionEnd() const { if (!selection()) return *this; - return anchor() > back() ? anchor_ : *this; + return anchor() > top() ? anchor_ : *this; } @@ -465,15 +467,15 @@ void LCursor::selHandle(bool sel) std::ostream & operator<<(std::ostream & os, LCursor const & cur) { os << "\n cursor: | anchor:\n"; - for (size_t i = 0, n = cur.size(); i != n; ++i) { - os << " " << cur.operator[](i) << " | "; - if (i < cur.anchor_.size()) + for (size_t i = 0, n = cur.depth(); i != n; ++i) { + os << " " << cur[i] << " | "; + if (i < cur.anchor_.depth()) os << cur.anchor_[i]; else os << "-------------------------------"; os << "\n"; } - for (size_t i = cur.size(), n = cur.anchor_.size(); i < n; ++i) { + for (size_t i = cur.depth(), n = cur.anchor_.depth(); i < n; ++i) { os << "------------------------------- | " << cur.anchor_[i] << "\n"; } os << " selection: " << cur.selection_ @@ -525,7 +527,7 @@ bool LCursor::openable(MathAtom const & t) const return true; // we can't move into anything new during selection - if (depth() >= anchor_.size()) + if (depth() >= anchor_.depth()) return false; if (!ptr_cmp(t.nucleus(), &anchor_[depth()].inset())) return false; @@ -620,7 +622,7 @@ void LCursor::niceInsert(string const & t) void LCursor::niceInsert(MathAtom const & t) { macroModeClose(); - string safe = lyx::cap::grabAndEraseSelection(*this); + string const safe = lyx::cap::grabAndEraseSelection(*this); plainInsert(t); // enter the new inset and move the contents of the selection if possible if (t->isActive()) { @@ -752,7 +754,7 @@ void LCursor::macroModeClose() return; MathUnknownInset * p = activeMacro(); p->finalize(); - string s = p->name(); + string const s = p->name(); --pos(); cell().erase(pos()); @@ -803,10 +805,11 @@ int LCursor::targetX() const void LCursor::setTargetX() { - //for now this is good enough. A better solution would be to - //avoid this rebreak by setting cursorX only after drawing + // For now this is good enough. A better solution would be to + // avoid this rebreak by setting cursorX only after drawing bottom().text()->redoParagraph(bottom().pit()); - int x, y; + int x; + int y; getPos(x, y); x_target_ = x; } @@ -934,7 +937,7 @@ bool LCursor::goUpDown(bool up) //} // try to find an inset that knows better then we - while (1) { + while (true) { //lyxerr << "updown: We are in " << &inset() << " idx: " << idx() << endl; // ask inset first if (inset().idxUpDown(*this, up)) { @@ -953,7 +956,8 @@ bool LCursor::goUpDown(bool up) } // any improvement so far? - int xnew, ynew; + int xnew; + int ynew; getPos(xnew, ynew); if (up ? ynew < yo : ynew > yo) return true; @@ -1061,7 +1065,7 @@ string LCursor::currentState() } if (inTexted()) - return text()->currentState(*this); + return text()->currentState(*this); return string(); } @@ -1082,7 +1086,7 @@ Encoding const * LCursor::getEncoding() const int s = 0; // go up until first non-0 text is hit // (innermost text is 0 in mathed) - for (s = size() - 1; s >= 0; --s) + for (s = depth() - 1; s >= 0; --s) if (operator[](s).text()) break; CursorSlice const & sl = operator[](s); @@ -1123,7 +1127,7 @@ LyXFont LCursor::getFont() const int s = 0; // go up until first non-0 text is hit // (innermost text is 0 in mathed) - for (s = size() - 1; s >= 0; --s) + for (s = depth() - 1; s >= 0; --s) if (operator[](s).text()) break; CursorSlice const & sl = operator[](s); @@ -1132,7 +1136,6 @@ LyXFont LCursor::getFont() const bv().buffer()->params(), sl.pos(), outerFont(sl.pit(), text.paragraphs())); - for (; s < size(); ++s) - ; + return font; } diff --git a/src/dociterator.C b/src/dociterator.C index fe01067aba..81f465826b 100644 --- a/src/dociterator.C +++ b/src/dociterator.C @@ -244,11 +244,11 @@ bool DocIterator::inTexted() const LyXText * DocIterator::innerText() { BOOST_ASSERT(!empty()); - // go up until first non-0 text is hit + // Go up until first non-0 text is hit // (innermost text is 0 in mathed) - for (int i = size() - 1; i >= 0; --i) - if (operator[](i).text()) - return operator[](i).text(); + for (int i = depth() - 1; i >= 0; --i) + if (slices_[i].text()) + return slices_[i].text(); return 0; } @@ -257,18 +257,18 @@ LyXText const * DocIterator::innerText() const BOOST_ASSERT(!empty()); // go up until first non-0 text is hit // (innermost text is 0 in mathed) - for (int i = size() - 1; i >= 0; --i) - if (operator[](i).text()) - return operator[](i).text(); + for (int i = depth() - 1; i >= 0; --i) + if (slices_[i].text()) + return slices_[i].text(); return 0; } InsetBase * DocIterator::innerInsetOfType(int code) const { - for (int i = size() - 1; i >= 0; --i) - if (operator[](i).inset_->lyxCode() == code) - return operator[](i).inset_; + for (int i = depth() - 1; i >= 0; --i) + if (slices_[i].inset_->lyxCode() == code) + return slices_[i].inset_; return 0; } @@ -281,7 +281,7 @@ void DocIterator::forwardPos() return; } - CursorSlice & top = back(); + CursorSlice & tip = top(); //lyxerr << "XXX\n" << *this << endl; // this is used twice and shows up in the profiler! @@ -290,13 +290,13 @@ void DocIterator::forwardPos() // move into an inset to the right if possible InsetBase * n = 0; - if (top.pos() != lastp) { + if (tip.pos() != lastp) { // this is impossible for pos() == size() if (inMathed()) { - n = (top.cell().begin() + top.pos())->nucleus(); + n = (tip.cell().begin() + tip.pos())->nucleus(); } else { - if (paragraph().isInset(top.pos())) - n = paragraph().getInset(top.pos()); + if (paragraph().isInset(tip.pos())) + n = paragraph().getInset(tip.pos()); } } @@ -307,28 +307,28 @@ void DocIterator::forwardPos() } // otherwise move on one position if possible - if (top.pos() < lastp) { + if (tip.pos() < lastp) { //lyxerr << "... next pos" << endl; - ++top.pos(); + ++tip.pos(); return; } //lyxerr << "... no next pos" << endl; // otherwise move on one paragraph if possible - if (top.pit() < lastpit()) { + if (tip.pit() < lastpit()) { //lyxerr << "... next par" << endl; - ++top.pit(); - top.pos() = 0; + ++tip.pit(); + tip.pos() = 0; return; } //lyxerr << "... no next pit" << endl; // otherwise try to move on one cell if possible - if (top.idx() < lastidx()) { + if (tip.idx() < lastidx()) { //lyxerr << "... next idx" << endl; - ++top.idx(); - top.pit() = 0; - top.pos() = 0; + ++tip.idx(); + tip.pit() = 0; + tip.pos() = 0; return; } //lyxerr << "... no next idx" << endl; @@ -336,8 +336,8 @@ void DocIterator::forwardPos() // otherwise leave inset and jump over inset as a whole pop_back(); // 'top' is invalid now... - if (size()) - ++back().pos(); + if (!empty()) + ++top().pos(); } @@ -352,7 +352,7 @@ void DocIterator::forwardPar() void DocIterator::forwardChar() { forwardPos(); - while (size() != 0 && pos() == lastpos()) + while (!empty() && pos() == lastpos()) forwardPos(); } @@ -360,7 +360,7 @@ void DocIterator::forwardChar() void DocIterator::forwardInset() { forwardPos(); - while (size() != 0 && (pos() == lastpos() || nextInset() == 0)) + while (!empty() && (pos() == lastpos() || nextInset() == 0)) forwardPos(); } @@ -368,7 +368,7 @@ void DocIterator::forwardInset() void DocIterator::backwardChar() { backwardPos(); - while (size() != 0 && pos() == lastpos()) + while (!empty() && pos() == lastpos()) backwardPos(); } @@ -378,24 +378,24 @@ void DocIterator::backwardPos() //this dog bites his tail if (empty()) { push_back(CursorSlice(*inset_)); - back().idx() = lastidx(); - back().pit() = lastpit(); - back().pos() = lastpos(); + top().idx() = lastidx(); + top().pit() = lastpit(); + top().pos() = lastpos(); return; } - CursorSlice & top = back(); + CursorSlice & tip = top(); - if (top.pos() != 0) { - --top.pos(); - } else if (top.pit() != 0) { - --top.pit(); - top.pos() = lastpos(); + if (tip.pos() != 0) { + --tip.pos(); + } else if (tip.pit() != 0) { + --tip.pit(); + tip.pos() = lastpos(); return; - } else if (top.idx() != 0) { - --top.idx(); - top.pit() = lastpit(); - top.pos() = lastpos(); + } else if (tip.idx() != 0) { + --tip.idx(); + tip.pit() = lastpit(); + tip.pos() = lastpos(); return; } else { pop_back(); @@ -406,17 +406,17 @@ void DocIterator::backwardPos() InsetBase * n = 0; if (inMathed()) { - n = (top.cell().begin() + top.pos())->nucleus(); + n = (tip.cell().begin() + tip.pos())->nucleus(); } else { - if (paragraph().isInset(top.pos())) - n = paragraph().getInset(top.pos()); + if (paragraph().isInset(tip.pos())) + n = paragraph().getInset(tip.pos()); } if (n && n->isActive()) { push_back(CursorSlice(*n)); - back().idx() = lastidx(); - back().pit() = lastpit(); - back().pos() = lastpos(); + top().idx() = lastidx(); + top().pit() = lastpit(); + top().pos() = lastpos(); } } @@ -424,18 +424,18 @@ void DocIterator::backwardPos() bool DocIterator::hasPart(DocIterator const & it) const { // it can't be a part if it is larger - if (it.size() > size()) + if (it.depth() > depth()) return false; // as inset adresses are the 'last' level - return &it.back().inset() == &operator[](it.size() - 1).inset(); + return &it.top().inset() == &slices_[it.depth() - 1].inset(); } std::ostream & operator<<(std::ostream & os, DocIterator const & dit) { - for (size_t i = 0, n = dit.size(); i != n; ++i) - os << " " << dit.operator[](i) << "\n"; + for (size_t i = 0, n = dit.depth(); i != n; ++i) + os << " " << dit[i] << "\n"; return os; } @@ -443,9 +443,9 @@ std::ostream & operator<<(std::ostream & os, DocIterator const & dit) /////////////////////////////////////////////////////// -StableDocIterator::StableDocIterator(const DocIterator & dit) +StableDocIterator::StableDocIterator(DocIterator const & dit) { - data_ = dit; + data_ = dit.internalData(); for (size_t i = 0, n = data_.size(); i != n; ++i) data_[i].inset_ = 0; } @@ -459,14 +459,15 @@ DocIterator StableDocIterator::asDocIterator(InsetBase * inset) const for (size_t i = 0, n = data_.size(); i != n; ++i) { if (inset == 0) { // FIXME - lyxerr << "Should not happen, but does e.g. after C-n C-l C-z S-C-z" - << endl << "dit: " << dit << endl + lyxerr << BOOST_CURRENT_FUNCTION + << " Should not happen, but does e.g. after C-n C-l C-z S-C-z" + << '\n' << "dit: " << dit << '\n' << " lastpos: " << dit.lastpos() << endl; //break; BOOST_ASSERT(false); } dit.push_back(data_[i]); - dit.back().inset_ = inset; + dit.top().inset_ = inset; if (i + 1 != n) inset = dit.nextInset(); } diff --git a/src/dociterator.h b/src/dociterator.h index b5a1e80659..a91fd32af3 100644 --- a/src/dociterator.h +++ b/src/dociterator.h @@ -34,7 +34,7 @@ bool ptr_cmp(A const * a, B const * b) // The public inheritance should go in favour of a suitable data member // (or maybe private inheritance) at some point of time. -class DocIterator : public std::vector +class DocIterator // : public std::vector { public: /// type for cell number in inset @@ -54,42 +54,55 @@ public: /// explicit DocIterator(InsetBase & inset); + CursorSlice const & operator[](size_t i) const { + return slices_[i]; + } + + CursorSlice & operator[](size_t i) { + return slices_[i]; + } + + // What is the point of this function? + void resize(size_t i) { slices_.resize(i); } + /// is the iterator valid? operator const void*() const { return empty() ? 0 : this; } /// is this iterator invalid? bool operator!() const { return empty(); } + bool empty() const { return slices_.empty(); } + // // access to slice at tip // /// access to tip - CursorSlice & top() { return back(); } + CursorSlice & top() { return slices_.back(); } /// access to tip - CursorSlice const & top() const { return back(); } + CursorSlice const & top() const { return slices_.back(); } /// access to outermost slice - CursorSlice & bottom() { return front(); } + CursorSlice & bottom() { return slices_.front(); } /// access to outermost slicetip - CursorSlice const & bottom() const { return front(); } + CursorSlice const & bottom() const { return slices_.front(); } /// how many nested insets do we have? - size_t depth() const { return size(); } + size_t depth() const { return slices_.size(); } /// the containing inset - InsetBase & inset() const { return back().inset(); } + InsetBase & inset() const { return top().inset(); } /// return the cell of the inset this cursor is in - idx_type idx() const { return back().idx(); } + idx_type idx() const { return top().idx(); } /// return the cell of the inset this cursor is in - idx_type & idx() { return back().idx(); } + idx_type & idx() { return top().idx(); } /// return the last possible cell in this inset idx_type lastidx() const; /// return the paragraph this cursor is in - pit_type pit() const { return back().pit(); } + pit_type pit() const { return top().pit(); } /// return the paragraph this cursor is in - pit_type & pit() { return back().pit(); } + pit_type & pit() { return top().pit(); } /// return the last possible paragraph in this inset pit_type lastpit() const; /// return the position within the paragraph - pos_type pos() const { return back().pos(); } + pos_type pos() const { return top().pos(); } /// return the position within the paragraph - pos_type & pos() { return back().pos(); } + pos_type & pos() { return top().pos(); } /// return the last position within the paragraph pos_type lastpos() const; @@ -191,7 +204,21 @@ public: /// output friend std::ostream & operator<<(std::ostream & os, DocIterator const & cur); + friend bool operator==(DocIterator const &, DocIterator const &); + friend class StableDocIterator; +protected: + void clear() { slices_.clear(); } + void push_back(CursorSlice const & sl) { + slices_.push_back(sl); + } + void pop_back() { + slices_.pop_back(); + } private: + std::vector const & internalData() const { + return slices_; + } + std::vector slices_; InsetBase * inset_; }; @@ -200,6 +227,20 @@ DocIterator doc_iterator_begin(InsetBase & inset); DocIterator doc_iterator_end(InsetBase & inset); +inline +bool operator==(DocIterator const & di1, DocIterator const & di2) +{ + return di1.slices_ == di2.slices_; +} + + +inline +bool operator!=(DocIterator const & di1, DocIterator const & di2) +{ + return !(di1 == di2); +} + + // The difference to a ('non stable') DocIterator is the removed // (overwritte by 0...) part of the CursorSlice data items. So this thing // is suitable for external storage, but not for iteration as such. diff --git a/src/frontends/ChangeLog b/src/frontends/ChangeLog index 4cf41a6902..f98bf7f9bd 100644 --- a/src/frontends/ChangeLog +++ b/src/frontends/ChangeLog @@ -1,3 +1,7 @@ +2005-02-08 Lars Gullik Bjonnes + + * LyXView.C (updateLayoutChoice): minor change to some comments + 2005-01-20 Asger Ottar Alstrup * pch.h: use the HAVE_UNISTD_H preprocessor guard. diff --git a/src/frontends/LyXView.C b/src/frontends/LyXView.C index 848d0330af..7758bb400b 100644 --- a/src/frontends/LyXView.C +++ b/src/frontends/LyXView.C @@ -140,13 +140,13 @@ void LyXView::resetAutosaveTimer() void LyXView::updateLayoutChoice() { - // don't show any layouts without a buffer + // Don't show any layouts without a buffer if (!view()->buffer()) { toolbars_->clearLayoutList(); return; } - // update the layout display + // Update the layout display if (toolbars_->updateLayoutList(buffer()->params().textclass)) { current_layout = buffer()->params().getLyXTextClass().defaultLayoutName(); } diff --git a/src/frontends/controllers/ChangeLog b/src/frontends/controllers/ChangeLog index 88fc144701..65c71d8285 100644 --- a/src/frontends/controllers/ChangeLog +++ b/src/frontends/controllers/ChangeLog @@ -1,3 +1,8 @@ +2005-02-08 Lars Gullik Bjonnes + + * ControlSpellchecker.C (nextWord): size() -> depth() + * ControlTabular.C(initializeParams): ditto + 2005-01-31 Lars Gullik Bjonnes * ControlGraphics.C (browse): rewrite to use boost.filesystem diff --git a/src/frontends/controllers/ControlSpellchecker.C b/src/frontends/controllers/ControlSpellchecker.C index 40a73dba5d..7e8c7b60f3 100644 --- a/src/frontends/controllers/ControlSpellchecker.C +++ b/src/frontends/controllers/ControlSpellchecker.C @@ -138,7 +138,7 @@ WordLangTuple nextWord(DocIterator & cur, ptrdiff_t & progress, bool ignoreword = false; string word, lang_code; - while(cur.size()) { + while (cur.depth()) { if (isLetter(cur)) { if (!inword) { inword = true; diff --git a/src/frontends/controllers/ControlTabular.C b/src/frontends/controllers/ControlTabular.C index 6cfb5df188..cbeec65e8d 100644 --- a/src/frontends/controllers/ControlTabular.C +++ b/src/frontends/controllers/ControlTabular.C @@ -37,7 +37,7 @@ bool ControlTabular::initialiseParams(string const & data) LCursor const & cur = bv->cursor(); // get the innermost tabular inset; // assume that it is "ours" - for (int i = cur.size() - 1; i >= 0; --i) + for (int i = cur.depth() - 1; i >= 0; --i) if (cur[i].inset().lyxCode() == InsetBase::TABULAR_CODE) { active_cell_ = cur[i].idx(); break; diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index 2e1000c36c..b5f6f6a648 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,3 +1,8 @@ +2005-02-08 Lars Gullik Bjonnes + + * insetcollapsable.C (leaveInset): size() -> depth() + * insettabular.C (isRightToLeft): ditto + 2005-02-03 Georg Baum * insetert.C (latex, linuxdoc, docbook): remove newline handling diff --git a/src/insets/insetcollapsable.C b/src/insets/insetcollapsable.C index 17bf4215ca..e22c1d63bc 100644 --- a/src/insets/insetcollapsable.C +++ b/src/insets/insetcollapsable.C @@ -41,7 +41,7 @@ using std::ostream; void leaveInset(LCursor & cur, InsetBase const & in) { - for (unsigned int i = 0; i != cur.size(); ++i) { + for (size_t i = 0; i != cur.depth(); ++i) { if (&cur[i].inset() == &in) { cur.resize(i); return; diff --git a/src/insets/insettabular.C b/src/insets/insettabular.C index 31d4744469..68061502f7 100644 --- a/src/insets/insettabular.C +++ b/src/insets/insettabular.C @@ -1664,9 +1664,9 @@ void InsetTabular::cutSelection(LCursor & cur) bool InsetTabular::isRightToLeft(LCursor & cur) const { - BOOST_ASSERT(cur.size() > 1); - Paragraph const & parentpar = cur[cur.size() - 2].paragraph(); - LCursor::pos_type const parentpos = cur[cur.size() - 2].pos(); + BOOST_ASSERT(cur.depth() > 1); + Paragraph const & parentpar = cur[cur.depth() - 2].paragraph(); + LCursor::pos_type const parentpos = cur[cur.depth() - 2].pos(); return parentpar.getFontSettings(cur.bv().buffer()->params(), parentpos).language()->RightToLeft(); } diff --git a/src/insets/insettext.C b/src/insets/insettext.C index 144aa4fb45..f3c7a5450f 100644 --- a/src/insets/insettext.C +++ b/src/insets/insettext.C @@ -292,7 +292,8 @@ InsetBase * InsetText::editXY(LCursor & cur, int x, int y) const void InsetText::doDispatch(LCursor & cur, FuncRequest & cmd) { - //lyxerr << "InsetText::doDispatch: " << cmd.action << " " << endl; + lyxerr << BOOST_CURRENT_FUNCTION + << " [ cmd.action = " << cmd.action << ']' << endl; setViewCache(&cur.bv()); text_.dispatch(cur, cmd); diff --git a/src/lyxfunc.C b/src/lyxfunc.C index 69bcaf2ea3..ef698a9fbe 100644 --- a/src/lyxfunc.C +++ b/src/lyxfunc.C @@ -150,7 +150,7 @@ bool getStatus(LCursor cursor, // BufferView * arg, though (which should be avoided) //LCursor safe = *this; bool res = false; - for ( ; cursor.size(); cursor.pop()) { + for ( ; cursor.depth(); cursor.pop()) { //lyxerr << "\nLCursor::getStatus: cmd: " << cmd << endl << *this << endl; DocIterator::idx_type & idx = cursor.idx(); DocIterator::idx_type const lastidx = cursor.lastidx(); @@ -444,7 +444,7 @@ FuncStatus LyXFunc::getStatus(FuncRequest const & cmd) const case LFUN_INSET_SETTINGS: { enable = false; - if (!cur.size()) + if (!cur) break; UpdatableInset * inset = cur.inset().asUpdatableInset(); lyxerr << "inset: " << inset << endl; diff --git a/src/mathed/ChangeLog b/src/mathed/ChangeLog index 2717e0cef9..3b683126d5 100644 --- a/src/mathed/ChangeLog +++ b/src/mathed/ChangeLog @@ -1,3 +1,7 @@ +2005-02-08 Lars Gullik Bjonnes + + * math_data.C (isInside): size() -> depth() + 2005-01-31 Asger Ottar Alstrup * math_data.C: diff --git a/src/mathed/math_data.C b/src/mathed/math_data.C index ffda365de2..913eeef60f 100644 --- a/src/mathed/math_data.C +++ b/src/mathed/math_data.C @@ -221,7 +221,7 @@ namespace { bool isInside(DocIterator const & it, MathArray const & ar, lyx::pos_type p1, lyx::pos_type p2) { - for (size_t i = 0; i != it.size(); ++i) { + for (size_t i = 0; i != it.depth(); ++i) { CursorSlice const & sl = it[i]; if (sl.inset().inMathed() && &sl.cell() == &ar) return p1 <= sl.pos() && sl.pos() < p2; diff --git a/src/paragraph.C b/src/paragraph.C index 755966eff1..28caa48fac 100644 --- a/src/paragraph.C +++ b/src/paragraph.C @@ -901,9 +901,9 @@ bool Paragraph::simpleTeXOnePar(Buffer const & buf, } LyXFont basefont; - + LaTeXFeatures features(buf, bparams, runparams.nice); - + // output change tracking marks only if desired, // if dvipost is installed, // and with dvi/ps (other formats don't work) @@ -1020,7 +1020,7 @@ bool Paragraph::simpleTeXOnePar(Buffer const & buf, Change::Type change = pimpl_->lookupChange(i); - column += Changes::latexMarkChange(os, running_change, + column += Changes::latexMarkChange(os, running_change, change, output); running_change = change; @@ -1878,4 +1878,3 @@ void Paragraph::dump() const rows_[i].dump(); } } - diff --git a/src/text2.C b/src/text2.C index 6560c49310..2fd76bc774 100644 --- a/src/text2.C +++ b/src/text2.C @@ -1246,9 +1246,6 @@ bool LyXText::cursorRight(LCursor & cur) if (cur.pos() != cur.lastpos()) { bool updateNeeded = false; if (!checkAndActivateInset(cur, true)) { - lyxerr << BOOST_CURRENT_FUNCTION - << " Running setCursor" << endl; - updateNeeded |= setCursor(cur, cur.pit(), cur.pos() + 1, true, false); if (false && bidi.isBoundary(cur.buffer(), cur.paragraph(), cur.pos())) diff --git a/src/text3.C b/src/text3.C index ca0be38640..9ddee5cf60 100644 --- a/src/text3.C +++ b/src/text3.C @@ -426,7 +426,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) break; case LFUN_BEGINNINGBUF: - if (cur.size() == 1) { + if (cur.depth() == 1) { if (!cur.mark()) cur.clearSelection(); cursorTop(cur); @@ -437,7 +437,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) break; case LFUN_BEGINNINGBUFSEL: - if (cur.size() == 1) { + if (cur.depth() == 1) { if (!cur.selection()) cur.resetAnchor(); cursorTop(cur); @@ -448,7 +448,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) break; case LFUN_ENDBUF: - if (cur.size() == 1) { + if (cur.depth() == 1) { if (!cur.mark()) cur.clearSelection(); cursorBottom(cur); @@ -459,7 +459,7 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd) break; case LFUN_ENDBUFSEL: - if (cur.size() == 1) { + if (cur.depth() == 1) { if (!cur.selection()) cur.resetAnchor(); cursorBottom(cur);