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>
* ParagraphList.C: prepare for NO_NEXT

View File

@ -19,38 +19,40 @@
#include "lyxcursor.h"
#include "undo_funcs.h"
#include <boost/next_prior.hpp>
using lyx::pos_type;
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();
// First decide if it is possible to transpose at all
if (tmppos == 0 || tmppos == tmppar->size())
if (tmppos == 0 || tmppos == tmppit->size())
return;
if (isDeletedText(*tmppar, tmppos - 1)
|| isDeletedText(*tmppar, tmppos))
if (isDeletedText(*tmppit, tmppos - 1)
|| isDeletedText(*tmppit, tmppos))
return;
unsigned char c1 = tmppar->getChar(tmppos);
unsigned char c2 = tmppar->getChar(tmppos - 1);
unsigned char c1 = tmppit->getChar(tmppos);
unsigned char c2 = tmppit->getChar(tmppos - 1);
// We should have an implementation that handles insets
// as well, but that will have to come later. (Lgb)
if (c1 == Paragraph::META_INSET || c2 == Paragraph::META_INSET)
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);
tmppar->insertChar(ipos, c1);
tmppar->insertChar(ipos + 1, c2);
tmppit->insertChar(ipos, c1);
tmppit->insertChar(ipos + 1, c2);
text.checkParagraph(tmppar, tmppos);
text.checkParagraph(tmppit, tmppos);
}