one more use ParagraphList::iterator

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@6820 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Lars Gullik Bjønnes 2003-04-15 19:31:45 +00:00
parent f47e421e32
commit 2b27114a4e
2 changed files with 17 additions and 11 deletions

View File

@ -1,3 +1,7 @@
2003-04-15 Lars Gullik Bjønnes <larsbj@gullik.net>
* text_funcs.C (transposeChars): use ParagraphList::iterator here.
2003-04-15 Lars Gullik Bjønnes <larsbj@gullik.net> 2003-04-15 Lars Gullik Bjønnes <larsbj@gullik.net>
* ParagraphList.C: prepare for NO_NEXT * ParagraphList.C: prepare for NO_NEXT

View File

@ -19,38 +19,40 @@
#include "lyxcursor.h" #include "lyxcursor.h"
#include "undo_funcs.h" #include "undo_funcs.h"
#include <boost/next_prior.hpp>
using lyx::pos_type; using lyx::pos_type;
void transposeChars(LyXText & text, LyXCursor const & cursor) void transposeChars(LyXText & text, LyXCursor const & cursor)
{ {
Paragraph * tmppar = &*cursor.par(); ParagraphList::iterator tmppit = cursor.par();
setUndo(text.bv(), Undo::FINISH, tmppar, tmppar->next()); setUndo(text.bv(), Undo::FINISH, &*tmppit, &*boost::next(tmppit));
pos_type tmppos = cursor.pos(); pos_type tmppos = cursor.pos();
// First decide if it is possible to transpose at all // First decide if it is possible to transpose at all
if (tmppos == 0 || tmppos == tmppar->size()) if (tmppos == 0 || tmppos == tmppit->size())
return; return;
if (isDeletedText(*tmppar, tmppos - 1) if (isDeletedText(*tmppit, tmppos - 1)
|| isDeletedText(*tmppar, tmppos)) || isDeletedText(*tmppit, tmppos))
return; return;
unsigned char c1 = tmppar->getChar(tmppos); unsigned char c1 = tmppit->getChar(tmppos);
unsigned char c2 = tmppar->getChar(tmppos - 1); unsigned char c2 = tmppit->getChar(tmppos - 1);
// We should have an implementation that handles insets // We should have an implementation that handles insets
// as well, but that will have to come later. (Lgb) // as well, but that will have to come later. (Lgb)
if (c1 == Paragraph::META_INSET || c2 == Paragraph::META_INSET) if (c1 == Paragraph::META_INSET || c2 == Paragraph::META_INSET)
return; return;
bool const erased = tmppar->erase(tmppos - 1, tmppos + 1); bool const erased = tmppit->erase(tmppos - 1, tmppos + 1);
pos_type const ipos(erased ? tmppos - 1 : tmppos + 1); pos_type const ipos(erased ? tmppos - 1 : tmppos + 1);
tmppar->insertChar(ipos, c1); tmppit->insertChar(ipos, c1);
tmppar->insertChar(ipos + 1, c2); tmppit->insertChar(ipos + 1, c2);
text.checkParagraph(tmppar, tmppos); text.checkParagraph(tmppit, tmppos);
} }