File indexing completed on 2024-05-05 05:48:57

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 <QAction>
0010 #include <QList>
0011 #include <QObject>
0012 
0013 class LogModeAction : public QObject
0014 {
0015     Q_OBJECT
0016 
0017 public:
0018     enum Category { RootCategory, ServicesCategory, OthersCategory };
0019 
0020     Q_DECLARE_FLAGS(Categories, Category)
0021 
0022     explicit LogModeAction(QObject *parent = nullptr);
0023 
0024     ~LogModeAction() override;
0025 
0026     virtual QList<QAction *> innerActions() = 0;
0027 
0028     virtual QAction *actionMenu() = 0;
0029 
0030     void setCategory(Category category);
0031 
0032     Category category() const;
0033 
0034 private:
0035     LogModeAction::Category mCategory = LogModeAction::RootCategory;
0036     bool mInToolBar = true;
0037 };