Un-Flip all Selected Items

From Scribus Wiki
Revision as of 01:27, 18 September 2007 by TrnsltLife (talk | contribs) (New page: {{Scripting Index}} This script can be used to un-flip all the items you have selected. (In the Properties toolbar, there are arrow buttons that let you flip an item horizontally or verti...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
This article is part of the Scripts series.

This script can be used to un-flip all the items you have selected. (In the Properties toolbar, there are arrow buttons that let you flip an item horizontally or vertically. This undoes those changes and restores the item to its original orientation.)

Why would you want to do this? Perhaps you have a layout that you want to flip. All your images and text are already in the layout. You can group the items, and flip the group, but this also flips every item in the group, making the text backwards, the images backwards, and so on. So consider the following workflow:

Step 1: Create your layout, select all the items, and use the Group command to group them.

LayoutFlip1.png

Step 2: Use the Flip Horizontal button on the Properties toolbar to flip the entire group.

LayoutFlip2.png

Step 3: Notice that although our layout is now reversed, all the images and text are now backwards too. You could ungroup the items, select each individual one by one, and flip them all to back to normal, but that takes a long time. Instead, simply keep the group selected and run the UnFlipAll script.

LayoutFlip3.png

Finished: The result is a nicely mirrored layout, without all the work required to do it all by hand!

LayoutFlip4.png

This script has been tested in Scribus 1.3.3.9 and 1.3.4.

Save this script as UnFlipAll.py, for example.

# -*- coding: utf-8 -*-
#This script unflips all the items so their horizontal and vertical flip flag is set to False
from scribus import *
if haveDoc():
    nbrSelected = selectionCount()
    objList = []
    for i in range(nbrSelected):
        objList.append(getSelectedObject(i))
    for i in range(nbrSelected):
        try:
            obj = objList[i]
            setProperty(obj, "m_ImageIsFlippedH", False)
            setProperty(obj, "m_ImageIsFlippedV", False)
            moveObject(1, 0, obj)
            moveObject(-1, 0, obj)
            docChanged(1)
            setRedraw(True)
        except:
            nothing = "nothing"