File indexing completed on 2024-05-05 05:48:58
0001 /* 0002 SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QList> 0010 #include <QObject> 0011 #include <QString> 0012 0013 #include <KActionMenu> 0014 0015 #include "globals.h" 0016 0017 #include "logModeAction.h" 0018 #include <QIcon> 0019 class QAction; 0020 0021 /** 0022 * This class is used by LogModeFactory to provide multiple actions 0023 * and be able to retrieve them when necessary, using actions(). 0024 * This method will return QAction added using addInnerAction(). 0025 */ 0026 class MultipleActions : public LogModeAction 0027 { 0028 Q_OBJECT 0029 0030 public: 0031 MultipleActions(const QIcon &icon, const QString &text, QObject *parent); 0032 0033 ~MultipleActions() override; 0034 0035 QList<QAction *> innerActions() override; 0036 0037 QAction *actionMenu() override; 0038 0039 /** 0040 * This method is not called addAction() to avoid name collision with 0041 * parent class 0042 */ 0043 void addInnerAction(QAction *action, bool addToMenu = true, bool addToInnerActionsList = true); 0044 0045 private: 0046 QList<QAction *> mActions; 0047 0048 KActionMenu *mAction = nullptr; 0049 };