X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetExternal.cpp;h=5e04597b3a8eb355ce315a7bb14d71ee6b6becc8;hb=06254d11dfdf670fab3548dc2a2674e7a261262c;hp=547e0c180eeb36f8ab419e92a45f2ac34b8d9caf;hpb=4c82dd1fc8d8b90c89a77bfcb3503d1dcae49d94;p=lyx.git diff --git a/src/insets/InsetExternal.cpp b/src/insets/InsetExternal.cpp index 547e0c180e..5e04597b3a 100644 --- a/src/insets/InsetExternal.cpp +++ b/src/insets/InsetExternal.cpp @@ -19,14 +19,13 @@ #include "Buffer.h" #include "Cursor.h" -#include "debug.h" +#include "support/debug.h" #include "DispatchResult.h" #include "Exporter.h" #include "FuncStatus.h" #include "FuncRequest.h" -#include "gettext.h" +#include "support/gettext.h" #include "LaTeXFeatures.h" -#include "LyX.h" #include "Lexer.h" #include "LyXRC.h" #include "MetricsInfo.h" @@ -44,13 +43,8 @@ #include -using std::string; -using std::istringstream; -using std::ostream; -using std::ostringstream; -using std::vector; - -using lyx::support::DocFileName; +using namespace std; +using namespace lyx::support; namespace { @@ -65,15 +59,17 @@ string defaultTemplateName; namespace lyx { +extern bool use_gui; + namespace external { TempName::TempName() { - support::FileName const tempname(support::tempName(support::FileName(), "lyxext")); + FileName const tempname = FileName::tempName("lyxext"); // FIXME: This is unsafe - support::unlink(tempname); + tempname.removeFile(); // must have an extension for the converter code to work correctly. - tempname_ = support::FileName(tempname.absFilename() + ".tmp"); + tempname_ = FileName(tempname.absFilename() + ".tmp"); } @@ -85,12 +81,11 @@ TempName::TempName(TempName const &) TempName::~TempName() { - support::unlink(tempname_); + tempname_.removeFile(); } -TempName & -TempName::operator=(TempName const & other) +TempName & TempName::operator=(TempName const & other) { if (this != &other) tempname_ = TempName()(); @@ -153,7 +148,7 @@ void clearIfNotFound(T & data, external::TransformID value, const_iterator it = ids.begin(); const_iterator end = ids.end(); - it = std::find(it, end, value); + it = find(it, end, value); if (it == end) data = T(); } @@ -187,15 +182,8 @@ void InsetExternalParams::write(Buffer const & buffer, ostream & os) const os << "External\n" << "\ttemplate " << templatename() << '\n'; - if (!filename.empty()) { - // when we save, we still use the original filename - EmbeddedFiles::EmbeddedFileList::const_iterator it = - buffer.embeddedFiles().find(filename.toFilesystemEncoding()); - if (it != buffer.embeddedFiles().end()) - os << "\tfilename " << DocFileName(it->absFilename()).outputFilename(buffer.filePath()) << '\n'; - else - os << "\tfilename " << filename.outputFilename(buffer.filePath()) << '\n'; - } + if (!filename.empty()) + os << "\tfilename " << filename.outputFilename(buffer.filePath()) << '\n'; if (display != defaultDisplayType) os << "\tdisplay " @@ -229,7 +217,6 @@ void InsetExternalParams::write(Buffer const & buffer, ostream & os) const } if (!resizedata.no_resize()) { - using support::float_equal; double const scl = convert(resizedata.scale); if (!float_equal(scl, 0.0, 0.05)) { if (!float_equal(scl, 100.0, 0.05)) @@ -303,12 +290,6 @@ bool InsetExternalParams::read(Buffer const & buffer, Lexer & lex) lex.eatLine(); string const name = lex.getString(); filename.set(name, buffer.filePath()); - // maybe this file is embedded - EmbeddedFiles::EmbeddedFileList::const_iterator it = buffer.embeddedFiles().find(filename.toFilesystemEncoding()); - if (it != buffer.embeddedFiles().end()) - // using available file, embedded or external, depending on file availability and - // embedding status. - filename = DocFileName(it->availableFile(&buffer)); break; } @@ -385,8 +366,7 @@ bool InsetExternalParams::read(Buffer const & buffer, Lexer & lex) break; default: - lex.printError("ExternalInset::read: " - "Wrong tag: $$Token"); + lex.printError("ExternalInset::read: Wrong tag: $$Token"); read_error = true; break; } @@ -437,7 +417,7 @@ InsetExternal::~InsetExternal() void InsetExternal::statusChanged() const { - LyX::cref().updateInset(this); + updateFrontend(); } @@ -496,7 +476,8 @@ bool InsetExternal::getStatus(Cursor & cur, FuncRequest const & cmd, void InsetExternal::registerEmbeddedFiles(Buffer const &, EmbeddedFiles & files) const { - files.registerFile(params_.filename.absFilename(), false, this); + // temporarily disable embedding for this inset + /* files.registerFile(params_.filename, this); */ } @@ -506,12 +487,9 @@ void InsetExternal::edit(Cursor & cur, bool) } -bool InsetExternal::metrics(MetricsInfo & mi, Dimension & dim) const +void InsetExternal::metrics(MetricsInfo & mi, Dimension & dim) const { renderer_->metrics(mi, dim); - bool const changed = dim_ != dim; - dim_ = dim; - return changed; } @@ -580,7 +558,7 @@ graphics::Params get_grfx_params(InsetExternalParams const & eparams) BOOST_ASSERT(false); } if (gparams.display == graphics::DefaultDisplay) - gparams.display = lyxrc.display_graphics; + gparams.display = graphics::DisplayType(lyxrc.display_graphics); // Override the above if we're not using a gui if (!use_gui) gparams.display = graphics::NoDisplay; @@ -596,7 +574,7 @@ docstring const getScreenLabel(InsetExternalParams const & params, external::getTemplatePtr(params); if (!ptr) // FIXME UNICODE - return support::bformat((_("External template %1$s is not installed")), + return bformat((_("External template %1$s is not installed")), from_utf8(params.templatename())); // FIXME UNICODE docstring gui = _(ptr->guiName); @@ -636,8 +614,9 @@ void InsetExternal::setParams(InsetExternalParams const & p, button_ptr->update(getScreenLabel(params_, buffer), true); break; + } - } case RENDERGRAPHIC: { + case RENDERGRAPHIC: { RenderGraphic * graphic_ptr = renderer_->asGraphic(); if (!graphic_ptr) { renderer_.reset(new RenderGraphic(this)); @@ -647,8 +626,9 @@ void InsetExternal::setParams(InsetExternalParams const & p, graphic_ptr->update(get_grfx_params(params_)); break; + } - } case RENDERPREVIEW: { + case RENDERPREVIEW: { RenderMonitoredPreview * preview_ptr = renderer_->asMonitoredPreview(); if (!preview_ptr) { @@ -670,16 +650,15 @@ void InsetExternal::setParams(InsetExternalParams const & p, void InsetExternal::fileChanged() const { - Buffer const * const buffer_ptr = LyX::cref().updateInset(this); - if (!buffer_ptr) + Buffer const * const buffer = updateFrontend(); + if (!buffer) return; RenderMonitoredPreview * const ptr = renderer_->asMonitoredPreview(); BOOST_ASSERT(ptr); - Buffer const & buffer = *buffer_ptr; - ptr->removePreview(buffer); - add_preview_and_start_loading(*ptr, *this, buffer); + ptr->removePreview(*buffer); + add_preview_and_start_loading(*ptr, *this, *buffer); } @@ -820,7 +799,7 @@ namespace { bool preview_wanted(InsetExternalParams const & params) { return params.display == external::PreviewDisplay && - support::isFileReadable(params.filename); + params.filename.isReadableFile(); }