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 ®ionsConfig); 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 };