#include "support/types.h"
#include <boost/bind.hpp>
+#include <boost/current_function.hpp>
#include <functional>
+#include <vector>
using lyx::pos_type;
using std::max;
using std::string;
using std::mem_fun_ref;
+using std::vector;
extern BufferList bufferlist;
return inset;
}
-
} // anon namespace
// have finished but are waiting to communicate this fact
// to the rest of LyX.
ForkedcallsController & fcc = ForkedcallsController::get();
- if (fcc.processesCompleted())
- fcc.handleCompletedProcesses();
+ fcc.handleCompletedProcesses();
}
cursor_timeout.restart();
if (par == buffer_->par_iterator_end())
return;
- bv_->text()->setCursor(cursor_, par.pit(),
- min(par->size(), saved_positions[i].par_pos));
+ bv_->setCursor(makeDocIterator(par, min(par->size(), saved_positions[i].par_pos)));
if (i > 0)
owner_->message(bformat(_("Moved to bookmark %1$d"), i));
case LFUN_INSERT_LABEL:
case LFUN_BOOKMARK_SAVE:
case LFUN_REF_GOTO:
+ case LFUN_GOTO_PARAGRAPH:
+ case LFUN_GOTOERROR:
+ case LFUN_GOTONOTE:
+ case LFUN_REFERENCE_GOTO:
case LFUN_WORD_FIND:
case LFUN_WORD_REPLACE:
case LFUN_MARK_OFF:
break;
}
+ case LFUN_GOTO_PARAGRAPH: {
+ int const id = convert<int>(cmd.argument);
+ ParIterator par = buffer_->getParFromID(id);
+ if (par == buffer_->par_iterator_end()) {
+ lyxerr[Debug::INFO] << "No matching paragraph found! ["
+ << id << ']' << endl;
+ break;
+ } else {
+ lyxerr[Debug::INFO] << "Paragraph " << par->id()
+ << " found." << endl;
+ }
+
+ // Set the cursor
+ bv_->setCursor(makeDocIterator(par, 0));
+
+ update();
+ switchKeyMap();
+ break;
+ }
+
+ case LFUN_GOTOERROR:
+ bv_funcs::gotoInset(bv_, InsetBase::ERROR_CODE, false);
+ break;
+
+ case LFUN_GOTONOTE:
+ bv_funcs::gotoInset(bv_, InsetBase::NOTE_CODE, false);
+ break;
+
+ case LFUN_REFERENCE_GOTO: {
+ vector<InsetBase_code> tmp;
+ tmp.push_back(InsetBase::LABEL_CODE);
+ tmp.push_back(InsetBase::REF_CODE);
+ bv_funcs::gotoInset(bv_, tmp, true);
+ break;
+ }
+
case LFUN_TRACK_CHANGES:
trackChanges();
break;