View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0015171 | Scribus | Scripter | public | 2018-02-25 17:21 | 2018-02-26 13:59 |
Reporter | ale | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | N/A |
Status | new | Resolution | open | ||
Product Version | 1.5.4.svn | ||||
Summary | 0015171: 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. | ||||
Patch | No | ||||
|
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__)}, |
|
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. |