File indexing completed on 2025-03-09 04:54:32
0001 /* 0002 SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "messageviewer_export.h" 0010 #include <QObject> 0011 class KToggleAction; 0012 class KActionCollection; 0013 class QAction; 0014 class QActionGroup; 0015 class KActionMenu; 0016 namespace MessageViewer 0017 { 0018 class HeaderStyle; 0019 class HeaderStylePlugin; 0020 /** 0021 * @brief The HeaderStyleInterface class 0022 * @author Laurent Montel <montel@kde.org> 0023 */ 0024 class MESSAGEVIEWER_EXPORT HeaderStyleInterface : public QObject 0025 { 0026 Q_OBJECT 0027 public: 0028 explicit HeaderStyleInterface(MessageViewer::HeaderStylePlugin *, QObject *parent = nullptr); 0029 ~HeaderStyleInterface() override; 0030 [[nodiscard]] QList<KToggleAction *> action() const; 0031 virtual void createAction(KActionMenu *menu, QActionGroup *actionGroup, KActionCollection *ac) = 0; 0032 virtual void activateAction() = 0; 0033 [[nodiscard]] HeaderStylePlugin *headerStylePlugin() const; 0034 0035 Q_SIGNALS: 0036 void styleChanged(MessageViewer::HeaderStylePlugin *plugin); 0037 void styleUpdated(); 0038 0039 protected Q_SLOTS: 0040 void slotStyleChanged(); 0041 0042 protected: 0043 void addHelpTextAction(QAction *act, const QString &text); 0044 void addActionToMenu(KActionMenu *menu, QActionGroup *actionGroup); 0045 QList<KToggleAction *> mAction; 0046 HeaderStylePlugin *const mHeaderStylePlugin; 0047 }; 0048 }