Author: jghali
Date: Wed Nov 21 23:21:14 2018
New Revision: 22774

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=22774
Log:
#15489: scriptplugin: Add combinePolygons to API <Iam_TJ>

Modified:
    trunk/Scribus/doc/de/scripterapi-manobj.html
    trunk/Scribus/doc/en/scripterapi-manobj.html
    trunk/Scribus/doc/fr/scripterapi-manobj.html
    trunk/Scribus/doc/it/scripterapi-manobj.html
    trunk/Scribus/scribus/appmodehelper.cpp
    trunk/Scribus/scribus/plugins/scriptplugin/cmdmani.cpp
    trunk/Scribus/scribus/plugins/scriptplugin/cmdmani.h
    trunk/Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp

Modified: trunk/Scribus/doc/de/scripterapi-manobj.html
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22774&path=/trunk/Scribus/doc/de/scripterapi-manobj.html
==============================================================================
--- trunk/Scribus/doc/de/scripterapi-manobj.html        (original)
+++ trunk/Scribus/doc/de/scripterapi-manobj.html        Wed Nov 21 23:21:14 2018
@@ -8,13 +8,24 @@
 
 <dl>
 
+<dt><a name="-combinePolygons"><strong>combinePolygons()</strong></a></dt>
+<dd><code>combinePolygons()</code>
+<p>Combines two or more selected polygons.</p>
+<p>May raise WrongFrameTypeError.</p></dd>
+
 <dt><a name="-copyObject"><strong>copyObject</strong>(...)</a></dt>
 <dd><code>copyObject(["name"]) -&gt; string</code>
 <p>copies the selected Object to the clipboard.</p></dd>
 
 <dt><a name="-duplicateObject"><strong>duplicateObject</strong>(...)</a></dt>
 <dd><code>duplicateObject(["name"]) -&gt; string</code>
-<p>creates a Duplicate of the selected Object (or Selection Group).</p></dd>
+<p>Creates a Duplicate of the selected Object (or Selection Group).</p></dd>
+
+<dt><a name="-getStyle"><strong>getStyle</strong></a>(...)</dt>
+<dd><code>getStyle(["name"])</code>
+<p>Return name of style applied to object named \"name\". If \"name\" is not 
given, the currently selected object is used.<p>
+<p>If current object has a text selection, the name of style applied to start 
of selection is returned. Otherwise the name of the item default style is 
returned.</p>
+<p>May raise WrongFrameTypeError.</p></dd>
 
 <dt><a name="-groupObjects"><strong>groupObjects</strong></a>(...)</dt>
 <dd><code>groupObjects(list)</code>
@@ -76,7 +87,7 @@
 <dd><code>sizeObject(width, height [, "name"])</code>
 <p>Resizes the object "name" to the given width and height. If "name" is not 
given the currently selected item is used.</p></dd>
 
-<dt><a name="-unGroupObject"><strong>unGroupObject</strong></a>(...)</dt>
+<dt><a name="-unGroupObject"><strong>unGroupObjects</strong></a>(...)</dt>
 <dd><code>unGroupObjects("name")</code>
 <p>Destructs the group the object "name" belongs to.If "name" is not given the 
currently selected item is used.</p></dd>
 

Modified: trunk/Scribus/doc/en/scripterapi-manobj.html
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22774&path=/trunk/Scribus/doc/en/scripterapi-manobj.html
==============================================================================
--- trunk/Scribus/doc/en/scripterapi-manobj.html        (original)
+++ trunk/Scribus/doc/en/scripterapi-manobj.html        Wed Nov 21 23:21:14 2018
@@ -8,13 +8,18 @@
 
 <dl>
 
+<dt><a name="-combinePolygons"><strong>combinePolygons()</strong></a></dt>
+<dd><code>combinePolygons()</code>
+<p>Combines two or more selected polygons.</p>
+<p>May raise WrongFrameTypeError.</p></dd>
+
 <dt><a name="-copyObject"><strong>copyObject</strong>(...)</a></dt>
 <dd><code>copyObject(["name"]) -&gt; string</code>
 <p>copies the selected Object to the clipboard.</p></dd>
 
 <dt><a name="-duplicateObject"><strong>duplicateObject</strong>(...)</a></dt>
 <dd><code>duplicateObject(["name"]) -&gt; string</code>
-<p>creates a Duplicate of the selected Object (or Selection Group).</p></dd>
+<p>Creates a Duplicate of the selected Object (or Selection Group).</p></dd>
 
 <dt><a name="-getStyle"><strong>getStyle</strong></a>(...)</dt>
 <dd><code>getStyle(["name"])</code>

Modified: trunk/Scribus/doc/fr/scripterapi-manobj.html
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22774&path=/trunk/Scribus/doc/fr/scripterapi-manobj.html
==============================================================================
--- trunk/Scribus/doc/fr/scripterapi-manobj.html        (original)
+++ trunk/Scribus/doc/fr/scripterapi-manobj.html        Wed Nov 21 23:21:14 2018
@@ -7,6 +7,11 @@
 <h2>Manipuler les objets</h2>
 
 <dl>
+
+<dt><a name="-combinePolygons"><strong>combinePolygons()</strong></a></dt>
+<dd><code>combinePolygons()</code>
+<p>Combine deux polygones ou plus.</p>
+<p>Peut g&eacute;n&eacute;rer l'exception WrongFrameTypeError.</p></dd>
 
 <dt><a name="-copyObject"><strong>copyObject</strong>(...)</a></dt>
 <dd><code><a href="#-copyObject">copyObject</a>(["nom"]) -&gt; 
cha&icirc;ne</code>
@@ -20,7 +25,7 @@
 <dd><code><a href="#-getStyle">getStyle</a>(["nom"])  -&gt; cha&icirc;ne</code>
 <p>Retourne le nom du style appliqu&eacute; &agrave; l'objet "nom". Si aucun 
nom d'objet n'est fourni, l'&eacute;l&eacute;ment s&eacute;lectionn&eacute; est 
utilis&eacute;.</p> 
 <p>Si l'objet courant poss&egrave;de une s&eacute;lection de texte, le nom 
retourn&eacute; est celui du style appliqu&eacute; au d&eacute;but de la 
s&eacute;lection. Sinon le nom retourn&eacute; est celui du style 
appliqu&eacute; par d&eacute;faut.</p>
-<p>Peut g&eacute;n&eacute;rer WrongFrameTypeError.</p></dd>
+<p>Peut g&eacute;n&eacute;rer l'exception WrongFrameTypeError.</p></dd>
 
 <dt><a name="-groupObjects"><strong>groupObjects</strong></a>(...)</dt>
 <dd><code><a href="#-groupObjects">groupObjects</a>(liste)  -&gt; 
cha&icirc;ne</code>
@@ -34,20 +39,20 @@
 
 <dt><a name="-lockObject"><strong>lockObject</strong></a>(...)</dt>
 <dd><code><a href="#-lockObject">lockObject</a>(["nom"]) -&gt; 
bool&eacute;en</code>
-<p>Verrouille l'objet "nom" s'il est d&eacute;verrouill&eacute;, ou le 
d&eacute;verrouille s'il y a lieu. Si "nom" n'est pas fourni, 
l'&eacute;l&eacute;ment s&eacute;lectionn&eacute;est utilis&eacute;. 
+<p>Verrouille l'objet "nom" s'il est d&eacute;verrouill&eacute;, ou le 
d&eacute;verrouille s'il y a lieu. Si "nom" n'est pas fourni, 
l'&eacute;l&eacute;ment s&eacute;lectionn&eacute; est utilis&eacute;. 
 Retourne la valeur True si verrouill&eacute;.</p></dd>
 
 <dt><a name="-moveObject"><strong>moveObject</strong></a>(...)</dt>
 <dd><code><a href="#-moveObject">moveObject</a>(dx, dy [, "nom"])</code>
 <p>D&eacute;place l'objet "nom" de dx et dy par rapport &agrave; sa position 
courante. Les
 distances sont exprim&eacute;es dans les unit&eacute;s de mesure du document 
(voir
-les constantes UNIT). Si "nom" n'est pas fourni, l'&eacute;l&eacute;ment 
s&eacute;lectionn&eacute;est utilis&eacute;. Si l'objet "nom" appartient 
&agrave; un groupe, tout le groupe est d&eacute;plac&eacute;.</p></dd>
+les constantes UNIT). Si "nom" n'est pas fourni, l'&eacute;l&eacute;ment 
s&eacute;lectionn&eacute; est utilis&eacute;. Si l'objet "nom" appartient 
&agrave; un groupe, tout le groupe est d&eacute;plac&eacute;.</p></dd>
 
 <dt><a name="-moveObjectAbs"><strong>moveObjectAbs</strong></a>(...)</dt>
 <dd><code><a href="#-moveObjectAbs">moveObjectAbs</a>(x, y [, "nom"])</code>
 <p>D&eacute;place l'objet "nom" &agrave; une nouvelle position. Les 
coordonn&eacute;es
 sont exprim&eacute;es dans les unit&eacute;s de mesure du document (voir les
-constantes UNIT).  Si "nom" n'est pas fourni, l'&eacute;l&eacute;ment 
s&eacute;lectionn&eacute;est utilis&eacute;. Si l'objet "nom" appartient 
&agrave; un groupe, tout le groupe est d&eacute;plac&eacute;.</p></dd>
+constantes UNIT).  Si "nom" n'est pas fourni, l'&eacute;l&eacute;ment 
s&eacute;lectionn&eacute; est utilis&eacute;. Si l'objet "nom" appartient 
&agrave; un groupe, tout le groupe est d&eacute;plac&eacute;.</p></dd>
 
 <dt><a name="-rotateObject"><strong>rotateObject</strong></a>(...)</dt>
 <dd><code><a href="#-rotateObject">rotateObject</a>(rot [, "nom"])</code>
@@ -71,13 +76,13 @@
 <dt><a 
name="-setScaleFrameToImage"><strong>setScaleFrameToImage</strong></a>(...)</dt>
 <dd><code><a 
href="#-setScaleFrameToImage">setScaleFrameToImage</a>([nom])</code>
 <p>Redimensionne l'objet "nom" aux dimensions de l'image. Si "nom" n'est pas 
fourni, l'&eacute;l&eacute;ment s&eacute;lectionn&eacute; est utilis&eacute;</p>
-<p>Peut g&eacute;n&eacute;rer WrongFrameTypeError.</p></dd>
+<p>Peut g&eacute;n&eacute;rer l'exception WrongFrameTypeError.</p></dd>
 
 <dt><a 
name="-setScaleImageToFrame"><strong>setScaleImageToFrame</strong></a>(...)</dt>
 <dd><code><a 
href="#-setScaleImageToFrame">setScaleImageToFrame</a>(redimAuCadre, 
proportionnel=None, nom=&lt;selection&gt;)</code>
 <p>&Eacute;tablit le mode de redimensionnement par rapport au cadre d'image 
s&eacute;lectionn&eacute;, ou sp&eacute;cifi&eacute; dans 'redimAuCadre'. 
 Si 'proportionnel' est sp&eacute;cifi&eacute;, &eacute;tablit le 
redimensionnement en maintenant des proportions fixes. 'redimAuCadre' et 
'proportionnel' sont bool&eacute;ens.</p>
-<p>Peut g&eacute;n&eacute;rer WrongFrameTypeError.</p></dd>
+<p>Peut g&eacute;n&eacute;rer l'exception WrongFrameTypeError.</p></dd>
 
 <dt><a name="-setStyle"><strong>setStyle</strong></a>(...)</dt>
 <dd><code><a href="#-setStyle">setStyle</a>("style" [, "nom"])</code>

Modified: trunk/Scribus/doc/it/scripterapi-manobj.html
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22774&path=/trunk/Scribus/doc/it/scripterapi-manobj.html
==============================================================================
--- trunk/Scribus/doc/it/scripterapi-manobj.html        (original)
+++ trunk/Scribus/doc/it/scripterapi-manobj.html        Wed Nov 21 23:21:14 2018
@@ -8,13 +8,24 @@
 
 <dl>
 
+<dt><a name="-combinePolygons"><strong>combinePolygons()</strong></a></dt>
+<dd><code>combinePolygons()</code>
+<p>Combines two or more selected polygons.</p>
+<p>May raise WrongFrameTypeError.</p></dd>
+
 <dt><a name="-copyObject"><strong>copyObject</strong>(...)</a></dt>
 <dd><code>copyObject(["name"]) -&gt; string</code>
 <p>copies the selected Object to the clipboard.</p></dd>
 
 <dt><a name="-duplicateObject"><strong>duplicateObject</strong>(...)</a></dt>
 <dd><code>duplicateObject(["name"]) -&gt; string</code>
-<p>creates a Duplicate of the selected Object (or Selection Group).</p></dd>
+<p>Creates a Duplicate of the selected Object (or Selection Group).</p></dd>
+
+<dt><a name="-getStyle"><strong>getStyle</strong></a>(...)</dt>
+<dd><code>getStyle(["name"])</code>
+<p>Return name of style applied to object named \"name\". If \"name\" is not 
given, the currently selected object is used.<p>
+<p>If current object has a text selection, the name of style applied to start 
of selection is returned. Otherwise the name of the item default style is 
returned.</p>
+<p>May raise WrongFrameTypeError.</p></dd>
 
 <dt><a name="-groupObjects"><strong>groupObjects</strong></a>(...)</dt>
 <dd><code>groupObjects(list)</code>
@@ -76,7 +87,7 @@
 <dd><code>sizeObject(width, height [, "name"])</code>
 <p>Resizes the object "name" to the given width and height. If "name" is not 
given the currently selected item is used.</p></dd>
 
-<dt><a name="-unGroupObject"><strong>unGroupObject</strong></a>(...)</dt>
+<dt><a name="-unGroupObject"><strong>unGroupObjects</strong></a>(...)</dt>
 <dd><code>unGroupObjects("name")</code>
 <p>Destructs the group the object "name" belongs to.If "name" is not given the 
currently selected item is used.</p></dd>
 

Modified: trunk/Scribus/scribus/appmodehelper.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22774&path=/trunk/Scribus/scribus/appmodehelper.cpp
==============================================================================
--- trunk/Scribus/scribus/appmodehelper.cpp     (original)
+++ trunk/Scribus/scribus/appmodehelper.cpp     Wed Nov 21 23:21:14 2018
@@ -835,12 +835,12 @@
                }
                (*a_scrActions)["editSearchReplace"]->setEnabled(false);
 
-               bool hPoly = false;
+               bool hPoly = true;
                for (int i=0; i < docSelectionCount; ++i)
                {
                        PageItem* it=doc->m_Selection->itemAt(i);
-                       if ((it->asPolygon()) || (it->asPolyLine()))
-                               hPoly = true;
+                       if ((!it->asPolygon()) || (!it->asPolyLine()))
+                               hPoly = false;
                }
                (*a_scrActions)["itemCombinePolygons"]->setEnabled(hPoly);
 

Modified: trunk/Scribus/scribus/plugins/scriptplugin/cmdmani.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22774&path=/trunk/Scribus/scribus/plugins/scriptplugin/cmdmani.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin/cmdmani.cpp      (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin/cmdmani.cpp      Wed Nov 21 
23:21:14 2018
@@ -89,7 +89,7 @@
        PageItem *item = GetUniqueItem(QString::fromUtf8(Name));
        if (item == nullptr)
                return nullptr;
-       if (! item->asImageFrame())
+       if (!item->asImageFrame())
        {
                PyErr_SetString(ScribusException, QObject::tr("Specified item 
not an image frame.","python error").toLocal8Bit().constData());
                return nullptr;
@@ -132,7 +132,7 @@
        PageItem *item = GetUniqueItem(QString::fromUtf8(Name));
        if (item == nullptr)
                return nullptr;
-       if (! item->asImageFrame())
+       if (!item->asImageFrame())
        {
                PyErr_SetString(ScribusException, QObject::tr("Specified item 
not an image frame.","python error").toLocal8Bit().constData());
                return nullptr;
@@ -625,6 +625,34 @@
        Py_RETURN_NONE;
 }
 
+PyObject *scribus_combinepolygons(PyObject * /* self */)
+{
+       if (!checkHaveDocument())
+               return nullptr;
+
+       ScribusDoc* currentDoc = ScCore->primaryMainWindow()->doc;
+       Selection* curSelection = currentDoc->m_Selection;
+       if (curSelection->count() <= 1)
+               Py_RETURN_NONE;
+
+       bool canUniteItems = true;
+       for (int i = 0; i < curSelection->count(); ++i)
+       {
+               PageItem* it = currentDoc->m_Selection->itemAt(i);
+               if ((!it->asPolygon()) || (!it->asPolyLine()))
+                       canUniteItems = false;
+       }
+
+       if (!canUniteItems)
+       {
+               PyErr_SetString(WrongFrameTypeError, QObject::tr("Selection 
must contain only shapes or bezier curves.", "python 
error").toLocal8Bit().constData());
+               return nullptr;
+       }
+       currentDoc->itemSelection_UniteItems(nullptr);
+
+       Py_RETURN_NONE;
+}
+
 /*! HACK: this removes "warning: 'blah' defined but not used" compiler warnings
 with header files structure untouched (docstrings are kept near declarations)
 PV */

Modified: trunk/Scribus/scribus/plugins/scriptplugin/cmdmani.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22774&path=/trunk/Scribus/scribus/plugins/scriptplugin/cmdmani.h
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin/cmdmani.h        (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin/cmdmani.h        Wed Nov 21 
23:21:14 2018
@@ -271,4 +271,11 @@
 /*! Flip the object 2010/5/18.*/
 PyObject *scribus_flipobject(PyObject * /*self*/, PyObject* args);
 
+PyDoc_STRVAR(scribus_combinepolygons__doc__,
+QT_TR_NOOP("combinePolygons()\n\
+\n\
+Combine two or more selected Polygons\n\
+"));
+PyObject *scribus_combinepolygons(PyObject * /* self */);
+
 #endif

Modified: trunk/Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=22774&path=/trunk/Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp Wed Nov 21 
23:21:14 2018
@@ -586,6 +586,8 @@
        {const_cast<char*>("duplicateObject"), scribus_duplicateobject, 
METH_VARARGS, tr(scribus_duplicateobject__doc__)},
        {const_cast<char*>("copyObject"), scribus_copyobject, METH_VARARGS, 
tr(scribus_copyobject__doc__)},
        {const_cast<char*>("pasteObject"), scribus_pasteobject, METH_VARARGS, 
tr(scribus_pasteobject__doc__)},
+       // by Tj ([email protected]>
+       {const_cast<char*>("combinePolygons"), 
(PyCFunction)scribus_combinepolygons, METH_NOARGS, 
tr(scribus_combinepolygons__doc__)},
        // Internal methods - Not for public use
        {const_cast<char*>("retval"), (PyCFunction)scribus_retval, 
METH_VARARGS, const_cast<char*>("Scribus internal.")},
        {const_cast<char*>("getval"), (PyCFunction)scribus_getval, METH_NOARGS, 
const_cast<char*>("Scribus internal.")},


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to