def drawProfile(self):
     self.profileItm = ProfileColumnItem(self, self.scene(),
                                         QRectF(0, 0, self.profile.displayWidth(), 0),
                                         QPointF(0, self.maxY),
                                         self.legendFont,
                                         self.profile)
     self.maxY += self.profileItm.rect().height()
class ProfileItem(InteractiveRectItem):
    def __init__(self, parent, scene, rect, pos, profile):
        InteractiveRectItem.__init__(self, parent, scene, rect, pos)
        self.profile = profile
        self.headerFont = QFont()
        self.headerFont.setPointSize(12)
        self.legendFont = QFont()
        self.legendFont.setPointSize(10)
        self.maxY = 0
        self.spacing = 10
        self.drawLegend()
        self.drawProfileHeader()
        self.drawProfile()
        self.setRect(QRectF(0, 0, self.profile.displayWidth(), self.maxY))
    def drawLegend(self):
        self.legendItm = LegendItem(self, self.scene(),
                                    QRectF(0, 0, self.profile.displayWidth(), 0),
                                    QPoint(0, self.maxY),
                                    self.headerFont,
                                    self.legendFont,
                                    self.profile)
        self.maxY += self.legendItm.rect().height()
    def drawProfileHeader(self):
        self.headerItm = ProfileHeaderItem(self, self.scene(),
                                           QRectF(0, 0, self.profile.displayWidth(), 0),
                                           QPointF(0, self.maxY + self.spacing),
                                           self.headerFont,
                                           self.legendFont,
                                           self.profile)
        self.maxY += self.headerItm.rect().height() + self.spacing
    def drawProfile(self):
        self.profileItm = ProfileColumnItem(self, self.scene(),
                                            QRectF(0, 0, self.profile.displayWidth(), 0),
                                            QPointF(0, self.maxY),
                                            self.legendFont,
                                            self.profile)
        self.maxY += self.profileItm.rect().height()
    def editBed(self, bed):
        self.profileItm.editBed(bed)
    def createBedAtTop(self):
        self.profileItm.createBedOnTop()
    def deleteBed(self, bed):
        self.profileItm.deleteBed(bed)
    def deleteBedsAbove(self, bed):
        self.profileItm.deleteBedsAbove(bed)
    def deleteBedsBelow(self, bed):
        self.profileItm.deleteBedsBelow(bed)
    def createBedAtBottom(self):
        self.profileItm.createBedAtBottom()
    def renumberFromBase(self):
        self.profileItm.renumberFromBase()
    def renumberFromTop(self):
        self.profileItm.renumberFromTop()
    def mergeWithAbove(self, bed):
        self.profileItm.mergeWithAbove(bed)
    def mergeWithBelow(self, bed):
        self.profileItm.mergeWithBelow(bed)
    def createBedAbove(self, bed):
        self.profileItm.createBedAbove(bed)
    def createBedBelow(self, bed):
        self.profileItm.createBedBelow(bed)
    def moveUp(self, bed):
        self.profileItm.moveUp(bed)
    def moveDown(self, bed):
        self.profileItm.moveDown(bed)
    def splitProfileAbove(self, bed):
        self.profileItm.splitProfileAbove(bed)
    def splitProfileBelow(self, bed):
        self.profileItm.splitProfileBelow(bed)
    def insertProfileAbove(self, bed):
        self.profileItm.insertProfileAbove(bed)
    def insertProfileBelow(self, bed):
        self.profileItm.insertProfileBelow(bed)