dabo Commit
Revision 6025
Date: 2010-09-22 14:18:16 -0700 (Wed, 22 Sep 2010)
Author: Paul
Trac: http://trac.dabodev.com/changeset/6025

Changed:
U   trunk/ide/ReportDesigner.py

Log:
Refactored the Ruler class so the instance knows its position, not merely its
orientation. This should fix the error Jacek's been getting on Windows XP 
that I wasn't able to reproduce but could have happened if the Paint event 
occurred at an unexpected time. 


Diff:
Modified: trunk/ide/ReportDesigner.py
===================================================================
--- trunk/ide/ReportDesigner.py 2010-09-22 21:04:06 UTC (rev 6024)
+++ trunk/ide/ReportDesigner.py 2010-09-22 21:18:16 UTC (rev 6025)
@@ -2087,15 +2087,15 @@
                self._rw.UseTestCursor = True
 
                self._rulers = {}
-               self._rulers["top"] = self.getRuler("h")
-               self._rulers["bottom"] = self.getRuler("h")
+               self._rulers["top"] = self.getRuler("t")
+               self._rulers["bottom"] = self.getRuler("b")
 
                def addBand(bandObj):
                        caption = bandObj.__class__.__name__
                        if isinstance(bandObj, (GroupHeader, GroupFooter)):
                                caption = "%s: %s" % (caption, 
bandObj.parent.get("expr"))
-                       self._rulers["%s-left" % caption] = self.getRuler("v")
-                       self._rulers["%s-right" % caption] = self.getRuler("v")
+                       self._rulers["%s-left" % caption] = self.getRuler("l")
+                       self._rulers["%s-right" % caption] = self.getRuler("r")
                        b = DesignerBand(self, Caption=caption)
                        b.ReportObject = bandObj
                        bandObj.DesignerObject = b
@@ -2161,7 +2161,6 @@
                tr = self._rulers["top"]
                tr.Length = pageWidth
                tr.pointLength = pointPageWidth
-               tr.rulerPos = "t"
 
                for index in range(len(self._bands)):
                        band = self._bands[index]
@@ -2187,12 +2186,10 @@
                        lr = self._rulers["%s-left" % band.Caption]
                        lr.Length = bandCanvasHeight
                        lr.pointLength = pointLength
-                       lr.rulerPos = "l"
 
                        rr = self._rulers["%s-right" % band.Caption]
                        rr.Length = bandCanvasHeight
                        rr.pointLength = pointLength
-                       rr.rulerPos = "r"
 
                        band.Left = ml + lr.Thickness
                        lr.Position = (0, band.Top)
@@ -2205,7 +2202,6 @@
                br = self._rulers["bottom"]
                br.Length = pageWidth
                br.pointLength = pointPageWidth
-               br.rulerPos = "b"
 
                tr.Position = (lr.Width,0)
                br.Position = (lr.Width, totPageHeight)
@@ -2226,7 +2222,7 @@
                self.showPosition()
 
 
-       def getRuler(self, orientation):
+       def getRuler(self, pos):
                defaultThickness = 20
                defaultLength = 1
 
@@ -2235,7 +2231,8 @@
                class Ruler(DesignerPanel):
                        def initProperties(self):
                                self.BackColor = (192,128,192)
-                               self._orientation = orientation[0].lower()
+                               self.rulerPos = pos
+                               self._orientation = {"t":"h", "b":"h", "l":"v", 
"r":"v"}[pos]
                                self.pointLength = 0
 
                        def copy(self):
@@ -2285,13 +2282,13 @@
                                                        break
                                        if ruleSize:
                                                rescaledPos = (pos*z)
-                                               if self.rulerPos == "r":
+                                               if rulerPos == "r":
                                                        dc.DrawLine(0, 
rescaledPos, ruleSize, rescaledPos)
-                                               if self.rulerPos == "l":
+                                               if rulerPos == "l":
                                                        
dc.DrawLine(self.Thickness, rescaledPos, self.Thickness - ruleSize, rescaledPos)
-                                               if self.rulerPos == "b":
+                                               if rulerPos == "b":
                                                        
dc.DrawLine(rescaledPos, 0, rescaledPos, ruleSize)
-                                               if self.rulerPos == "t":
+                                               if rulerPos == "t":
                                                        
dc.DrawLine(rescaledPos, self.Thickness, rescaledPos, self.Thickness - ruleSize)
 
 



_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: 
http://leafe.com/archives/byMID/[email protected]

Reply via email to