// This file is generated by kconfig_compiler_kf6 from PowerDevilProfileSettings.kcfg.
// All changes you do to this file will be lost.
#ifndef POWERDEVIL_PROFILESETTINGS_H
#define POWERDEVIL_PROFILESETTINGS_H

#include <powerdevilcore_export.h>

#include <kconfigskeleton.h>
#include <QCoreApplication>
#include <QDebug>

#include <powerdevilenums.h>
#include <powerdevilsettingsdefaults.h>

namespace PowerDevil {

class POWERDEVILCORE_EXPORT ProfileSettings : public KConfigSkeleton
{
  Q_OBJECT
  public:

    ProfileSettings( const QString & ProfileId, bool IsMobile, bool IsVM, bool CanSuspend, QObject *parent = nullptr );
    ~ProfileSettings() override;

    /**
      Set UseProfileSpecificKeyboardBrightness
    */
    void setUseProfileSpecificKeyboardBrightness( bool v )
    {
      if (v != mUseProfileSpecificKeyboardBrightness && !isUseProfileSpecificKeyboardBrightnessImmutable()) {
        mUseProfileSpecificKeyboardBrightness = v;
        Q_EMIT UseProfileSpecificKeyboardBrightnessChanged();
      }
    }

    Q_PROPERTY(bool useProfileSpecificKeyboardBrightness READ useProfileSpecificKeyboardBrightness WRITE setUseProfileSpecificKeyboardBrightness NOTIFY UseProfileSpecificKeyboardBrightnessChanged)
    Q_PROPERTY(bool isUseProfileSpecificKeyboardBrightnessImmutable READ isUseProfileSpecificKeyboardBrightnessImmutable CONSTANT)
    Q_PROPERTY(bool defaultUseProfileSpecificKeyboardBrightnessValue READ defaultUseProfileSpecificKeyboardBrightnessValue CONSTANT)
    /**
      Get UseProfileSpecificKeyboardBrightness
    */
    bool useProfileSpecificKeyboardBrightness() const
    {
      return mUseProfileSpecificKeyboardBrightness;
    }

    /**
      Is UseProfileSpecificKeyboardBrightness Immutable
    */
    bool isUseProfileSpecificKeyboardBrightnessImmutable() const
    {
      return isImmutable( QStringLiteral( "UseProfileSpecificKeyboardBrightness" ) );
    }

    /**
      Get UseProfileSpecificKeyboardBrightness default value
    */
    bool defaultUseProfileSpecificKeyboardBrightnessValue() const
    {
        return defaultUseProfileSpecificKeyboardBrightnessValue_helper();
    }

    /**
      Set KeyboardBrightness
    */
    void setKeyboardBrightness( int v )
    {
      if (v != mKeyboardBrightness && !isKeyboardBrightnessImmutable()) {
        mKeyboardBrightness = v;
        Q_EMIT KeyboardBrightnessChanged();
      }
    }

    Q_PROPERTY(int keyboardBrightness READ keyboardBrightness WRITE setKeyboardBrightness NOTIFY KeyboardBrightnessChanged)
    Q_PROPERTY(bool isKeyboardBrightnessImmutable READ isKeyboardBrightnessImmutable CONSTANT)
    Q_PROPERTY(int defaultKeyboardBrightnessValue READ defaultKeyboardBrightnessValue CONSTANT)
    /**
      Get KeyboardBrightness
    */
    int keyboardBrightness() const
    {
      return mKeyboardBrightness;
    }

    /**
      Is KeyboardBrightness Immutable
    */
    bool isKeyboardBrightnessImmutable() const
    {
      return isImmutable( QStringLiteral( "KeyboardBrightness" ) );
    }

    /**
      Get KeyboardBrightness default value
    */
    int defaultKeyboardBrightnessValue() const
    {
        return defaultKeyboardBrightnessValue_helper();
    }

    /**
      Set UseProfileSpecificDisplayBrightness
    */
    void setUseProfileSpecificDisplayBrightness( bool v )
    {
      if (v != mUseProfileSpecificDisplayBrightness && !isUseProfileSpecificDisplayBrightnessImmutable()) {
        mUseProfileSpecificDisplayBrightness = v;
        Q_EMIT UseProfileSpecificDisplayBrightnessChanged();
      }
    }

    Q_PROPERTY(bool useProfileSpecificDisplayBrightness READ useProfileSpecificDisplayBrightness WRITE setUseProfileSpecificDisplayBrightness NOTIFY UseProfileSpecificDisplayBrightnessChanged)
    Q_PROPERTY(bool isUseProfileSpecificDisplayBrightnessImmutable READ isUseProfileSpecificDisplayBrightnessImmutable CONSTANT)
    Q_PROPERTY(bool defaultUseProfileSpecificDisplayBrightnessValue READ defaultUseProfileSpecificDisplayBrightnessValue CONSTANT)
    /**
      Get UseProfileSpecificDisplayBrightness
    */
    bool useProfileSpecificDisplayBrightness() const
    {
      return mUseProfileSpecificDisplayBrightness;
    }

    /**
      Is UseProfileSpecificDisplayBrightness Immutable
    */
    bool isUseProfileSpecificDisplayBrightnessImmutable() const
    {
      return isImmutable( QStringLiteral( "UseProfileSpecificDisplayBrightness" ) );
    }

    /**
      Get UseProfileSpecificDisplayBrightness default value
    */
    bool defaultUseProfileSpecificDisplayBrightnessValue() const
    {
        return defaultUseProfileSpecificDisplayBrightnessValue_helper();
    }

    /**
      Set DisplayBrightness
    */
    void setDisplayBrightness( int v )
    {
      if (v != mDisplayBrightness && !isDisplayBrightnessImmutable()) {
        mDisplayBrightness = v;
        Q_EMIT DisplayBrightnessChanged();
      }
    }

    Q_PROPERTY(int displayBrightness READ displayBrightness WRITE setDisplayBrightness NOTIFY DisplayBrightnessChanged)
    Q_PROPERTY(bool isDisplayBrightnessImmutable READ isDisplayBrightnessImmutable CONSTANT)
    Q_PROPERTY(int defaultDisplayBrightnessValue READ defaultDisplayBrightnessValue CONSTANT)
    /**
      Get DisplayBrightness
    */
    int displayBrightness() const
    {
      return mDisplayBrightness;
    }

    /**
      Is DisplayBrightness Immutable
    */
    bool isDisplayBrightnessImmutable() const
    {
      return isImmutable( QStringLiteral( "DisplayBrightness" ) );
    }

    /**
      Get DisplayBrightness default value
    */
    int defaultDisplayBrightnessValue() const
    {
        return defaultDisplayBrightnessValue_helper();
    }

    /**
      Set DimDisplayWhenIdle
    */
    void setDimDisplayWhenIdle( bool v )
    {
      if (v != mDimDisplayWhenIdle && !isDimDisplayWhenIdleImmutable()) {
        mDimDisplayWhenIdle = v;
        Q_EMIT DimDisplayWhenIdleChanged();
      }
    }

    Q_PROPERTY(bool dimDisplayWhenIdle READ dimDisplayWhenIdle WRITE setDimDisplayWhenIdle NOTIFY DimDisplayWhenIdleChanged)
    Q_PROPERTY(bool isDimDisplayWhenIdleImmutable READ isDimDisplayWhenIdleImmutable CONSTANT)
    Q_PROPERTY(bool defaultDimDisplayWhenIdleValue READ defaultDimDisplayWhenIdleValue CONSTANT)
    /**
      Get DimDisplayWhenIdle
    */
    bool dimDisplayWhenIdle() const
    {
      return mDimDisplayWhenIdle;
    }

    /**
      Is DimDisplayWhenIdle Immutable
    */
    bool isDimDisplayWhenIdleImmutable() const
    {
      return isImmutable( QStringLiteral( "DimDisplayWhenIdle" ) );
    }

    /**
      Get DimDisplayWhenIdle default value
    */
    bool defaultDimDisplayWhenIdleValue() const
    {
        return defaultDimDisplayWhenIdleValue_helper();
    }

    /**
      Set DimDisplayIdleTimeoutSec
    */
    void setDimDisplayIdleTimeoutSec( int v )
    {
      if (v != mDimDisplayIdleTimeoutSec && !isDimDisplayIdleTimeoutSecImmutable()) {
        mDimDisplayIdleTimeoutSec = v;
        Q_EMIT DimDisplayIdleTimeoutSecChanged();
      }
    }

    Q_PROPERTY(int dimDisplayIdleTimeoutSec READ dimDisplayIdleTimeoutSec WRITE setDimDisplayIdleTimeoutSec NOTIFY DimDisplayIdleTimeoutSecChanged)
    Q_PROPERTY(bool isDimDisplayIdleTimeoutSecImmutable READ isDimDisplayIdleTimeoutSecImmutable CONSTANT)
    Q_PROPERTY(int defaultDimDisplayIdleTimeoutSecValue READ defaultDimDisplayIdleTimeoutSecValue CONSTANT)
    /**
      Get DimDisplayIdleTimeoutSec
    */
    int dimDisplayIdleTimeoutSec() const
    {
      return mDimDisplayIdleTimeoutSec;
    }

    /**
      Is DimDisplayIdleTimeoutSec Immutable
    */
    bool isDimDisplayIdleTimeoutSecImmutable() const
    {
      return isImmutable( QStringLiteral( "DimDisplayIdleTimeoutSec" ) );
    }

    /**
      Get DimDisplayIdleTimeoutSec default value
    */
    int defaultDimDisplayIdleTimeoutSecValue() const
    {
        return defaultDimDisplayIdleTimeoutSecValue_helper();
    }

    /**
      Set TurnOffDisplayWhenIdle
    */
    void setTurnOffDisplayWhenIdle( bool v )
    {
      if (v != mTurnOffDisplayWhenIdle && !isTurnOffDisplayWhenIdleImmutable()) {
        mTurnOffDisplayWhenIdle = v;
        Q_EMIT TurnOffDisplayWhenIdleChanged();
      }
    }

    Q_PROPERTY(bool turnOffDisplayWhenIdle READ turnOffDisplayWhenIdle WRITE setTurnOffDisplayWhenIdle NOTIFY TurnOffDisplayWhenIdleChanged)
    Q_PROPERTY(bool isTurnOffDisplayWhenIdleImmutable READ isTurnOffDisplayWhenIdleImmutable CONSTANT)
    Q_PROPERTY(bool defaultTurnOffDisplayWhenIdleValue READ defaultTurnOffDisplayWhenIdleValue CONSTANT)
    /**
      Get TurnOffDisplayWhenIdle
    */
    bool turnOffDisplayWhenIdle() const
    {
      return mTurnOffDisplayWhenIdle;
    }

    /**
      Is TurnOffDisplayWhenIdle Immutable
    */
    bool isTurnOffDisplayWhenIdleImmutable() const
    {
      return isImmutable( QStringLiteral( "TurnOffDisplayWhenIdle" ) );
    }

    /**
      Get TurnOffDisplayWhenIdle default value
    */
    bool defaultTurnOffDisplayWhenIdleValue() const
    {
        return defaultTurnOffDisplayWhenIdleValue_helper();
    }

    /**
      Set TurnOffDisplayIdleTimeoutSec
    */
    void setTurnOffDisplayIdleTimeoutSec( int v )
    {
      if (v != mTurnOffDisplayIdleTimeoutSec && !isTurnOffDisplayIdleTimeoutSecImmutable()) {
        mTurnOffDisplayIdleTimeoutSec = v;
        Q_EMIT TurnOffDisplayIdleTimeoutSecChanged();
      }
    }

    Q_PROPERTY(int turnOffDisplayIdleTimeoutSec READ turnOffDisplayIdleTimeoutSec WRITE setTurnOffDisplayIdleTimeoutSec NOTIFY TurnOffDisplayIdleTimeoutSecChanged)
    Q_PROPERTY(bool isTurnOffDisplayIdleTimeoutSecImmutable READ isTurnOffDisplayIdleTimeoutSecImmutable CONSTANT)
    Q_PROPERTY(int defaultTurnOffDisplayIdleTimeoutSecValue READ defaultTurnOffDisplayIdleTimeoutSecValue CONSTANT)
    /**
      Get TurnOffDisplayIdleTimeoutSec
    */
    int turnOffDisplayIdleTimeoutSec() const
    {
      return mTurnOffDisplayIdleTimeoutSec;
    }

    /**
      Is TurnOffDisplayIdleTimeoutSec Immutable
    */
    bool isTurnOffDisplayIdleTimeoutSecImmutable() const
    {
      return isImmutable( QStringLiteral( "TurnOffDisplayIdleTimeoutSec" ) );
    }

    /**
      Get TurnOffDisplayIdleTimeoutSec default value
    */
    int defaultTurnOffDisplayIdleTimeoutSecValue() const
    {
        return defaultTurnOffDisplayIdleTimeoutSecValue_helper();
    }

    /**
      Set TurnOffDisplayIdleTimeoutWhenLockedSec
    */
    void setTurnOffDisplayIdleTimeoutWhenLockedSec( int v )
    {
      if (v != mTurnOffDisplayIdleTimeoutWhenLockedSec && !isTurnOffDisplayIdleTimeoutWhenLockedSecImmutable()) {
        mTurnOffDisplayIdleTimeoutWhenLockedSec = v;
        Q_EMIT TurnOffDisplayIdleTimeoutWhenLockedSecChanged();
      }
    }

    Q_PROPERTY(int turnOffDisplayIdleTimeoutWhenLockedSec READ turnOffDisplayIdleTimeoutWhenLockedSec WRITE setTurnOffDisplayIdleTimeoutWhenLockedSec NOTIFY TurnOffDisplayIdleTimeoutWhenLockedSecChanged)
    Q_PROPERTY(bool isTurnOffDisplayIdleTimeoutWhenLockedSecImmutable READ isTurnOffDisplayIdleTimeoutWhenLockedSecImmutable CONSTANT)
    Q_PROPERTY(int defaultTurnOffDisplayIdleTimeoutWhenLockedSecValue READ defaultTurnOffDisplayIdleTimeoutWhenLockedSecValue CONSTANT)
    /**
      Get TurnOffDisplayIdleTimeoutWhenLockedSec
    */
    int turnOffDisplayIdleTimeoutWhenLockedSec() const
    {
      return mTurnOffDisplayIdleTimeoutWhenLockedSec;
    }

    /**
      Is TurnOffDisplayIdleTimeoutWhenLockedSec Immutable
    */
    bool isTurnOffDisplayIdleTimeoutWhenLockedSecImmutable() const
    {
      return isImmutable( QStringLiteral( "TurnOffDisplayIdleTimeoutWhenLockedSec" ) );
    }

    /**
      Get TurnOffDisplayIdleTimeoutWhenLockedSec default value
    */
    int defaultTurnOffDisplayIdleTimeoutWhenLockedSecValue() const
    {
        return defaultTurnOffDisplayIdleTimeoutWhenLockedSecValue_helper();
    }

    /**
      Set LockBeforeTurnOffDisplay
    */
    void setLockBeforeTurnOffDisplay( bool v )
    {
      if (v != mLockBeforeTurnOffDisplay && !isLockBeforeTurnOffDisplayImmutable()) {
        mLockBeforeTurnOffDisplay = v;
        Q_EMIT LockBeforeTurnOffDisplayChanged();
      }
    }

    Q_PROPERTY(bool lockBeforeTurnOffDisplay READ lockBeforeTurnOffDisplay WRITE setLockBeforeTurnOffDisplay NOTIFY LockBeforeTurnOffDisplayChanged)
    Q_PROPERTY(bool isLockBeforeTurnOffDisplayImmutable READ isLockBeforeTurnOffDisplayImmutable CONSTANT)
    Q_PROPERTY(bool defaultLockBeforeTurnOffDisplayValue READ defaultLockBeforeTurnOffDisplayValue CONSTANT)
    /**
      Get LockBeforeTurnOffDisplay
    */
    bool lockBeforeTurnOffDisplay() const
    {
      return mLockBeforeTurnOffDisplay;
    }

    /**
      Is LockBeforeTurnOffDisplay Immutable
    */
    bool isLockBeforeTurnOffDisplayImmutable() const
    {
      return isImmutable( QStringLiteral( "LockBeforeTurnOffDisplay" ) );
    }

    /**
      Get LockBeforeTurnOffDisplay default value
    */
    bool defaultLockBeforeTurnOffDisplayValue() const
    {
        return defaultLockBeforeTurnOffDisplayValue_helper();
    }

    /**
      Set AutoSuspendAction
    */
    void setAutoSuspendAction( uint v )
    {
      if (v != mAutoSuspendAction && !isAutoSuspendActionImmutable()) {
        mAutoSuspendAction = v;
        Q_EMIT AutoSuspendActionChanged();
      }
    }

    Q_PROPERTY(uint autoSuspendAction READ autoSuspendAction WRITE setAutoSuspendAction NOTIFY AutoSuspendActionChanged)
    Q_PROPERTY(bool isAutoSuspendActionImmutable READ isAutoSuspendActionImmutable CONSTANT)
    Q_PROPERTY(uint defaultAutoSuspendActionValue READ defaultAutoSuspendActionValue CONSTANT)
    /**
      Get AutoSuspendAction
    */
    uint autoSuspendAction() const
    {
      return mAutoSuspendAction;
    }

    /**
      Is AutoSuspendAction Immutable
    */
    bool isAutoSuspendActionImmutable() const
    {
      return isImmutable( QStringLiteral( "AutoSuspendAction" ) );
    }

    /**
      Get AutoSuspendAction default value
    */
    uint defaultAutoSuspendActionValue() const
    {
        return defaultAutoSuspendActionValue_helper();
    }

    /**
      Set AutoSuspendIdleTimeoutSec
    */
    void setAutoSuspendIdleTimeoutSec( int v )
    {
      if (v != mAutoSuspendIdleTimeoutSec && !isAutoSuspendIdleTimeoutSecImmutable()) {
        mAutoSuspendIdleTimeoutSec = v;
        Q_EMIT AutoSuspendIdleTimeoutSecChanged();
      }
    }

    Q_PROPERTY(int autoSuspendIdleTimeoutSec READ autoSuspendIdleTimeoutSec WRITE setAutoSuspendIdleTimeoutSec NOTIFY AutoSuspendIdleTimeoutSecChanged)
    Q_PROPERTY(bool isAutoSuspendIdleTimeoutSecImmutable READ isAutoSuspendIdleTimeoutSecImmutable CONSTANT)
    Q_PROPERTY(int defaultAutoSuspendIdleTimeoutSecValue READ defaultAutoSuspendIdleTimeoutSecValue CONSTANT)
    /**
      Get AutoSuspendIdleTimeoutSec
    */
    int autoSuspendIdleTimeoutSec() const
    {
      return mAutoSuspendIdleTimeoutSec;
    }

    /**
      Is AutoSuspendIdleTimeoutSec Immutable
    */
    bool isAutoSuspendIdleTimeoutSecImmutable() const
    {
      return isImmutable( QStringLiteral( "AutoSuspendIdleTimeoutSec" ) );
    }

    /**
      Get AutoSuspendIdleTimeoutSec default value
    */
    int defaultAutoSuspendIdleTimeoutSecValue() const
    {
        return defaultAutoSuspendIdleTimeoutSecValue_helper();
    }

    /**
      Set PowerButtonAction
    */
    void setPowerButtonAction( uint v )
    {
      if (v != mPowerButtonAction && !isPowerButtonActionImmutable()) {
        mPowerButtonAction = v;
        Q_EMIT PowerButtonActionChanged();
      }
    }

    Q_PROPERTY(uint powerButtonAction READ powerButtonAction WRITE setPowerButtonAction NOTIFY PowerButtonActionChanged)
    Q_PROPERTY(bool isPowerButtonActionImmutable READ isPowerButtonActionImmutable CONSTANT)
    Q_PROPERTY(uint defaultPowerButtonActionValue READ defaultPowerButtonActionValue CONSTANT)
    /**
      Get PowerButtonAction
    */
    uint powerButtonAction() const
    {
      return mPowerButtonAction;
    }

    /**
      Is PowerButtonAction Immutable
    */
    bool isPowerButtonActionImmutable() const
    {
      return isImmutable( QStringLiteral( "PowerButtonAction" ) );
    }

    /**
      Get PowerButtonAction default value
    */
    uint defaultPowerButtonActionValue() const
    {
        return defaultPowerButtonActionValue_helper();
    }

    /**
      Set PowerDownAction
    */
    void setPowerDownAction( uint v )
    {
      if (v != mPowerDownAction && !isPowerDownActionImmutable()) {
        mPowerDownAction = v;
        Q_EMIT PowerDownActionChanged();
      }
    }

    Q_PROPERTY(uint powerDownAction READ powerDownAction WRITE setPowerDownAction NOTIFY PowerDownActionChanged)
    Q_PROPERTY(bool isPowerDownActionImmutable READ isPowerDownActionImmutable CONSTANT)
    Q_PROPERTY(uint defaultPowerDownActionValue READ defaultPowerDownActionValue CONSTANT)
    /**
      Get PowerDownAction
    */
    uint powerDownAction() const
    {
      return mPowerDownAction;
    }

    /**
      Is PowerDownAction Immutable
    */
    bool isPowerDownActionImmutable() const
    {
      return isImmutable( QStringLiteral( "PowerDownAction" ) );
    }

    /**
      Get PowerDownAction default value
    */
    uint defaultPowerDownActionValue() const
    {
        return defaultPowerDownActionValue_helper();
    }

    /**
      Set LidAction
    */
    void setLidAction( uint v )
    {
      if (v != mLidAction && !isLidActionImmutable()) {
        mLidAction = v;
        Q_EMIT LidActionChanged();
      }
    }

    Q_PROPERTY(uint lidAction READ lidAction WRITE setLidAction NOTIFY LidActionChanged)
    Q_PROPERTY(bool isLidActionImmutable READ isLidActionImmutable CONSTANT)
    Q_PROPERTY(uint defaultLidActionValue READ defaultLidActionValue CONSTANT)
    /**
      Get LidAction
    */
    uint lidAction() const
    {
      return mLidAction;
    }

    /**
      Is LidAction Immutable
    */
    bool isLidActionImmutable() const
    {
      return isImmutable( QStringLiteral( "LidAction" ) );
    }

    /**
      Get LidAction default value
    */
    uint defaultLidActionValue() const
    {
        return defaultLidActionValue_helper();
    }

    /**
      Set InhibitLidActionWhenExternalMonitorPresent
    */
    void setInhibitLidActionWhenExternalMonitorPresent( bool v )
    {
      if (v != mInhibitLidActionWhenExternalMonitorPresent && !isInhibitLidActionWhenExternalMonitorPresentImmutable()) {
        mInhibitLidActionWhenExternalMonitorPresent = v;
        Q_EMIT InhibitLidActionWhenExternalMonitorPresentChanged();
      }
    }

    Q_PROPERTY(bool inhibitLidActionWhenExternalMonitorPresent READ inhibitLidActionWhenExternalMonitorPresent WRITE setInhibitLidActionWhenExternalMonitorPresent NOTIFY InhibitLidActionWhenExternalMonitorPresentChanged)
    Q_PROPERTY(bool isInhibitLidActionWhenExternalMonitorPresentImmutable READ isInhibitLidActionWhenExternalMonitorPresentImmutable CONSTANT)
    Q_PROPERTY(bool defaultInhibitLidActionWhenExternalMonitorPresentValue READ defaultInhibitLidActionWhenExternalMonitorPresentValue CONSTANT)
    /**
      Get InhibitLidActionWhenExternalMonitorPresent
    */
    bool inhibitLidActionWhenExternalMonitorPresent() const
    {
      return mInhibitLidActionWhenExternalMonitorPresent;
    }

    /**
      Is InhibitLidActionWhenExternalMonitorPresent Immutable
    */
    bool isInhibitLidActionWhenExternalMonitorPresentImmutable() const
    {
      return isImmutable( QStringLiteral( "InhibitLidActionWhenExternalMonitorPresent" ) );
    }

    /**
      Get InhibitLidActionWhenExternalMonitorPresent default value
    */
    bool defaultInhibitLidActionWhenExternalMonitorPresentValue() const
    {
        return defaultInhibitLidActionWhenExternalMonitorPresentValue_helper();
    }

    /**
      Set SleepMode
    */
    void setSleepMode( uint v )
    {
      if (v != mSleepMode && !isSleepModeImmutable()) {
        mSleepMode = v;
        Q_EMIT SleepModeChanged();
      }
    }

    Q_PROPERTY(uint sleepMode READ sleepMode WRITE setSleepMode NOTIFY SleepModeChanged)
    Q_PROPERTY(bool isSleepModeImmutable READ isSleepModeImmutable CONSTANT)
    Q_PROPERTY(uint defaultSleepModeValue READ defaultSleepModeValue CONSTANT)
    /**
      Get SleepMode
    */
    uint sleepMode() const
    {
      return mSleepMode;
    }

    /**
      Is SleepMode Immutable
    */
    bool isSleepModeImmutable() const
    {
      return isImmutable( QStringLiteral( "SleepMode" ) );
    }

    /**
      Get SleepMode default value
    */
    uint defaultSleepModeValue() const
    {
        return defaultSleepModeValue_helper();
    }

    /**
      Set PowerProfile
    */
    void setPowerProfile( const QString & v )
    {
      if (v != mPowerProfile && !isPowerProfileImmutable()) {
        mPowerProfile = v;
        Q_EMIT PowerProfileChanged();
      }
    }

    Q_PROPERTY(QString powerProfile READ powerProfile WRITE setPowerProfile NOTIFY PowerProfileChanged)
    Q_PROPERTY(bool isPowerProfileImmutable READ isPowerProfileImmutable CONSTANT)
    /**
      Get PowerProfile
    */
    QString powerProfile() const
    {
      return mPowerProfile;
    }

    /**
      Is PowerProfile Immutable
    */
    bool isPowerProfileImmutable() const
    {
      return isImmutable( QStringLiteral( "PowerProfile" ) );
    }

    /**
      Set ProfileLoadCommand
    */
    void setProfileLoadCommand( const QString & v )
    {
      if (v != mProfileLoadCommand && !isProfileLoadCommandImmutable()) {
        mProfileLoadCommand = v;
        Q_EMIT ProfileLoadCommandChanged();
      }
    }

    Q_PROPERTY(QString profileLoadCommand READ profileLoadCommand WRITE setProfileLoadCommand NOTIFY ProfileLoadCommandChanged)
    Q_PROPERTY(bool isProfileLoadCommandImmutable READ isProfileLoadCommandImmutable CONSTANT)
    /**
      Get ProfileLoadCommand
    */
    QString profileLoadCommand() const
    {
      return mProfileLoadCommand;
    }

    /**
      Is ProfileLoadCommand Immutable
    */
    bool isProfileLoadCommandImmutable() const
    {
      return isImmutable( QStringLiteral( "ProfileLoadCommand" ) );
    }

    /**
      Set ProfileUnloadCommand
    */
    void setProfileUnloadCommand( const QString & v )
    {
      if (v != mProfileUnloadCommand && !isProfileUnloadCommandImmutable()) {
        mProfileUnloadCommand = v;
        Q_EMIT ProfileUnloadCommandChanged();
      }
    }

    Q_PROPERTY(QString profileUnloadCommand READ profileUnloadCommand WRITE setProfileUnloadCommand NOTIFY ProfileUnloadCommandChanged)
    Q_PROPERTY(bool isProfileUnloadCommandImmutable READ isProfileUnloadCommandImmutable CONSTANT)
    /**
      Get ProfileUnloadCommand
    */
    QString profileUnloadCommand() const
    {
      return mProfileUnloadCommand;
    }

    /**
      Is ProfileUnloadCommand Immutable
    */
    bool isProfileUnloadCommandImmutable() const
    {
      return isImmutable( QStringLiteral( "ProfileUnloadCommand" ) );
    }

    /**
      Set IdleTimeoutCommand
    */
    void setIdleTimeoutCommand( const QString & v )
    {
      if (v != mIdleTimeoutCommand && !isIdleTimeoutCommandImmutable()) {
        mIdleTimeoutCommand = v;
        Q_EMIT IdleTimeoutCommandChanged();
      }
    }

    Q_PROPERTY(QString idleTimeoutCommand READ idleTimeoutCommand WRITE setIdleTimeoutCommand NOTIFY IdleTimeoutCommandChanged)
    Q_PROPERTY(bool isIdleTimeoutCommandImmutable READ isIdleTimeoutCommandImmutable CONSTANT)
    /**
      Get IdleTimeoutCommand
    */
    QString idleTimeoutCommand() const
    {
      return mIdleTimeoutCommand;
    }

    /**
      Is IdleTimeoutCommand Immutable
    */
    bool isIdleTimeoutCommandImmutable() const
    {
      return isImmutable( QStringLiteral( "IdleTimeoutCommand" ) );
    }

    /**
      Set RunScriptIdleTimeoutSec
    */
    void setRunScriptIdleTimeoutSec( int v )
    {
      if (v != mRunScriptIdleTimeoutSec && !isRunScriptIdleTimeoutSecImmutable()) {
        mRunScriptIdleTimeoutSec = v;
        Q_EMIT RunScriptIdleTimeoutSecChanged();
      }
    }

    Q_PROPERTY(int runScriptIdleTimeoutSec READ runScriptIdleTimeoutSec WRITE setRunScriptIdleTimeoutSec NOTIFY RunScriptIdleTimeoutSecChanged)
    Q_PROPERTY(bool isRunScriptIdleTimeoutSecImmutable READ isRunScriptIdleTimeoutSecImmutable CONSTANT)
    Q_PROPERTY(int defaultRunScriptIdleTimeoutSecValue READ defaultRunScriptIdleTimeoutSecValue CONSTANT)
    /**
      Get RunScriptIdleTimeoutSec
    */
    int runScriptIdleTimeoutSec() const
    {
      return mRunScriptIdleTimeoutSec;
    }

    /**
      Is RunScriptIdleTimeoutSec Immutable
    */
    bool isRunScriptIdleTimeoutSecImmutable() const
    {
      return isImmutable( QStringLiteral( "RunScriptIdleTimeoutSec" ) );
    }

    /**
      Get RunScriptIdleTimeoutSec default value
    */
    int defaultRunScriptIdleTimeoutSecValue() const
    {
        return defaultRunScriptIdleTimeoutSecValue_helper();
    }


    enum {
      signalUseProfileSpecificKeyboardBrightnessChanged = 1,
      signalKeyboardBrightnessChanged = 2,
      signalUseProfileSpecificDisplayBrightnessChanged = 3,
      signalDisplayBrightnessChanged = 4,
      signalDimDisplayWhenIdleChanged = 5,
      signalDimDisplayIdleTimeoutSecChanged = 6,
      signalTurnOffDisplayWhenIdleChanged = 7,
      signalTurnOffDisplayIdleTimeoutSecChanged = 8,
      signalTurnOffDisplayIdleTimeoutWhenLockedSecChanged = 9,
      signalLockBeforeTurnOffDisplayChanged = 10,
      signalAutoSuspendActionChanged = 11,
      signalAutoSuspendIdleTimeoutSecChanged = 12,
      signalPowerButtonActionChanged = 13,
      signalPowerDownActionChanged = 14,
      signalLidActionChanged = 15,
      signalInhibitLidActionWhenExternalMonitorPresentChanged = 16,
      signalSleepModeChanged = 17,
      signalPowerProfileChanged = 18,
      signalProfileLoadCommandChanged = 19,
      signalProfileUnloadCommandChanged = 20,
      signalIdleTimeoutCommandChanged = 21,
      signalRunScriptIdleTimeoutSecChanged = 22
    };

  Q_SIGNALS:
    void UseProfileSpecificKeyboardBrightnessChanged();

    void KeyboardBrightnessChanged();

    void UseProfileSpecificDisplayBrightnessChanged();

    void DisplayBrightnessChanged();

    void DimDisplayWhenIdleChanged();

    void DimDisplayIdleTimeoutSecChanged();

    void TurnOffDisplayWhenIdleChanged();

    void TurnOffDisplayIdleTimeoutSecChanged();

    void TurnOffDisplayIdleTimeoutWhenLockedSecChanged();

    void LockBeforeTurnOffDisplayChanged();

    void AutoSuspendActionChanged();

    void AutoSuspendIdleTimeoutSecChanged();

    void PowerButtonActionChanged();

    void PowerDownActionChanged();

    void LidActionChanged();

    void InhibitLidActionWhenExternalMonitorPresentChanged();

    void SleepModeChanged();

    void PowerProfileChanged();

    void ProfileLoadCommandChanged();

    void ProfileUnloadCommandChanged();

    void IdleTimeoutCommandChanged();

    void RunScriptIdleTimeoutSecChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    QString mParamProfileId;
    bool mParamIsMobile;
    bool mParamIsVM;
    bool mParamCanSuspend;

    // Keyboard
    bool mUseProfileSpecificKeyboardBrightness;
    bool defaultUseProfileSpecificKeyboardBrightnessValue_helper() const;
    int mKeyboardBrightness;
    int defaultKeyboardBrightnessValue_helper() const;

    // Display
    bool mUseProfileSpecificDisplayBrightness;
    bool defaultUseProfileSpecificDisplayBrightnessValue_helper() const;
    int mDisplayBrightness;
    int defaultDisplayBrightnessValue_helper() const;
    bool mDimDisplayWhenIdle;
    bool defaultDimDisplayWhenIdleValue_helper() const;
    int mDimDisplayIdleTimeoutSec;
    int defaultDimDisplayIdleTimeoutSecValue_helper() const;
    bool mTurnOffDisplayWhenIdle;
    bool defaultTurnOffDisplayWhenIdleValue_helper() const;
    int mTurnOffDisplayIdleTimeoutSec;
    int defaultTurnOffDisplayIdleTimeoutSecValue_helper() const;
    int mTurnOffDisplayIdleTimeoutWhenLockedSec;
    int defaultTurnOffDisplayIdleTimeoutWhenLockedSecValue_helper() const;
    bool mLockBeforeTurnOffDisplay;
    bool defaultLockBeforeTurnOffDisplayValue_helper() const;

    // SuspendAndShutdown
    uint mAutoSuspendAction;
    uint defaultAutoSuspendActionValue_helper() const;
    int mAutoSuspendIdleTimeoutSec;
    int defaultAutoSuspendIdleTimeoutSecValue_helper() const;
    uint mPowerButtonAction;
    uint defaultPowerButtonActionValue_helper() const;
    uint mPowerDownAction;
    uint defaultPowerDownActionValue_helper() const;
    uint mLidAction;
    uint defaultLidActionValue_helper() const;
    bool mInhibitLidActionWhenExternalMonitorPresent;
    bool defaultInhibitLidActionWhenExternalMonitorPresentValue_helper() const;
    uint mSleepMode;
    uint defaultSleepModeValue_helper() const;

    // Performance
    QString mPowerProfile;
    QString defaultPowerProfileValue_helper() const;

    // RunScript
    QString mProfileLoadCommand;
    QString defaultProfileLoadCommandValue_helper() const;
    QString mProfileUnloadCommand;
    QString defaultProfileUnloadCommandValue_helper() const;
    QString mIdleTimeoutCommand;
    QString defaultIdleTimeoutCommandValue_helper() const;
    int mRunScriptIdleTimeoutSec;
    int defaultRunScriptIdleTimeoutSecValue_helper() const;
};

}

#endif

