diff --git a/calendarviews/viewcalendar.cpp b/calendarviews/viewcalendar.cpp index 3be44da528..131c2ce0ae 100644 --- a/calendarviews/viewcalendar.cpp +++ b/calendarviews/viewcalendar.cpp @@ -1,226 +1,211 @@ #include "viewcalendar.h" #include "eventview.h" #include "helper.h" #include #include using namespace EventViews; ViewCalendar::~ViewCalendar() { } MultiViewCalendar::~MultiViewCalendar() { } KCalCore::Incidence::List MultiViewCalendar::incidences() const { KCalCore::Incidence::List list; foreach(const ViewCalendar::Ptr &cal, mSubCalendars) { if (cal->getCalendar()) { list += cal->getCalendar()->incidences(); } } return list; } KCalCore::Journal::List MultiViewCalendar::journals(const QDate &date) const { KCalCore::Journal::List list; foreach(const ViewCalendar::Ptr &cal, mSubCalendars) { if (cal->getCalendar()) { list += cal->getCalendar()->journals(date); } } return list; } int MultiViewCalendar::calendars() const { return mSubCalendars.size(); } ViewCalendar::Ptr MultiViewCalendar::findCalendar(const KCalCore::Incidence::Ptr &incidence) const { foreach(const ViewCalendar::Ptr &cal, mSubCalendars) { if (cal->isValid(incidence)) { return cal; } } return ViewCalendar::Ptr(); } void MultiViewCalendar::addCalendar(const ViewCalendar::Ptr &calendar) { if (!mSubCalendars.contains(calendar)) { mSubCalendars.append(calendar); } } void MultiViewCalendar::setETMCalendar(const Akonadi::ETMCalendar::Ptr &calendar) { if (!mETMCalendar) { mETMCalendar = AkonadiViewCalendar::Ptr(new AkonadiViewCalendar); mETMCalendar->mEventView = mEventView; } mETMCalendar->mCalendar = calendar; addCalendar(mETMCalendar); } Akonadi::ETMCalendar::Ptr MultiViewCalendar::etmCalendar() const { if (mETMCalendar) { return mETMCalendar->mCalendar; } else { return Akonadi::ETMCalendar::Ptr(); } } QString MultiViewCalendar::displayName(const KCalCore::Incidence::Ptr &incidence) const { ViewCalendar::Ptr cal = findCalendar(incidence); if (cal) { return cal->displayName(incidence); } return QString(); } QString MultiViewCalendar::iconForIncidence(const KCalCore::Incidence::Ptr &incidence) const { ViewCalendar::Ptr cal = findCalendar(incidence); if (cal) { return cal->iconForIncidence(incidence); } return QString(); } bool MultiViewCalendar::isValid(const KCalCore::Incidence::Ptr &incidence) const { ViewCalendar::Ptr cal = findCalendar(incidence); return cal; } QColor MultiViewCalendar::resourceColor(const KCalCore::Incidence::Ptr &incidence) const { ViewCalendar::Ptr cal = findCalendar(incidence); if (cal) { return cal->resourceColor(incidence); } return QColor(); } QString MultiViewCalendar::uid(const KCalCore::Incidence::Ptr &incidence) const { ViewCalendar::Ptr cal = findCalendar(incidence); if (cal) { return cal->uid(incidence); } else if (incidence) { kWarning() << "Unknown incidence for MultiViewCalendar" << incidence->uid(); } //using it without a valid incidence don't make sense, so ASSERT Q_ASSERT(incidence); return QString(); } Akonadi::Item MultiViewCalendar::item(const KCalCore::Incidence::Ptr &incidence) const { if (mETMCalendar) { if (mETMCalendar->isValid(incidence)) { return mETMCalendar->item(incidence); } } return Akonadi::Item(); } QList< ViewCalendar::Ptr > MultiViewCalendar::subCalendars() const { return mSubCalendars; } AkonadiViewCalendar::~AkonadiViewCalendar() { } bool AkonadiViewCalendar::isValid(const KCalCore::Incidence::Ptr &incidence) const { if (!mCalendar) { return false; } return mCalendar->isValid(incidence); } Akonadi::Item AkonadiViewCalendar::item(const KCalCore::Incidence::Ptr &incidence) const { if (!mCalendar || !incidence) { return Akonadi::Item(); } - bool ok = false; - //FIXME - Akonadi::Item::Id id = incidence->customProperty("VOLATILE", "AKONADI-ID").toLongLong(&ok); - - if (id == -1 || !ok) { - id = mCalendar->item(incidence).id(); - - if (id == -1) { - // Ok, we really don't know the ID, give up. - kDebug() << "Item is invalid. uid = " - << incidence->instanceIdentifier(); - return Akonadi::Item(); - } - return mCalendar->item(incidence); - } - return mCalendar->item(id); + return mCalendar->item(incidence); } QString AkonadiViewCalendar::displayName(const KCalCore::Incidence::Ptr &incidence) const { return CalendarSupport::displayName( mCalendar.data(), item(incidence).parentCollection() ); } QColor AkonadiViewCalendar::resourceColor(const KCalCore::Incidence::Ptr &incidence) const { // We need the uptodate parent collection and not an old version of it. return EventViews::resourceColor(mCalendar->collection(item(incidence).parentCollection().id()), mEventView->preferences() ); } QString AkonadiViewCalendar::uid(const KCalCore::Incidence::Ptr &incidence) const { return mCalendar->uniqueInstanceIdentifier(incidence); } QString AkonadiViewCalendar::iconForIncidence(const KCalCore::Incidence::Ptr &incidence) const { QString iconName; Akonadi::Collection collection = item(incidence).parentCollection(); while ( collection.parentCollection().isValid() && collection.parentCollection() != Akonadi::Collection::root() ) { collection = mCalendar->collection( collection.parentCollection().id() ); } if ( collection.isValid() && collection.hasAttribute() ) { iconName = collection.attribute()->iconName(); } return iconName; } KDateTime::Spec AkonadiViewCalendar::timeSpec() const { return mCalendar->timeSpec(); } KCalCore::Calendar::Ptr AkonadiViewCalendar::getCalendar() const { return mCalendar; }