/usr/include/KF5/KDeclarative/calendarevents/calendareventsplugin.h is in libkf5declarative-dev 5.44.0-0ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 | /*
* Copyright 2015 Martin Klapetek <mklapetek@kde.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifndef CALENDAREVENTSPLUGIN_H
#define CALENDAREVENTSPLUGIN_H
#include <QObject>
#include <QDateTime>
#include <QMultiHash>
#include <QSharedDataPointer>
#include "calendarevents_export.h"
namespace CalendarEvents {
class CALENDAREVENTS_EXPORT EventData
{
public:
enum EventType {
Holiday, // Any holiday
Event, // General event
Todo // A Todo item
};
EventData();
EventData(const EventData &other);
~EventData();
EventData &operator=(const EventData &other);
/**
* The start date and time of this event
*/
QDateTime startDateTime() const;
/**
* Set the start date-time of this event
*
* @param startDateTime the date-time of when the event is starting
*/
void setStartDateTime(const QDateTime &startDateTime);
/**
* The end date and time of this event
*/
QDateTime endDateTime() const;
/**
* Set the end date-time of this event
*
* @param endDateTime the date-time of when the event is ending
*/
void setEndDateTime(const QDateTime &endDateTime);
/**
* If true, this event goes on the whole day (eg. a holiday)
*/
bool isAllDay() const;
/**
* If set to true, it will be displayed in the Calendar agenda
* without any time besides it, marked as "going on all day"
*
* This is useful for single-day events only, for multiple-day
* events, leave to false (default)
*
* @param isAllDay set to true if the event takes all day, false otherwise
* (defaults to false)
*/
void setIsAllDay(bool isAllDay);
/**
* If true, this event won't mark the day in the calendar grid
* The main purpose for this flag is to support
* namedays, where in some countries the calendars have
* different name in them every day. This is just a minor holiday
* and as such should not mark the calendar grid, otherwise
* the whole grid would be in a different color.
*/
bool isMinor() const;
/**
* If set to true, it won't be marked in the calendar grid
*
* @param isMinor true if it's a minor event (like a nameday holiday),
* false otherwise (defaults to false)
*/
void setIsMinor(bool isMinor);
/**
* Event title
*/
QString title() const;
/**
* Sets the title of the event
*
* @param title The event title
*/
void setTitle(const QString &title);
/**
* Event description, can provide more details about the event
*/
QString description() const;
/**
* Sets the event description, which allows to add more details
* about this event
*
* @param description The description
*/
void setDescription(const QString &description);
/**
* Type of the current event, eg. a holiday, an event or a todo item
*/
EventType type() const;
/**
* Sets the event type, eg. a holiday, an event or a todo item
*
* @param type The event type,
*/
void setEventType(EventType type);
/**
* The color that should be used to mark this event with
* It comes in the HTML hex format, eg. #AARRGGBB or #RRGGBB
*/
QString eventColor() const;
/**
* This is to support various calendar colors the user might
* have configured elsewhere
*
* @param color The color for this event in the HTML hex format
* eg. #AARRGGBB or #RRGGBB (this is passed directly
* to QML)
*/
void setEventColor(const QString &color);
/**
* Unique ID of the event
*/
QString uid() const;
/**
* Sets the uid of the event
*
* This is a mandatory field only if you want to use
* the eventModified/eventRemoved signals, otherwise
* setting it is optional
*
* @param uid A unique id, recommended is to use the plugin name as prefix (to keep it unique)
*/
void setUid(const QString &uid);
private:
class Private;
QSharedDataPointer<Private> d;
};
class CALENDAREVENTS_EXPORT CalendarEventsPlugin : public QObject
{
Q_OBJECT
public:
explicit CalendarEventsPlugin(QObject *parent = nullptr);
virtual ~CalendarEventsPlugin();
/**
* When this is called, the plugin should load all events data
* between those two date ranges. Once the data are ready, it should
* just emit the dataReady() signal. The range is usually one month
*
* @param startDate the start of the range
* @param endDate the end of the range
*/
virtual void loadEventsForDateRange(const QDate &startDate, const QDate &endDate) = 0;
Q_SIGNALS:
/**
* Emitted when the plugin has loaded the events data
*
* @param data A hash containing a QDate key for the event
* in the value, CalendarEvents::EventData, which holds all
* the details for the given event
* It's a multihash as there can be multiple events
* in the same day
* For multi-day events, insert just one with the key
* being the startdate of the event
*/
void dataReady(const QMultiHash<QDate, CalendarEvents::EventData> &data);
/**
* Should be emitted when there is a modification of an event
* that was previously returned via the dataReady() signal
*
* @param event The modified event data
*/
void eventModified(const CalendarEvents::EventData &modifiedEvent);
/**
* Should be emitted when the plugin removes some event
* from its collection
*
* @param uid The uid of the event that was removed
*/
void eventRemoved(const QString &uid);
};
}
Q_DECLARE_INTERFACE(CalendarEvents::CalendarEventsPlugin, "org.kde.CalendarEventsPlugin")
#endif
|