Return qet.imageCrop() as {x, y, width, height}

The crop rectangle came back as the string "x,y,width,height", which a
script had to split and parse. elementGeometry() returns a map; the
crop now does the same, and an empty map for no such image.

Suggested in the review of #1310.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Beat Hangartner
2026-10-07 08:41:37 +02:00
parent 140f9f6e39
commit 36bfc6f969
3 changed files with 22 additions and 9 deletions
+10 -4
View File
@@ -3541,14 +3541,20 @@ bool QetScriptApi::cropImage(int folioIndex, int imageIndex, int x, int y, int w
/**
@brief QetScriptApi::imageCrop
@return the image's crop rectangle in its original's pixels, as
"x,y,width,height", or an empty string for no such image.
{x, y, width, height} like elementGeometry(), or an empty map for no
such image.
*/
QString QetScriptApi::imageCrop(int folioIndex, int imageIndex) const
QVariantMap QetScriptApi::imageCrop(int folioIndex, int imageIndex) const
{
QVariantMap crop;
const QList<DiagramImageItem *> list = sortedImages(folioIndex);
if (imageIndex < 0 || imageIndex >= list.count()) return QString();
if (imageIndex < 0 || imageIndex >= list.count()) return crop;
const QRect r = list.at(imageIndex)->cropRect();
return QStringLiteral("%1,%2,%3,%4").arg(r.x()).arg(r.y()).arg(r.width()).arg(r.height());
crop.insert(QStringLiteral("x"), r.x());
crop.insert(QStringLiteral("y"), r.y());
crop.insert(QStringLiteral("width"), r.width());
crop.insert(QStringLiteral("height"), r.height());
return crop;
}
bool QetScriptApi::deleteImage(int folioIndex, int imageIndex)
+1 -1
View File
@@ -543,7 +543,7 @@ class QetScriptApi : public QObject
Q_INVOKABLE bool setImageScale(int folioIndex, int imageIndex, double factor);
Q_INVOKABLE bool setImageRotation(int folioIndex, int imageIndex, double angle);
Q_INVOKABLE bool cropImage(int folioIndex, int imageIndex, int x, int y, int width, int height);
Q_INVOKABLE QString imageCrop(int folioIndex, int imageIndex) const;
Q_INVOKABLE QVariantMap imageCrop(int folioIndex, int imageIndex) const;
Q_INVOKABLE bool deleteImage(int folioIndex, int imageIndex);
Q_INVOKABLE int addPdfPage(int folioIndex, const QString &pdfPath, int pageNumber,
int dpi, double x, double y);