File indexing completed on 2024-05-26 05:15:30
0001 /* 0002 SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com> 0003 SPDX-FileCopyrightText: 2010 Sérgio Martins <sergio.martins@kdab.com> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0 0006 */ 0007 #pragma once 0008 0009 #include "timelineview.h" 0010 0011 #include <Akonadi/Collection> 0012 #include <Akonadi/Item> 0013 0014 #include <QMap> 0015 #include <QModelIndex> 0016 #include <QObject> 0017 0018 class QStandardItem; 0019 class QTreeWidget; 0020 0021 namespace KGantt 0022 { 0023 class GraphicsView; 0024 } 0025 0026 namespace EventViews 0027 { 0028 class TimelineItem; 0029 class RowController; 0030 0031 class TimelineViewPrivate : public QObject 0032 { 0033 Q_OBJECT 0034 public: 0035 explicit TimelineViewPrivate(TimelineView *parent = nullptr); 0036 ~TimelineViewPrivate() override; 0037 0038 TimelineItem *calendarItemForIncidence(const Akonadi::Item &incidence) const; 0039 void insertIncidence(const Akonadi::CollectionCalendar::Ptr &calendar, const Akonadi::Item &incidence); 0040 void insertIncidence(const Akonadi::CollectionCalendar::Ptr &calendar, const Akonadi::Item &incidence, QDate day); 0041 void removeIncidence(const Akonadi::Item &incidence); 0042 0043 public Q_SLOTS: 0044 // void overscale( KDGantt::View::Scale scale ); 0045 void itemSelected(const QModelIndex &index); 0046 void itemDoubleClicked(const QModelIndex &index); 0047 void itemChanged(QStandardItem *item); 0048 void contextMenuRequested(QPoint point); 0049 void newEventWithHint(const QDateTime &); 0050 0051 public: 0052 Akonadi::Item::List mSelectedItemList; 0053 KGantt::GraphicsView *mGantt = nullptr; 0054 QTreeWidget *mLeftView = nullptr; 0055 RowController *mRowController = nullptr; 0056 QMap<Akonadi::Collection::Id, TimelineItem *> mCalendarItemMap; 0057 QDate mStartDate, mEndDate; 0058 QDateTime mHintDate; 0059 0060 private: 0061 TimelineView *const q; 0062 }; 0063 } // namespace EventViews