Author: jghali
Date: Tue Sep 15 21:30:10 2020
New Revision: 24021

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=24021
Log:
#16224: scripter: add getNextLinkedFrame(), getPrevLinkedFrame(), 
getFirstLinkedFrame() and getLastLinkedFrame()

Modified:
    trunk/Scribus/doc/de/scripterapi-textframes.html
    trunk/Scribus/doc/en/scripterapi-textframes.html
    trunk/Scribus/doc/fr/scripterapi-textframes.html
    trunk/Scribus/doc/it/scripterapi-textframes.html
    trunk/Scribus/doc/ru/scripterapi-textframes.html
    trunk/Scribus/scribus/pageitem_textframe.cpp
    trunk/Scribus/scribus/plugins/scriptplugin/cmdtext.cpp
    trunk/Scribus/scribus/plugins/scriptplugin/cmdtext.h
    trunk/Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp
    trunk/Scribus/scribus/plugins/scriptplugin_py2x/cmdtext.cpp
    trunk/Scribus/scribus/plugins/scriptplugin_py2x/cmdtext.h
    trunk/Scribus/scribus/plugins/scriptplugin_py2x/scriptplugin.cpp

Modified: trunk/Scribus/doc/de/scripterapi-textframes.html
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24021&path=/trunk/Scribus/doc/de/scripterapi-textframes.html
==============================================================================
--- trunk/Scribus/doc/de/scripterapi-textframes.html    (original)
+++ trunk/Scribus/doc/de/scripterapi-textframes.html    Tue Sep 15 21:30:10 2020
@@ -32,6 +32,10 @@
 <dd><code>getColumns(["name"]) -&gt; integer</code>
 <p>Gets the number of columns of the text frame "name". If "name" is not given 
the currently selected item is used.</p></dd>
 
+<dt><a 
name="-getFirstLinkedFrame"><strong>getFirstLinkedFrame</strong></a>(...)</dt>
+<dd><code>getFirstLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the first text frame in the chain. If "name" is not given the 
currently selected item is used.</p></dd>
+
 <dt><a name="-getFont"><strong>getFont</strong></a>(...)</dt>
 <dd><code>getFont(["name"]) -&gt; string</code>
 <p>Returns the font name for the text frame "name". If this text frame has 
some text selected the value assigned to the first character of the selection 
is returned. If "name" is not given the currently selected item is 
used.</p></dd>
@@ -46,9 +50,21 @@
 <p>This function returns only the text visible in specified frame. If you need 
to retrieve the text contained in a text chain, use <a 
href="#-getAllText">getAllText()</a> instead.</p>
 <p>As this function depends on text layout being up-to-date, you may need to 
call <a href="#-layoutText">layoutText()</a> or <a 
href="#-layoutTextChain">layoutTextChain()</a> before calling this function in 
order to get expected result.</p></dd>
 
+<dt><a 
name="-getLastLinkedFrame"><strong>getLastLinkedFrame</strong></a>(...)</dt>
+<dd><code>getLastLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the last text frame in the chain. If "name" is not given the 
currently selected item is used.</p></dd>
+
 <dt><a name="-getLineSpacing"><strong>getLineSpacing</strong></a>(...)</dt>
 <dd><code>getLineSpacing(["name"]) -&gt; float</code>
 <p>Returns the line spacing ("leading") of the text frame "name" expressed in 
points. If "name" is not given the currently selected item is used.</p></dd>
+
+<dt><a 
name="-getNextLinkedFrame"><strong>getNextLinkedFrame</strong></a>(...)</dt>
+<dd><code>getNextLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the next text frame in the chain or None if specified frame is the 
last frame in the chain. If "name" is not given the currently selected item is 
used.</p></dd>
+
+<dt><a 
name="-getPrevLinkedFrame"><strong>getPrevLinkedFrame</strong></a>(...)</dt>
+<dd><code>getPrevLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the previous text frame in the chain or None if specified frame is 
the first frame in the chain. If "name" is not given the currently selected 
item is used.</p></dd>
 
 <dt><a name="-getText"><strong>getText</strong></a>(...)</dt>
 <dd><code>getText(["name"]) -&gt; string</code>

Modified: trunk/Scribus/doc/en/scripterapi-textframes.html
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24021&path=/trunk/Scribus/doc/en/scripterapi-textframes.html
==============================================================================
--- trunk/Scribus/doc/en/scripterapi-textframes.html    (original)
+++ trunk/Scribus/doc/en/scripterapi-textframes.html    Tue Sep 15 21:30:10 2020
@@ -32,6 +32,10 @@
 <dd><code>getColumns(["name"]) -&gt; integer</code>
 <p>Gets the number of columns of the text frame "name". If "name" is not given 
the currently selected item is used.</p></dd>
 
+<dt><a 
name="-getFirstLinkedFrame"><strong>getFirstLinkedFrame</strong></a>(...)</dt>
+<dd><code>getFirstLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the first text frame in the chain. If "name" is not given the 
currently selected item is used.</p></dd>
+
 <dt><a name="-getFont"><strong>getFont</strong></a>(...)</dt>
 <dd><code>getFont(["name"]) -&gt; string</code>
 <p>Returns the font name for the text frame "name". If this text frame has 
some text selected the value assigned to the first character of the selection 
is returned. If "name" is not given the currently selected item is 
used.</p></dd>
@@ -46,9 +50,21 @@
 <p>This function returns only the text visible in specified frame. If you need 
to retrieve the text contained in a text chain, use <a 
href="#-getAllText">getAllText()</a> instead.</p>
 <p>As this function depends on text layout being up-to-date, you may need to 
call <a href="#-layoutText">layoutText()</a> or <a 
href="#-layoutTextChain">layoutTextChain()</a> before calling this function in 
order to get expected result.</p></dd>
 
+<dt><a 
name="-getLastLinkedFrame"><strong>getLastLinkedFrame</strong></a>(...)</dt>
+<dd><code>getLastLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the last text frame in the chain. If "name" is not given the 
currently selected item is used.</p></dd>
+
 <dt><a name="-getLineSpacing"><strong>getLineSpacing</strong></a>(...)</dt>
 <dd><code>getLineSpacing(["name"]) -&gt; float</code>
 <p>Returns the line spacing ("leading") of the text frame "name" expressed in 
points. If "name" is not given the currently selected item is used.</p></dd>
+
+<dt><a 
name="-getNextLinkedFrame"><strong>getNextLinkedFrame</strong></a>(...)</dt>
+<dd><code>getNextLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the next text frame in the chain or None if specified frame is the 
last frame in the chain. If "name" is not given the currently selected item is 
used.</p></dd>
+
+<dt><a 
name="-getPrevLinkedFrame"><strong>getPrevLinkedFrame</strong></a>(...)</dt>
+<dd><code>getPrevLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the previous text frame in the chain or None if specified frame is 
the first frame in the chain. If "name" is not given the currently selected 
item is used.</p></dd>
 
 <dt><a name="-getText"><strong>getText</strong></a>(...)</dt>
 <dd><code>getText(["name"]) -&gt; string</code>

Modified: trunk/Scribus/doc/fr/scripterapi-textframes.html
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24021&path=/trunk/Scribus/doc/fr/scripterapi-textframes.html
==============================================================================
--- trunk/Scribus/doc/fr/scripterapi-textframes.html    (original)
+++ trunk/Scribus/doc/fr/scripterapi-textframes.html    Tue Sep 15 21:30:10 2020
@@ -24,7 +24,11 @@
 
 <dt><a name="-getColumns"><strong>getColumns</strong></a>(...)</dt>
 <dd><code>getColumns(["nom"]) -&gt; nombre entier</code>
-<p>Donne le nombre de colonnes du cadre de texte "nom". Si "nom" n'est pas 
fourni, l'élément sélectionné est utilisé. </p></dd>
+<p>Donne le nombre de colonnes du cadre de texte "nom". Si "nom" n'est pas 
fourni, l'élément sélectionné est utilisé.</p></dd>
+
+<dt><a 
name="-getFirstLinkedFrame"><strong>getFirstLinkedFrame</strong></a>(...)</dt>
+<dd><code>getFirstLinkedFrame(["name"]) -&gt; chaîne</code>
+<p>Retourne le premier cadre dans la chaîne de texte. Si "nom" n'est pas 
fourni, l'élément sélectionné est utilisé.</p></dd>
 
 <dt><a name="-getFont"><strong>getFont</strong></a>(...)</dt>
 <dd><code>getFont(["nom"]) -&gt; chaîne</code>
@@ -41,9 +45,21 @@
 <p>Cette fonction retourne uniquement le texte visible dans le cadre 
spécifié. Si vous souhaitez obtenir le texte contenu dans une chaîne de 
texte, veuillez utiliser <a href="#-getAllText">getAllText()</a> en lieu et 
place.</p>
 <p>Comme cette fonction nécessite que la mise en page du texte soit à jour, 
il est possible que vous ayez besoin d'appeler <a 
href="#-layoutText">layoutText()</a> ou <a 
href="#-layoutTextChain">layoutTextChain()</a> au préalable afin d'obtenir le 
résultat attendu.</p></dd>
 
+<dt><a 
name="-getLastLinkedFrame"><strong>getLastLinkedFrame</strong></a>(...)</dt>
+<dd><code>getLastLinkedFrame(["name"]) -&gt; chaîne</code>
+<p>Retourne le dernier cadre dans la chaîne de texte. Si "nom" n'est pas 
fourni, l'élément sélectionné est utilisé.</p></dd>
+
 <dt><a name="-getLineSpacing"><strong>getLineSpacing</strong></a>(...)</dt>
 <dd><code>getLineSpacing(["nom"]) -&gt; réel</code>
-<p>Retourne l'espacement de ligne ("leading") du cadre de texte "nom", 
exprimé en points. Si "nom" n'est pas fourni, l'élément sélectionné est 
utilisé. </p></dd>
+<p>Retourne l'espacement de ligne ("leading") du cadre de texte "nom", 
exprimé en points. Si "nom" n'est pas fourni, l'élément sélectionné est 
utilisé.</p></dd>
+
+<dt><a 
name="-getNextLinkedFrame"><strong>getNextLinkedFrame</strong></a>(...)</dt>
+<dd><code>getNextLinkedFrame(["nom"]) -&gt; chaîne</code>
+<p>Retourne le cadre suivant dans la chaîne de texte ou None si le cadre 
spécifié est le dernier dans la chaîne. Si "nom" n'est pas fourni, 
l'élément sélectionné est utilisé.</p></dd>
+
+<dt><a 
name="-getPrevLinkedFrame"><strong>getPrevLinkedFrame</strong></a>(...)</dt>
+<dd><code>getPrevLinkedFrame(["nom"]) -&gt; chaîne</code>
+<p>Retourne le cadre précédent dans la chaîne de texte ou None si le cadre 
spécifié est le premier dans la chaîne. Si "nom" n'est pas fourni, 
l'élément sélectionné est utilisé.</p></dd>
 
 <dt><a name="-getText"><strong>getText</strong></a>(...)</dt>
 <dd><code>getText(["nom"]) -&gt; chaîne</code>

Modified: trunk/Scribus/doc/it/scripterapi-textframes.html
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24021&path=/trunk/Scribus/doc/it/scripterapi-textframes.html
==============================================================================
--- trunk/Scribus/doc/it/scripterapi-textframes.html    (original)
+++ trunk/Scribus/doc/it/scripterapi-textframes.html    Tue Sep 15 21:30:10 2020
@@ -32,6 +32,10 @@
 <dd><code>getColumns(["name"]) -&gt; integer</code>
 <p>Gets the number of columns of the text frame "name". If "name" is not given 
the currently selected item is used.</p></dd>
 
+<dt><a 
name="-getFirstLinkedFrame"><strong>getFirstLinkedFrame</strong></a>(...)</dt>
+<dd><code>getFirstLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the first text frame in the chain. If "name" is not given the 
currently selected item is used.</p></dd>
+
 <dt><a name="-getFont"><strong>getFont</strong></a>(...)</dt>
 <dd><code>getFont(["name"]) -&gt; string</code>
 <p>Returns the font name for the text frame "name". If this text frame has 
some text selected the value assigned to the first character of the selection 
is returned. If "name" is not given the currently selected item is 
used.</p></dd>
@@ -46,9 +50,21 @@
 <p>This function returns only the text visible in specified frame. If you need 
to retrieve the text contained in a text chain, use <a 
href="#-getAllText">getAllText()</a> instead.</p>
 <p>As this function depends on text layout being up-to-date, you may need to 
call <a href="#-layoutText">layoutText()</a> or <a 
href="#-layoutTextChain">layoutTextChain()</a> before calling this function in 
order to get expected result.</p></dd>
 
+<dt><a 
name="-getLastLinkedFrame"><strong>getLastLinkedFrame</strong></a>(...)</dt>
+<dd><code>getLastLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the last text frame in the chain. If "name" is not given the 
currently selected item is used.</p></dd>
+
 <dt><a name="-getLineSpacing"><strong>getLineSpacing</strong></a>(...)</dt>
 <dd><code>getLineSpacing(["name"]) -&gt; float</code>
 <p>Returns the line spacing ("leading") of the text frame "name" expressed in 
points. If "name" is not given the currently selected item is used.</p></dd>
+
+<dt><a 
name="-getNextLinkedFrame"><strong>getNextLinkedFrame</strong></a>(...)</dt>
+<dd><code>getNextLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the next text frame in the chain or None if specified frame is the 
last frame in the chain. If "name" is not given the currently selected item is 
used.</p></dd>
+
+<dt><a 
name="-getPrevLinkedFrame"><strong>getPrevLinkedFrame</strong></a>(...)</dt>
+<dd><code>getPrevLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the previous text frame in the chain or None if specified frame is 
the first frame in the chain. If "name" is not given the currently selected 
item is used.</p></dd>
 
 <dt><a name="-getText"><strong>getText</strong></a>(...)</dt>
 <dd><code>getText(["name"]) -&gt; string</code>

Modified: trunk/Scribus/doc/ru/scripterapi-textframes.html
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24021&path=/trunk/Scribus/doc/ru/scripterapi-textframes.html
==============================================================================
--- trunk/Scribus/doc/ru/scripterapi-textframes.html    (original)
+++ trunk/Scribus/doc/ru/scripterapi-textframes.html    Tue Sep 15 21:30:10 2020
@@ -32,6 +32,10 @@
 <dd><code>getColumns(["name"]) -&gt; integer</code>
 <p>Gets the number of columns of the text frame "name". If "name" is not given 
the currently selected item is used.</p></dd>
 
+<dt><a 
name="-getFirstLinkedFrame"><strong>getFirstLinkedFrame</strong></a>(...)</dt>
+<dd><code>getFirstLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the first text frame in the chain. If "name" is not given the 
currently selected item is used.</p></dd>
+
 <dt><a name="-getFont"><strong>getFont</strong></a>(...)</dt>
 <dd><code>getFont(["name"]) -&gt; string</code>
 <p>Returns the font name for the text frame "name". If this text frame has 
some text selected the value assigned to the first character of the selection 
is returned. If "name" is not given the currently selected item is 
used.</p></dd>
@@ -46,9 +50,21 @@
 <p>This function returns only the text visible in specified frame. If you need 
to retrieve the text contained in a text chain, use <a 
href="#-getAllText">getAllText()</a> instead.</p>
 <p>As this function depends on text layout being up-to-date, you may need to 
call <a href="#-layoutText">layoutText()</a> or <a 
href="#-layoutTextChain">layoutTextChain()</a> before calling this function in 
order to get expected result.</p></dd>
 
+<dt><a 
name="-getLastLinkedFrame"><strong>getLastLinkedFrame</strong></a>(...)</dt>
+<dd><code>getLastLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the last text frame in the chain. If "name" is not given the 
currently selected item is used.</p></dd>
+
 <dt><a name="-getLineSpacing"><strong>getLineSpacing</strong></a>(...)</dt>
 <dd><code>getLineSpacing(["name"]) -&gt; float</code>
 <p>Returns the line spacing ("leading") of the text frame "name" expressed in 
points. If "name" is not given the currently selected item is used.</p></dd>
+
+<dt><a 
name="-getNextLinkedFrame"><strong>getNextLinkedFrame</strong></a>(...)</dt>
+<dd><code>getNextLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the next text frame in the chain or None if specified frame is the 
last frame in the chain. If "name" is not given the currently selected item is 
used.</p></dd>
+
+<dt><a 
name="-getPrevLinkedFrame"><strong>getPrevLinkedFrame</strong></a>(...)</dt>
+<dd><code>getPrevLinkedFrame(["name"]) -&gt; string</code>
+<p>Return the previous text frame in the chain or None if specified frame is 
the first frame in the chain. If "name" is not given the currently selected 
item is used.</p></dd>
 
 <dt><a name="-getText"><strong>getText</strong></a>(...)</dt>
 <dd><code>getText(["name"]) -&gt; string</code>

Modified: trunk/Scribus/scribus/pageitem_textframe.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24021&path=/trunk/Scribus/scribus/pageitem_textframe.cpp
==============================================================================
--- trunk/Scribus/scribus/pageitem_textframe.cpp        (original)
+++ trunk/Scribus/scribus/pageitem_textframe.cpp        Tue Sep 15 21:30:10 2020
@@ -1923,24 +1923,24 @@
                                                else
                                                        current.yPos += 
(current.startOfCol ? 1 : style.lineSpacing());
                                                lastLineY = maxYAsc;
-                                               if (current.startOfCol)
+                                               /*if (current.startOfCol)
                                                {
-//                                                     double addAsce;
-//                                                     if (DropCmode)
-//                                                             addAsce = 
qMax(realAsce, asce + offset);
-//                                                     else
-//                                                             addAsce = asce 
+ offset;
-//                                                     if 
(style.lineSpacingMode() != ParagraphStyle::BaselineGridLineSpacing)
-//                                                     {
-//                                                             if 
(firstLineOffset() == FLOPRealGlyphHeight)
-//                                                                     addAsce 
= realAsce;
-//                                                             else if 
(firstLineOffset() == FLOPLineSpacing)
-//                                                                     addAsce 
= style.lineSpacing() + offset;
-//                                                     }
+                                                       double addAsce;
+                                                       if (DropCmode)
+                                                               addAsce = 
qMax(realAsce, asce + offset);
+                                                       else
+                                                               addAsce = asce 
+ offset;
+                                                       if 
(style.lineSpacingMode() != ParagraphStyle::BaselineGridLineSpacing)
+                                                       {
+                                                               if 
(firstLineOffset() == FLOPRealGlyphHeight)
+                                                                       addAsce 
= realAsce;
+                                                               else if 
(firstLineOffset() == FLOPLineSpacing)
+                                                                       addAsce 
= style.lineSpacing();
+                                                       }
                                                        maxYAsc = current.yPos 
- addAsce;
                                                }
                                                else
-                                                       maxYAsc = current.yPos 
- realAsce;
+                                                       maxYAsc = current.yPos 
- realAsce;*/
                                                maxYDesc = current.yPos + 
realDesc;
 
                                                if (style.lineSpacingMode() == 
ParagraphStyle::AutomaticLineSpacing)

Modified: trunk/Scribus/scribus/plugins/scriptplugin/cmdtext.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24021&path=/trunk/Scribus/scribus/plugins/scriptplugin/cmdtext.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin/cmdtext.cpp      (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin/cmdtext.cpp      Tue Sep 15 
21:30:10 2020
@@ -267,6 +267,88 @@
        return 
PyUnicode_FromString(item->currentCharStyle().fontFeatures().toUtf8());
 }
 
+PyObject *scribus_getfirstlinkedframe(PyObject* /* self */, PyObject* args)
+{
+       char *Name = const_cast<char*>("");
+       if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
+               return nullptr;
+       if (!checkHaveDocument())
+               return nullptr;
+       PageItem *item = GetUniqueItem(QString::fromUtf8(Name));
+       if (item == nullptr)
+               return nullptr;
+       if (!item->isTextFrame())
+       {
+               PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot get 
linked frames of non-text frame.","python error").toLocal8Bit().constData());
+               return nullptr;
+       }
+
+       return PyUnicode_FromString(item->firstInChain()->itemName().toUtf8());
+}
+
+PyObject *scribus_getlastlinkedframe(PyObject* /* self */, PyObject* args)
+{
+       char *Name = const_cast<char*>("");
+       if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
+               return nullptr;
+       if (!checkHaveDocument())
+               return nullptr;
+       PageItem *item = GetUniqueItem(QString::fromUtf8(Name));
+       if (item == nullptr)
+               return nullptr;
+       if (!item->isTextFrame())
+       {
+               PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot get 
linked frames of non-text frame.","python error").toLocal8Bit().constData());
+               return nullptr;
+       }
+
+       return PyUnicode_FromString(item->lastInChain()->itemName().toUtf8());
+}
+
+PyObject *scribus_getnextlinkedframe(PyObject* /* self */, PyObject* args)
+{
+       char *Name = const_cast<char*>("");
+       if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
+               return nullptr;
+       if (!checkHaveDocument())
+               return nullptr;
+       PageItem *item = GetUniqueItem(QString::fromUtf8(Name));
+       if (item == nullptr)
+               return nullptr;
+       if (!item->isTextFrame())
+       {
+               PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot get 
linked frames of non-text frame.","python error").toLocal8Bit().constData());
+               return nullptr;
+       }
+
+       if (item->nextInChain() != nullptr)
+               return 
PyUnicode_FromString(item->nextInChain()->itemName().toUtf8());
+
+       Py_RETURN_NONE;
+}
+
+PyObject *scribus_getprevlinkedframe(PyObject* /* self */, PyObject* args)
+{
+       char *Name = const_cast<char*>("");
+       if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
+               return nullptr;
+       if (!checkHaveDocument())
+               return nullptr;
+       PageItem *item = GetUniqueItem(QString::fromUtf8(Name));
+       if (item == nullptr)
+               return nullptr;
+       if (!item->isTextFrame())
+       {
+               PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot get 
linked frames of non-text frame.","python error").toLocal8Bit().constData());
+               return nullptr;
+       }
+
+       if (item->prevInChain() != nullptr)
+               return 
PyUnicode_FromString(item->prevInChain()->itemName().toUtf8());
+
+       Py_RETURN_NONE;
+}
+
 PyObject *scribus_getlinespace(PyObject* /* self */, PyObject* args)
 {
        char *Name = const_cast<char*>("");
@@ -1413,11 +1495,15 @@
          << scribus_getalltext__doc__
          << scribus_getcolumngap__doc__
          << scribus_getcolumns__doc__
+         << scribus_getfirstlinkedframe__doc__
          << scribus_getfont__doc__
          << scribus_getfontfeatures__doc__
          << scribus_getfontsize__doc__
          << scribus_getframetext__doc__
+         << scribus_getlastlinkedframe__doc__
          << scribus_getlinespace__doc__
+         << scribus_getnextlinkedframe__doc__
+         << scribus_getprevlinkedframe__doc__
          << scribus_gettext__doc__ // Deprecated
          << scribus_gettextcolor__doc__
          << scribus_gettextdistances__doc__

Modified: trunk/Scribus/scribus/plugins/scriptplugin/cmdtext.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24021&path=/trunk/Scribus/scribus/plugins/scriptplugin/cmdtext.h
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin/cmdtext.h        (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin/cmdtext.h        Tue Sep 15 
21:30:10 2020
@@ -49,6 +49,52 @@
 PyObject *scribus_getfontfeatures(PyObject * /*self*/, PyObject* args);
 
 /*! docstring */
+PyDoc_STRVAR(scribus_getfirstlinkedframe__doc__,
+QT_TR_NOOP("getFirstLinkedFrame(item: str = None) -> str\n\
+\n\
+Return the first text frame in the chain.\n\
+\n\
+If \"name\" is not given the currently selected item is used.\n\
+"));
+/*!  Get the name of the first text frame in the chain */
+PyObject *scribus_getfirstlinkedframe(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
+PyDoc_STRVAR(scribus_getlastlinkedframe__doc__,
+QT_TR_NOOP("getLastLinkedFrame(item: str = None) -> str\n\
+\n\
+Return the last text frame in the chain.\n\
+\n\
+If \"name\" is not given the currently selected item is used.\n\
+"));
+/*!  Get the name of the last text frame in the chain */
+PyObject *scribus_getlastlinkedframe(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
+PyDoc_STRVAR(scribus_getnextlinkedframe__doc__,
+QT_TR_NOOP("getNextLinkedFrame(item: str = None) -> str\n\
+\n\
+Return the next text frame in the chain or None\n\
+if specified frame is the last frame in the chain.\n\
+\n\
+If \"name\" is not given the currently selected item is used.\n\
+"));
+/*!  Get the name of the next frame in the chain */
+PyObject *scribus_getnextlinkedframe(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
+PyDoc_STRVAR(scribus_getprevlinkedframe__doc__,
+QT_TR_NOOP("getPrevLinkedFrame(item: str = None) -> str\n\
+\n\
+Return the previous text frame in the chain or None\n\
+if specified frame is the first frame in the chain.\n\
+\n\
+If \"name\" is not given the currently selected item is used.\n\
+"));
+/*!  Get the name of the previous frame in the chain */
+PyObject *scribus_getprevlinkedframe(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
 PyDoc_STRVAR(scribus_gettextcolor__doc__,
        QT_TR_NOOP("getTextColor([\"name\"]) -> string\n\
 \n\

Modified: trunk/Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24021&path=/trunk/Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp Tue Sep 15 
21:30:10 2020
@@ -356,6 +356,7 @@
        {const_cast<char*>("getFillBlendmode"), scribus_getfillblend, 
METH_VARARGS, tr(scribus_getfillblend__doc__)},
        {const_cast<char*>("getFillShade"), scribus_getfillshade, METH_VARARGS, 
tr(scribus_getfillshade__doc__)},
        {const_cast<char*>("getFillTransparency"), scribus_getfilltrans, 
METH_VARARGS, tr(scribus_getfilltrans__doc__)},
+       {const_cast<char*>("getFirstLinkedFrame"), scribus_getfirstlinkedframe, 
METH_VARARGS, tr(scribus_getfirstlinkedframe__doc__)},
        {const_cast<char*>("getFont"), scribus_getfont, METH_VARARGS, 
tr(scribus_getfont__doc__)},
        {const_cast<char*>("getFontFeatures"), scribus_getfontfeatures, 
METH_VARARGS, tr(scribus_getfontfeatures__doc__)},
        {const_cast<char*>("getFontNames"), (PyCFunction)scribus_fontnames, 
METH_NOARGS, tr(scribus_fontnames__doc__)},
@@ -367,6 +368,7 @@
        {const_cast<char*>("getImageFile"), scribus_getimagefile, METH_VARARGS, 
tr(scribus_getimagefile__doc__)},
        {const_cast<char*>("getImageOffset"), scribus_getimageoffset, 
METH_VARARGS, tr(scribus_getimageoffset__doc__)},
        {const_cast<char*>("getImageScale"), scribus_getimagescale, 
METH_VARARGS, tr(scribus_getimagescale__doc__)},
+       {const_cast<char*>("getLastLinkedFrame"), scribus_getlastlinkedframe, 
METH_VARARGS, tr(scribus_getlastlinkedframe__doc__)},
        {const_cast<char*>("getLayers"), (PyCFunction)scribus_getlayers, 
METH_NOARGS, tr(scribus_getlayers__doc__)},
        {const_cast<char*>("getLayerBlendmode"), scribus_getlayerblendmode, 
METH_VARARGS, tr(scribus_getlayerblendmode__doc__)},
        {const_cast<char*>("getLayerTransparency"), 
scribus_getlayertransparency, METH_VARARGS, 
tr(scribus_getlayertransparency__doc__)},
@@ -381,6 +383,7 @@
        {const_cast<char*>("getLineStyles"), 
(PyCFunction)scribus_getlinestyles, METH_VARARGS, 
tr(scribus_getlinestyles__doc__)},
        {const_cast<char*>("getLineWidth"), scribus_getlinewidth, METH_VARARGS, 
tr(scribus_getlinewidth__doc__)},
        {const_cast<char*>("getMasterPage"), scribus_getmasterpage, 
METH_VARARGS, tr(scribus_getmasterpage__doc__)},
+       {const_cast<char*>("getNextLinkedFrame"), scribus_getnextlinkedframe, 
METH_VARARGS, tr(scribus_getnextlinkedframe__doc__)},
        {const_cast<char*>("getPageItems"), (PyCFunction)scribus_getpageitems, 
METH_NOARGS, tr(scribus_getpageitems__doc__)},
        {const_cast<char*>("getPageMargins"), 
(PyCFunction)scribus_getpagemargins, METH_NOARGS, 
tr(scribus_getpagemargins__doc__)},
        {const_cast<char*>("getPageType"), (PyCFunction)scribus_getpagetype, 
METH_VARARGS, tr(scribus_getpagetype__doc__)},
@@ -390,6 +393,7 @@
        {const_cast<char*>("getParagraphStyle"), scribus_getparagraphstyle, 
METH_VARARGS, tr(scribus_getparagraphstyle__doc__) },
        {const_cast<char*>("getParagraphStyles"), 
(PyCFunction)scribus_getparagraphstyles, METH_NOARGS, 
tr(scribus_getparagraphstyles__doc__)},
        {const_cast<char*>("getPosition"), scribus_getposition, METH_VARARGS, 
tr(scribus_getposition__doc__)},
+       {const_cast<char*>("getPrevLinkedFrame"), scribus_getprevlinkedframe, 
METH_VARARGS, tr(scribus_getprevlinkedframe__doc__)},
        {const_cast<char*>("getRotation"), scribus_getrotation, METH_VARARGS, 
tr(scribus_getrotation__doc__)},
        {const_cast<char*>("getObjectType"), scribus_getobjecttype, 
METH_VARARGS, tr(scribus_getobjecttype__doc__)},
        {const_cast<char*>("getObjectAttributes"), scribus_getobjectattributes, 
METH_VARARGS, tr(scribus_getobjectattributes__doc__)},

Modified: trunk/Scribus/scribus/plugins/scriptplugin_py2x/cmdtext.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24021&path=/trunk/Scribus/scribus/plugins/scriptplugin_py2x/cmdtext.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin_py2x/cmdtext.cpp (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin_py2x/cmdtext.cpp Tue Sep 15 
21:30:10 2020
@@ -267,6 +267,88 @@
        return 
PyString_FromString(item->currentCharStyle().fontFeatures().toUtf8());
 }
 
+PyObject *scribus_getfirstlinkedframe(PyObject* /* self */, PyObject* args)
+{
+       char *Name = const_cast<char*>("");
+       if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
+               return nullptr;
+       if (!checkHaveDocument())
+               return nullptr;
+       PageItem *item = GetUniqueItem(QString::fromUtf8(Name));
+       if (item == nullptr)
+               return nullptr;
+       if (!item->isTextFrame())
+       {
+               PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot get 
linked frames of non-text frame.","python error").toLocal8Bit().constData());
+               return nullptr;
+       }
+
+       return PyString_FromString(item->firstInChain()->itemName().toUtf8());
+}
+
+PyObject *scribus_getlastlinkedframe(PyObject* /* self */, PyObject* args)
+{
+       char *Name = const_cast<char*>("");
+       if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
+               return nullptr;
+       if (!checkHaveDocument())
+               return nullptr;
+       PageItem *item = GetUniqueItem(QString::fromUtf8(Name));
+       if (item == nullptr)
+               return nullptr;
+       if (!item->isTextFrame())
+       {
+               PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot get 
linked frames of non-text frame.","python error").toLocal8Bit().constData());
+               return nullptr;
+       }
+
+       return PyString_FromString(item->lastInChain()->itemName().toUtf8());
+}
+
+PyObject *scribus_getnextlinkedframe(PyObject* /* self */, PyObject* args)
+{
+       char *Name = const_cast<char*>("");
+       if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
+               return nullptr;
+       if (!checkHaveDocument())
+               return nullptr;
+       PageItem *item = GetUniqueItem(QString::fromUtf8(Name));
+       if (item == nullptr)
+               return nullptr;
+       if (!item->isTextFrame())
+       {
+               PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot get 
linked frames of non-text frame.","python error").toLocal8Bit().constData());
+               return nullptr;
+       }
+
+       if (item->nextInChain() != nullptr)
+               return 
PyString_FromString(item->nextInChain()->itemName().toUtf8());
+
+       Py_RETURN_NONE;
+}
+
+PyObject *scribus_getprevlinkedframe(PyObject* /* self */, PyObject* args)
+{
+       char *Name = const_cast<char*>("");
+       if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
+               return nullptr;
+       if (!checkHaveDocument())
+               return nullptr;
+       PageItem *item = GetUniqueItem(QString::fromUtf8(Name));
+       if (item == nullptr)
+               return nullptr;
+       if (!item->isTextFrame())
+       {
+               PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot get 
linked frames of non-text frame.","python error").toLocal8Bit().constData());
+               return nullptr;
+       }
+
+       if (item->prevInChain() != nullptr)
+               return 
PyString_FromString(item->prevInChain()->itemName().toUtf8());
+
+       Py_RETURN_NONE;
+}
+
 PyObject *scribus_getlinespace(PyObject* /* self */, PyObject* args)
 {
        char *Name = const_cast<char*>("");
@@ -1413,11 +1495,15 @@
          << scribus_getalltext__doc__
          << scribus_getcolumngap__doc__
          << scribus_getcolumns__doc__
+         << scribus_getfirstlinkedframe__doc__
          << scribus_getfont__doc__
          << scribus_getfontfeatures__doc__
          << scribus_getfontsize__doc__
          << scribus_getframetext__doc__
+         << scribus_getlastlinkedframe__doc__
          << scribus_getlinespace__doc__
+         << scribus_getnextlinkedframe__doc__
+         << scribus_getprevlinkedframe__doc__
          << scribus_gettext__doc__ // Deprecated
          << scribus_gettextcolor__doc__
          << scribus_gettextdistances__doc__

Modified: trunk/Scribus/scribus/plugins/scriptplugin_py2x/cmdtext.h
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24021&path=/trunk/Scribus/scribus/plugins/scriptplugin_py2x/cmdtext.h
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin_py2x/cmdtext.h   (original)
+++ trunk/Scribus/scribus/plugins/scriptplugin_py2x/cmdtext.h   Tue Sep 15 
21:30:10 2020
@@ -49,6 +49,52 @@
 PyObject *scribus_getfontfeatures(PyObject * /*self*/, PyObject* args);
 
 /*! docstring */
+PyDoc_STRVAR(scribus_getfirstlinkedframe__doc__,
+QT_TR_NOOP("getFirstLinkedFrame(item: str = None) -> str\n\
+\n\
+Return the first text frame in the chain.\n\
+\n\
+If \"name\" is not given the currently selected item is used.\n\
+"));
+/*!  Get the name of the first text frame in the chain */
+PyObject *scribus_getfirstlinkedframe(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
+PyDoc_STRVAR(scribus_getlastlinkedframe__doc__,
+QT_TR_NOOP("getLastLinkedFrame(item: str = None) -> str\n\
+\n\
+Return the last text frame in the chain.\n\
+\n\
+If \"name\" is not given the currently selected item is used.\n\
+"));
+/*!  Get the name of the last text frame in the chain */
+PyObject *scribus_getlastlinkedframe(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
+PyDoc_STRVAR(scribus_getnextlinkedframe__doc__,
+QT_TR_NOOP("getNextLinkedFrame(item: str = None) -> str\n\
+\n\
+Return the next text frame in the chain or None\n\
+if specified frame is the last frame in the chain.\n\
+\n\
+If \"name\" is not given the currently selected item is used.\n\
+"));
+/*!  Get the name of the next frame in the chain */
+PyObject *scribus_getnextlinkedframe(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
+PyDoc_STRVAR(scribus_getprevlinkedframe__doc__,
+QT_TR_NOOP("getPrevLinkedFrame(item: str = None) -> str\n\
+\n\
+Return the previous text frame in the chain or None\n\
+if specified frame is the first frame in the chain.\n\
+\n\
+If \"name\" is not given the currently selected item is used.\n\
+"));
+/*!  Get the name of the previous frame in the chain */
+PyObject *scribus_getprevlinkedframe(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
 PyDoc_STRVAR(scribus_gettextcolor__doc__,
        QT_TR_NOOP("getTextColor([\"name\"]) -> string\n\
 \n\

Modified: trunk/Scribus/scribus/plugins/scriptplugin_py2x/scriptplugin.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24021&path=/trunk/Scribus/scribus/plugins/scriptplugin_py2x/scriptplugin.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/scriptplugin_py2x/scriptplugin.cpp    
(original)
+++ trunk/Scribus/scribus/plugins/scriptplugin_py2x/scriptplugin.cpp    Tue Sep 
15 21:30:10 2020
@@ -356,6 +356,7 @@
        {const_cast<char*>("getFillBlendmode"), scribus_getfillblend, 
METH_VARARGS, tr(scribus_getfillblend__doc__)},
        {const_cast<char*>("getFillShade"), scribus_getfillshade, METH_VARARGS, 
tr(scribus_getfillshade__doc__)},
        {const_cast<char*>("getFillTransparency"), scribus_getfilltrans, 
METH_VARARGS, tr(scribus_getfilltrans__doc__)},
+       {const_cast<char*>("getFirstLinkedFrame"), scribus_getfirstlinkedframe, 
METH_VARARGS, tr(scribus_getfirstlinkedframe__doc__)},
        {const_cast<char*>("getFont"), scribus_getfont, METH_VARARGS, 
tr(scribus_getfont__doc__)},
        {const_cast<char*>("getFontFeatures"), scribus_getfontfeatures, 
METH_VARARGS, tr(scribus_getfontfeatures__doc__)},
        {const_cast<char*>("getFontNames"), (PyCFunction)scribus_fontnames, 
METH_NOARGS, tr(scribus_fontnames__doc__)},
@@ -367,6 +368,7 @@
        {const_cast<char*>("getImageFile"), scribus_getimagefile, METH_VARARGS, 
tr(scribus_getimagefile__doc__)},
        {const_cast<char*>("getImageOffset"), scribus_getimageoffset, 
METH_VARARGS, tr(scribus_getimageoffset__doc__)},
        {const_cast<char*>("getImageScale"), scribus_getimagescale, 
METH_VARARGS, tr(scribus_getimagescale__doc__)},
+       {const_cast<char*>("getLastLinkedFrame"), scribus_getlastlinkedframe, 
METH_VARARGS, tr(scribus_getlastlinkedframe__doc__)},
        {const_cast<char*>("getLayers"), (PyCFunction)scribus_getlayers, 
METH_NOARGS, tr(scribus_getlayers__doc__)},
        {const_cast<char*>("getLayerBlendmode"), scribus_getlayerblendmode, 
METH_VARARGS, tr(scribus_getlayerblendmode__doc__)},
        {const_cast<char*>("getLayerTransparency"), 
scribus_getlayertransparency, METH_VARARGS, 
tr(scribus_getlayertransparency__doc__)},
@@ -381,6 +383,7 @@
        {const_cast<char*>("getLineStyles"), 
(PyCFunction)scribus_getlinestyles, METH_VARARGS, 
tr(scribus_getlinestyles__doc__)},
        {const_cast<char*>("getLineWidth"), scribus_getlinewidth, METH_VARARGS, 
tr(scribus_getlinewidth__doc__)},
        {const_cast<char*>("getMasterPage"), scribus_getmasterpage, 
METH_VARARGS, tr(scribus_getmasterpage__doc__)},
+       {const_cast<char*>("getNextLinkedFrame"), scribus_getnextlinkedframe, 
METH_VARARGS, tr(scribus_getnextlinkedframe__doc__)},
        {const_cast<char*>("getPageItems"), (PyCFunction)scribus_getpageitems, 
METH_NOARGS, tr(scribus_getpageitems__doc__)},
        {const_cast<char*>("getPageMargins"), 
(PyCFunction)scribus_getpagemargins, METH_NOARGS, 
tr(scribus_getpagemargins__doc__)},
        {const_cast<char*>("getPageType"), (PyCFunction)scribus_getpagetype, 
METH_VARARGS, tr(scribus_getpagetype__doc__)},
@@ -390,6 +393,7 @@
        {const_cast<char*>("getParagraphStyle"), scribus_getparagraphstyle, 
METH_VARARGS, tr(scribus_getparagraphstyle__doc__) },
        {const_cast<char*>("getParagraphStyles"), 
(PyCFunction)scribus_getparagraphstyles, METH_NOARGS, 
tr(scribus_getparagraphstyles__doc__)},
        {const_cast<char*>("getPosition"), scribus_getposition, METH_VARARGS, 
tr(scribus_getposition__doc__)},
+       {const_cast<char*>("getPrevLinkedFrame"), scribus_getprevlinkedframe, 
METH_VARARGS, tr(scribus_getprevlinkedframe__doc__)},
        {const_cast<char*>("getRotation"), scribus_getrotation, METH_VARARGS, 
tr(scribus_getrotation__doc__)},
        {const_cast<char*>("getObjectType"), scribus_getobjecttype, 
METH_VARARGS, tr(scribus_getobjecttype__doc__)},
        {const_cast<char*>("getObjectAttributes"), scribus_getobjectattributes, 
METH_VARARGS, tr(scribus_getobjectattributes__doc__)},


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

Reply via email to