~ubuntu-branches/ubuntu/trusty/kdepimlibs/trusty

« back to all changes in this revision

Viewing changes to kholidays/parsers/plan2/holidayparserdriverplan.cpp

  • Committer: Package Import Robot
  • Author(s): Rohan Garg, Rohan Garg, Philip Muškovac
  • Date: 2013-11-23 17:36:44 UTC
  • mfrom: (1.1.102)
  • Revision ID: package-import@ubuntu.com-20131123173644-p5ow94192ezsny8g
Tags: 4:4.11.80-0ubuntu1
[ Rohan Garg ]
* New upstream beta release
  - Bump akonadi requirement to 1.10.45
  - Update install files
  - Update symbols

[ Philip Muškovac ]
* kdepimlibs-dev/-dbg breaks/replaces kdepim-runtime/-dbg (<< 4:4.11.80)

Show diffs side-by-side

added added

removed removed

Lines of Context:
124
124
    m_fileName.clear();
125
125
    m_fileDescription.clear();
126
126
    m_fileCalendarTypes.clear();
127
 
    m_fileCalendarTypes.append( "gregorian" );
 
127
    m_fileCalendarTypes.append( QLatin1String("gregorian") );
128
128
 
129
129
    // Default to files internal metadata
130
 
    setParseCalendar( "gregorian" );
 
130
    setParseCalendar( QLatin1String("gregorian") );
131
131
    m_parseYear = QDate::currentDate().year();
132
132
    std::istringstream iss2( std::string( m_scanData.data() ) );
133
133
    m_scanner->yyrestart( &iss2 );
139
139
    // with region, type and language sub groups separated by -, and with name optional
140
140
    QFileInfo file( m_filePath );
141
141
    if ( file.exists() ) {
142
 
        QStringList metadata = file.fileName().split( '_' );
143
 
        if ( metadata[0] == "holiday" && metadata.count() > 2 ) {
 
142
        QStringList metadata = file.fileName().split( QLatin1Char('_') );
 
143
        if ( metadata[0] == QLatin1String("holiday") && metadata.count() > 2 ) {
144
144
            if ( m_fileCountryCode.isEmpty() ) {
145
145
                setFileCountryCode( metadata[1].toUpper() );
146
146
            }
147
147
            if ( m_fileLanguageCode.isEmpty() ) {
148
 
                QStringList language = metadata[2].split( '-' );
 
148
                QStringList language = metadata[2].split( QLatin1Char('-') );
149
149
                m_fileLanguageCode = language[0];
150
150
                if ( language.count() > 1 ) {
151
 
                    setFileLanguageCode( language[0].append( '_' ).append( language[1].toUpper() ) );
 
151
                    setFileLanguageCode( language[0].append( QLatin1Char('_') ).append( language[1].toUpper() ) );
152
152
                } else {
153
153
                  setFileLanguageCode( language[0] );
154
154
                }
179
179
// Adjust month numbering for Hebrew civil calendar leap month
180
180
int HolidayParserDriverPlan::adjustedMonthNumber( int month )
181
181
{
182
 
    if ( m_eventCalendarType != "hebrew" ||              // Only adjust Hebrew months
183
 
         m_parseCalendar->calendarType() != "hebrew" ||
 
182
    if ( m_eventCalendarType != QLatin1String("hebrew") ||              // Only adjust Hebrew months
 
183
         m_parseCalendar->calendarType() != QLatin1String("hebrew") ||
184
184
         !m_parseCalendar->isLeapYear( m_parseYear ) ||  // Only adjust in leap year
185
185
         month < 6 ) {                                   // Only adjust from Adar onwards
186
186
        return month;
245
245
 
246
246
QDate HolidayParserDriverPlan::easter( int year )
247
247
{
248
 
    if ( m_parseCalendar->calendarType() != "gregorian" ) {
 
248
    if ( m_parseCalendar->calendarType() != QLatin1String("gregorian") ) {
249
249
        return QDate();
250
250
    }
251
251
 
266
266
 
267
267
QDate HolidayParserDriverPlan::pascha( int year )
268
268
{
269
 
    if ( m_parseCalendar->calendarType() == "gregorian" ||
270
 
         m_parseCalendar->calendarType() == "julian" ) {
 
269
    if ( m_parseCalendar->calendarType() == QLatin1String("gregorian") ||
 
270
         m_parseCalendar->calendarType() == QLatin1String("julian") ) {
271
271
        // Algorithm taken from Tondering
272
272
        // http://www.tondering.dk/claus/cal/node3.html#SECTION003137000000000000000
273
273
        // Gives Orthodox Easter in the Julian Calendar, need to convert afterwards to Gregorian if needed
278
278
        int month = 3 + ( ( l + 40 ) / 44 );
279
279
        int day = l + 28 - ( 31 * ( month / 4 ) );
280
280
 
281
 
        if ( m_parseCalendar->calendarType() == "julian" ) {
 
281
        if ( m_parseCalendar->calendarType() == QLatin1String("julian") ) {
282
282
            return QDate::fromJulianDay( julianDay( year, month, day ) );
283
283
        }
284
284
 
285
 
        if ( m_parseCalendar->calendarType() == "gregorian" ) {
286
 
            setParseCalendar( "julian" );
 
285
        if ( m_parseCalendar->calendarType() == QLatin1String("gregorian") ) {
 
286
            setParseCalendar( QLatin1String("julian") );
287
287
            int paschaJd = julianDay( year, month, day );
288
 
            setParseCalendar( "gregorian" );
 
288
            setParseCalendar( QLatin1String("gregorian") );
289
289
            return QDate::fromJulianDay( paschaJd );
290
290
        }
291
291
    }
312
312
// Return jd of Easter if Gregorian
313
313
int HolidayParserDriverPlan::julianDayFromEaster( void )
314
314
{
315
 
    if ( m_eventCalendarType == "gregorian" ) {
 
315
    if ( m_eventCalendarType == QLatin1String("gregorian") ) {
316
316
        return m_parseYearEaster.toJulianDay();
317
317
    } else {
318
 
        error( "Can only use Easter in Gregorian event rule" );
 
318
        error( QLatin1String("Can only use Easter in Gregorian event rule") );
319
319
        return -1;
320
320
    }
321
321
}
323
323
// Return jd of Orthodox Easter if Gregorian or Julian
324
324
int HolidayParserDriverPlan::julianDayFromPascha( void )
325
325
{
326
 
    if ( m_eventCalendarType == "gregorian" || m_eventCalendarType == "julian" ) {
 
326
    if ( m_eventCalendarType == QLatin1String("gregorian") || m_eventCalendarType == QLatin1String("julian") ) {
327
327
        return m_parseYearPascha.toJulianDay();
328
328
    } else {
329
 
        error( "Can only use Easter in Gregorian or Julian event rule" );
 
329
        error( QLatin1String("Can only use Easter in Gregorian or Julian event rule") );
330
330
        return -1;
331
331
    }
332
332
}
648
648
        return;
649
649
    }
650
650
 
651
 
    if ( m_eventCalendarType == "gregorian" ) {
 
651
    if ( m_eventCalendarType == QLatin1String("gregorian") ) {
652
652
        setEvent( m_parseYearEaster.toJulianDay() + offset, 0, duration );
653
653
    } else {
654
 
        error( "Can only use Easter in Gregorian event rule" );
 
654
        error( QLatin1String("Can only use Easter in Gregorian event rule") );
655
655
    }
656
656
}
657
657
 
668
668
        return;
669
669
    }
670
670
 
671
 
    if ( m_eventCalendarType == "gregorian" || m_eventCalendarType == "julian" ) {
 
671
    if ( m_eventCalendarType == QLatin1String("gregorian") || m_eventCalendarType == QLatin1String("julian") ) {
672
672
        setEvent( m_parseYearPascha.toJulianDay(), offset, duration );
673
673
    } else {
674
 
        error( "Can only use Pascha in Julian and Gregorian event rule" );
 
674
        error( QLatin1String("Can only use Pascha in Julian and Gregorian event rule") );
675
675
    }
676
676
}
677
677