File indexing completed on 2024-04-28 15:19:00
0001 /* 0002 This file is part of the kcalcore library. 0003 0004 SPDX-FileCopyrightText: 1998 Preston Brown <pbrown@kde.org> 0005 SPDX-FileCopyrightText: 2000-2004 Cornelius Schumacher <schumacher@kde.org> 0006 SPDX-FileCopyrightText: 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com> 0007 SPDX-FileCopyrightText: 2006 David Jarvie <djarvie@kde.org> 0008 0009 SPDX-License-Identifier: LGPL-2.0-or-later 0010 */ 0011 0012 #ifndef KCALCORE_CALENDAR_P_H 0013 #define KCALCORE_CALENDAR_P_H 0014 0015 #include "calendar.h" 0016 #include "calfilter.h" 0017 0018 namespace KCalendarCore 0019 { 0020 /** 0021 Private class that helps to provide binary compatibility between releases. 0022 @internal 0023 */ 0024 //@cond PRIVATE 0025 class Q_DECL_HIDDEN Calendar::Private 0026 { 0027 public: 0028 Private() 0029 : mModified(false) 0030 , mNewObserver(false) 0031 , mObserversEnabled(true) 0032 , mDefaultFilter(new CalFilter) 0033 , batchAddingInProgress(false) 0034 , mDeletionTracking(true) 0035 { 0036 // Setup default filter, which does nothing 0037 mFilter = mDefaultFilter; 0038 mFilter->setEnabled(false); 0039 0040 mOwner.setName(QStringLiteral("Unknown Name")); 0041 mOwner.setEmail(QStringLiteral("unknown@nowhere")); 0042 } 0043 0044 ~Private() 0045 { 0046 if (mFilter != mDefaultFilter) { 0047 delete mFilter; 0048 } 0049 delete mDefaultFilter; 0050 } 0051 QTimeZone timeZoneIdSpec(const QByteArray &timeZoneId); 0052 0053 QString mProductId; 0054 Person mOwner; 0055 QTimeZone mTimeZone; 0056 QVector<QTimeZone> mTimeZones; 0057 bool mModified = false; 0058 bool mNewObserver = false; 0059 bool mObserversEnabled = false; 0060 QList<CalendarObserver *> mObservers; 0061 0062 CalFilter *mDefaultFilter = nullptr; 0063 CalFilter *mFilter = nullptr; 0064 0065 // These lists are used to put together related To-dos 0066 QMultiHash<QString, Incidence::Ptr> mOrphans; 0067 QMultiHash<QString, Incidence::Ptr> mOrphanUids; 0068 0069 // Lists for associating incidences to notebooks 0070 QMultiHash<QString, Incidence::Ptr> mNotebookIncidences; 0071 QHash<QString, QString> mUidToNotebook; 0072 QHash<QString, bool> mNotebooks; // name to visibility 0073 QHash<Incidence::Ptr, bool> mIncidenceVisibility; // incidence -> visibility 0074 QString mDefaultNotebook; // uid of default notebook 0075 QMap<QString, Incidence::List> mIncidenceRelations; 0076 bool batchAddingInProgress = false; 0077 bool mDeletionTracking = false; 0078 bool mIsLoading = false; 0079 QString mId; 0080 QString mName; 0081 QIcon mIcon; 0082 AccessMode mAccessMode = ReadWrite; 0083 }; 0084 0085 } 0086 0087 #endif