dabo Commit
Revision 5630
Date: 2010-02-03 11:05:00 -0800 (Wed, 03 Feb 2010)
Author: Paul
Trac: http://trac.dabodev.com/changeset/5630
Changed:
U trunk/dabo/lib/reportWriter.py
U trunk/ide/ReportDesigner.py
Log:
Fixed problem with copy/paste introduced yesterday: parent doesn't always
apply.
Enhanced copy/paste to resize the pasted-into band if possible to
show the newly-pasted object.
Added reportWriter.Drawable.getTopPt() method to support this enhancement.
Diff:
Modified: trunk/dabo/lib/reportWriter.py
===================================================================
--- trunk/dabo/lib/reportWriter.py 2010-02-03 17:03:02 UTC (rev 5629)
+++ trunk/dabo/lib/reportWriter.py 2010-02-03 19:05:00 UTC (rev 5630)
@@ -397,6 +397,19 @@
self.MajorProperty = "x"
+ def getTopPt(self):
+ """Return the top pt of the object. Convenient as y can
designate the
+ top, bottom, or middle of the object, depending on the vAnchor
setting."""
+ ret = self.getPt(self.getProp("y"))
+ vAnchor = self.getProp("vAnchor").lower()
+ height = self.getPt(self.getProp("height"))
+ if vAnchor == "bottom":
+ ret += height
+ if vAnchor == "middle":
+ ret += (height / Decimal("2"))
+ return ret
+
+
class Report(ReportObject):
"""Represents the report."""
Modified: trunk/ide/ReportDesigner.py
===================================================================
--- trunk/ide/ReportDesigner.py 2010-02-03 17:03:02 UTC (rev 5629)
+++ trunk/ide/ReportDesigner.py 2010-02-03 19:05:00 UTC (rev 5630)
@@ -437,11 +437,16 @@
return objs
def getReportObjectFromMemento(self, memento,
parent=None):
- parentInfo =
memento.pop("_parentBandInfo_")
- if "Group" in parentInfo[0]:
- parent =
rdc.getGroupBandByExpr(parentInfo[1])[parentInfo[0]]
- else:
- parent =
rdc.ReportForm[parentInfo[0]]
+ try:
+ parentInfo =
memento.pop("_parentBandInfo_")
+ except KeyError:
+ parentInfo = None
+
+ if parentInfo:
+ if "Group" in parentInfo[0]:
+ parent =
rdc.getGroupBandByExpr(parentInfo[1])[parentInfo[0]]
+ else:
+ parent =
rdc.ReportForm[parentInfo[0]]
obj =
rw._getReportObject(memento["type"], parent)
del(memento["type"])
for k, v in memento.items():
@@ -560,6 +565,7 @@
reInit = False
selectedObjects = []
+ max_y_needed = 0 # resize band if needed to show any
objects
for obj in objs:
if isinstance(obj, Variable):
# paste into Variables whether or not
Variables selected
@@ -572,6 +578,7 @@
reInit = True
else:
if selBand is not None:
+ max_y_needed =
max(max_y_needed, obj.getTopPt())
pfObjects =
selBand.setdefault("Objects", [])
obj.parent = selBand
else:
@@ -579,6 +586,10 @@
pfObjects.append(obj)
selectedObjects.append(obj)
+ if selBand and selBand.getProp("Height") is not None:
+ # Resize the pasted-into band to accomodate the
new object, if necessary:
+ selBand.setProp("Height",
str(max(selBand.getProp("Height"), max_y_needed)))
+
self.ActiveEditor.propsChanged(reinit=reInit)
self.SelectedObjects = selectedObjects
_______________________________________________
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]