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