Re: Copy and Move Text Frame using API

Gregory Pittman <gpittman-s/[email protected]>
Newsgroups gmane.comp.graphics.scribus
Message-ID <[email protected]>
On 3/9/21 2:19 PM, Matt Miller wrote:
> I'm trying to use the API to copy a text frame to a different page of the same document, then change the frame's name and position.  copyObjects() / pasteObjects() works for me to get the frame copied, but I'm not able to change the new frame's name.  I'm thinking to use getObjectAttributes() / setObjectAttributes() to change the new frame's name, but getObjectAttributes() always returns an empty list.  For example, I execute this from the scripter console:
> 
> dummy = newDocument((5, 3), (0, 0, 0, 0), PORTRAIT, 1, UNIT_INCHES, PAGE_1, 0, 2)
> gotoPage (1)
> orig_name = createText (1, 1, 1, 1)
> copyObjects (orig_name)
> gotoPage (2)
> new_name = pasteObjects ()
> new_attrs = getObjectAttributes (new_name[0])
> print (len (new_attrs))
> 
> and that last print statement shows that the attribute list is empty.  I expected getObjectAttributes() to return a list of dictionary, and that I could then update the first (and only) dictionary in that list, changing the value of the "Name" element to the new name I want for the copied frame.
> 
> What's wrong with how I''m using the API here, and/or, is there another way to accomplish this?

Hi Matt,

When you paste the object, new_name should contain a name assigned by Scribus. To be safe you might need to specify new_name[0].
To set the name to something else you use 

setItemName("changetoname", new_name[0]) 

-- this is in Setting Object Properties in the manual menu.

I've never quite been able to figure out what these "attributes" are that you get from getObjectAttributes().

Greg


___
Scribus Mailing List: [email protected]
Edit your options or unsubscribe:
http://lists.scribus.net/mailman/listinfo/scribus
See also:
http://wiki.scribus.net
http://forums.scribus.net
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.