dabo Commit
Revision 6606
Date: 2011-05-27 16:52:45 -0700 (Fri, 27 May 2011)
Author: Paul
Trac: http://trac.dabodev.com/changeset/6606

Changed:
U   trunk/dabo/lib/reportWriter.py

Log:
When using fixed-height Memos, if the data results in a memo longer than the
available height, nothing prints at all. Changed it to at least print a
<<< string too long >>> at font size 7, so the developer knows what the
problem is. 

The long-term solution involves being able to go line-by-line in the paragraph,
instead of paragraph-by-paragraph, and tweak the expr to print as much as
possible before adding ellipses. 


Diff:
Modified: trunk/dabo/lib/reportWriter.py
===================================================================
--- trunk/dabo/lib/reportWriter.py      2011-05-26 16:09:20 UTC (rev 6605)
+++ trunk/dabo/lib/reportWriter.py      2011-05-27 23:52:45 UTC (rev 6606)
@@ -1809,8 +1809,11 @@
                return deferred, neededHeight
 
 
-       def getStory(self, obj):
+       def getStory(self, obj, overrideExpr=None, overrideFontSize=None):
                width = self.getPt(obj.getProp("width"))
+               height = obj.getProp("height")
+               if height is not None:
+                       height = self.getPt(height)
                padLeft = self.getPt(obj.getProp("padLeft"))
                padRight = self.getPt(obj.getProp("padRight"))
                padTop = self.getPt(obj.getProp("padTop"))
@@ -1829,7 +1832,10 @@
 
                for fobject in objects:
                        objNeededHeight = 0
-                       expr = fobject.getProp("expr")
+                       if overrideExpr:
+                               expr = overrideExpr
+                       else:
+                               expr = fobject.getProp("expr")
 
                        if isinstance(s, basestring):
                                expr = expr.encode(self.Encoding)
@@ -1837,7 +1843,10 @@
                                expr = ustr(expr)
                        s = copy.deepcopy(s)
 
-                       s.fontSize = fobject.getProp("fontSize")
+                       if overrideFontSize:
+                               s.fontSize = overrideFontSize
+                       else:
+                               s.fontSize = fobject.getProp("fontSize")
                        s.fontName = fobject.getProp("fontName")
 
                        # If the specified font name isn't available, we need 
to substitute
@@ -1885,6 +1894,8 @@
                                        hackDeferredPara()
 
                neededHeight = objNeededHeight + padTop + padBottom
+               if height is not None and neededHeight > height and not 
overrideExpr:
+                       return self.getStory(obj, overrideExpr="<<< string too 
long >>>", overrideFontSize=7)
                return story, neededHeight
 
 



_______________________________________________
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