r22774 by jghali - #15489: scriptplugin: Add combinePolygons to API <Iam_TJ>

scribus-commit scribus-commit at lists.scribus.net
Wed Nov 21 23:21:14 UTC 2018


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"]) -> 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"]) -> 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"]) -> 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"]) -> 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énérer l'exception WrongFrameTypeError.</p></dd>
 
 <dt><a name="-copyObject"><strong>copyObject</strong>(...)</a></dt>
 <dd><code><a href="#-copyObject">copyObject</a>(["nom"]) -> chaîne</code>
@@ -20,7 +25,7 @@
 <dd><code><a href="#-getStyle">getStyle</a>(["nom"])  -> chaîne</code>
 <p>Retourne le nom du style appliqué à l'objet "nom". Si aucun nom d'objet n'est fourni, l'élément sélectionné est utilisé.</p> 
 <p>Si l'objet courant possède une sélection de texte, le nom retourné est celui du style appliqué au début de la sélection. Sinon le nom retourné est celui du style appliqué par défaut.</p>
-<p>Peut générer WrongFrameTypeError.</p></dd>
+<p>Peut générer l'exception WrongFrameTypeError.</p></dd>
 
 <dt><a name="-groupObjects"><strong>groupObjects</strong></a>(...)</dt>
 <dd><code><a href="#-groupObjects">groupObjects</a>(liste)  -> chaîne</code>
@@ -34,20 +39,20 @@
 
 <dt><a name="-lockObject"><strong>lockObject</strong></a>(...)</dt>
 <dd><code><a href="#-lockObject">lockObject</a>(["nom"]) -> booléen</code>
-<p>Verrouille l'objet "nom" s'il est déverrouillé, ou le déverrouille s'il y a lieu. Si "nom" n'est pas fourni, l'élément sélectionnéest utilisé. 
+<p>Verrouille l'objet "nom" s'il est déverrouillé, ou le déverrouille s'il y a lieu. Si "nom" n'est pas fourni, l'élément sélectionné est utilisé. 
 Retourne la valeur True si verrouillé.</p></dd>
 
 <dt><a name="-moveObject"><strong>moveObject</strong></a>(...)</dt>
 <dd><code><a href="#-moveObject">moveObject</a>(dx, dy [, "nom"])</code>
 <p>Déplace l'objet "nom" de dx et dy par rapport à sa position courante. Les
 distances sont exprimées dans les unités de mesure du document (voir
-les constantes UNIT). Si "nom" n'est pas fourni, l'élément sélectionnéest utilisé. Si l'objet "nom" appartient à un groupe, tout le groupe est déplacé.</p></dd>
+les constantes UNIT). Si "nom" n'est pas fourni, l'élément sélectionné est utilisé. Si l'objet "nom" appartient à un groupe, tout le groupe est déplacé.</p></dd>
 
 <dt><a name="-moveObjectAbs"><strong>moveObjectAbs</strong></a>(...)</dt>
 <dd><code><a href="#-moveObjectAbs">moveObjectAbs</a>(x, y [, "nom"])</code>
 <p>Déplace l'objet "nom" à une nouvelle position. Les coordonnées
 sont exprimées dans les unités de mesure du document (voir les
-constantes UNIT).  Si "nom" n'est pas fourni, l'élément sélectionnéest utilisé. Si l'objet "nom" appartient à un groupe, tout le groupe est déplacé.</p></dd>
+constantes UNIT).  Si "nom" n'est pas fourni, l'élément sélectionné est utilisé. Si l'objet "nom" appartient à un groupe, tout le groupe est déplacé.</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'élément sélectionné est utilisé</p>
-<p>Peut générer WrongFrameTypeError.</p></dd>
+<p>Peut géné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=<selection>)</code>
 <p>Établit le mode de redimensionnement par rapport au cadre d'image sélectionné, ou spécifié dans 'redimAuCadre'. 
 Si 'proportionnel' est spécifié, établit le redimensionnement en maintenant des proportions fixes. 'redimAuCadre' et 'proportionnel' sont booléens.</p>
-<p>Peut générer WrongFrameTypeError.</p></dd>
+<p>Peut géné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"]) -> 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"]) -> 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 (hacker at iam.tj>
+	{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.")},




More information about the scribus-commit mailing list