- LyXParagraph * par = buffer()->paragraph;
- LyXParagraph::size_type pos;
- Inset * inset;
- while (par) {
- pos = -1;
- while ((inset = par->ReturnNextInsetPointer(pos))){
- for (int i = 0; i < inset->GetNumberOfLabels(); ++i) {
- if (label == inset->getLabel(i)) {
- beforeChange();
- text->SetCursor(par, pos);
- text->sel_cursor = text->cursor;
- update(0);
- return true;
- }
- }
- ++pos;
- }
- par = par->next;
- }
- return false;
-}
-
-void BufferView::allFloats(char flag, char figmar)
-{
- if (!available()) return;
-
- LyXCursor cursor = text->cursor;
-
- if (!flag && cursor.par->footnoteflag != LyXParagraph::NO_FOOTNOTE
- && ((figmar
- && cursor.par->footnotekind != LyXParagraph::FOOTNOTE
- && cursor.par->footnotekind != LyXParagraph::MARGIN)
- || (!figmar
- && cursor.par->footnotekind != LyXParagraph::FIG
- && cursor.par->footnotekind != LyXParagraph::TAB
- && cursor.par->footnotekind != LyXParagraph::WIDE_FIG
- && cursor.par->footnotekind != LyXParagraph::WIDE_TAB
- && cursor.par->footnotekind != LyXParagraph::ALGORITHM)))
- toggleFloat();
- else
- beforeChange();
-
- LyXCursor tmpcursor = cursor;
- cursor.par = tmpcursor.par->ParFromPos(tmpcursor.pos);
- cursor.pos = tmpcursor.par->PositionInParFromPos(tmpcursor.pos);
-
- LyXParagraph *par = buffer()->paragraph;
- while (par) {
- if (flag) {
- if (par->footnoteflag == LyXParagraph::CLOSED_FOOTNOTE
- && ((figmar
- && par->footnotekind != LyXParagraph::FOOTNOTE
- && par->footnotekind != LyXParagraph::MARGIN)
- || (!figmar
- && par->footnotekind != LyXParagraph::FIG
- && par->footnotekind != LyXParagraph::TAB
- && par->footnotekind != LyXParagraph::WIDE_FIG
- && par->footnotekind != LyXParagraph::WIDE_TAB
- && par->footnotekind != LyXParagraph::ALGORITHM
- )
- )
- ) {
- if (par->previous
- && par->previous->footnoteflag !=
- LyXParagraph::CLOSED_FOOTNOTE){ /* should be */
- text->SetCursorIntern(par->previous,
- 0);
- text->OpenFootnote();
- }
- }
- } else {
- if (par->footnoteflag == LyXParagraph::OPEN_FOOTNOTE
- && (
- (figmar
- &&
- par->footnotekind != LyXParagraph::FOOTNOTE
- &&
- par->footnotekind != LyXParagraph::MARGIN
- )
- ||
- (!figmar
- &&
- par->footnotekind != LyXParagraph::FIG
- &&
- par->footnotekind != LyXParagraph::TAB
- &&
- par->footnotekind != LyXParagraph::WIDE_FIG
- &&
- par->footnotekind != LyXParagraph::WIDE_TAB
- &&
- par->footnotekind != LyXParagraph::ALGORITHM
- )
- )
- ) {
- text->SetCursorIntern(par, 0);
- text->CloseFootnote();
- }
+ for (Buffer::inset_iterator it = buffer()->inset_iterator_begin();
+ it != buffer()->inset_iterator_end(); ++it) {
+ vector<string> labels = (*it)->getLabelList();
+ if (find(labels.begin(),labels.end(),label)
+ != labels.end()) {
+ beforeChange(text);
+ text->setCursor(this, it.getPar(), it.getPos());
+ text->selection.cursor = text->cursor;
+ update(text, BufferView::SELECT|BufferView::FITCUR);
+ return true;