[texworks] Scripts: Exploration of TW objects

Paul A Norman paul.a.norman at gmail.com
Mon Nov 8 11:31:18 CET 2010


There are a couple of functions under TW.target that have an unexpected names.



Stefan has already told me that we can not run scripts from scripts so
I am naturally intrigued by these fellows' names !
If they don't set anything do I populate them and they return a value
of some sort?

I tried this but running it breaks on  TW.target.runScript(xx);

 var xx = {};
 TW.information(null, "xx", xx);
 var yy = {}; var look;
 TW.information(null, yy, look);

This guy is referring to Qt style css type instructions for the current window?

And I was looking for guidance on these two please.


Does that suggest that some aspect of the syntax-patterns.txt file can
be directly selected?


On 5 November 2010 12:36, Paul A Norman <paul.a.norman at gmail.com> wrote:
> [ How does this sound? ]
> So use via this sort of format ...(?)
>   TW.target.findChild("sometingDahDah").findChildren()[2].property/function;
> To see the whole object tree,
> Run this in the  Qt Script Debugger Console  prompt
>    qsdb> x =TW.target.findChildren();
>  http://dl.dropbox.com/u/13401476/general_images/TW_Qt_QTScript_debugger_Console.jpg
> And then look for "x" in the "Locals" pane in the debugger.
>  http://dl.dropbox.com/u/13401476/general_images/TW_Qt_QTScript_debugger_Locals.jpg
> Only focus on things immediately below "x" that have a
> "name="Something" for if it has no name. you probably will not find a
> way of reliably addressing / accessing it.
> You'll be able to read any of the actually used/available properties
> and functions. You can check their details in the Qt objects functions
> and properties on the Qt web site
> In the Locals panel in the debugger. take note of the QtSomething name like:
> QSplitterHandle(name = "qt_splithandle_")  in the image above for item 103.
> QSplitterHandle is what you would search for in the Qt documentation.
> Keep an eye on Qt version number, 4.4 is probably safe for gerneal use
> according to postings here, but if you know that your version of your
> Tw release was built  on a higher number of Qt, use that version's
> documentation (check Tw's Help/About dialogue - for example my help
> about says thta Tw 0.3 ver649 was built using Qt 4.6).
> The higher Qt versions do introduce more functionality - but standard
> Tw releases and distributions may, as of November 2010, only use 4.4.
>   http://doc.trolltech.com/4.4/qtscript.html
> On the web page use the menu at top once you've read a bit about
> scripting and how it relates to this sort of tree ("x").
> Paul
> On 5 November 2010 08:53, Stefan Löffler <st.loeffler at gmail.com> wrote:
>> Hi,
>> Am 2010-11-04 10:52, schrieb Paul A Norman:
>>> Put this (the below) as a script, I called it tw_OBJECTS.js in a script folder.
>> this is very interesting, I didn't realize this. Thanks for sharing (it
>> was the missing piece to get the poppler page number - see separate thread).
>>> Does the result suggest that all the found children can in some way be
>>> slotted into and even **safely** called by QtScript?
>> If by "slot into" you refer to the signal/slot mechanism of Qt, the
>> answer is pretty definitely no.
>> Calling the objects' methods and/or accessing their properties shouldn't
>> be a problem, though.
>> A important thing to emphasize however: the output (i.e., the accessible
>> objects) will depend on the context (TeXDocument vs. PDFDocument) the
>> script is run in, in general (particular as far as ui items are concerned).
>> HTH
>> Stefan
>>> //TeXworksScript
>>> //Title:  Experimental TW
>>> //Description: Exploration of TW objects
>>> //Author:  Paul A. Norman
>>> //Version: 0.3
>>> //Date:  2010-11-04
>>> //Script-Type: standalone
>>> //Context: TeXDocument
>>> //Shortcut: Alt+T, Alt+W
>>> // TW.information(null, "", TW.app.findChildren());
>>>   study = TW.target.findChildren() +'';
>>>   study = study.replace(/,/g,",\n")
>>> TW.target.insertText(study);
>>>  null;
>>> //========== Results ===========

More information about the texworks mailing list