コード例 #1
0
ファイル: PowerHist.cpp プロジェクト: ebrandt/GoldenCheetah
    virtual void draw(QPainter *painter,
              const QwtScaleMap &xMap, const QwtScaleMap &,
              const QRect &rect) const
    {
    RideItem *rideItem = parent->rideItem;

    if (! rideItem)
        return;

    const HrZones *zones       = parent->mainWindow->hrZones();
    int zone_range     = rideItem->hrZoneRange();

    if (parent->shadeHRZones() && (zone_range >= 0)) {
        QList <int> zone_lows = zones->getZoneLows(zone_range);
        int num_zones = zone_lows.size();
        if (num_zones > 0) {
        for (int z = 0; z < num_zones; z ++) {
            QRect r = rect;

            QColor shading_color =
            hrZoneColor(z, num_zones);
            shading_color.setHsv(
                     shading_color.hue(),
                     shading_color.saturation() / 4,
                     shading_color.value()
                     );
            r.setLeft(xMap.transform(zone_lows[z]));
            if (z + 1 < num_zones)
            r.setRight(xMap.transform(zone_lows[z + 1]));
            if (r.right() >= r.left())
            painter->fillRect(r, shading_color);
        }
        }
    }
    }
コード例 #2
0
ファイル: PowerHist.cpp プロジェクト: ebrandt/GoldenCheetah
    HrHistZoneLabel(PowerHist *_parent, int _zone_number)
    {
    parent = _parent;
    zone_number = _zone_number;

    RideItem *rideItem = parent->rideItem;

    if (! rideItem)
        return;

    const HrZones *zones       = parent->mainWindow->hrZones();
    int zone_range     = rideItem->hrZoneRange();

    setZ(1.0 + zone_number / 100.0);

    // create new zone labels if we're shading
    if (parent->shadeHRZones() && (zone_range >= 0)) {
        QList <int> zone_lows = zones->getZoneLows(zone_range);
        QList <QString> zone_names = zones->getZoneNames(zone_range);
        int num_zones = zone_lows.size();
        assert(zone_names.size() == num_zones);
        if (zone_number < num_zones) {
        watts =
            (
             (zone_number + 1 < num_zones) ?
             0.5 * (zone_lows[zone_number] + zone_lows[zone_number + 1]) :
             (
              (zone_number > 0) ?
              (1.5 * zone_lows[zone_number] - 0.5 * zone_lows[zone_number - 1]) :
              2.0 * zone_lows[zone_number]
              )
             );

        text = QwtText(zone_names[zone_number]);
        text.setFont(QFont("Helvetica",24, QFont::Bold));
        QColor text_color = hrZoneColor(zone_number, num_zones);
        text_color.setAlpha(64);
        text.setColor(text_color);
        }
    }

    }