File indexing completed on 2024-05-12 17:08:58
0001 /* 0002 SPDX-FileCopyrightText: 2009 Chani Armitage <chani@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QButtonGroup> 0010 #include <QHash> 0011 #include <plasma/containmentactions.h> 0012 0013 class SessionManagement; 0014 0015 class ContextMenu : public Plasma::ContainmentActions 0016 { 0017 Q_OBJECT 0018 public: 0019 ContextMenu(QObject *parent, const QVariantList &args); 0020 ~ContextMenu() override; 0021 0022 void restore(const KConfigGroup &) override; 0023 0024 QList<QAction *> contextualActions() override; 0025 QAction *action(const QString &name); 0026 0027 QWidget *createConfigurationInterface(QWidget *parent) override; 0028 void configurationAccepted() override; 0029 void save(KConfigGroup &config) override; 0030 0031 public Q_SLOTS: 0032 void openTerminal(); 0033 void runCommand(); 0034 void startLogout(); 0035 void configureDisplays(); 0036 0037 private: 0038 QAction *m_openTerminalAction = nullptr; 0039 QAction *m_runCommandAction = nullptr; 0040 QAction *m_lockScreenAction = nullptr; 0041 QAction *m_logoutAction = nullptr; 0042 QAction *m_configureDisplaysAction = nullptr; 0043 QAction *m_separator1 = nullptr; 0044 QAction *m_separator2 = nullptr; 0045 QAction *m_separator3 = nullptr; 0046 0047 // action name and whether it is enabled or not 0048 QHash<QString, bool> m_actions; 0049 QStringList m_actionOrder; 0050 QButtonGroup *m_buttons = nullptr; 0051 SessionManagement *const m_session; 0052 };