KCalendarCore

occurrenceiterator.h
Go to the documentation of this file.
1/*
2 This file is part of the kcalcore library.
3
4 SPDX-FileCopyrightText: 2013 Christian Mollekopf <mollekopf@kolabsys.com>
5
6 SPDX-License-Identifier: LGPL-2.0-or-later
7*/
8/**
9 @file
10 This file is part of the API for handling calendar data and
11 defines the OccurrenceIterator class.
12
13 @author Christian Mollekopf <mollekopf@kolabsys.com>
14 */
15
16#ifndef KCALCORE_OCCURRENCEITERATOR_H
17#define KCALCORE_OCCURRENCEITERATOR_H
18
19#include "incidence.h"
20#include "kcalendarcore_export.h"
21
22namespace KCalendarCore
23{
24class Calendar;
25/**
26 * Iterate over calendar items in a calendar.
27 *
28 * The iterator takes recurrences and exceptions to recurrences into account
29 *
30 * The iterator does not iterate the occurrences of all incidences chronologically.
31 * @since 4.11
32 */
33class KCALENDARCORE_EXPORT OccurrenceIterator
34{
35public:
36 /**
37 * Creates iterator that iterates over all occurrences of all incidences
38 * between @param start and @param end (inclusive)
39 */
40 explicit OccurrenceIterator(const Calendar &calendar, const QDateTime &start = QDateTime(), const QDateTime &end = QDateTime());
41
42 /**
43 * Creates iterator that iterates over all occurrences
44 * of @param incidence between @param start and @param end (inclusive)
45 */
46 OccurrenceIterator(const Calendar &calendar,
48 const QDateTime &start = QDateTime(),
49 const QDateTime &end = QDateTime());
51 bool hasNext() const;
52
53 /**
54 * Advance iterator to the next occurrence.
55 */
56 void next();
57
58 /**
59 * Returns either main incidence or exception, depending on occurrence.
60 */
62
63 /**
64 * Returns the start date of the occurrence
65 *
66 * This is either the occurrence date, or the start date of an exception
67 * which overrides that occurrence.
68 */
70
71 /**
72 * Returns the end date of the occurrence
73 *
74 * For incidence that supports end date (events and due date for todos),
75 * this is computed from the duration or directly the end date of
76 * the occurrence or an exception overriding that occurrence. For incidences
77 * without end date, an invalid date is returned.
78 * @since 5.87
79 */
81
82 /**
83 * Returns the recurrence Id.
84 *
85 * This is the date where the occurrence starts without exceptions,
86 * this id is used to identify one exact occurrence.
87 */
88 QDateTime recurrenceId() const;
89
90private:
91 Q_DISABLE_COPY(OccurrenceIterator)
92 //@cond PRIVATE
93 class Private;
95 //@endcond
96};
97
98} // namespace
99
100#endif
Represents the main calendar class.
Definition calendar.h:133
QSharedPointer< Incidence > Ptr
A shared pointer to an Incidence.
Definition incidence.h:117
QDateTime recurrenceId() const
Returns the recurrence Id.
Incidence::Ptr incidence() const
Returns either main incidence or exception, depending on occurrence.
OccurrenceIterator(const Calendar &calendar, const QDateTime &start=QDateTime(), const QDateTime &end=QDateTime())
Creates iterator that iterates over all occurrences of all incidences between.
QDateTime occurrenceStartDate() const
Returns the start date of the occurrence.
QDateTime occurrenceEndDate() const
Returns the end date of the occurrence.
void next()
Advance iterator to the next occurrence.
Q_SCRIPTABLE QString start(QString train="")
This file is part of the API for handling calendar data and defines the Incidence class.
Namespace for all KCalendarCore types.
Definition alarm.h:37
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Jan 24 2025 11:53:53 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.