File indexing completed on 2025-03-09 04:51:38

0001 /*
0002   This file is part of KOrganizer.
0003 
0004   SPDX-FileCopyrightText: 2007 Till Adam <adam@kde.org>
0005 
0006   SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com>
0007   SPDX-FileCopyrightText: 2010 Andras Mantia <andras@kdab.com>
0008   SPDX-FileCopyrightText: 2010 SĂ©rgio Martins <sergio.martins@kdab.com>
0009 
0010   SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0
0011 */
0012 
0013 #pragma once
0014 
0015 #include "koeventview.h"
0016 
0017 namespace Akonadi
0018 {
0019 class IncidenceChanger;
0020 }
0021 
0022 namespace EventViews
0023 {
0024 class TimelineView;
0025 }
0026 
0027 /**
0028   This class provides a view ....
0029 */
0030 class KOTimelineView : public KOEventView
0031 {
0032     Q_OBJECT
0033 public:
0034     explicit KOTimelineView(QWidget *parent = nullptr);
0035     ~KOTimelineView() override;
0036 
0037     [[nodiscard]] Akonadi::Item::List selectedIncidences() override;
0038     [[nodiscard]] KCalendarCore::DateList selectedIncidenceDates() override;
0039     [[nodiscard]] int currentDateCount() const override;
0040     void showDates(const QDate &, const QDate &, const QDate &preferredMonth = QDate()) override;
0041     void showIncidences(const Akonadi::Item::List &incidenceList, const QDate &date) override;
0042     void updateView() override;
0043     void changeIncidenceDisplay(const Akonadi::Item &incidence, Akonadi::IncidenceChanger::ChangeType) override;
0044     [[nodiscard]] int maxDatesHint() const override
0045     {
0046         return 0;
0047     }
0048 
0049     [[nodiscard]] bool eventDurationHint(QDateTime &startDt, QDateTime &endDt, bool &allDay) override;
0050     void setIncidenceChanger(Akonadi::IncidenceChanger *changer) override;
0051 
0052     [[nodiscard]] CalendarSupport::CalPrinterBase::PrintType printType() const override;
0053 
0054 public Q_SLOTS:
0055     void calendarAdded(const Akonadi::CollectionCalendar::Ptr &calendar) override;
0056     void calendarRemoved(const Akonadi::CollectionCalendar::Ptr &calendar) override;
0057 
0058 private:
0059     KOEventPopupMenu *mEventPopup = nullptr;
0060     EventViews::TimelineView *mTimeLineView = nullptr;
0061 };