+ return QWidget::eventFilter(obj, event);
+}
+
+
+static docstring buffer_to_latex(Buffer & buffer) {
+ OutputParams runparams(&buffer.params().encoding());
+ odocstringstream os;
+ runparams.nice = true;
+ runparams.flavor = OutputParams::LATEX;
+ runparams.linelen = 80; //lyxrc.plaintext_linelen;
+ // No side effect of file copying and image conversion
+ runparams.dryrun = true;
+ buffer.texrow().reset();
+ ParagraphList::const_iterator pit = buffer.paragraphs().begin();
+ ParagraphList::const_iterator const end = buffer.paragraphs().end();
+ for (; pit != end; ++pit) {
+ TeXOnePar(buffer, buffer.text(),
+ pit, os, buffer.texrow(), runparams);
+ LYXERR(Debug::FIND, "searchString up to here: "
+ << os.str());
+ }
+ return os.str();
+}
+
+
+static vector<string> const & allManualsFiles() {
+ static vector<string> v;
+ static const char * files[] = {
+ "Intro", "UserGuide", "Tutorial", "Additional",
+ "EmbeddedObjects", "Math", "Customization", "Shortcuts",
+ "LFUNs", "LaTeXConfig"
+ };
+ if (v.empty()) {
+ FileName fname;
+ for (size_t i = 0; i < sizeof(files) / sizeof(files[0]); ++i) {
+ fname = i18nLibFileSearch("doc", files[i], "lyx");
+ v.push_back(fname.absFilename());
+ }
+ }
+ return v;
+}
+
+
+/** Switch p_buf to point to next document buffer.
+ **
+ ** Return true if restarted from master-document buffer.
+ **
+ ** @note
+ ** Not using p_buf->allRelatives() here, because I'm not sure
+ ** whether or not the returned order is independent of p_buf.
+ **/
+static bool next_document_buffer(Buffer * & p_buf) {
+ Buffer *p_master = p_buf;
+ Buffer *p_old;
+ do {
+ p_old = p_master;
+ p_master = const_cast<Buffer *>(p_master->masterBuffer());
+ LYXERR(Debug::FIND, "p_old="
+ << p_old
+ << ", p_master="
+ << p_master);
+ } while (p_master != p_old);
+ LASSERT(p_master != NULL, /**/);
+ vector<Buffer *> v_children;
+ /* Root master added as first buffer in the vector */
+ v_children.push_back(p_master);
+ p_master->getChildren(v_children, true);
+ LYXERR(Debug::FIND, "v_children.size()=" << v_children.size());
+ vector<Buffer *>::const_iterator it =
+ find(v_children.begin(), v_children.end(), p_buf);
+ LASSERT(it != v_children.end(), /**/)
+ ++it;
+ if (it == v_children.end()) {
+ p_buf = *v_children.begin();
+ return true;
+ }
+ p_buf = *it;
+ return false;