[Libreoffice-commits] .: Branch 'libreoffice-4-0' - librelogo/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Jan 23 01:12:51 PST 2013


 librelogo/source/LibreLogo/LibreLogo.py |   35 ++++++++++++++++++++++----------
 1 file changed, 25 insertions(+), 10 deletions(-)

New commits:
commit a69529841d0252783194e81d5558b4926b76a05e
Author: László Németh <nemeth at numbertext.org>
Date:   Tue Jan 22 16:56:13 2013 +0100

    librelogo: start selected text;  am, eo transl. sup.
    
    Change-Id: I0f02c3db5ef5fc46e7dd163d9b3193be8fc78fdc
    Reviewed-on: https://gerrit.libreoffice.org/1814
    Reviewed-by: Miklos Vajna <vmiklos at suse.cz>
    Tested-by: Miklos Vajna <vmiklos at suse.cz>

diff --git a/librelogo/source/LibreLogo/LibreLogo.py b/librelogo/source/LibreLogo/LibreLogo.py
index df5bdc0..556837d 100644
--- a/librelogo/source/LibreLogo/LibreLogo.py
+++ b/librelogo/source/LibreLogo/LibreLogo.py
@@ -25,7 +25,7 @@ else:
     __lngpath__ = unohelper.fileUrlToSystemPath(re.sub("program/(fundamental.ini|fundamentalrc)$", "", urebootstrap))
 __lngpath__ = __lngpath__ + "share/Scripts/python/LibreLogo/".replace("/", os.sep)
 
-__translang__ = "ca|cs|de|dk|el|en|es|et|fr|hu|it|nl|no|pl|pt|ro|ru|se|sl" # FIXME supported languages for language guessing, expand this list, according to the localizations
+__translang__ = "am|ca|cs|de|dk|el|en|eo|es|et|fr|hu|it|ja|nl|no|pl|pt|ro|ru|se|sl" # FIXME supported languages for language guessing, expand this list, according to the localizations
 __lng__ = {}
 __docs__ = {}
 __prevcode__ = None
@@ -568,16 +568,29 @@ def run(arg=None, arg2 = -1):
     with __lock__:
         __thread__ = 1
     try:
-        __initialize__()
-        __setlang__()
+        __getdocument__()
         if arg2 == -1:
-            arg2 = _.doc.getText().getString()
+            try:
+                _.cursor = _.doc.getCurrentController().getViewCursor().getText().createTextCursor() # copy selection
+                _.cursor.gotoRange(_.doc.getCurrentController().getViewCursor(), False)
+                1/len(_.cursor.getString()) # exception, if zero length
+            except:
+                _.cursor = _.doc.getText().createTextCursorByRange(_.doc.getText().getStart())
+                _.cursor.gotoEnd(True)
+            c = _.doc.Text.createTextCursor() # go to the first page
+            c.gotoStart(False)
+            _.doc.CurrentController.getViewCursor().gotoRange(c, False)
+            __initialize__()
+            __setlang__()
+            arg2 = _.cursor.getString()
             if len(arg2) > 20000:
                 if MessageBox(_.doc.CurrentController.Frame.ContainerWindow, __l12n__(_.lng)['ERR_NOTAPROGRAM'], __l12n__(_.lng)['LIBRELOGO'], "querybox", __YES_NO_CANCEL__) != 2:
                     with __lock__:
                         __thread__ = None
                     return None
-            __gotoline__(1)
+        else:
+            __initialize__()
+            __setlang__()
         if __prevcode__ and __prevcode__ == arg2 and __prevlang__ == _.lng:
             __thread__ = LogoProgram(__prevcompiledcode__)
         else:
@@ -1430,12 +1443,14 @@ def __compil__(s):
     return to_ascii(globs) + "\n" + result
 
 def __gotoline__(n):
-    __dispatcher__(".uno:Escape")
-    c = _.doc.Text.createTextCursor()
-    c.gotoStart(False)
+    _.cursor.collapseToStart()
     for i in range(1, n):
-        c.gotoNextParagraph(False)
-    _.doc.CurrentController.getViewCursor().gotoRange(c, False)
+        _.cursor.gotoNextParagraph(False)
+    try:
+        _.doc.CurrentController.getViewCursor().gotoRange(_.cursor, False)
+    except:
+        __dispatcher__(".uno:Escape")
+        _.doc.CurrentController.getViewCursor().gotoRange(_.cursor.getStart(), False)
 
 g_exportedScripts = left, right, goforward, gobackward, run, stop, home, clearscreen, commandline, __translate__
 g_ImplementationHelper = unohelper.ImplementationHelper()


More information about the Libreoffice-commits mailing list