File indexing completed on 2024-04-21 03:52:50

0001 /*
0002   This file is part of the kcalcore library.
0003 
0004   SPDX-FileCopyrightText: 2001-2003 Cornelius Schumacher <schumacher@kde.org>
0005   SPDX-FileCopyrightText: 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com>
0006 
0007   SPDX-License-Identifier: LGPL-2.0-or-later
0008 */
0009 
0010 #ifndef KCALCORE_INCIDENCE_P_H
0011 #define KCALCORE_INCIDENCE_P_H
0012 
0013 #include "incidence.h"      // For Incidence::RelType, etc.
0014 #include "incidencebase_p.h"
0015 
0016 namespace KCalendarCore
0017 {
0018 
0019 //@cond PRIVATE
0020 /**
0021   Private class that helps to provide binary compatibility between releases.
0022   @internal
0023 */
0024 
0025 class Incidence;
0026 
0027 class IncidencePrivate : public KCalendarCore::IncidenceBasePrivate
0028 {
0029 public:
0030     IncidencePrivate();
0031     IncidencePrivate(const IncidencePrivate &p);
0032     explicit IncidencePrivate(const Incidence &);
0033     void clear();
0034     void init(Incidence *q, const IncidencePrivate &other);
0035 
0036     virtual bool validStatus(Incidence::Status);
0037 
0038     QDateTime mCreated; // creation datetime
0039     QString mDescription; // description string
0040     QString mSummary; // summary string
0041     QString mLocation; // location string
0042     QStringList mCategories; // category list
0043     Attachment::List mAttachments; // attachments list
0044     Alarm::List mAlarms; // alarms list
0045     QStringList mResources; // resources list (not calendar resources)
0046     QString mStatusString; // status string, for custom status
0047     QString mSchedulingID; // ID for scheduling mails
0048     QMap<Incidence::RelType, QString> mRelatedToUid; // incidence uid this is related to, for each relType
0049     QDateTime mRecurrenceId; // recurrenceId
0050     Conference::List mConferences; // conference list
0051 
0052     float mGeoLatitude = INVALID_LATLON; // Specifies latitude in decimal degrees
0053     float mGeoLongitude = INVALID_LATLON; // Specifies longitude in decimal degrees
0054     mutable Recurrence *mRecurrence = nullptr; // recurrence
0055     int mRevision = 0; // revision number
0056     int mPriority = 0; // priority: 0 = unknown, 1 = highest,  ... 9 = lowest.
0057     Incidence::Status mStatus = Incidence::StatusNone; // status
0058     Incidence::Secrecy mSecrecy = Incidence::SecrecyPublic; // secrecy
0059     QString mColor; // background color
0060     bool mDescriptionIsRich = false; // description string is richtext.
0061     bool mSummaryIsRich = false; // summary string is richtext.
0062     bool mLocationIsRich = false; // location string is richtext.
0063     bool mThisAndFuture = false;
0064     bool mLocalOnly = false; // allow changes that won't go to the server
0065 };
0066 //@endcond
0067 
0068 }
0069 
0070 #endif