#include "insets/insetgraphics.h"
#include "insets/insetgraphicsParams.h"
+
#include "graphics/GraphicsCache.h"
#include "graphics/GraphicsCacheItem.h"
-#include "frontends/Dialogs.h"
-#include "frontends/Alert.h"
#include "LyXView.h"
#include "buffer.h"
#include "BufferView.h"
#include "converter.h"
-#include "frontends/support/LyXImage.h"
#include "Painter.h"
#include "lyx_gui_misc.h"
-#include "support/FileInfo.h"
-#include "support/filetools.h"
-#include "support/lyxalgo.h" // lyx::count
-#include "support/lyxlib.h"
-#include "frontends/controllers/helper_funcs.h"
#include "lyxtext.h"
#include "lyxrc.h"
-#include "font.h" // For the lyxfont class.
-#include "fstream" // for ifstream in isEPS
-#include <algorithm> // For the std::max
-#include "support/lyxmanip.h"
+#include "font.h"
#include "debug.h"
#include "gettext.h"
+#include "frontends/Dialogs.h"
+#include "frontends/Alert.h"
+#include "frontends/controllers/helper_funcs.h"
+#include "frontends/support/LyXImage.h"
+
+#include "support/FileInfo.h"
+#include "support/filetools.h"
+#include "support/lyxlib.h"
+#include "support/lyxmanip.h"
+#include "support/lyxalgo.h"
+
+#include <fstream>
+#include <algorithm>
+
extern string system_tempdir;
using std::ifstream;
using std::ostream;
using std::endl;
+using std::max;
+using std::vector;
+
///////////////////////////////////////////////////////////////////////////
int const VersionNumber = 1;
}
+namespace {
+
+string const unique_id()
+{
+ static unsigned int seed = 1000;
+
+ ostringstream ost;
+ ost << "graph" << ++seed;
+
+ // Needed if we use lyxstring.
+ return ost.str().c_str();
+}
+
+} // namespace anon
+
+
// Initialize only those variables that do not have a constructor.
InsetGraphics::InsetGraphics()
- : cacheHandle(0), imageLoaded(false)
+ : cacheHandle(0), imageLoaded(false), graphic_label(unique_id())
{}
: Inset(), SigC::Object()
, cacheHandle(ig.cacheHandle)
, imageLoaded(ig.imageLoaded)
+ , graphic_label(unique_id())
{
setParams(ig.getParams());
if (same_id)
if (!msg.empty()) {
msgFont.setSize(LyXFont::SIZE_TINY);
int const msg_width = lyxfont::width(msg, msgFont);
- font_width = std::max(font_width, msg_width);
+ font_width = max(font_width, msg_width);
}
- return std::max(50, font_width + 15);
+ return max(50, font_width + 15);
}
}
string const token = lex.getString();
lyxerr[Debug::INFO] << "Token: '" << token << '\''
- << std::endl;
+ << endl;
if (token.empty()) {
continue;
<< "This document was created with a newer Graphics widget"
", You should use a newer version of LyX to read this"
" file."
- << std::endl;
+ << endl;
// TODO: Possibly open up a dialog?
}
else {
if (! params.Read(buf, lex, token))
lyxerr << "Unknown token, " << token << ", skipping."
- << std::endl;
+ << endl;
}
}
}
// FormatVersion < 1.0 (LyX < 1.2)
void InsetGraphics::readFigInset(Buffer const * buf, LyXLex & lex)
{
- std::vector<string> const oldUnits =
+ vector<string> const oldUnits =
getVectorFromString("pt,cm,in,p%,c%");
bool finished = false;
// set the display default
// lyxrc.pdf_mode means:
// Are we creating a PDF or a PS file?
// (Should actually mean, are we using latex or pdflatex).
- lyxerr << "decideOutput::lyxrc.pdf_mode = " << lyxrc.pdf_mode << "\n";
+ lyxerr[Debug::INFO] << "decideOutput::lyxrc.pdf_mode = " << lyxrc.pdf_mode << "\n";
if (lyxrc.pdf_mode) {
if (contains(suffix,"ps") || suffix == "pdf")
return "pdf";
return "png";
}
// If it's postscript, we always do eps.
- lyxerr << "decideOutput: we have PostScript mode\n";
+ lyxerr[Debug::INFO] << "decideOutput: we have PostScript mode\n";
if (suffix != "ps")
return "eps";
else
// convert_place = original file directory
// return original filename without the extension
//
- // first check if file is viewed in LyX. First local
- // than global
// if it's a zipped one, than let LaTeX do the rest!!!
if ((zippedFile(params.filename) && params.noUnzip) || buf->niceFile) {
- lyxerr << "don't unzip file or export latex"
+ lyxerr[Debug::INFO] << "don't unzip file or export latex"
<< params.filename << endl;
return params.filename;
}
string const image_target = decideOutputImageFormat(extension);
if (extension == image_target) // :-)
return filename_;
- if (!IsFileReadable(filename_)) { // :-(
- Alert::alert(_("File") + params.filename,
- _("isn't readable or doesn't exists!"));
- return filename_;
- }
+// commented out to check if the "not exist"bug is fixed.
+// if (!IsFileReadable(filename_)) { // :-(
+// Alert::alert(_("File") + params.filename,
+// _("isn't readable or doesn't exists!"));
+// return filename_;
+// }
string outfile;
string const temp = AddName(buf->tmppath, filename_);
outfile = RemoveExtension(temp);
- lyxerr << "tempname = " << temp << "\n";
- lyxerr << "buf::tmppath = " << buf->tmppath << "\n";
- lyxerr << "filename_ = " << filename_ << "\n";
- lyxerr << "outfile = " << outfile << endl;
+ lyxerr[Debug::INFO] << "tempname = " << temp << "\n";
+ lyxerr[Debug::INFO] << "buf::tmppath = " << buf->tmppath << "\n";
+ lyxerr[Debug::INFO] << "filename_ = " << filename_ << "\n";
+ lyxerr[Debug::INFO] << "outfile = " << outfile << endl;
converters.convert(buf, filename_, outfile, extension, image_target);
return outfile;
}
// For explanation on inserting graphics into DocBook checkout:
// http://linuxdoc.org/LDP/LDP-Author-Guide/inserting-pictures.html
// See also the docbook guide at http://www.docbook.org/
-int InsetGraphics::docbook(Buffer const * buf, ostream & os) const
+int InsetGraphics::docbook(Buffer const *, ostream & os) const
{
- // Change the path to be relative to the main file.
- string const buffer_dir = buf->filePath();
- string filename = RemoveExtension(
- MakeRelPath(params.filename, buffer_dir));
-
- if (suffixIs(filename, ".eps"))
- filename.erase(filename.length() - 4);
-
// In DocBook v5.0, the graphic tag will be eliminated from DocBook, will
// need to switch to MediaObject. However, for now this is sufficient and
// easier to use.
- os << "<graphic fileref=\"" << filename << "\"></graphic>";
+ os << "<graphic fileref=\"&" << graphic_label << ";\">";
return 0;
}
if (params.filename.empty())
return ;
+ features.includeFile(graphic_label, RemoveExtension(params.filename));
+
features.require("graphicx");
if (params.subcaption)