File indexing completed on 2024-04-14 03:50:40

0001 /*
0002   This file is part of the kcalcore library.
0003 
0004   SPDX-FileCopyrightText: 2020 Nicolas Fella <nicolas.fella@gmx.de>
0005   SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #ifndef KCALCORE_CALENDARPLUGIN_H
0009 #define KCALCORE_CALENDARPLUGIN_H
0010 
0011 #include "kcalendarcore_export.h"
0012 
0013 #include <KCalendarCore/Calendar>
0014 
0015 namespace KCalendarCore
0016 {
0017 /**
0018   @brief
0019   A plugin that provides calendar data.
0020 
0021   It allows calendar applications to consume data provided by multiple
0022   sources, e.g. local ical files or remote calendars.
0023 
0024   @since 5.85
0025 
0026 */
0027 class KCALENDARCORE_EXPORT CalendarPlugin : public QObject
0028 {
0029     Q_OBJECT
0030 public:
0031     CalendarPlugin(QObject *parent, const QVariantList &args);
0032 
0033     /**
0034      * The set of calendars defined by this plugin.
0035      *
0036      * @return QList of calendars.
0037      */
0038     virtual QList<Calendar::Ptr> calendars() const = 0;
0039 
0040 Q_SIGNALS:
0041     /**
0042      * Emitted when the set of calendars changed.
0043      */
0044     void calendarsChanged();
0045 
0046 private:
0047     void *d;
0048 };
0049 
0050 }
0051 
0052 #endif