diff --git a/kholidays/kholidays.cpp b/kholidays/kholidays.cpp index 480ca874d..591ac357c 100644 --- a/kholidays/kholidays.cpp +++ b/kholidays/kholidays.cpp @@ -1,130 +1,130 @@ /* This file is part of KOrganizer. Copyright (c) 2001 Cornelius Schumacher Copyright (c) 2004 Allen Winter This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include #include #include #include #include "kholidays.h" #include "kholidays_version.h" extern "C" { char *parse_holidays( const char *, int year, short force ); /** \internal */ struct holiday { char *string; /* name of holiday, 0=not a holiday */ int color; /* color code, see scanholiday.lex */ unsigned short dup; /* reference count */ holiday *next; /* single-linked list if more than one holida appears on a given date */ }; extern struct holiday holidays[366]; } QStringList KHolidays::locations() { QStringList files = KGlobal::dirs()->findAllResources( "data", "libkholidays/holiday_*", - false, true ); + KStandardDirs::NoDuplicates ); QStringList locs; QStringList::ConstIterator it; for ( it = files.begin(); it != files.end(); ++it ) locs.append( (*it).mid((*it).lastIndexOf('_') + 1) ); return locs; } KHolidays::KHolidays( const QString& location ) : mLocation( location ) { mHolidayFile = KStandardDirs::locate( "data", "libkholidays/holiday_" + location ); mYearLast = 0; } KHolidays::~KHolidays() { } QString KHolidays::location() const { return mLocation; } QString KHolidays::shortText( const QDate &date ) { QList lst = getHolidays( date ); if ( !lst.isEmpty() ) return lst.first().text; else return QString(); } bool KHolidays::parseFile( const QDate &date ) { // kDebug()<<"KHolidays::parseFile( date=" << date << ")"< lst = getHolidays( date ); if ( !lst.isEmpty() ) return lst.first().text; else return QString(); } QList KHolidays::getHolidays( const QDate &date ) { QList list; if ( !parseFile( date ) ) return list; struct holiday *hd = &holidays[date.dayOfYear()-1]; while ( hd ) { if ( hd->string ) { KHoliday holiday; holiday.text = QString::fromUtf8( hd->string ); holiday.shortText = holiday.text; holiday.Category = (hd->color == 2/*red*/) || (hd->color == 9/*weekend*/) ? HOLIDAY : WORKDAY; list.append( holiday ); } hd = hd->next; } return list; } int KHolidays::category( const QDate &date ) { if ( !parseFile(date) ) return WORKDAY; return (holidays[date.dayOfYear()-1].color == 2/*red*/) || (holidays[date.dayOfYear()-1].color == 9/*weekend*/) ? HOLIDAY : WORKDAY; }