View Issue Details

IDProjectCategoryView StatusLast Update
0003295ScribusGeneralpublic2008-12-22 21:35
Reportergpittman Assigned Topierremarchand  
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
PlatformanyOSLinuxOS Versionany
Product Version1.3.3.1 
Fixed in Version1.3.5svn 
Summary0003295: Display problems when entering rotation from keyboard
DescriptionWhen one creates a group of objects, there are some aberrancies when rotating.
The worst seems to be with a group of draw lines (perhaps also with other shapes, haven't tried.
1. You cannot choose the point of rotation, which seems to be somewhere off the left side and top of the page.
2. If you enter a rotation, such as 90 degrees with the keyboard, the item goes off the page, which wouldn't be so bad, but when you correct the X and Y positions the display of the page is distorted and remains so -- typically part of the page cut off.
It is still possible to save the page (fortunately), but you have to close the document and open it up again to normalize the display.
This also happened with a group of image frames, but did not distort the display. What did happen was the page was shifted in the workspace.
Steps To Reproduce1. Easiest way to demonstrate is to use the attached script, which is the beginnings of a Postnet code maker; right now just displays the digits 0-9 vertically as a series of horizontal lines.
2. Group the line objects.
3. Note that the center point rotation widget is greyed out (inoperable).
4. Enter with the keyboard 90 degrees for rotation.
5. Correct the Y and/or X with the keyboard to bring the group back on the page.
6. Display distorts and remains so.
TagsNo tags attached.
Patch

Relationships

has duplicate 0003689 closed SVG rotates not about center 
related to 0002931 acknowledged Metabug: SVG 
child of 0003812 acknowledged Metabug: Grouped objects 

Activities

2006-02-26 21:10

 

postalcode.py (7,893 bytes)   
#!/usr/bin/env python

# File: postalcode.py
# originally 2006.02.26  Gregory Pittman

from scribus import *
#import Tkinter
   #some constants
a = 1.44      #line width
b="Black"
relx=130      #Start X
rely=130      #Start Y

if haveDoc():
   setRedraw(1)
   setUnit(0)
   #Draw the lines for digit 0
   d = createLine(relx,rely,relx+9,rely,) #Long line
   setLineWidth(a, d)
   setLineColor(b, d)
   setFillColor(b, d)
   rely = rely + 3.4
   
   e = createLine(relx,rely,relx+9,rely) #long line
   setLineWidth(a, e)
   setLineColor(b, e)
   setFillColor(b, e)
   rely = rely + 3.4
   
   f = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, f)
   setLineColor(b, f)
   setFillColor(b, f)
   rely = rely + 3.4
   
   g = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, g)
   setLineColor(b, g)
   setFillColor(b, g)
   rely = rely + 3.4
   
   h = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, h)
   setLineColor(b, h)
   setFillColor(b, h)
   rely = rely + 3.4
   #Draw the lines for digit 1
   d = createLine(relx,rely,relx+3.6,rely,) #short line
   setLineWidth(a, d)
   setLineColor(b, d)
   setFillColor(b, d)
   rely = rely + 3.4
   
   e = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, e)
   setLineColor(b, e)
   setFillColor(b, e)
   rely = rely + 3.4
   
   f = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, f)
   setLineColor(b, f)
   setFillColor(b, f)
   rely = rely + 3.4
   
   g = createLine(relx,rely,relx+9,rely) #long line
   setLineWidth(a, g)
   setLineColor(b, g)
   setFillColor(b, g)
   rely = rely + 3.4
   
   h = createLine(relx,rely,relx+9,rely) #long line
   setLineWidth(a, h)
   setLineColor(b, h)
   setFillColor(b, h)
   rely = rely + 3.4
   #Draw the lines for digit 2
   d = createLine(relx,rely,relx+3.6,rely,) #short line
   setLineWidth(a, d)
   setLineColor(b, d)
   setFillColor(b, d)
   rely = rely + 3.4
   
   e = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, e)
   setLineColor(b, e)
   setFillColor(b, e)
   rely = rely + 3.4
   
   f = createLine(relx,rely,relx+9,rely) #Long line
   setLineWidth(a, f)
   setLineColor(b, f)
   setFillColor(b, f)
   rely = rely + 3.4
   
   g = createLine(relx,rely,relx+9,rely) #long line
   setLineWidth(a, g)
   setLineColor(b, g)
   setFillColor(b, g)
   rely = rely + 3.4
   
   h = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, h)
   setLineColor(b, h)
   setFillColor(b, h)
   rely = rely + 3.4
   #Draw the lines for digit 3
   d = createLine(relx,rely,relx+3.6,rely,) #short line
   setLineWidth(a, d)
   setLineColor(b, d)
   setFillColor(b, d)
   rely = rely + 3.4
   
   e = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, e)
   setLineColor(b, e)
   setFillColor(b, e)
   rely = rely + 3.4
   
   f = createLine(relx,rely,relx+9,rely) #Long line
   setLineWidth(a, f)
   setLineColor(b, f)
   setFillColor(b, f)
   rely = rely + 3.4
   
   g = createLine(relx,rely,relx+9,rely) #long line
   setLineWidth(a, g)
   setLineColor(b, g)
   setFillColor(b, g)
   rely = rely + 3.4
   
   h = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, h)
   setLineColor(b, h)
   setFillColor(b, h)
   rely = rely + 3.4
   #Draw the lines for digit 4
   d = createLine(relx,rely,relx+3.6,rely,) #short line
   setLineWidth(a, d)
   setLineColor(b, d)
   setFillColor(b, d)
   rely = rely + 3.4
   
   e = createLine(relx,rely,relx+9,rely) #long line
   setLineWidth(a, e)
   setLineColor(b, e)
   setFillColor(b, e)
   rely = rely + 3.4
   
   f = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, f)
   setLineColor(b, f)
   setFillColor(b, f)
   rely = rely + 3.4
   
   g = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, g)
   setLineColor(b, g)
   setFillColor(b, g)
   rely = rely + 3.4
   
   h = createLine(relx,rely,relx+9,rely) #long line
   setLineWidth(a, h)
   setLineColor(b, h)
   setFillColor(b, h)
   rely = rely + 3.4
   #Draw the lines for digit 5
   d = createLine(relx,rely,relx+3.6,rely,) #short line
   setLineWidth(a, d)
   setLineColor(b, d)
   setFillColor(b, d)
   rely = rely + 3.4
   
   e = createLine(relx,rely,relx+9,rely) #long line
   setLineWidth(a, e)
   setLineColor(b, e)
   setFillColor(b, e)
   rely = rely + 3.4
   
   f = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, f)
   setLineColor(b, f)
   setFillColor(b, f)
   rely = rely + 3.4
   
   g = createLine(relx,rely,relx+9,rely) #long line
   setLineWidth(a, g)
   setLineColor(b, g)
   setFillColor(b, g)
   rely = rely + 3.4
   
   h = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, h)
   setLineColor(b, h)
   setFillColor(b, h)
   rely = rely + 3.4
   #Draw the lines for digit 6
   d = createLine(relx,rely,relx+3.6,rely,) #short line
   setLineWidth(a, d)
   setLineColor(b, d)
   setFillColor(b, d)
   rely = rely + 3.4
   
   e = createLine(relx,rely,relx+9,rely) #long line
   setLineWidth(a, e)
   setLineColor(b, e)
   setFillColor(b, e)
   rely = rely + 3.4
   
   f = createLine(relx,rely,relx+9,rely) #Long line
   setLineWidth(a, f)
   setLineColor(b, f)
   setFillColor(b, f)
   rely = rely + 3.4
   
   g = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, g)
   setLineColor(b, g)
   setFillColor(b, g)
   rely = rely + 3.4
   
   h = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, h)
   setLineColor(b, h)
   setFillColor(b, h)
   rely = rely + 3.4
   #Draw the lines for digit 7
   d = createLine(relx,rely,relx+9,rely,) #Long line
   setLineWidth(a, d)
   setLineColor(b, d)
   setFillColor(b, d)
   rely = rely + 3.4
   
   e = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, e)
   setLineColor(b, e)
   setFillColor(b, e)
   rely = rely + 3.4
   
   f = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, f)
   setLineColor(b, f)
   setFillColor(b, f)
   rely = rely + 3.4
   
   g = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, g)
   setLineColor(b, g)
   setFillColor(b, g)
   rely = rely + 3.4
   
   h = createLine(relx,rely,relx+9,rely) #long line
   setLineWidth(a, h)
   setLineColor(b, h)
   setFillColor(b, h)
   rely = rely + 3.4
   #Draw the lines for digit 8
   d = createLine(relx,rely,relx+9,rely,) #Long line
   setLineWidth(a, d)
   setLineColor(b, d)
   setFillColor(b, d)
   rely = rely + 3.4
   
   e = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, e)
   setLineColor(b, e)
   setFillColor(b, e)
   rely = rely + 3.4
   
   f = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, f)
   setLineColor(b, f)
   setFillColor(b, f)
   rely = rely + 3.4
   
   g = createLine(relx,rely,relx+9,rely) #long line
   setLineWidth(a, g)
   setLineColor(b, g)
   setFillColor(b, g)
   rely = rely + 3.4
   
   h = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, h)
   setLineColor(b, h)
   setFillColor(b, h)
   rely = rely + 3.4
   #Draw the lines for digit 9
   d = createLine(relx,rely,relx+9,rely,) #Long line
   setLineWidth(a, d)
   setLineColor(b, d)
   setFillColor(b, d)
   rely = rely + 3.4
   
   e = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, e)
   setLineColor(b, e)
   setFillColor(b, e)
   rely = rely + 3.4
   
   f = createLine(relx,rely,relx+9,rely) #Long line
   setLineWidth(a, f)
   setLineColor(b, f)
   setFillColor(b, f)
   rely = rely + 3.4
   
   g = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, g)
   setLineColor(b, g)
   setFillColor(b, g)
   rely = rely + 3.4
   
   h = createLine(relx,rely,relx+3.6,rely) #short line
   setLineWidth(a, h)
   setLineColor(b, h)
   setFillColor(b, h)
   rely = rely + 3.4

   redrawAll()
   
#root = Tkinter.Tk()
#root.update()

#d = ImageDialog(root)

#root.wait_window(d)
postalcode.py (7,893 bytes)   

mhanski

2006-04-18 16:45

developer   ~0010101

1. and 2. confirmed with scribus 1.3.3.1

rdebel

2006-04-22 09:32

reporter   ~0010301

This also happens
-on imported svg's
-on rotation by mouse

cbradney

2007-02-11 20:30

administrator   ~0015206

Maciej, can you please retest this with 1338cvs?

cbradney

2007-02-11 20:30

administrator   ~0015207

Maciej, can you please retest this with 1338cvs?

gpittman

2007-02-11 21:16

developer   ~0015210

Just tested this with 1.3.3.8cvs and it seems to be fixed.

gpittman

2007-02-11 21:24

developer   ~0015211

Well, let me qualify that.
Rotation is fixed and works OK. BUT if you then try to adjust Height or Width, things go haywire. Hard to even describe what's happening - page shifts, and so does the group.

gpittman

2007-02-11 21:25

developer   ~0015212

This is with the 4 February 2007 cvs by the way.

gpittman

2007-02-11 22:08

developer   ~0015214

Tried again with version 9 February 2007, same thing.

mhanski

2007-02-12 08:35

developer   ~0015217

tested with 1.3.3.8 from February 9:

-- issue 2. from the description seems to be gone now, both for manually created groups of both shapes and lines, and for the grouped lines created with the attached postalcode.py

-- issue 1.: the inoperable rotation point for grouped lines seems to be (wrongly) inherited from the properties of the grouped lines -- you cannot change the rotation point, even if you group lines along with _shapes_

-- agree with Greg that changing height/width of the grouped lines leads to some unpredictable behaviour: in my case, I slightly changed the width of the grouped lines, then set the rotation to 1 degree, and the group leaped off the page

Issue History

Date Modified Username Field Change
2006-02-26 21:10 gpittman New Issue
2006-02-26 21:10 gpittman File Added: postalcode.py
2006-04-18 16:45 mhanski Note Added: 0010101
2006-04-18 16:45 mhanski Status new => confirmed
2006-04-18 16:46 mhanski OS Version FC4 => any
2006-04-18 16:46 mhanski Platform => any
2006-04-18 16:46 mhanski Product Version 1.3.3cvs => 1.3.3.1
2006-04-18 16:46 mhanski Build 25 February 2006 =>
2006-04-22 09:01 mhanski Relationship added related to 0003689
2006-04-22 09:32 rdebel Note Added: 0010301
2006-04-22 09:48 mhanski Relationship deleted related to 0003689
2006-04-22 09:49 mhanski Relationship added has duplicate 0003689
2006-05-13 17:00 christoph_s Relationship added child of 0003812
2006-05-17 18:42 christoph_s Relationship added related to 0002931
2007-02-11 20:30 cbradney Note Added: 0015206
2007-02-11 20:30 cbradney Note Added: 0015207
2007-02-11 21:16 gpittman Note Added: 0015210
2007-02-11 21:24 gpittman Note Added: 0015211
2007-02-11 21:25 gpittman Note Added: 0015212
2007-02-11 22:08 gpittman Note Added: 0015214
2007-02-12 08:35 mhanski Note Added: 0015217
2008-12-22 21:34 cbradney Status confirmed => assigned
2008-12-22 21:34 cbradney Assigned To => pierremarchand
2008-12-22 21:34 cbradney Status assigned => resolved
2008-12-22 21:34 cbradney Fixed in Version => 1.3.5svn
2008-12-22 21:34 cbradney Resolution open => fixed
2008-12-22 21:35 cbradney Status resolved => closed