mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-23 21:40:19 +00:00
move selStart and selEnd from LyXText to BufferView
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8344 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
4eb75f09eb
commit
6238e20d09
@ -518,3 +518,36 @@ void BufferView::resetAnchor()
|
|||||||
{
|
{
|
||||||
return fullCursor().resetAnchor();
|
return fullCursor().resetAnchor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
CursorSlice const & BufferView::selStart() const
|
||||||
|
{
|
||||||
|
if (!selection().set())
|
||||||
|
return cursor();
|
||||||
|
// can't use std::min as this creates a new object
|
||||||
|
return anchor() < cursor() ? anchor() : cursor();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
CursorSlice const & BufferView::selEnd() const
|
||||||
|
{
|
||||||
|
if (!selection().set())
|
||||||
|
return cursor();
|
||||||
|
return anchor() > cursor() ? anchor() : cursor();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
CursorSlice & BufferView::selStart()
|
||||||
|
{
|
||||||
|
if (!selection().set())
|
||||||
|
return cursor();
|
||||||
|
return anchor() < cursor() ? anchor() : cursor();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
CursorSlice & BufferView::selEnd()
|
||||||
|
{
|
||||||
|
if (selection().set())
|
||||||
|
return cursor();
|
||||||
|
return anchor() > cursor() ? anchor() : cursor();
|
||||||
|
}
|
||||||
|
@ -233,6 +233,14 @@ public:
|
|||||||
Selection & selection();
|
Selection & selection();
|
||||||
///
|
///
|
||||||
Selection const & selection() const;
|
Selection const & selection() const;
|
||||||
|
///
|
||||||
|
CursorSlice & selStart();
|
||||||
|
///
|
||||||
|
CursorSlice const & selStart() const;
|
||||||
|
///
|
||||||
|
CursorSlice & selEnd();
|
||||||
|
///
|
||||||
|
CursorSlice const & selEnd() const;
|
||||||
|
|
||||||
///
|
///
|
||||||
Selection selection_;
|
Selection selection_;
|
||||||
|
@ -395,10 +395,10 @@ void BufferView::Pimpl::resizeCurrentBuffer()
|
|||||||
|
|
||||||
par = bv_->cursor().par();
|
par = bv_->cursor().par();
|
||||||
pos = bv_->cursor().pos();
|
pos = bv_->cursor().pos();
|
||||||
selstartpar = text->selStart().par();
|
selstartpar = bv_->selStart().par();
|
||||||
selstartpos = text->selStart().pos();
|
selstartpos = bv_->selStart().pos();
|
||||||
selendpar = text->selEnd().par();
|
selendpar = bv_->selEnd().par();
|
||||||
selendpos = text->selEnd().pos();
|
selendpos = bv_->selEnd().pos();
|
||||||
sel = bv_->selection().set();
|
sel = bv_->selection().set();
|
||||||
mark_set = bv_->selection().mark();
|
mark_set = bv_->selection().mark();
|
||||||
text->textwidth_ = bv_->workWidth();
|
text->textwidth_ = bv_->workWidth();
|
||||||
@ -637,8 +637,8 @@ Change const BufferView::Pimpl::getCurrentChange()
|
|||||||
if (!bv_->selection().set())
|
if (!bv_->selection().set())
|
||||||
return Change(Change::UNCHANGED);
|
return Change(Change::UNCHANGED);
|
||||||
|
|
||||||
return text->getPar(text->selStart())
|
return text->getPar(bv_->selStart())
|
||||||
->lookupChangeFull(text->selStart().pos());
|
->lookupChangeFull(bv_->selStart().pos());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -394,8 +394,7 @@ int replace(BufferView * bv,
|
|||||||
|
|
||||||
text->replaceSelectionWithString(replacestr);
|
text->replaceSelectionWithString(replacestr);
|
||||||
text->setSelectionRange(replacestr.length());
|
text->setSelectionRange(replacestr.length());
|
||||||
text->cursor() = fw ? text->selEnd() : text->selStart();
|
bv->cursor() = fw ? bv->selEnd() : bv->selStart();
|
||||||
|
|
||||||
bv->buffer()->markDirty();
|
bv->buffer()->markDirty();
|
||||||
find(bv, searchstr, cs, mw, fw);
|
find(bv, searchstr, cs, mw, fw);
|
||||||
bv->update();
|
bv->update();
|
||||||
|
@ -409,15 +409,6 @@ public:
|
|||||||
void setSelection();
|
void setSelection();
|
||||||
///
|
///
|
||||||
void clearSelection();
|
void clearSelection();
|
||||||
///
|
|
||||||
CursorSlice & selStart();
|
|
||||||
///
|
|
||||||
CursorSlice const & selStart() const;
|
|
||||||
///
|
|
||||||
CursorSlice & selEnd();
|
|
||||||
///
|
|
||||||
CursorSlice const & selEnd() const;
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
|
@ -391,14 +391,14 @@ void RowPainter::paintSelection()
|
|||||||
bool const is_rtl = pit_->isRightToLeftPar(bv_.buffer()->params());
|
bool const is_rtl = pit_->isRightToLeftPar(bv_.buffer()->params());
|
||||||
|
|
||||||
// the current selection
|
// the current selection
|
||||||
int const startx = text_.cursorX(text_.selStart());
|
int const startx = text_.cursorX(bv_.selStart());
|
||||||
int const endx = text_.cursorX(text_.selEnd());
|
int const endx = text_.cursorX(bv_.selEnd());
|
||||||
int const starty = text_.cursorY(text_.selStart());
|
int const starty = text_.cursorY(bv_.selStart());
|
||||||
int const endy = text_.cursorY(text_.selEnd());
|
int const endy = text_.cursorY(bv_.selEnd());
|
||||||
ParagraphList::iterator startpit = text_.getPar(text_.selStart());
|
ParagraphList::iterator startpit = text_.getPar(bv_.selStart());
|
||||||
ParagraphList::iterator endpit = text_.getPar(text_.selEnd());
|
ParagraphList::iterator endpit = text_.getPar(bv_.selEnd());
|
||||||
RowList::iterator startrow = startpit->getRow(text_.selStart().pos());
|
RowList::iterator startrow = startpit->getRow(bv_.selStart().pos());
|
||||||
RowList::iterator endrow = endpit->getRow(text_.selEnd().pos());
|
RowList::iterator endrow = endpit->getRow(bv_.selEnd().pos());
|
||||||
int const h = row_.height();
|
int const h = row_.height();
|
||||||
|
|
||||||
int const row_y = pit_->y + row_.y_offset();
|
int const row_y = pit_->y + row_.y_offset();
|
||||||
@ -468,9 +468,9 @@ void RowPainter::paintSelection()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (((startpit != pit_ && startrow != rit_)
|
if (((startpit != pit_ && startrow != rit_)
|
||||||
|| text_.selStart().pos() <= pos) &&
|
|| bv_.selStart().pos() <= pos) &&
|
||||||
((endpit != pit_ && endrow != rit_)
|
((endpit != pit_ && endrow != rit_)
|
||||||
|| pos < text_.selEnd().pos())) {
|
|| pos < bv_.selEnd().pos())) {
|
||||||
// Here we do not use x_ as xo_ was added to x_.
|
// Here we do not use x_ as xo_ was added to x_.
|
||||||
pain_.fillRectangle(int(old_tmpx), yo_,
|
pain_.fillRectangle(int(old_tmpx), yo_,
|
||||||
int(tmpx - old_tmpx + 1), h, LColor::selection);
|
int(tmpx - old_tmpx + 1), h, LColor::selection);
|
||||||
|
57
src/text.C
57
src/text.C
@ -1127,9 +1127,9 @@ void LyXText::acceptChange()
|
|||||||
if (!bv()->selection().set() && cursorPar()->size())
|
if (!bv()->selection().set() && cursorPar()->size())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (selStart().par() == selEnd().par()) {
|
if (bv()->selStart().par() == bv()->selEnd().par()) {
|
||||||
CursorSlice const & startc = selStart();
|
CursorSlice const & startc = bv()->selStart();
|
||||||
CursorSlice const & endc = selEnd();
|
CursorSlice const & endc = bv()->selEnd();
|
||||||
recordUndo(Undo::INSERT, this, startc.par());
|
recordUndo(Undo::INSERT, this, startc.par());
|
||||||
getPar(startc)->acceptChange(startc.pos(), endc.pos());
|
getPar(startc)->acceptChange(startc.pos(), endc.pos());
|
||||||
finishUndo();
|
finishUndo();
|
||||||
@ -1146,9 +1146,9 @@ void LyXText::rejectChange()
|
|||||||
if (!bv()->selection().set() && cursorPar()->size())
|
if (!bv()->selection().set() && cursorPar()->size())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (selStart().par() == selEnd().par()) {
|
if (bv()->selStart().par() == bv()->selEnd().par()) {
|
||||||
CursorSlice const & startc = selStart();
|
CursorSlice const & startc = bv()->selStart();
|
||||||
CursorSlice const & endc = selEnd();
|
CursorSlice const & endc = bv()->selEnd();
|
||||||
recordUndo(Undo::INSERT, this, startc.par());
|
recordUndo(Undo::INSERT, this, startc.par());
|
||||||
getPar(startc)->rejectChange(startc.pos(), endc.pos());
|
getPar(startc)->rejectChange(startc.pos(), endc.pos());
|
||||||
finishUndo();
|
finishUndo();
|
||||||
@ -1225,8 +1225,8 @@ void LyXText::changeCase(LyXText::TextCase action)
|
|||||||
CursorSlice to;
|
CursorSlice to;
|
||||||
|
|
||||||
if (bv()->selection().set()) {
|
if (bv()->selection().set()) {
|
||||||
from = selStart();
|
from = bv()->selStart();
|
||||||
to = selEnd();
|
to = bv()->selEnd();
|
||||||
} else {
|
} else {
|
||||||
from = cursor();
|
from = cursor();
|
||||||
getWord(from, to, lyx::PARTIAL_WORD);
|
getWord(from, to, lyx::PARTIAL_WORD);
|
||||||
@ -1511,10 +1511,10 @@ string LyXText::selectionAsString(Buffer const & buffer, bool label) const
|
|||||||
return string();
|
return string();
|
||||||
|
|
||||||
// should be const ...
|
// should be const ...
|
||||||
ParagraphList::iterator startpit = getPar(selStart());
|
ParagraphList::iterator startpit = getPar(bv()->selStart());
|
||||||
ParagraphList::iterator endpit = getPar(selEnd());
|
ParagraphList::iterator endpit = getPar(bv()->selEnd());
|
||||||
size_t const startpos = selStart().pos();
|
size_t const startpos = bv()->selStart().pos();
|
||||||
size_t const endpos = selEnd().pos();
|
size_t const endpos = bv()->selEnd().pos();
|
||||||
|
|
||||||
if (startpit == endpit)
|
if (startpit == endpit)
|
||||||
return startpit->asString(buffer, startpos, endpos, label);
|
return startpit->asString(buffer, startpos, endpos, label);
|
||||||
@ -1959,39 +1959,6 @@ CursorSlice const & LyXText::anchor() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
CursorSlice const & LyXText::selStart() const
|
|
||||||
{
|
|
||||||
if (!bv()->selection().set())
|
|
||||||
return cursor();
|
|
||||||
// can't use std::min as this creates a new object
|
|
||||||
return anchor() < cursor() ? anchor() : cursor();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CursorSlice const & LyXText::selEnd() const
|
|
||||||
{
|
|
||||||
if (!bv()->selection().set())
|
|
||||||
return cursor();
|
|
||||||
return anchor() > cursor() ? anchor() : cursor();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CursorSlice & LyXText::selStart()
|
|
||||||
{
|
|
||||||
if (!bv()->selection().set())
|
|
||||||
return cursor();
|
|
||||||
return anchor() < cursor() ? anchor() : cursor();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
CursorSlice & LyXText::selEnd()
|
|
||||||
{
|
|
||||||
if (!bv()->selection().set())
|
|
||||||
return cursor();
|
|
||||||
return anchor() > cursor() ? anchor() : cursor();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void LyXText::setSelection()
|
void LyXText::setSelection()
|
||||||
{
|
{
|
||||||
bv()->selection().set(true);
|
bv()->selection().set(true);
|
||||||
|
74
src/text2.C
74
src/text2.C
@ -333,8 +333,8 @@ void LyXText::setLayout(string const & layout)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ParagraphList::iterator start = getPar(selStart().par());
|
ParagraphList::iterator start = getPar(bv()->selStart().par());
|
||||||
ParagraphList::iterator end = boost::next(getPar(selEnd().par()));
|
ParagraphList::iterator end = boost::next(getPar(bv()->selEnd().par()));
|
||||||
ParagraphList::iterator endpit = setLayout(start, end, layout);
|
ParagraphList::iterator endpit = setLayout(start, end, layout);
|
||||||
|
|
||||||
redoParagraphs(start, endpit);
|
redoParagraphs(start, endpit);
|
||||||
@ -353,8 +353,8 @@ void getSelectionSpan(LyXText & text,
|
|||||||
beg = text.cursorPar();
|
beg = text.cursorPar();
|
||||||
end = boost::next(beg);
|
end = boost::next(beg);
|
||||||
} else {
|
} else {
|
||||||
beg = text.getPar(text.selStart());
|
beg = text.getPar(text.bv()->selStart());
|
||||||
end = boost::next(text.getPar(text.selEnd()));
|
end = boost::next(text.getPar(text.bv()->selEnd()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -448,14 +448,14 @@ void LyXText::setFont(LyXFont const & font, bool toggleall)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ok we have a selection.
|
// ok we have a selection.
|
||||||
recUndo(selStart().par(), selEnd().par());
|
recUndo(bv()->selStart().par(), bv()->selEnd().par());
|
||||||
freezeUndo();
|
freezeUndo();
|
||||||
|
|
||||||
ParagraphList::iterator beg = getPar(selStart().par());
|
ParagraphList::iterator beg = getPar(bv()->selStart().par());
|
||||||
ParagraphList::iterator end = getPar(selEnd().par());
|
ParagraphList::iterator end = getPar(bv()->selEnd().par());
|
||||||
|
|
||||||
PosIterator pos(¶graphs(), beg, selStart().pos());
|
PosIterator pos(¶graphs(), beg, bv()->selStart().pos());
|
||||||
PosIterator posend(¶graphs(), end, selEnd().pos());
|
PosIterator posend(¶graphs(), end, bv()->selEnd().pos());
|
||||||
|
|
||||||
BufferParams const & params = bv()->buffer()->params();
|
BufferParams const & params = bv()->buffer()->params();
|
||||||
|
|
||||||
@ -549,7 +549,7 @@ string LyXText::getStringToIndex()
|
|||||||
string idxstring;
|
string idxstring;
|
||||||
if (!bv()->selection().set())
|
if (!bv()->selection().set())
|
||||||
bv()->owner()->message(_("Nothing to index!"));
|
bv()->owner()->message(_("Nothing to index!"));
|
||||||
else if (selStart().par() != selEnd().par())
|
else if (bv()->selStart().par() != bv()->selEnd().par())
|
||||||
bv()->owner()->message(_("Cannot index more than one paragraph!"));
|
bv()->owner()->message(_("Cannot index more than one paragraph!"));
|
||||||
else
|
else
|
||||||
idxstring = selectionAsString(*bv()->buffer(), false);
|
idxstring = selectionAsString(*bv()->buffer(), false);
|
||||||
@ -576,11 +576,11 @@ void LyXText::setParagraph(Spacing const & spacing, LyXAlignment align,
|
|||||||
string const & labelwidthstring, bool noindent)
|
string const & labelwidthstring, bool noindent)
|
||||||
{
|
{
|
||||||
// make sure that the depth behind the selection are restored, too
|
// make sure that the depth behind the selection are restored, too
|
||||||
ParagraphList::iterator undopit = undoSpan(getPar(selEnd()));
|
ParagraphList::iterator undopit = undoSpan(getPar(bv()->selEnd()));
|
||||||
recUndo(selStart().par(), parOffset(undopit) - 1);
|
recUndo(bv()->selStart().par(), parOffset(undopit) - 1);
|
||||||
|
|
||||||
ParagraphList::reverse_iterator pit(getPar(selEnd().par()));
|
ParagraphList::reverse_iterator pit(getPar(bv()->selEnd().par()));
|
||||||
ParagraphList::reverse_iterator beg(getPar(selStart().par()));
|
ParagraphList::reverse_iterator beg(getPar(bv()->selStart().par()));
|
||||||
|
|
||||||
for (--pit; pit != beg; ++pit) {
|
for (--pit; pit != beg; ++pit) {
|
||||||
ParagraphParameters & params = pit->params();
|
ParagraphParameters & params = pit->params();
|
||||||
@ -601,7 +601,7 @@ void LyXText::setParagraph(Spacing const & spacing, LyXAlignment align,
|
|||||||
params.noindent(noindent);
|
params.noindent(noindent);
|
||||||
}
|
}
|
||||||
|
|
||||||
redoParagraphs(getPar(selStart()), undopit);
|
redoParagraphs(getPar(bv()->selStart()), undopit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -932,29 +932,29 @@ void LyXText::cutSelection(bool doclear, bool realcut)
|
|||||||
if (!bv()->selection().set())
|
if (!bv()->selection().set())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// OK, we have a selection. This is always between selStart()
|
// OK, we have a selection. This is always between bv()->selStart()
|
||||||
// and selEnd()
|
// and bv()->selEnd()
|
||||||
|
|
||||||
// make sure that the depth behind the selection are restored, too
|
// make sure that the depth behind the selection are restored, too
|
||||||
ParagraphList::iterator begpit = getPar(selStart().par());
|
ParagraphList::iterator begpit = getPar(bv()->selStart().par());
|
||||||
ParagraphList::iterator endpit = getPar(selEnd().par());
|
ParagraphList::iterator endpit = getPar(bv()->selEnd().par());
|
||||||
ParagraphList::iterator undopit = undoSpan(endpit);
|
ParagraphList::iterator undopit = undoSpan(endpit);
|
||||||
recUndo(selStart().par(), parOffset(undopit) - 1);
|
recUndo(bv()->selStart().par(), parOffset(undopit) - 1);
|
||||||
|
|
||||||
int endpos = selEnd().pos();
|
int endpos = bv()->selEnd().pos();
|
||||||
|
|
||||||
BufferParams const & bufparams = bv()->buffer()->params();
|
BufferParams const & bufparams = bv()->buffer()->params();
|
||||||
boost::tie(endpit, endpos) = realcut ?
|
boost::tie(endpit, endpos) = realcut ?
|
||||||
CutAndPaste::cutSelection(bufparams,
|
CutAndPaste::cutSelection(bufparams,
|
||||||
paragraphs(),
|
paragraphs(),
|
||||||
begpit , endpit,
|
begpit , endpit,
|
||||||
selStart().pos(), endpos,
|
bv()->selStart().pos(), endpos,
|
||||||
bufparams.textclass,
|
bufparams.textclass,
|
||||||
doclear)
|
doclear)
|
||||||
: CutAndPaste::eraseSelection(bufparams,
|
: CutAndPaste::eraseSelection(bufparams,
|
||||||
paragraphs(),
|
paragraphs(),
|
||||||
begpit, endpit,
|
begpit, endpit,
|
||||||
selStart().pos(), endpos,
|
bv()->selStart().pos(), endpos,
|
||||||
doclear);
|
doclear);
|
||||||
// sometimes necessary
|
// sometimes necessary
|
||||||
if (doclear)
|
if (doclear)
|
||||||
@ -982,20 +982,20 @@ void LyXText::copySelection()
|
|||||||
if (!bv()->selection().set())
|
if (!bv()->selection().set())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// ok we have a selection. This is always between selStart()
|
// ok we have a selection. This is always between bv()->selStart()
|
||||||
// and sel_end cursor
|
// and sel_end cursor
|
||||||
|
|
||||||
// copy behind a space if there is one
|
// copy behind a space if there is one
|
||||||
while (getPar(selStart())->size() > selStart().pos()
|
while (getPar(bv()->selStart())->size() > bv()->selStart().pos()
|
||||||
&& getPar(selStart())->isLineSeparator(selStart().pos())
|
&& getPar(bv()->selStart())->isLineSeparator(bv()->selStart().pos())
|
||||||
&& (selStart().par() != selEnd().par()
|
&& (bv()->selStart().par() != bv()->selEnd().par()
|
||||||
|| selStart().pos() < selEnd().pos()))
|
|| bv()->selStart().pos() < bv()->selEnd().pos()))
|
||||||
selStart().pos(selStart().pos() + 1);
|
bv()->selStart().pos(bv()->selStart().pos() + 1);
|
||||||
|
|
||||||
CutAndPaste::copySelection(getPar(selStart().par()),
|
CutAndPaste::copySelection(getPar(bv()->selStart().par()),
|
||||||
getPar(selEnd().par()),
|
getPar(bv()->selEnd().par()),
|
||||||
selStart().pos(),
|
bv()->selStart().pos(),
|
||||||
selEnd().pos(),
|
bv()->selEnd().pos(),
|
||||||
bv()->buffer()->params().textclass);
|
bv()->buffer()->params().textclass);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1052,16 +1052,16 @@ void LyXText::replaceSelectionWithString(string const & str)
|
|||||||
freezeUndo();
|
freezeUndo();
|
||||||
|
|
||||||
// Get font setting before we cut
|
// Get font setting before we cut
|
||||||
pos_type pos = selEnd().pos();
|
pos_type pos = bv()->selEnd().pos();
|
||||||
LyXFont const font = getPar(selStart())
|
LyXFont const font = getPar(bv()->selStart())
|
||||||
->getFontSettings(bv()->buffer()->params(),
|
->getFontSettings(bv()->buffer()->params(),
|
||||||
selStart().pos());
|
bv()->selStart().pos());
|
||||||
|
|
||||||
// Insert the new string
|
// Insert the new string
|
||||||
string::const_iterator cit = str.begin();
|
string::const_iterator cit = str.begin();
|
||||||
string::const_iterator end = str.end();
|
string::const_iterator end = str.end();
|
||||||
for (; cit != end; ++cit) {
|
for (; cit != end; ++cit) {
|
||||||
getPar(selEnd())->insertChar(pos, (*cit), font);
|
getPar(bv()->selEnd())->insertChar(pos, (*cit), font);
|
||||||
++pos;
|
++pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1073,10 +1073,10 @@ DispatchResult LyXText::dispatch(FuncRequest const & cmd)
|
|||||||
bool change_layout = (current_layout != layout);
|
bool change_layout = (current_layout != layout);
|
||||||
|
|
||||||
if (!change_layout && bv->selection().set() &&
|
if (!change_layout && bv->selection().set() &&
|
||||||
selStart().par() != selEnd().par())
|
bv->selStart().par() != bv->selEnd().par())
|
||||||
{
|
{
|
||||||
ParagraphList::iterator spit = getPar(selStart());
|
ParagraphList::iterator spit = getPar(bv->selStart());
|
||||||
ParagraphList::iterator epit = boost::next(getPar(selEnd()));
|
ParagraphList::iterator epit = boost::next(getPar(bv->selEnd()));
|
||||||
while (spit != epit) {
|
while (spit != epit) {
|
||||||
if (spit->layout()->name() != current_layout) {
|
if (spit->layout()->name() != current_layout) {
|
||||||
change_layout = true;
|
change_layout = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user