agendainterface/agendautil/inc/agendaentry_p.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 03 May 2010 12:30:32 +0300
changeset 23 fd30d51f876b
parent 18 c198609911f9
child 55 2c54b51f39c4
permissions -rw-r--r--
Revision: 201015 Kit: 201018

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: Header file for utilities and private implementaions
* used by AgendaEntry.
*
*/

#ifndef AGENDAENTRY_P_H
#define AGENDAENTRY_P_H

// System includes
#include <QTime>

// User includes
#include "agendaentry.h"

class AgendaAttendeePrivate
{
public:
	AgendaAttendeePrivate();

public:
	QAtomicInt ref;

private:
	friend class AgendaAttendee;
	QString m_address;
	AgendaAttendee::ParticipantRole m_role;
	AgendaAttendee::StatusType m_status;
	QString m_commonName;

	bool m_responseRequested;
};

class AgendaCategoryPrivate
{
public:
	AgendaCategoryPrivate();

public:
	QAtomicInt ref;

private:
	friend class AgendaCategory;
	AgendaCategory::CategoryType m_categoryType;
	QString m_extendedCategory;
};

class AgendaAlarmPrivate
{
public:
	AgendaAlarmPrivate();

public:
	QAtomicInt ref;

private:
	friend class AgendaAlarm;
	QString m_soundName;
	int m_timeOffset;
};

class AgendaGeoValuePrivate
{
public:
	AgendaGeoValuePrivate();

public:
	QAtomicInt ref;

private:
	friend class AgendaGeoValue;
	double mLatitude;
	double mLongitude;
};

class AgendaRepeatRulePrivate
{
public:
	AgendaRepeatRulePrivate();

public:
	QAtomicInt ref;

private:
	friend class AgendaRepeatRule;
	AgendaRepeatRule::RuleType m_repeatRuleType;
	QList<AgendaRepeatRule::Day> m_days;
	QList<AgendaRepeatRule::Month> m_months;
	QList<int> m_monthDays;
	AgendaRepeatRule::Day m_weekStartDay;
	QDateTime m_startDate;
	QDateTime m_untilDate;
	int m_interval;
};

class AgendaEntryPrivate
{
public:
	AgendaEntryPrivate();
	void addCategory(const AgendaCategory& category);
	bool deleteCategory(const AgendaCategory& category);
	void addAttendee(const AgendaAttendee& attendee);
	bool deleteAttendee(const AgendaAttendee& attendee);
	void setToDoCompleted(bool complete, QDateTime& dateTime);

public:
	QAtomicInt ref;

private:
	friend class AgendaEntry;
	friend class AgendaUtilPrivate;

	QList<AgendaAttendee> m_attendees;
	QList<AgendaCategory> m_categories;

	QDateTime m_startTime;
	QDateTime m_endTime;

	QString m_summaryText;
	QString m_description;
	QString m_location;

	ulong m_id;
	int m_priority;
	int m_favourite;

	AgendaEntry::Type m_entryType;
	AgendaEntry::Method m_method;
	AgendaEntry::Status m_entryStatus;

	AgendaAlarm m_alarm;
	AgendaGeoValue m_geoValue;
	AgendaRepeatRule m_repeatRule;

	QList<QDate> m_rDates;
	QDateTime m_recurrenceId;
	QDateTime m_lastModTime;
	QDateTime m_completedDateTime;
	QDateTime m_dtStamp;
};

#endif // AGENDAENTRY_P_H

// End of file  --Don't remove this.