View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0015306 | Scribus | Scripter | public | 2018-05-08 12:05 | 2019-06-04 20:56 |
| Reporter | jurajF | Assigned To | jghali | ||
| Priority | normal | Severity | minor | Reproducibility | have not tried |
| Status | closed | Resolution | fixed | ||
| Platform | x86_64 | OS | GNU/Linux | OS Version | Debian 8/Jessie |
| Product Version | 1.5.4.svn | ||||
| Fixed in Version | 1.5.5.svn | ||||
| Summary | 0015306: Add python command setScaleFrameToImage | ||||
| Description | This patch will add setScaleFrameToImage() function to python scripter. Also included is very short script that uses this function as example. | ||||
| Additional Information | PS; I had an impression I sent this patch back in 2016 but I can not find it in bugtracker so I am sending it now (sorry if there is duplicate somewhere) | ||||
| Tags | No tags attached. | ||||
| Attached Files | 0001-Add-python-command-setScaleFrameToImage.patch (4,153 bytes)
From 9a4856a5416759ad6ed1bd5234bb0f63c6070a93 Mon Sep 17 00:00:00 2001
From: Juraj Fedel <wtxnh-scribus@yahoo.com.au>
Date: Tue, 8 May 2018 10:16:17 +0200
Subject: [PATCH] Add python command setScaleFrameToImage
---
scribus/plugins/scriptplugin/cmdmani.cpp | 24 +++++++++++++++++++
scribus/plugins/scriptplugin/cmdmani.h | 9 +++++++
scribus/plugins/scriptplugin/scriptplugin.cpp | 1 +
3 files changed, 34 insertions(+)
diff --git a/scribus/plugins/scriptplugin/cmdmani.cpp b/scribus/plugins/scriptplugin/cmdmani.cpp
index c77e0bdfb..187cd4f7a 100644
--- a/scribus/plugins/scriptplugin/cmdmani.cpp
+++ b/scribus/plugins/scriptplugin/cmdmani.cpp
@@ -536,6 +536,29 @@ PyObject *scribus_islocked(PyObject* /* self */, PyObject* args)
return PyBool_FromLong(0);
}
+PyObject *scribus_setscaleframetoimage(PyObject* /* self */, PyObject* args)
+{
+ if(!checkHaveDocument())
+ return NULL;
+ char *Name = const_cast<char*>("");
+ if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
+ return NULL;
+ PageItem *item = GetUniqueItem(QString::fromUtf8(Name));
+ if (item == NULL)
+ return NULL;
+ if (!item->asImageFrame())
+ {
+ PyErr_SetString(WrongFrameTypeError, QObject::tr("Specified item not an image frame.","python error").toLocal8Bit().constData());
+ return NULL;
+ }
+ Selection *sel = new Selection(ScCore->primaryMainWindow());
+ sel->addItem(item);
+ ScCore->primaryMainWindow()->doc->itemSelection_AdjustFrametoImageSize(sel);
+ delete sel;
+
+ Py_RETURN_NONE;
+}
+
PyObject *scribus_setscaleimagetoframe(PyObject* /* self */, PyObject* args, PyObject* kw)
{
char *name = const_cast<char*>("");
@@ -629,5 +652,6 @@ void cmdmanidocwarnings()
<< scribus_loadimage__doc__ << scribus_scaleimage__doc__
<< scribus_setimagescale__doc__ << scribus_lockobject__doc__
<< scribus_islocked__doc__ << scribus_setscaleimagetoframe__doc__ << scribus_setimagebrightness__doc__ << scribus_setimagegrayscale__doc__ << scribus_setimageoffset__doc__
+ << scribus_setscaleframetoimage__doc__
<< scribus_flipobject__doc__;
}
diff --git a/scribus/plugins/scriptplugin/cmdmani.h b/scribus/plugins/scriptplugin/cmdmani.h
index cfef82da1..c03a42717 100644
--- a/scribus/plugins/scriptplugin/cmdmani.h
+++ b/scribus/plugins/scriptplugin/cmdmani.h
@@ -241,6 +241,15 @@ currently selected item is used.\n\
/*! Status of locking 2004/7/10 pv.*/
PyObject *scribus_islocked(PyObject * /*self*/, PyObject* args);
+PyDoc_STRVAR(scribus_setscaleframetoimage__doc__,
+QT_TR_NOOP("setScaleFrameToImage([name])\n\
+\n\
+Set frame size to image size.\n\
+\n\
+May raise WrongFrameTypeError.\n\
+"));
+PyObject *scribus_setscaleframetoimage(PyObject * /*self*/, PyObject* args);
+
PyDoc_STRVAR(scribus_setscaleimagetoframe__doc__,
QT_TR_NOOP("setScaleImageToFrame(scaletoframe, proportional=None, name=<selection>)\n\
\n\
diff --git a/scribus/plugins/scriptplugin/scriptplugin.cpp b/scribus/plugins/scriptplugin/scriptplugin.cpp
index f17c31a03..96f159860 100644
--- a/scribus/plugins/scriptplugin/scriptplugin.cpp
+++ b/scribus/plugins/scriptplugin/scriptplugin.cpp
@@ -540,6 +540,7 @@ PyMethodDef scribus_methods[] = {
// missing? {"setSelectedObject", scribus_setselobjnam, METH_VARARGS, "Returns the Name of the selecteted Object. \"nr\" if given indicates the Number of the selected Object, e.g. 0 means the first selected Object, 1 means the second selected Object and so on."},
{const_cast<char*>("hyphenateText"), scribus_hyphenatetext, METH_VARARGS, tr(scribus_hyphenatetext__doc__)},
{const_cast<char*>("dehyphenateText"), scribus_dehyphenatetext, METH_VARARGS, tr(scribus_dehyphenatetext__doc__)},
+ {const_cast<char*>("setScaleFrameToImage"), (PyCFunction)scribus_setscaleframetoimage, METH_VARARGS, tr(scribus_setscaleframetoimage__doc__)},
{const_cast<char*>("setScaleImageToFrame"), (PyCFunction)scribus_setscaleimagetoframe, METH_KEYWORDS, tr(scribus_setscaleimagetoframe__doc__)},
{const_cast<char*>("setStyle"), scribus_setstyle, METH_VARARGS, tr(scribus_setstyle__doc__)},
{const_cast<char*>("setCharacterStyle"), scribus_setcharstyle, METH_VARARGS, tr(scribus_setcharstyle__doc__) },
--
2.17.0
scaleframe.py (532 bytes)
scribus.newDocument(scribus.PAPER_A4, (15,15, 20, 20), scribus.PORTRAIT, 1, scribus.UNIT_POINTS, scribus.PAGE_1, 0, 1)
# supply your own image file here
image_file = "smiley_bw.png"
pic = scribus.createImage(50, 50, 200, 200, "ImageToFrame")
scribus.loadImage(image_file, pic)
scribus.setScaleImageToFrame(True, True, pic)
pic2 = scribus.createImage(300, 300, 200, 200, "FrameToImage")
scribus.loadImage(image_file, pic2)
scribus.setScaleFrameToImage(pic2)
scribus.saveDocAs("scaleFrame.sla")
pdf = scribus.PDFfile()
pdf.save()
| ||||
| Patch | Yes | ||||
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2018-05-08 12:05 | jurajF | New Issue | |
| 2018-05-08 12:05 | jurajF | File Added: 0001-Add-python-command-setScaleFrameToImage.patch | |
| 2018-05-08 12:05 | jurajF | File Added: scaleframe.py | |
| 2018-05-09 06:36 | ale | Summary | Add python command setScaleFrameToImage => [PATCH] Add python command setScaleFrameToImage |
| 2018-05-13 12:54 | jghali | Summary | [PATCH] Add python command setScaleFrameToImage => Add python command setScaleFrameToImage |
| 2018-05-13 12:56 | jghali | Assigned To | => jghali |
| 2018-05-13 12:56 | jghali | Status | new => resolved |
| 2018-05-13 12:56 | jghali | Resolution | open => fixed |
| 2018-05-13 12:56 | jghali | Fixed in Version | => 1.5.5.svn |
| 2018-05-13 12:56 | jghali | Note Added: 0045233 | |
| 2019-06-04 20:56 | cbradney | Status | resolved => closed |