[LyX/2.3.x] Fix clipping for vector formats and when exporting from command line
Enrico Forestieri
forenr at lyx.org
Fri Sep 25 19:02:23 UTC 2020
commit b561dfaf2ef73dff89f2c47c78ca68a533b49a4a
Author: Enrico Forestieri <forenr at lyx.org>
Date: Fri Sep 25 21:25:40 2020 +0200
Fix clipping for vector formats and when exporting from command line
This amends ea81faa9 that only took into account the postscript format
and did not consider that without GUI an image is not available even if
if it is actually cached. In this case we load the image for obtaining
its dimensions in order to correct the clipping bounding box.
---
src/insets/InsetGraphics.cpp | 11 +++++++++--
status.23x | 3 +++
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/insets/InsetGraphics.cpp b/src/insets/InsetGraphics.cpp
index 88ee9a0..cf5f9ac 100644
--- a/src/insets/InsetGraphics.cpp
+++ b/src/insets/InsetGraphics.cpp
@@ -93,6 +93,7 @@ TODO
#include "support/Systemcall.h"
#include <QProcess>
+#include <QtGui/QImage>
#include <algorithm>
#include <sstream>
@@ -320,13 +321,13 @@ void InsetGraphics::outBoundingBox(graphics::BoundingBox & bbox) const
FileName const file(params().filename.absFileName());
- // No correction is necessary for a postscript image
+ // No correction is necessary for a vector image
bool const zipped = theFormats().isZippedFile(file);
FileName const unzipped_file = zipped ? unzipFile(file) : file;
string const format = theFormats().getFormatFromFile(unzipped_file);
if (zipped)
unzipped_file.removeFile();
- if (Formats::isPostScriptFileFormat(format))
+ if (theFormats().getFormat(format)->vectorFormat())
return;
// Get the actual image dimensions in pixels
@@ -340,6 +341,12 @@ void InsetGraphics::outBoundingBox(graphics::BoundingBox & bbox) const
height = image->height();
}
}
+ // Even if cached, the image is not loaded without GUI
+ if (width == 0 && height == 0) {
+ QImage image(toqstr(file.absFileName()));
+ width = image.width();
+ height = image.height();
+ }
if (width == 0 || height == 0)
return;
diff --git a/status.23x b/status.23x
index 17fcf4c..82b1f2a 100644
--- a/status.23x
+++ b/status.23x
@@ -70,6 +70,9 @@ What's new
- Fix output of titles in branches and other insets (follow-up to bug 11787).
+- Fix clipping of vector images and when exporting from command line
+ (follow-up to bug 11180).
+
* USER INTERFACE
More information about the lyx-cvs
mailing list