Un-Flip all Selected Items

From Scribus Wiki
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 reversed like we wanted, all the images and text are now backwards too. You could ungroup the items, select each individual item, and flip them all to back to normal one by one, 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 the extra 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

#****************************************************************************
#COPYRIGHT:
#Copyright (C) 2007 Jeremy Brown
#
#
#LICENSE:
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#****************************************************************************

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"