#!/usr/bin/env python #**************************************************************************** # wpview.py, provides the view for waypoint details # # FlyWay, a VFR/IFR Route Planner for Pilots # Copyright (C) 2002, Douglas W. Bell # # This is free software; you can redistribute it and/or modify it under the # terms of the GNU General Public License, Version 2. This program is # distributed in the hope that it will be useful, but WITTHOUT ANY WARRANTY. #***************************************************************************** import routeview from qt import * class WpView(QScrollView): """Waypoint description window""" idStart = (20, 20) thirdsCol = (100, 250, 400) halfCol = (80, 280) rowSize = 20 def __init__(self, parent=None, name=None): QScrollView.__init__(self, parent, name) self.viewport().setBackgroundMode(QWidget.PaletteBase) self.viewport().setFocusPolicy(QWidget.NoFocus) self.selWp = None self.normFont = self.font() def setSelWp(self, wp): """Slot to set the selected waypoint""" self.selWp = wp if self.selWp: self.resizeContents(routeview.RouteView.totalWidth, \ WpView.idStart[1] \ + self.selWp.detailNumLines() * WpView.rowSize) else: self.resizeContents(1, 1) self.viewport().update() def paintWp(self, painter, wp): """Paint waypoint info""" painter.setFont(self.normFont) painter.drawText(WpView.idStart[0], WpView.idStart[1], wp.ident()) painter.drawText(WpView.halfCol[0], WpView.idStart[1], \ wp.description()) info = wp.detailList() row = WpView.idStart[1] + WpView.rowSize for col in WpView.thirdsCol: painter.drawText(col, row, info.pop(0)) while info: row += WpView.rowSize painter.drawText(WpView.halfCol[0], row, info.pop(0)) painter.drawText(WpView.halfCol[1], row, info.pop(0)) def drawContents(self, painter, clipX=None, clipY=None, \ clipW=None, clipH=None): """Paint view""" if clipX == None: # none is for wrong overridden function return QFrame.drawContents(self, painter) pal = self.palette() painter.setPen(pal.color(QPalette.Active, QColorGroup.Text)) if self.selWp: self.paintWp(painter, self.selWp)