X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetGraphics.cpp;h=3055be90935deb7121acf4bb189830dd56771226;hb=fd5d47d182a70de532225715a04b77fe4155aa18;hp=f0eb88663cbcfb88a3ebf9e27a852fdd593770a0;hpb=eff76bd3ab5643340cc0216f5db7215893f3d2ac;p=lyx.git diff --git a/src/insets/InsetGraphics.cpp b/src/insets/InsetGraphics.cpp index f0eb88663c..3055be9093 100644 --- a/src/insets/InsetGraphics.cpp +++ b/src/insets/InsetGraphics.cpp @@ -110,7 +110,7 @@ string findTargetFormat(string const & format, OutputParams const & runparams) Format const * const f = formats.getFormat(format); // Convert vector graphics to pdf if (f && f->vectorFormat()) - return "pdf"; + return "pdf6"; // pdflatex can use jpeg, png and pdf directly if (format == "jpg") return format; @@ -203,6 +203,11 @@ void InsetGraphics::doDispatch(Cursor & cur, FuncRequest & cmd) } case LFUN_INSET_MODIFY: { + if (cmd.getArg(0) != "graphics") { + Inset::doDispatch(cur, cmd); + break; + } + InsetGraphicsParams p; string2params(to_utf8(cmd.argument()), buffer(), p); if (p.filename.empty()) { @@ -240,8 +245,11 @@ bool InsetGraphics::getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus & flag) const { switch (cmd.action()) { - case LFUN_INSET_EDIT: case LFUN_INSET_MODIFY: + if (cmd.getArg(0) != "graphics") + return Inset::getStatus(cur, cmd, flag); + // fall through + case LFUN_INSET_EDIT: case LFUN_INSET_DIALOG_UPDATE: case LFUN_GRAPHICS_RELOAD: flag.setEnabled(true); @@ -487,10 +495,10 @@ copyToDirIfNeeded(DocFileName const & file, string const & dir) string const file_in = file.absFileName(); string const only_path = onlyPath(file_in); if (rtrim(onlyPath(file_in) , "/") == rtrim(dir, "/")) - return make_pair(IDENTICAL_PATHS, file_in); + return make_pair(IDENTICAL_PATHS, FileName(file_in)); string mangled = file.mangledFileName(); - if (file.isZipped()) { + if (formats.isZippedFile(file)) { // We need to change _eps.gz to .eps.gz. The mangled name is // still unique because of the counter in mangledFileName(). // We can't just call mangledFileName() with the zip @@ -616,7 +624,7 @@ string InsetGraphics::prepareFile(OutputParams const & runparams) const // If the file is compressed and we have specified that it // should not be uncompressed, then just return its name and // let LaTeX do the rest! - if (params().filename.isZipped()) { + if (formats.isZippedFile(params().filename)) { if (params().noUnzip) { // We don't know whether latex can actually handle // this file, but we can't check, because that would @@ -755,10 +763,20 @@ void InsetGraphics::latex(otexstream & os, bool const file_exists = !params().filename.empty() && params().filename.isReadableFile(); - string const message = file_exists ? - string() : string("bb = 0 0 200 100, draft, type=eps"); - // if !message.empty() then there was no existing file - // "filename" found. In this case LaTeX + string message; + if (!file_exists) { + if (params().bb.empty()) + message = "bb = 0 0 200 100"; + if (!params().draft) { + if (!message.empty()) + message += ", "; + message += "draft"; + } + if (!message.empty()) + message += ", "; + message += "type=eps"; + } + // If no existing file "filename" was found LaTeX // draws only a rectangle with the above bb and the // not found filename in it. LYXERR(Debug::GRAPHICS, "\tMessage = \"" << message << '\"'); @@ -790,12 +808,6 @@ void InsetGraphics::latex(otexstream & os, // Remove the extension so LaTeX will use whatever is appropriate // (when there are several versions in different formats) string file_path = prepareFile(runparams); - if (!runparams.export_folder.empty()) { - // Relative pathnames starting with ../ will be sanitized - // if exporting to a different folder - while (file_path.substr(0, 17) == "\\lyxdot \\lyxdot /") - file_path = file_path.substr(17, file_path.length() - 17); - } latex_str += file_path; latex_str += '}' + after; // FIXME UNICODE @@ -805,7 +817,8 @@ void InsetGraphics::latex(otexstream & os, } -int InsetGraphics::plaintext(odocstream & os, OutputParams const &) const +int InsetGraphics::plaintext(odocstringstream & os, + OutputParams const &, size_t) const { // No graphics in ascii output. Possible to use gifscii to convert // images to ascii approximation. @@ -1005,9 +1018,7 @@ void InsetGraphics::validate(LaTeXFeatures & features) const features.require("graphicx"); if (features.runparams().nice) { - Buffer const * masterBuffer = features.buffer().masterBuffer(); - string const rel_file = removeExtension( - params().filename.relFileName(masterBuffer->filePath())); + string const rel_file = params().filename.onlyFileNameWithoutExt(); if (contains(rel_file, ".")) features.require("lyxdot"); } @@ -1044,19 +1055,17 @@ void InsetGraphics::editGraphics(InsetGraphicsParams const & p) const } -void InsetGraphics::addToToc(DocIterator const & cpit) const +void InsetGraphics::addToToc(DocIterator const & cpit, bool output_active) const { - TocBackend & backend = buffer().tocBackend(); - //FIXME UNICODE docstring const str = from_utf8(params_.filename.onlyFileName()); - backend.toc("graphics").push_back(TocItem(cpit, 0, str)); + buffer().tocBackend().toc("graphics").push_back(TocItem(cpit, 0, str, output_active)); } -docstring InsetGraphics::contextMenuName() const +string InsetGraphics::contextMenuName() const { - return from_ascii("context-graphics"); + return "context-graphics"; } @@ -1086,6 +1095,12 @@ string InsetGraphics::params2string(InsetGraphicsParams const & params, return data.str(); } + +docstring InsetGraphics::toolTip(BufferView const &, int, int) const +{ + return from_utf8(params().filename.onlyFileName()); +} + namespace graphics { void getGraphicsGroups(Buffer const & b, set & ids) @@ -1156,7 +1171,7 @@ void unifyGraphicsGroups(Buffer & b, string const & argument) InsetGraphics & ins = static_cast(*it); InsetGraphicsParams inspar = ins.getParams(); if (params.groupId == inspar.groupId) { - b.undo().recordUndo(it); + b.undo().recordUndo(CursorData(it)); params.filename = inspar.filename; ins.setParams(params); }