Esempio n. 1
0
QVariant ChartItemModel::data( const QModelIndex &index, int role ) const
{
    QString r;
    if ( role == KDChart::DatasetPenRole ) r = "DatasetPenRole";
    if ( role == KDChart::DatasetBrushRole ) r = "DatasetBrushRole";
    if ( role == KDChart::DataValueLabelAttributesRole ) r = "DataValueLabelAttributesRole";
    if ( role == KDChart::ThreeDAttributesRole ) r = "ThreeDAttributesRole";
    if ( role == KDChart::LineAttributesRole ) r = "LineAttributesRole";
    if ( role == KDChart::ThreeDLineAttributesRole ) r = "ThreeDLineAttributesRole";
    if ( role == KDChart::BarAttributesRole ) r = "BarAttributesRole";
    if ( role == KDChart::StockBarAttributesRole ) r = "StockBarAttributesRole";
    if ( role == KDChart::ThreeDBarAttributesRole ) r = "ThreeDBarAttributesRole";
    if ( role == KDChart::PieAttributesRole ) r = "PieAttributesRole";
    if ( role == KDChart::ThreeDPieAttributesRole ) r = "ThreeDPieAttributesRole";
    if ( role == KDChart::DataHiddenRole ) r = "DataHiddenRole";
    if ( role == KDChart::ValueTrackerAttributesRole ) r = "ValueTrackerAttributesRole";
    if ( role == KDChart::CommentRole ) r = "CommentRole";
    QVariant result;
    if ( role == Qt::DisplayRole ) {
        r = "DisplayRole";
        switch ( index.column() ) {
            case 0: result = bcwsCost( index.row() ); break;
            case 1: result = bcwpCost( index.row() ); break;
            case 2: result = acwpCost( index.row() ); break;
            case 3: result = bcwsEffort( index.row() ); break;
            case 4: result = bcwpEffort( index.row() ); break;
            case 5: result = acwpEffort( index.row() ); break;
            default: break;
        }
        //kDebug()<<index<<r<<result;
        return result;
    }  else if ( role == KDChart::DatasetBrushRole ) {
        return headerData( index.column(), Qt::Horizontal, role );
    }  else if ( role == KDChart::DatasetPenRole ) {
        return headerData( index.column(), Qt::Horizontal, role );
    }
    //kDebug()<<index<<r<<result;
    return result;
}
Esempio n. 2
0
QVariant ChartItemModel::data( const QModelIndex &index, int role ) const
{
    QVariant result;
    if ( role == Qt::DisplayRole ) {
        if ( ! m_localizeValues ) {
            return data( index, Qt::EditRole );
        } else {
            QLocale locale;
            // TODO: temporary workaround while KLocale/money logic still used
            Locale *planLocale;
            Locale *tmpPlanLocale = 0;
            if (project()) {
                planLocale = project()->locale();
            } else {
                tmpPlanLocale = new Locale();
                planLocale = tmpPlanLocale;
            }
            switch ( index.column() ) {
            case BCWSCost: result = planLocale->formatMoney( bcwsCost( index.row() ), QString(), 0 ); break;
            case BCWPCost: result = planLocale->formatMoney( bcwpCost( index.row() ), QString(), 0 ); break;
            case ACWPCost: result = planLocale->formatMoney( acwpCost( index.row() ), QString(), 0 ); break;
            case BCWSEffort: result = locale.toString( bcwsEffort( index.row() ), 'f', 0 ); break;
            case BCWPEffort: result = locale.toString( bcwpEffort( index.row() ), 'f', 0 ); break;
            case ACWPEffort: result = locale.toString( acwpEffort( index.row() ), 'f', 0 ); break;
            case SPICost: result = locale.toString( spiCost( index.row() ), 'f', 2 ); break;
            case CPICost: result = locale.toString( cpiCost( index.row() ), 'f', 2 ); break;
            case SPIEffort: result = locale.toString( spiEffort( index.row() ), 'f', 2 ); break;
            case CPIEffort: result = locale.toString( cpiEffort( index.row() ), 'f', 2 ); break;
            default: break;
            }
            delete tmpPlanLocale;
        }
        //debugPlan<<index<<role<<result;
        return result;
    } else if ( role == Qt::EditRole ) {
        switch ( index.column() ) {
        case BCWSCost: result = bcwsCost( index.row() ); break;
        case BCWPCost: result = bcwpCost( index.row() ); break;
        case ACWPCost: result = acwpCost( index.row() ); break;
        case BCWSEffort: result = bcwsEffort( index.row() ); break;
        case BCWPEffort: result = bcwpEffort( index.row() ); break;
        case ACWPEffort: result = acwpEffort( index.row() ); break;
        case SPICost: result = spiCost( index.row() ); break;
        case CPICost: result = cpiCost( index.row() ); break;
        case SPIEffort: result = spiEffort( index.row() ); break;
        case CPIEffort: result = cpiEffort( index.row() ); break;
        default: break;
        }
        //debugPlan<<index<<role<<result;
        return result;
    } else if ( role == Qt::ForegroundRole ) {
        double v = 0.0;
        switch ( index.column() ) {
        case SPICost: v = spiCost( index.row() ); break;
        case CPICost: v = cpiCost( index.row() ); break;
        case SPIEffort: v = spiEffort( index.row() ); break;
        case CPIEffort: v = cpiEffort( index.row() ); break;
        default: break;
        }
        if ( v > 0.0 && v < 1.0 ) {
            result = QBrush( Qt::red );
        }
        return result;
    }  else if ( role == KChart::DatasetBrushRole ) {
        return headerData( index.column(), Qt::Horizontal, role );
    }  else if ( role == KChart::DatasetPenRole ) {
        return headerData( index.column(), Qt::Horizontal, role );
    }
    //debugPlan<<index<<role<<result;
    return result;
}
Esempio n. 3
0
double ChartItemModel::spiCost( int day ) const
{
    double p = bcwpCost( day );
    double s = bcwsCost( day );
    return s == 0.0 ? 0.0 : p / s;
}