mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-05 13:26:21 +00:00
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:
parent
f47e421e32
commit
2b27114a4e
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user