File indexing completed on 2024-04-28 16:54:46
0001 /* 0002 ksmserver - the KDE session management server 0003 0004 SPDX-FileCopyrightText: 2016 Martin Graesslin <mgraesslin@kde.org> 0005 SPDX-FileCopyrightText: 2018 David Edmundson <davidedmundson@kde.org> 0006 0007 SPDX-License-Identifier: MIT 0008 */ 0009 0010 #pragma once 0011 0012 #include <QObject> 0013 #include <QVector> 0014 0015 #include <kworkspace.h> 0016 0017 #include <KPackage/Package> 0018 #include <KPackage/PackageLoader> 0019 0020 class KSMShutdownDlg; 0021 0022 class QScreen; 0023 0024 class Greeter : public QObject 0025 { 0026 Q_OBJECT 0027 public: 0028 Greeter(const KPackage::Package &package); 0029 ~Greeter() override; 0030 0031 void init(); 0032 void enableWindowed(); 0033 0034 bool eventFilter(QObject *watched, QEvent *event) override; 0035 0036 public Q_SLOTS: 0037 void promptLogout(); 0038 void promptShutDown(); 0039 void promptReboot(); 0040 0041 private: 0042 void adoptScreen(QScreen *screen); 0043 void rejected(); 0044 void setupWaylandIntegration(); 0045 0046 bool m_running = false; 0047 0048 KWorkSpace::ShutdownType m_shutdownType = KWorkSpace::ShutdownTypeHalt; 0049 QVector<KSMShutdownDlg *> m_dialogs; 0050 bool m_windowed = false; 0051 KPackage::Package m_package; 0052 };