KWin
Loading...
Searching...
No Matches
useractions.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2012 Martin Gräßlin <mgraesslin@kde.org>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9#pragma once
10#include "ui_shortcutdialog.h"
11
12#include "effect/globals.h"
13
14// Qt
15#include <QDialog>
16#include <QObject>
17#include <QPointer>
18
19class QAction;
20class QRect;
21
22namespace KWin
23{
24class Window;
25
45class KWIN_EXPORT UserActionsMenu : public QObject
46{
47 Q_OBJECT
48public:
49 explicit UserActionsMenu(QObject *parent = nullptr);
50 ~UserActionsMenu() override;
56 void discard();
57
61 bool isShown() const;
62
66 void grabInput();
67
71 bool hasWindow() const;
78 bool isMenuWindow(const Window *window) const;
82 void close();
89 void show(const QRect &pos, Window *window);
90
91public Q_SLOTS:
101 void showHideActivityMenu();
102
103private Q_SLOTS:
109 void menuAboutToShow();
110
116 void menuAboutToHide();
117
122 void desktopPopupAboutToShow();
127 void multipleDesktopsPopupAboutToShow();
132 void screenPopupAboutToShow();
137 void activityPopupAboutToShow();
143 void slotWindowOperation(QAction *action);
144
145private:
149 void init();
153 void initDesktopPopup();
157 void initScreenPopup();
163 void initActivityPopup();
169 void helperDialog(const QString &message);
173 QMenu *m_menu;
177 QMenu *m_desktopMenu;
181 QMenu *m_multipleDesktopsMenu;
185 QMenu *m_screenMenu;
189 QMenu *m_activityMenu;
193 QMenu *m_scriptsMenu;
194 QAction *m_resizeOperation;
195 QAction *m_moveOperation;
196 QAction *m_maximizeOperation;
197 QAction *m_shadeOperation;
198 QAction *m_keepAboveOperation;
199 QAction *m_keepBelowOperation;
200 QAction *m_fullScreenOperation;
201 QAction *m_noBorderOperation;
202 QAction *m_minimizeOperation;
203 QAction *m_closeOperation;
204 QAction *m_shortcutOperation;
208 QPointer<Window> m_window;
209 QAction *m_rulesOperation = nullptr;
210 QAction *m_applicationRulesOperation = nullptr;
211};
212
214 : public QDialog
215{
216 Q_OBJECT
217public:
218 explicit ShortcutDialog(const QKeySequence &cut);
219 void accept() override;
220 QKeySequence shortcut() const;
221public Q_SLOTS:
222 void keySequenceChanged();
223Q_SIGNALS:
224 void dialogDone(bool ok);
225
226protected:
227 void done(int r) override;
228
229private:
230 Ui::ShortcutDialog m_ui;
231 QKeySequence _shortcut;
232};
233
234} // namespace
void done(int r) override
void accept() override
QKeySequence shortcut() const
void dialogDone(bool ok)
ShortcutDialog(const QKeySequence &cut)
Menu shown for a Window.
Definition useractions.h:46