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 };