File indexing completed on 2025-03-09 04:51:38
0001 /* 0002 This file is part of KOrganizer. 0003 SPDX-FileCopyrightText: 2007 Till Adam <adam@kde.org> 0004 0005 SPDX-FileCopyrightText: 2010 Klarälvdalens Datakonsult AB, a KDAB Group company <info@kdab.com> 0006 SPDX-FileCopyrightText: 2010 Andras Mantia <andras@kdab.com> 0007 SPDX-FileCopyrightText: 2010 Sérgio Martins <sergio.martins@kdab.com> 0008 0009 SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0 0010 */ 0011 0012 #include "kotimelineview.h" 0013 #include "koeventpopupmenu.h" 0014 #include "prefs/koprefs.h" 0015 0016 #include <EventViews/TimeLineView> 0017 0018 #include <QVBoxLayout> 0019 0020 KOTimelineView::KOTimelineView(QWidget *parent) 0021 : KOEventView(parent) 0022 { 0023 auto vbox = new QVBoxLayout(this); 0024 vbox->setContentsMargins({}); 0025 mTimeLineView = new EventViews::TimelineView(KOPrefs::instance()->eventViewsPreferences(), this); 0026 vbox->addWidget(mTimeLineView); 0027 mEventPopup = eventPopup(); 0028 0029 connect(mTimeLineView, &EventViews::TimelineView::showIncidencePopupSignal, mEventPopup, &KOEventPopupMenu::showIncidencePopup); 0030 0031 connect(mTimeLineView, &EventViews::TimelineView::showNewEventPopupSignal, this, &KOTimelineView::showNewEventPopup); 0032 0033 connect(mTimeLineView, &EventViews::EventView::datesSelected, this, &KOEventView::datesSelected); 0034 0035 connect(mTimeLineView, &EventViews::EventView::shiftedEvent, this, &KOEventView::shiftedEvent); 0036 0037 connect(mTimeLineView, &EventViews::EventView::incidenceSelected, this, &KOrg::BaseView::incidenceSelected); 0038 0039 connect(mTimeLineView, &EventViews::EventView::showIncidenceSignal, this, &KOrg::BaseView::showIncidenceSignal); 0040 0041 connect(mTimeLineView, &EventViews::EventView::editIncidenceSignal, this, &KOrg::BaseView::editIncidenceSignal); 0042 0043 connect(mTimeLineView, &EventViews::EventView::deleteIncidenceSignal, this, &KOrg::BaseView::deleteIncidenceSignal); 0044 0045 connect(mTimeLineView, &EventViews::EventView::cutIncidenceSignal, this, &KOrg::BaseView::cutIncidenceSignal); 0046 0047 connect(mTimeLineView, &EventViews::EventView::copyIncidenceSignal, this, &KOrg::BaseView::copyIncidenceSignal); 0048 0049 connect(mTimeLineView, &EventViews::EventView::pasteIncidenceSignal, this, &KOrg::BaseView::pasteIncidenceSignal); 0050 0051 connect(mTimeLineView, &EventViews::EventView::toggleAlarmSignal, this, &KOrg::BaseView::toggleAlarmSignal); 0052 0053 connect(mTimeLineView, &EventViews::EventView::toggleTodoCompletedSignal, this, &KOrg::BaseView::toggleTodoCompletedSignal); 0054 0055 connect(mTimeLineView, &EventViews::EventView::copyIncidenceToResourceSignal, this, &KOrg::BaseView::copyIncidenceToResourceSignal); 0056 0057 connect(mTimeLineView, &EventViews::EventView::moveIncidenceToResourceSignal, this, &KOrg::BaseView::moveIncidenceToResourceSignal); 0058 0059 connect(mTimeLineView, &EventViews::EventView::dissociateOccurrencesSignal, this, &KOrg::BaseView::dissociateOccurrencesSignal); 0060 0061 connect(mTimeLineView, qOverload<>(&EventViews::TimelineView::newEventSignal), this, qOverload<>(&KOTimelineView::newEventSignal)); 0062 0063 connect(mTimeLineView, 0064 qOverload<const QDate &>(&EventViews::TimelineView::newEventSignal), 0065 this, 0066 qOverload<const QDate &>(&KOTimelineView::newEventSignal)); 0067 0068 connect(mTimeLineView, 0069 qOverload<const QDateTime &>(&EventViews::TimelineView::newEventSignal), 0070 this, 0071 qOverload<const QDateTime &>(&KOTimelineView::newEventSignal)); 0072 0073 connect(mTimeLineView, 0074 qOverload<const QDateTime &, const QDateTime &>(&EventViews::TimelineView::newEventSignal), 0075 this, 0076 qOverload<const QDateTime &, const QDateTime &>(&KOTimelineView::newEventSignal)); 0077 0078 connect(mTimeLineView, &EventViews::EventView::newTodoSignal, this, &KOrg::BaseView::newTodoSignal); 0079 0080 connect(mTimeLineView, &EventViews::EventView::newSubTodoSignal, this, &KOrg::BaseView::newSubTodoSignal); 0081 0082 connect(mTimeLineView, &EventViews::EventView::newJournalSignal, this, &KOrg::BaseView::newJournalSignal); 0083 } 0084 0085 KOTimelineView::~KOTimelineView() 0086 { 0087 delete mEventPopup; 0088 } 0089 0090 Akonadi::Item::List KOTimelineView::selectedIncidences() 0091 { 0092 return mTimeLineView->selectedIncidences(); 0093 } 0094 0095 KCalendarCore::DateList KOTimelineView::selectedIncidenceDates() 0096 { 0097 return mTimeLineView->selectedIncidenceDates(); 0098 } 0099 0100 int KOTimelineView::currentDateCount() const 0101 { 0102 return mTimeLineView->currentDateCount(); 0103 } 0104 0105 void KOTimelineView::showDates(const QDate &start, const QDate &end, const QDate &) 0106 { 0107 mTimeLineView->showDates(start, end); 0108 } 0109 0110 void KOTimelineView::showIncidences(const Akonadi::Item::List &incidenceList, const QDate &date) 0111 { 0112 mTimeLineView->showIncidences(incidenceList, date); 0113 } 0114 0115 void KOTimelineView::updateView() 0116 { 0117 mTimeLineView->updateView(); 0118 } 0119 0120 void KOTimelineView::changeIncidenceDisplay(const Akonadi::Item &incidence, Akonadi::IncidenceChanger::ChangeType changeType) 0121 { 0122 mTimeLineView->changeIncidenceDisplay(incidence, changeType); 0123 } 0124 0125 bool KOTimelineView::eventDurationHint(QDateTime &startDt, QDateTime &endDt, bool &allDay) 0126 { 0127 return mTimeLineView->eventDurationHint(startDt, endDt, allDay); 0128 } 0129 0130 CalendarSupport::CalPrinterBase::PrintType KOTimelineView::printType() const 0131 { 0132 // If up to three days are selected, use day style, otherwise week 0133 if (currentDateCount() <= 3) { 0134 return CalendarSupport::CalPrinterBase::Day; 0135 } else { 0136 return CalendarSupport::CalPrinterBase::Week; 0137 } 0138 } 0139 0140 void KOTimelineView::setIncidenceChanger(Akonadi::IncidenceChanger *changer) 0141 { 0142 mTimeLineView->setIncidenceChanger(changer); 0143 } 0144 0145 void KOTimelineView::calendarAdded(const Akonadi::CollectionCalendar::Ptr &calendar) 0146 { 0147 mTimeLineView->addCalendar(calendar); 0148 } 0149 0150 void KOTimelineView::calendarRemoved(const Akonadi::CollectionCalendar::Ptr &calendar) 0151 { 0152 mTimeLineView->removeCalendar(calendar); 0153 } 0154 #include "moc_kotimelineview.cpp"