File indexing completed on 2024-04-28 16:54:47

0001 /*
0002     ksmserver - the KDE session management server
0003 
0004     SPDX-FileCopyrightText: 2000 Matthias Ettrich <ettrich@kde.org>
0005 
0006     SPDX-License-Identifier: MIT
0007 */
0008 
0009 #pragma once
0010 
0011 #include <QScreen>
0012 
0013 #include <kquickaddons/quickviewsharedengine.h>
0014 #include <kworkspace.h>
0015 #include <sessionmanagement.h>
0016 
0017 #include <KPackage/Package>
0018 #include <KPackage/PackageLoader>
0019 
0020 // The confirmation dialog
0021 class KSMShutdownDlg : public KQuickAddons::QuickViewSharedEngine
0022 {
0023     Q_OBJECT
0024 
0025 public:
0026     KSMShutdownDlg(QWindow *parent, KWorkSpace::ShutdownType sdtype, QScreen *screen);
0027 
0028     void setWindowed(bool windowed)
0029     {
0030         m_windowed = windowed;
0031     }
0032     void init(const KPackage::Package &package);
0033     bool result() const;
0034 
0035 public Q_SLOTS:
0036     void accept();
0037     void reject();
0038     void slotLogout();
0039     void slotHalt();
0040     void slotReboot();
0041     void slotReboot(int);
0042     void slotSuspend(int);
0043     void slotLockScreen();
0044 
0045 Q_SIGNALS:
0046     void accepted();
0047     void rejected();
0048 
0049 protected:
0050     void resizeEvent(QResizeEvent *e) override;
0051 
0052 private:
0053     bool m_windowed = false;
0054     QString m_bootOption;
0055     QStringList rebootOptions;
0056     bool m_result : 1;
0057     SessionManagement m_session;
0058 };