2021-02-03 16:54:18 +01:00
|
|
|
/* === This file is part of Calamares - <https://calamares.io> ===
|
|
|
|
*
|
|
|
|
* SPDX-FileCopyrightText: 2021 Adriaan de Groot <groot@kde.org>
|
|
|
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
*
|
|
|
|
* Calamares is Free Software: see the License-Identifier above.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef FINISHED_CONFIG_H
|
|
|
|
#define FINISHED_CONFIG_H
|
|
|
|
|
|
|
|
#include "utils/NamedEnum.h"
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
|
|
|
|
class Config : public QObject
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
2021-02-23 15:03:16 +01:00
|
|
|
Q_PROPERTY( RestartMode restartNowMode READ restartNowMode WRITE setRestartNowMode NOTIFY restartModeChanged )
|
|
|
|
Q_PROPERTY( bool restartNowWanted READ restartNowWanted WRITE setRestartNowWanted NOTIFY restartNowWantedChanged )
|
|
|
|
|
2021-02-03 16:54:18 +01:00
|
|
|
Q_PROPERTY( QString restartNowCommand READ restartNowCommand CONSTANT FINAL )
|
|
|
|
Q_PROPERTY( bool notifyOnFinished READ notifyOnFinished CONSTANT FINAL )
|
|
|
|
|
|
|
|
public:
|
|
|
|
Config( QObject* parent = nullptr );
|
|
|
|
|
|
|
|
enum class RestartMode
|
|
|
|
{
|
|
|
|
Never,
|
|
|
|
UserDefaultUnchecked,
|
|
|
|
UserDefaultChecked,
|
|
|
|
Always
|
|
|
|
};
|
|
|
|
Q_ENUM( RestartMode )
|
|
|
|
|
|
|
|
RestartMode restartNowMode() const { return m_restartNowMode; }
|
2021-02-23 15:03:16 +01:00
|
|
|
bool restartNowWanted() const { return m_userWantsRestart; }
|
|
|
|
|
|
|
|
QString restartNowCommand() const { return m_restartNowCommand; }
|
2021-02-03 16:54:18 +01:00
|
|
|
bool notifyOnFinished() const { return m_notifyOnFinished; }
|
|
|
|
|
|
|
|
void setConfigurationMap( const QVariantMap& configurationMap );
|
|
|
|
|
2021-02-23 15:03:16 +01:00
|
|
|
public slots:
|
|
|
|
void setRestartNowMode( RestartMode m );
|
|
|
|
void setRestartNowWanted( bool w );
|
|
|
|
|
2021-02-23 15:36:44 +01:00
|
|
|
/** @brief Run the restart command, if desired.
|
|
|
|
*
|
|
|
|
* This should generally not be called somewhere during the
|
|
|
|
* application's execution, but only in response to QApplication::quit()
|
|
|
|
* or something like that when the user expects the system to restart.
|
|
|
|
*/
|
|
|
|
void doRestart();
|
|
|
|
|
2021-02-23 15:03:16 +01:00
|
|
|
signals:
|
|
|
|
void restartModeChanged( RestartMode m );
|
|
|
|
void restartNowWantedChanged( bool w );
|
|
|
|
|
2021-02-03 16:54:18 +01:00
|
|
|
private:
|
|
|
|
QString m_restartNowCommand;
|
|
|
|
RestartMode m_restartNowMode = RestartMode::Never;
|
2021-02-23 15:03:16 +01:00
|
|
|
bool m_userWantsRestart = false;
|
2021-02-03 16:54:18 +01:00
|
|
|
bool m_notifyOnFinished = false;
|
|
|
|
};
|
|
|
|
|
|
|
|
const NamedEnumTable< Config::RestartMode >& restartModes();
|
|
|
|
|
|
|
|
#endif
|