View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0015171 | Scribus | Scripter | public | 2018-02-25 17:21 | 2025-11-08 17:54 |
| Reporter | ale | Assigned To | |||
| Priority | normal | Severity | minor | Reproducibility | N/A |
| Status | new | Resolution | open | ||
| Product Version | 1.5.4.svn | ||||
| Summary | 0015171: [PATCH] scripter: add isexportable command | ||||
| Description | check if an item is exportable (printable) in the same way it checks if it is visible. patch is attached. | ||||
| Tags | No tags attached. | ||||
| Attached Files | isexportable.diff (5,067 bytes)
diff --git a/scribus/plugins/scriptplugin/cmdmani.cpp b/scribus/plugins/scriptplugin/cmdmani.cpp
index c77e0bdfbf..9739270179 100644
--- a/scribus/plugins/scriptplugin/cmdmani.cpp
+++ b/scribus/plugins/scriptplugin/cmdmani.cpp
@@ -503,6 +503,39 @@ PyObject *scribus_deselect(PyObject* /* self */)
Py_RETURN_NONE;
}
+PyObject *scribus_exportableobject(PyObject* /* self */, PyObject* args)
+{
+ char *name = const_cast<char*>("");
+ if (!PyArg_ParseTuple(args, "|es", "utf-8", &name))
+ return NULL;
+ if(!checkHaveDocument())
+ return NULL;
+ PageItem *item = GetUniqueItem(QString::fromUtf8(name));
+ if (item == NULL)
+ return NULL;
+ item->togglePrintEnabled();
+ if (item->locked())
+ return PyInt_FromLong(1);
+ return PyInt_FromLong(0);
+}
+
+PyObject *scribus_isexportable(PyObject* /* self */, PyObject* args)
+{
+ char *name = const_cast<char*>("");
+ if (!PyArg_ParseTuple(args, "|es", "utf-8", &name))
+ return NULL;
+ // FIXME: Rather than toggling the lock, we should probably let the user set the lock state
+ // and instead provide a different function like toggleLock()
+ if(!checkHaveDocument())
+ return NULL;
+ PageItem *item = GetUniqueItem(QString::fromUtf8(name));
+ if (item == NULL)
+ return NULL;
+ if (item->printEnabled())
+ return PyBool_FromLong(1);
+ return PyBool_FromLong(0);
+}
+
PyObject *scribus_lockobject(PyObject* /* self */, PyObject* args)
{
char *name = const_cast<char*>("");
@@ -628,6 +661,8 @@ void cmdmanidocwarnings()
<< scribus_ungroupobj__doc__ << scribus_scalegroup__doc__
<< 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_islocked__doc__
+ << scribus_exportablebject__doc__ << scribus_isexportable__doc__ <<
+ scribus_setscaleimagetoframe__doc__ << scribus_setimagebrightness__doc__ << scribus_setimagegrayscale__doc__ << scribus_setimageoffset__doc__
<< scribus_flipobject__doc__;
}
diff --git a/scribus/plugins/scriptplugin/cmdmani.h b/scribus/plugins/scriptplugin/cmdmani.h
index cfef82da19..fbc53d2201 100644
--- a/scribus/plugins/scriptplugin/cmdmani.h
+++ b/scribus/plugins/scriptplugin/cmdmani.h
@@ -220,6 +220,27 @@ May raise WrongFrameTypeError if the target frame is not an image frame\n\
/*! Set Image Brightness. */
PyObject *scribus_setimagegrayscale(PyObject * /*self*/, PyObject* args);
+/*! docstring */
+PyDoc_STRVAR(scribus_exportablebject__doc__,
+QT_TR_NOOP("exportableObject([\"name\"]) -> bool\n\
+\n\
+Sets the object \"name\" as exportable if it's not (or viceversa).\n\
+If \"name\" is not given the currently selected item is used. Returns true\n\
+if exportable.\n\
+"));
+/*! (Un)Lock the object 2004/7/10 pv.*/
+PyObject *scribus_exportableobject(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
+PyDoc_STRVAR(scribus_isexportable__doc__,
+QT_TR_NOOP("isExportable([\"name\"]) -> bool\n\
+\n\
+Returns true if is the object \"name\" is exportable. If \"name\" is not given the\n\
+currently selected item is used.\n\
+"));
+/*! Status of locking 2004/7/10 pv.*/
+PyObject *scribus_isexportable(PyObject * /*self*/, PyObject* args);
+
/*! docstring */
PyDoc_STRVAR(scribus_lockobject__doc__,
QT_TR_NOOP("lockObject([\"name\"]) -> bool\n\
diff --git a/scribus/plugins/scriptplugin/scriptplugin.cpp b/scribus/plugins/scriptplugin/scriptplugin.cpp
index 57854c83bc..cd0761c98f 100644
--- a/scribus/plugins/scriptplugin/scriptplugin.cpp
+++ b/scribus/plugins/scriptplugin/scriptplugin.cpp
@@ -433,10 +433,12 @@ PyMethodDef scribus_methods[] = {
{const_cast<char*>("isLayerLocked"), scribus_glayerlock, METH_VARARGS, tr(scribus_glayerlock__doc__)},
{const_cast<char*>("isLayerOutlined"), scribus_glayeroutline, METH_VARARGS, tr(scribus_glayeroutline__doc__)},
{const_cast<char*>("isLayerFlow"), scribus_glayerflow, METH_VARARGS, tr(scribus_glayerflow__doc__)},
+ {const_cast<char*>("isExportable"), scribus_isexportable, METH_VARARGS, tr(scribus_isexportable__doc__)},
{const_cast<char*>("isLocked"), scribus_islocked, METH_VARARGS, tr(scribus_islocked__doc__)},
{const_cast<char*>("linkTextFrames"), scribus_linktextframes, METH_VARARGS, tr(scribus_linktextframes__doc__)},
{const_cast<char*>("loadImage"), scribus_loadimage, METH_VARARGS, tr(scribus_loadimage__doc__)},
{const_cast<char*>("loadStylesFromFile"), scribus_loadstylesfromfile, METH_VARARGS, tr(scribus_loadstylesfromfile__doc__)},
+ {const_cast<char*>("exportableObject"), scribus_exportableobject, METH_VARARGS, tr(scribus_exportablebject__doc__)},
{const_cast<char*>("lockObject"), scribus_lockobject, METH_VARARGS, tr(scribus_lockobject__doc__)},
{const_cast<char*>("masterPageNames"), (PyCFunction)scribus_masterpagenames, METH_NOARGS, tr(scribus_masterpagenames__doc__)},
{const_cast<char*>("mergeTableCells"), scribus_mergetablecells, METH_VARARGS, tr(scribus_mergetablecells__doc__)},
| ||||
| Patch | Yes | ||||
|
|
Two remarks: - why not name those functions isPrintable() / setPrintableObject() which would match what we have in UI? - in scriptplugin.cpp, new methods are usually inserted into scribus_methods[] array in alphabetical order |
|
|
- because is not about being printable but being exportable... - feel free to reorder it... and perhaps document the order... even if it will be hard to see anyway, in a 300LOC function if you're comfortable with applying a patch from github, i can update my pull request there... otherwise, please patch the diff to suit your wishes. |
|
|
In the meantime, "Printable" has been renamed to "Export". |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2018-02-25 17:21 | ale | New Issue | |
| 2018-02-25 17:21 | ale | File Added: isexportable.diff | |
| 2018-02-25 18:04 | jghali | Note Added: 0044986 | |
| 2018-02-25 18:04 | jghali | Category | - => Scripter |
| 2018-02-26 13:59 | ale | Note Added: 0044992 | |
| 2025-11-08 11:06 | ale | Summary | scripter: add isexportable command => [PATCH] scripter: add isexportable command |
| 2025-11-08 11:06 | ale | Patch | No => Yes |
| 2025-11-08 17:54 | ale | Note Added: 0053195 |