mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-22 16:37:28 +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>
|
2003-04-15 Lars Gullik Bjønnes <larsbj@gullik.net>
|
||||||
|
|
||||||
* ParagraphList.C: prepare for NO_NEXT
|
* ParagraphList.C: prepare for NO_NEXT
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user