1 /* 2 This file is part of KOrganizer. 3 4 SPDX-FileCopyrightText: 2001, 2004 Cornelius Schumacher <schumacher@kde.org> 5 SPDX-FileCopyrightText: 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com> 6 7 SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0 8 */ 9 10 #pragma once 11 12 #include "koeventview.h" 13 14 class CalendarView; 15 class FilterEditDialog; 16 class SearchDialog; 17 18 namespace CalendarSupport 19 { 20 class ArchiveDialog; 21 } 22 23 namespace IncidenceEditorNG 24 { 25 class IncidenceDialog; 26 } 27 28 namespace KCalendarCore 29 { 30 class CalFilter; 31 } 32 namespace Akonadi 33 { 34 class TagManagementDialog; 35 } 36 37 class KCMultiDialog; 38 39 /** 40 This class manages the dialogs used by the calendar view. It owns the objects 41 and handles creation and selection. 42 */ 43 class KODialogManager : public QObject 44 { 45 Q_OBJECT 46 public: 47 explicit KODialogManager(CalendarView *); 48 ~KODialogManager() override; 49 50 IncidenceEditorNG::IncidenceDialog *createDialog(const Akonadi::Item &item); 51 52 void updateSearchDialog(); 53 54 void connectTypeAhead(IncidenceEditorNG::IncidenceDialog *editor, KOEventView *view); 55 56 public Q_SLOTS: 57 void showOptionsDialog(); 58 void showCategoryEditDialog(); 59 void showSearchDialog(); 60 void showArchiveDialog(); 61 void showFilterEditDialog(QList<KCalendarCore::CalFilter *> *filters); 62 63 private Q_SLOTS: 64 void slotHelp(); 65 66 private: 67 void createCategoryEditor(); 68 class DialogManagerVisitor; 69 class EditorDialogVisitor; 70 71 CalendarView *const mMainView; 72 KCMultiDialog *mOptionsDialog = nullptr; 73 QPointer<Akonadi::TagManagementDialog> mCategoryEditDialog; 74 SearchDialog *mSearchDialog = nullptr; 75 CalendarSupport::ArchiveDialog *mArchiveDialog = nullptr; 76 FilterEditDialog *mFilterEditDialog = nullptr; 77 }; 78 79