- support::Path p(buffer.filePath());
- support::Forkedcall call;
- if (lyxerr.debugging()) {
- lyxerr << "Executing '" << command << "' in '"
- << buffer.filePath() << '\'' << endl;
+ vector<string>::const_iterator it = cit->second.requirements.begin();
+ vector<string>::const_iterator end = cit->second.requirements.end();
+ for (; it != end; ++it)
+ features.require(*it);
+
+ external::TemplateManager & etm = external::TemplateManager::get();
+
+ it = cit->second.preambleNames.begin();
+ end = cit->second.preambleNames.end();
+ for (; it != end; ++it) {
+ string const preamble = etm.getPreambleDefByName(*it);
+ if (!preamble.empty())
+ features.addPreambleSnippet(preamble);
+ }
+}
+
+
+//
+// preview stuff
+//
+
+namespace {
+
+bool preview_wanted(InsetExternalParams const & params)
+{
+ return params.display == external::PreviewDisplay &&
+ support::isFileReadable(params.filename);
+}
+
+
+docstring const latex_string(InsetExternal const & inset, Buffer const & buffer)
+{
+ odocstringstream os;
+ OutputParams runparams;
+ runparams.flavor = OutputParams::LATEX;
+ inset.latex(buffer, os, runparams);
+ return os.str();
+}
+
+
+void add_preview_and_start_loading(RenderMonitoredPreview & renderer,
+ InsetExternal const & inset,
+ Buffer const & buffer)
+{
+ InsetExternalParams const & params = inset.params();
+
+ if (RenderPreview::status() != LyXRC::PREVIEW_OFF &&
+ preview_wanted(params)) {
+ renderer.setAbsFile(params.filename);
+ docstring const snippet = latex_string(inset, buffer);
+ renderer.addPreview(snippet, buffer);
+ renderer.startLoading(buffer);