File indexing completed on 2024-05-19 05:21:39

0001 /*
0002   This file is part of KOrganizer.
0003 
0004   SPDX-FileCopyrightText: 2001, 2003 Cornelius Schumacher <schumacher@kde.org>
0005   SPDX-FileCopyrightText: 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com>
0006 
0007   SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0
0008 */
0009 
0010 #pragma once
0011 
0012 #include "korganizer_core_export.h"
0013 
0014 #include <KPluginMetaData>
0015 #include <KXMLGUIClient>
0016 
0017 #include <EventViews/CalendarDecoration>
0018 
0019 namespace KIdentityManagementCore
0020 {
0021 class IdentityManager;
0022 }
0023 
0024 class KORGANIZER_CORE_EXPORT KOCore
0025 {
0026 public:
0027     ~KOCore();
0028 
0029     static KOCore *self();
0030 
0031     [[nodiscard]] QList<KPluginMetaData> availableCalendarDecorations();
0032 
0033     EventViews::CalendarDecoration::Decoration *loadCalendarDecoration(const KPluginMetaData &service);
0034     EventViews::CalendarDecoration::Decoration::List loadCalendarDecorations();
0035 
0036     void addXMLGUIClient(QWidget *, KXMLGUIClient *guiclient);
0037     void removeXMLGUIClient(QWidget *);
0038     KXMLGUIClient *xmlguiClient(QWidget *) const;
0039 
0040     void unloadPlugins();
0041 
0042     void reloadPlugins();
0043 
0044     KIdentityManagementCore::IdentityManager *identityManager();
0045 
0046 protected:
0047     KOCore();
0048 
0049 private:
0050     static KOCore *mSelf;
0051 
0052     EventViews::CalendarDecoration::Decoration::List mCalendarDecorations;
0053     bool mCalendarDecorationsLoaded = false;
0054 
0055     QMap<QWidget *, KXMLGUIClient *> mXMLGUIClients;
0056 };