mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-24 10:52:52 +00:00
286 lines
5.9 KiB
C++
286 lines
5.9 KiB
C++
/*
|
|
Copyright (c) 2007 Loïc Corbasson <loic.corbasson@gmail.com>
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
This library 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
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Boston, MA 02110-1301, USA.
|
|
*/
|
|
#include "calendardecoration.h"
|
|
|
|
#include <QDate>
|
|
|
|
using namespace EventViews::CalendarDecoration;
|
|
|
|
Element::Element( const QString &id )
|
|
: mId( id )
|
|
{
|
|
}
|
|
|
|
Element::~Element()
|
|
{
|
|
}
|
|
|
|
QString Element::id() const
|
|
{
|
|
return mId;
|
|
}
|
|
|
|
QString Element::elementInfo() const
|
|
{
|
|
return QString();
|
|
}
|
|
|
|
QString Element::shortText()
|
|
{
|
|
return QString();
|
|
}
|
|
|
|
QString Element::longText()
|
|
{
|
|
return QString();
|
|
}
|
|
|
|
QString Element::extensiveText()
|
|
{
|
|
return QString();
|
|
}
|
|
|
|
QPixmap Element::newPixmap( const QSize & )
|
|
{
|
|
return QPixmap();
|
|
}
|
|
|
|
KUrl Element::url()
|
|
{
|
|
return KUrl();
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
StoredElement::StoredElement( const QString &id ) : Element( id )
|
|
{
|
|
}
|
|
|
|
StoredElement::StoredElement( const QString &id, const QString &shortText )
|
|
: Element( id ), mShortText( shortText )
|
|
{
|
|
}
|
|
|
|
StoredElement::StoredElement( const QString &id, const QString &shortText,
|
|
const QString &longText )
|
|
: Element( id ), mShortText( shortText ), mLongText( longText )
|
|
{
|
|
}
|
|
|
|
StoredElement::StoredElement( const QString &id, const QString &shortText,
|
|
const QString &longText,
|
|
const QString &extensiveText )
|
|
: Element( id ), mShortText( shortText ), mLongText( longText ),
|
|
mExtensiveText( extensiveText )
|
|
{
|
|
}
|
|
|
|
StoredElement::StoredElement( const QString &id, const QPixmap &pixmap )
|
|
: Element( id ), mPixmap( pixmap )
|
|
{
|
|
}
|
|
|
|
void StoredElement::setShortText( const QString &t )
|
|
{
|
|
mShortText = t;
|
|
}
|
|
|
|
QString StoredElement::shortText()
|
|
{
|
|
return mShortText;
|
|
}
|
|
|
|
void StoredElement::setLongText( const QString &t )
|
|
{
|
|
mLongText = t;
|
|
}
|
|
|
|
QString StoredElement::longText()
|
|
{
|
|
return mLongText;
|
|
}
|
|
|
|
void StoredElement::setExtensiveText( const QString &t )
|
|
{
|
|
mExtensiveText = t;
|
|
}
|
|
|
|
QString StoredElement::extensiveText()
|
|
{
|
|
return mExtensiveText;
|
|
}
|
|
|
|
void StoredElement::setPixmap( const QPixmap &p )
|
|
{
|
|
mPixmap = p;
|
|
}
|
|
|
|
QPixmap StoredElement::pixmap()
|
|
{
|
|
return mPixmap;
|
|
}
|
|
|
|
void StoredElement::setUrl( const KUrl &u )
|
|
{
|
|
mUrl = u;
|
|
}
|
|
|
|
KUrl StoredElement::url()
|
|
{
|
|
return mUrl;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
Decoration::Decoration()
|
|
{
|
|
}
|
|
|
|
Decoration::~Decoration()
|
|
{
|
|
Q_FOREACH ( Element::List lst, mDayElements ) {
|
|
qDeleteAll( lst );
|
|
lst.clear();
|
|
}
|
|
Q_FOREACH ( Element::List lst, mWeekElements ) {
|
|
qDeleteAll( lst );
|
|
lst.clear();
|
|
}
|
|
Q_FOREACH ( Element::List lst, mMonthElements ) {
|
|
qDeleteAll( lst );
|
|
lst.clear();
|
|
}
|
|
Q_FOREACH ( Element::List lst, mYearElements ) {
|
|
qDeleteAll( lst );
|
|
lst.clear();
|
|
}
|
|
mDayElements.clear();
|
|
mWeekElements.clear();
|
|
mMonthElements.clear();
|
|
mYearElements.clear();
|
|
}
|
|
|
|
Element::List Decoration::dayElements( const QDate &date )
|
|
{
|
|
QMap<QDate,Element::List>::ConstIterator it;
|
|
it = mDayElements.constFind( date );
|
|
if ( it == mDayElements.constEnd() ) {
|
|
return registerDayElements( createDayElements( date ), date );
|
|
} else {
|
|
return *it;
|
|
}
|
|
}
|
|
|
|
Element::List Decoration::weekElements( const QDate &d )
|
|
{
|
|
QDate date = weekDate( d );
|
|
QMap<QDate,Element::List>::ConstIterator it;
|
|
it = mWeekElements.constFind( date );
|
|
if ( it == mWeekElements.constEnd() ) {
|
|
return registerWeekElements( createWeekElements( date ), date );
|
|
} else {
|
|
return *it;
|
|
}
|
|
}
|
|
|
|
Element::List Decoration::monthElements( const QDate &d )
|
|
{
|
|
QDate date = monthDate( d );
|
|
QMap<QDate,Element::List>::ConstIterator it;
|
|
it = mMonthElements.constFind( date );
|
|
if ( it == mMonthElements.constEnd() ) {
|
|
return registerMonthElements( createMonthElements( date ), date );
|
|
} else {
|
|
return *it;
|
|
}
|
|
}
|
|
|
|
Element::List Decoration::yearElements( const QDate &d )
|
|
{
|
|
QDate date = yearDate( d );
|
|
QMap<QDate,Element::List>::ConstIterator it;
|
|
it = mYearElements.constFind( date );
|
|
if ( it == mYearElements.constEnd() ) {
|
|
return registerYearElements( createYearElements( date ), date );
|
|
} else {
|
|
return *it;
|
|
}
|
|
}
|
|
|
|
Element::List Decoration::registerDayElements( Element::List e, const QDate &d )
|
|
{
|
|
mDayElements.insert( d, e );
|
|
return e;
|
|
}
|
|
|
|
Element::List Decoration::registerWeekElements( Element::List e, const QDate &d )
|
|
{
|
|
mWeekElements.insert( weekDate( d ), e );
|
|
return e;
|
|
}
|
|
|
|
Element::List Decoration::registerMonthElements( Element::List e, const QDate &d )
|
|
{
|
|
mMonthElements.insert( monthDate( d ), e );
|
|
return e;
|
|
}
|
|
|
|
Element::List Decoration::registerYearElements( Element::List e, const QDate &d )
|
|
{
|
|
mYearElements.insert( yearDate( d ), e );
|
|
return e;
|
|
}
|
|
|
|
Element::List Decoration::createDayElements( const QDate & )
|
|
{
|
|
return Element::List();
|
|
}
|
|
|
|
Element::List Decoration::createWeekElements( const QDate & )
|
|
{
|
|
return Element::List();
|
|
}
|
|
|
|
Element::List Decoration::createMonthElements( const QDate & )
|
|
{
|
|
return Element::List();
|
|
}
|
|
|
|
Element::List Decoration::createYearElements( const QDate & )
|
|
{
|
|
return Element::List();
|
|
}
|
|
|
|
QDate Decoration::weekDate( const QDate &date )
|
|
{
|
|
QDate result = date;
|
|
result.addDays( date.dayOfWeek() - 1 );
|
|
return result;
|
|
}
|
|
|
|
QDate Decoration::monthDate( const QDate &date )
|
|
{
|
|
return QDate( date.year(), date.month(), 1 );
|
|
}
|
|
|
|
QDate Decoration::yearDate( const QDate &date )
|
|
{
|
|
return QDate( date.year(), 1, 1 );
|
|
}
|
|
|