1 /* 2 This file is part of Kontact. 3 4 SPDX-FileCopyrightText: 2003 Tobias Koenig <tokoe@kde.org> 5 SPDX-FileCopyrightText: 2005-2006, 2008-2009 Allen Winter <winter@kde.org> 6 7 SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0 8 */ 9 10 #pragma once 11 12 #include <Akonadi/Calendar/ETMCalendar> 13 #include <KontactInterface/Summary> 14 15 class KOrganizerPlugin; 16 17 namespace Akonadi 18 { 19 class Item; 20 class IncidenceChanger; 21 } 22 23 class QGridLayout; 24 class QLabel; 25 26 class ApptSummaryWidget : public KontactInterface::Summary 27 { 28 Q_OBJECT 29 30 public: 31 ApptSummaryWidget(KOrganizerPlugin *plugin, QWidget *parent); 32 ~ApptSummaryWidget() override; 33 summaryHeight()34 int summaryHeight() const override 35 { 36 return 3; 37 } 38 39 void configUpdated(); 40 void updateSummary(bool force = false) override 41 { 42 Q_UNUSED(force) 43 updateView(); 44 } 45 46 protected: 47 Q_REQUIRED_RESULT bool eventFilter(QObject *obj, QEvent *e) override; 48 49 private Q_SLOTS: 50 void updateView(); 51 void popupMenu(const QString &uid); 52 void viewEvent(const QString &uid); 53 void removeEvent(const Akonadi::Item &item); 54 55 private: 56 Akonadi::ETMCalendar::Ptr mCalendar; 57 Akonadi::IncidenceChanger *mChanger = nullptr; 58 59 QGridLayout *mLayout = nullptr; 60 QList<QLabel *> mLabels; 61 KOrganizerPlugin *mPlugin = nullptr; 62 int mDaysAhead; 63 bool mShowBirthdaysFromCal = false; 64 bool mShowAnniversariesFromCal = false; 65 bool mShowMineOnly = false; 66 }; 67 68