}
-LyXText * DocIterator::text() const
+LyXText * DocIterator::text()
+{
+ BOOST_ASSERT(!empty());
+ return top().text();
+}
+
+LyXText const * DocIterator::text() const
{
BOOST_ASSERT(!empty());
return top().text();
Row & DocIterator::textRow()
{
- return *paragraph().getRow(pos());
+ BOOST_ASSERT(!paragraph().rows().empty());
+ return paragraph().getRow(pos());
}
Row const & DocIterator::textRow() const
{
- return *paragraph().getRow(pos());
+ BOOST_ASSERT(!paragraph().rows().empty());
+ return paragraph().getRow(pos());
}
}
-DocIterator::row_type DocIterator::crow() const
-{
- return paragraph().row(pos());
-}
-
-
-DocIterator::row_type DocIterator::lastcrow() const
-{
- return paragraph().rows.size();
-}
-
-
DocIterator::idx_type DocIterator::lastidx() const
{
return top().lastidx();
}
-LyXText * DocIterator::innerText() const
+LyXText * DocIterator::innerText()
+{
+ 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();
+ return 0;
+}
+
+LyXText const * DocIterator::innerText() const
{
BOOST_ASSERT(!empty());
// go up until first non-0 text is hit
top.pos() = 0;
return;
}
- //lyxerr << "... no next par" << endl;
+ //lyxerr << "... no next pit" << endl;
// otherwise try to move on one cell if possible
if (top.idx() < lastidx()) {