File indexing completed on 2024-04-28 05:35:49

0001 /*
0002     SPDX-FileCopyrightText: 2015 Martin Klapetek <mklapetek@kde.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <CalendarEvents/CalendarEventsPlugin>
0010 #include <QObject>
0011 
0012 #include <KConfigWatcher>
0013 #include <KHolidays/HolidayRegion>
0014 #include <KSharedConfig>
0015 
0016 class HolidaysEventsPlugin : public CalendarEvents::CalendarEventsPlugin
0017 {
0018     Q_OBJECT
0019     Q_PLUGIN_METADATA(IID "org.kde.CalendarEventsPlugin" FILE "holidayeventsplugin.json")
0020     Q_INTERFACES(CalendarEvents::CalendarEventsPlugin)
0021 
0022 public:
0023     explicit HolidaysEventsPlugin(QObject *parent = nullptr);
0024     ~HolidaysEventsPlugin() override;
0025 
0026     void loadEventsForDateRange(const QDate &startDate, const QDate &endDate) override;
0027 
0028 private:
0029     void updateSettings(const KConfigGroup &regionsConfig);
0030 
0031     QDate m_lastStartDate;
0032     QDate m_lastEndDate;
0033     QList<KHolidays::HolidayRegion *> m_regions;
0034     QMultiHash<QDate, CalendarEvents::EventData> m_lastData;
0035     QHash<QDate, CalendarEvents::CalendarEventsPlugin::SubLabel> m_lastSubLabelData;
0036     KConfigWatcher::Ptr m_configWatcher;
0037 };