Exemplo n.º 1
0
void AlarmListViewItem::construct()
{
    if ( mAlarm ) {
        // Alarm type:
        QString type;
        switch ( mAlarm->type() ) {
        case KCal::Alarm::Display:
            type = i18n("Reminder Dialog");
            break;
        case KCal::Alarm::Procedure:
            type = i18n("Program");
            break;
        case KCal::Alarm::Email:
            type = i18n("Email");
            break;
        case KCal::Alarm::Audio:
            type = i18n("Audio");
            break;
        default:
            type = i18n("Unknown");
            break;
        }
        setText( ColAlarmType, type );

        // Alarm offset:
        QString offsetstr;
        int offset = 0;
        if ( mAlarm->hasStartOffset() ) {
            offset = mAlarm->startOffset().asSeconds();
            if ( offset < 0 ) {
                offsetstr = i18n("N days/hours/minutes before/after the start/end", "%1 before the start");
                offset = -offset;
            } else {
                offsetstr = i18n("N days/hours/minutes before/after the start/end", "%1 after the start");
            }
        } else if ( mAlarm->hasEndOffset() ) {
            offset = mAlarm->endOffset().asSeconds();
            if ( offset < 0 ) {
                offsetstr = i18n("N days/hours/minutes before/after the start/end", "%1 before the end");
                offset = -offset;
            } else {
                offsetstr = i18n("N days/hours/minutes before/after the start/end", "%1 after the end");
            }
        }

        offset = offset / 60; // make minutes
        int useoffset = offset;

        if ( offset % (24*60) == 0 && offset>0 ) { // divides evenly into days?
            useoffset = offset / (24*60);
            offsetstr = offsetstr.arg( i18n("1 day", "%n days", useoffset ) );
        } else if (offset % 60 == 0 && offset>0 ) { // divides evenly into hours?
            useoffset = offset / 60;
            offsetstr = offsetstr.arg( i18n("1 hour", "%n hours", useoffset ) );
        } else {
            useoffset = offset;
            offsetstr = offsetstr.arg( i18n("1 minute", "%n minutes", useoffset ) );
        }
        setText( ColAlarmOffset, offsetstr );

        // Alarm repeat
        if ( mAlarm->repeatCount()>0 ) {
            setText( ColAlarmRepeat, i18n("Yes") );
        } else {
            setText( ColAlarmRepeat, i18n("No") );
        }
    }
}