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

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

class Settings : public KConfigSkeleton
{
  public:

    static Settings *self();
    ~Settings() override;

    /**
      Set Screen to use
    */
    static
    void setScreen( int v )
    {
      if (!self()->isScreenImmutable())
        self()->mScreen = v;
    }

    /**
      Get Screen to use
    */
    static
    int screen()
    {
      return self()->mScreen;
    }

    /**
      Is Screen to use Immutable
    */
    static
    bool isScreenImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Screen" ) );
    }

    /**
      Get Item object corresponding to Screen()
    */
    ItemInt *screenItem()
    {
      return mScreenItem;
    }

    /**
      Set Window width
    */
    static
    void setWidth( int v )
    {
      if (v < 10)
      {
        qDebug() << "setWidth: value " << v << " is less than the minimum value of 10";
        v = 10;
      }

      if (v > 100)
      {
        qDebug() << "setWidth: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (!self()->isWidthImmutable())
        self()->mWidth = v;
    }

    /**
      Get Window width
    */
    static
    int width()
    {
      return self()->mWidth;
    }

    /**
      Is Window width Immutable
    */
    static
    bool isWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Width" ) );
    }

    /**
      Get Item object corresponding to Width()
    */
    ItemInt *widthItem()
    {
      return mWidthItem;
    }

    /**
      Set Window height
    */
    static
    void setHeight( int v )
    {
      if (v < 10)
      {
        qDebug() << "setHeight: value " << v << " is less than the minimum value of 10";
        v = 10;
      }

      if (v > 100)
      {
        qDebug() << "setHeight: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (!self()->isHeightImmutable())
        self()->mHeight = v;
    }

    /**
      Get Window height
    */
    static
    int height()
    {
      return self()->mHeight;
    }

    /**
      Is Window height Immutable
    */
    static
    bool isHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Height" ) );
    }

    /**
      Get Item object corresponding to Height()
    */
    ItemInt *heightItem()
    {
      return mHeightItem;
    }

    /**
      Set Window position
    */
    static
    void setPosition( int v )
    {
      if (v < 0)
      {
        qDebug() << "setPosition: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 100)
      {
        qDebug() << "setPosition: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (!self()->isPositionImmutable())
        self()->mPosition = v;
    }

    /**
      Get Window position
    */
    static
    int position()
    {
      return self()->mPosition;
    }

    /**
      Is Window position Immutable
    */
    static
    bool isPositionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Position" ) );
    }

    /**
      Get Item object corresponding to Position()
    */
    ItemInt *positionItem()
    {
      return mPositionItem;
    }

    /**
      Set Show window on all desktops
    */
    static
    void setShowOnAllDesktops( bool v )
    {
      if (!self()->isShowOnAllDesktopsImmutable())
        self()->mShowOnAllDesktops = v;
    }

    /**
      Get Show window on all desktops
    */
    static
    bool showOnAllDesktops()
    {
      return self()->mShowOnAllDesktops;
    }

    /**
      Is Show window on all desktops Immutable
    */
    static
    bool isShowOnAllDesktopsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowOnAllDesktops" ) );
    }

    /**
      Get Item object corresponding to ShowOnAllDesktops()
    */
    ItemBool *showOnAllDesktopsItem()
    {
      return mShowOnAllDesktopsItem;
    }

    /**
      Set Keep window open
    */
    static
    void setKeepOpen( bool v )
    {
      if (!self()->isKeepOpenImmutable())
        self()->mKeepOpen = v;
    }

    /**
      Get Keep window open
    */
    static
    bool keepOpen()
    {
      return self()->mKeepOpen;
    }

    /**
      Is Keep window open Immutable
    */
    static
    bool isKeepOpenImmutable()
    {
      return self()->isImmutable( QStringLiteral( "KeepOpen" ) );
    }

    /**
      Get Item object corresponding to KeepOpen()
    */
    ItemBool *keepOpenItem()
    {
      return mKeepOpenItem;
    }

    /**
      Set Keep window open after last session closes
    */
    static
    void setKeepOpenAfterLastSessionCloses( bool v )
    {
      if (!self()->isKeepOpenAfterLastSessionClosesImmutable())
        self()->mKeepOpenAfterLastSessionCloses = v;
    }

    /**
      Get Keep window open after last session closes
    */
    static
    bool keepOpenAfterLastSessionCloses()
    {
      return self()->mKeepOpenAfterLastSessionCloses;
    }

    /**
      Is Keep window open after last session closes Immutable
    */
    static
    bool isKeepOpenAfterLastSessionClosesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "KeepOpenAfterLastSessionCloses" ) );
    }

    /**
      Get Item object corresponding to KeepOpenAfterLastSessionCloses()
    */
    ItemBool *keepOpenAfterLastSessionClosesItem()
    {
      return mKeepOpenAfterLastSessionClosesItem;
    }

    /**
      Set Use open/retract shortcut to focus window
    */
    static
    void setToggleToFocus( bool v )
    {
      if (!self()->isToggleToFocusImmutable())
        self()->mToggleToFocus = v;
    }

    /**
      Get Use open/retract shortcut to focus window
    */
    static
    bool toggleToFocus()
    {
      return self()->mToggleToFocus;
    }

    /**
      Is Use open/retract shortcut to focus window Immutable
    */
    static
    bool isToggleToFocusImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ToggleToFocus" ) );
    }

    /**
      Get Item object corresponding to ToggleToFocus()
    */
    ItemBool *toggleToFocusItem()
    {
      return mToggleToFocusItem;
    }

    /**
      Set Keep window on top
    */
    static
    void setKeepAbove( bool v )
    {
      if (!self()->isKeepAboveImmutable())
        self()->mKeepAbove = v;
    }

    /**
      Get Keep window on top
    */
    static
    bool keepAbove()
    {
      return self()->mKeepAbove;
    }

    /**
      Is Keep window on top Immutable
    */
    static
    bool isKeepAboveImmutable()
    {
      return self()->isImmutable( QStringLiteral( "KeepAbove" ) );
    }

    /**
      Get Item object corresponding to KeepAbove()
    */
    ItemBool *keepAboveItem()
    {
      return mKeepAboveItem;
    }

    /**
      Set Show title bar
    */
    static
    void setShowTitleBar( bool v )
    {
      if (!self()->isShowTitleBarImmutable())
        self()->mShowTitleBar = v;
    }

    /**
      Get Show title bar
    */
    static
    bool showTitleBar()
    {
      return self()->mShowTitleBar;
    }

    /**
      Is Show title bar Immutable
    */
    static
    bool isShowTitleBarImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowTitleBar" ) );
    }

    /**
      Get Item object corresponding to ShowTitleBar()
    */
    ItemBool *showTitleBarItem()
    {
      return mShowTitleBarItem;
    }

    /**
      Set Show tab bar
    */
    static
    void setShowTabBar( bool v )
    {
      if (!self()->isShowTabBarImmutable())
        self()->mShowTabBar = v;
    }

    /**
      Get Show tab bar
    */
    static
    bool showTabBar()
    {
      return self()->mShowTabBar;
    }

    /**
      Is Show tab bar Immutable
    */
    static
    bool isShowTabBarImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowTabBar" ) );
    }

    /**
      Get Item object corresponding to ShowTabBar()
    */
    ItemBool *showTabBarItem()
    {
      return mShowTabBarItem;
    }

    /**
      Set Dynamic tab titles
    */
    static
    void setDynamicTabTitles( bool v )
    {
      if (!self()->isDynamicTabTitlesImmutable())
        self()->mDynamicTabTitles = v;
    }

    /**
      Get Dynamic tab titles
    */
    static
    bool dynamicTabTitles()
    {
      return self()->mDynamicTabTitles;
    }

    /**
      Is Dynamic tab titles Immutable
    */
    static
    bool isDynamicTabTitlesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DynamicTabTitles" ) );
    }

    /**
      Get Item object corresponding to DynamicTabTitles()
    */
    ItemBool *dynamicTabTitlesItem()
    {
      return mDynamicTabTitlesItem;
    }

    /**
      Set Show a system tray icon
    */
    static
    void setShowSystrayIcon( bool v )
    {
      if (!self()->isShowSystrayIconImmutable())
        self()->mShowSystrayIcon = v;
    }

    /**
      Get Show a system tray icon
    */
    static
    bool showSystrayIcon()
    {
      return self()->mShowSystrayIcon;
    }

    /**
      Is Show a system tray icon Immutable
    */
    static
    bool isShowSystrayIconImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ShowSystrayIcon" ) );
    }

    /**
      Get Item object corresponding to ShowSystrayIcon()
    */
    ItemBool *showSystrayIconItem()
    {
      return mShowSystrayIconItem;
    }

    /**
      Set Focus follows mouse
    */
    static
    void setFocusFollowsMouse( bool v )
    {
      if (!self()->isFocusFollowsMouseImmutable())
        self()->mFocusFollowsMouse = v;
    }

    /**
      Get Focus follows mouse
    */
    static
    bool focusFollowsMouse()
    {
      return self()->mFocusFollowsMouse;
    }

    /**
      Is Focus follows mouse Immutable
    */
    static
    bool isFocusFollowsMouseImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FocusFollowsMouse" ) );
    }

    /**
      Get Item object corresponding to FocusFollowsMouse()
    */
    ItemBool *focusFollowsMouseItem()
    {
      return mFocusFollowsMouseItem;
    }

    /**
      Set Open after start
    */
    static
    void setOpenAfterStart( bool v )
    {
      if (!self()->isOpenAfterStartImmutable())
        self()->mOpenAfterStart = v;
    }

    /**
      Get Open after start
    */
    static
    bool openAfterStart()
    {
      return self()->mOpenAfterStart;
    }

    /**
      Is Open after start Immutable
    */
    static
    bool isOpenAfterStartImmutable()
    {
      return self()->isImmutable( QStringLiteral( "OpenAfterStart" ) );
    }

    /**
      Get Item object corresponding to OpenAfterStart()
    */
    ItemBool *openAfterStartItem()
    {
      return mOpenAfterStartItem;
    }

    /**
      Set Remember window fullscreen state
    */
    static
    void setRememberFullscreen( bool v )
    {
      if (!self()->isRememberFullscreenImmutable())
        self()->mRememberFullscreen = v;
    }

    /**
      Get Remember window fullscreen state
    */
    static
    bool rememberFullscreen()
    {
      return self()->mRememberFullscreen;
    }

    /**
      Is Remember window fullscreen state Immutable
    */
    static
    bool isRememberFullscreenImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RememberFullscreen" ) );
    }

    /**
      Get Item object corresponding to RememberFullscreen()
    */
    ItemBool *rememberFullscreenItem()
    {
      return mRememberFullscreenItem;
    }

    /**
      Set Skin
    */
    static
    void setSkin( const QString & v )
    {
      if (!self()->isSkinImmutable())
        self()->mSkin = v;
    }

    /**
      Get Skin
    */
    static
    QString skin()
    {
      return self()->mSkin;
    }

    /**
      Is Skin Immutable
    */
    static
    bool isSkinImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Skin" ) );
    }

    /**
      Get Item object corresponding to Skin()
    */
    ItemString *skinItem()
    {
      return mSkinItem;
    }

    /**
      Set Skin installed by KNS
    */
    static
    void setSkinInstalledWithKns( bool v )
    {
      if (!self()->isSkinInstalledWithKnsImmutable())
        self()->mSkinInstalledWithKns = v;
    }

    /**
      Get Skin installed by KNS
    */
    static
    bool skinInstalledWithKns()
    {
      return self()->mSkinInstalledWithKns;
    }

    /**
      Is Skin installed by KNS Immutable
    */
    static
    bool isSkinInstalledWithKnsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SkinInstalledWithKns" ) );
    }

    /**
      Get Item object corresponding to SkinInstalledWithKns()
    */
    ItemBool *skinInstalledWithKnsItem()
    {
      return mSkinInstalledWithKnsItem;
    }

    /**
      Set Use translucent background
    */
    static
    void setTranslucency( bool v )
    {
      if (!self()->isTranslucencyImmutable())
        self()->mTranslucency = v;
    }

    /**
      Get Use translucent background
    */
    static
    bool translucency()
    {
      return self()->mTranslucency;
    }

    /**
      Is Use translucent background Immutable
    */
    static
    bool isTranslucencyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Translucency" ) );
    }

    /**
      Get Item object corresponding to Translucency()
    */
    ItemBool *translucencyItem()
    {
      return mTranslucencyItem;
    }

    /**
      Set Window background color
    */
    static
    void setBackgroundColor( const QColor & v )
    {
      if (!self()->isBackgroundColorImmutable())
        self()->mBackgroundColor = v;
    }

    /**
      Get Window background color
    */
    static
    QColor backgroundColor()
    {
      return self()->mBackgroundColor;
    }

    /**
      Is Window background color Immutable
    */
    static
    bool isBackgroundColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "BackgroundColor" ) );
    }

    /**
      Get Item object corresponding to BackgroundColor()
    */
    ItemColor *backgroundColorItem()
    {
      return mBackgroundColorItem;
    }

    /**
      Set Background color opacity
    */
    static
    void setBackgroundColorOpacity( int v )
    {
      if (v < 0)
      {
        qDebug() << "setBackgroundColorOpacity: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 100)
      {
        qDebug() << "setBackgroundColorOpacity: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (!self()->isBackgroundColorOpacityImmutable())
        self()->mBackgroundColorOpacity = v;
    }

    /**
      Get Background color opacity
    */
    static
    int backgroundColorOpacity()
    {
      return self()->mBackgroundColorOpacity;
    }

    /**
      Is Background color opacity Immutable
    */
    static
    bool isBackgroundColorOpacityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "BackgroundColorOpacity" ) );
    }

    /**
      Get Item object corresponding to BackgroundColorOpacity()
    */
    ItemInt *backgroundColorOpacityItem()
    {
      return mBackgroundColorOpacityItem;
    }

    /**
      Set Highlight newly focused terminals
    */
    static
    void setTerminalHighlightOnManualActivation( bool v )
    {
      if (!self()->isTerminalHighlightOnManualActivationImmutable())
        self()->mTerminalHighlightOnManualActivation = v;
    }

    /**
      Get Highlight newly focused terminals
    */
    static
    bool terminalHighlightOnManualActivation()
    {
      return self()->mTerminalHighlightOnManualActivation;
    }

    /**
      Is Highlight newly focused terminals Immutable
    */
    static
    bool isTerminalHighlightOnManualActivationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TerminalHighlightOnManualActivation" ) );
    }

    /**
      Get Item object corresponding to TerminalHighlightOnManualActivation()
    */
    ItemBool *terminalHighlightOnManualActivationItem()
    {
      return mTerminalHighlightOnManualActivationItem;
    }

    /**
      Set Hide the borders defined by the skin
    */
    static
    void setHideSkinBorders( bool v )
    {
      if (!self()->isHideSkinBordersImmutable())
        self()->mHideSkinBorders = v;
    }

    /**
      Get Hide the borders defined by the skin
    */
    static
    bool hideSkinBorders()
    {
      return self()->mHideSkinBorders;
    }

    /**
      Is Hide the borders defined by the skin Immutable
    */
    static
    bool isHideSkinBordersImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HideSkinBorders" ) );
    }

    /**
      Get Item object corresponding to HideSkinBorders()
    */
    ItemBool *hideSkinBordersItem()
    {
      return mHideSkinBordersItem;
    }

    /**
      Set Terminal highlight opacity
    */
    static
    void setTerminalHighlightOpacity( double v )
    {
      if (v < 0)
      {
        qDebug() << "setTerminalHighlightOpacity: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 1.0)
      {
        qDebug() << "setTerminalHighlightOpacity: value " << v << " is greater than the maximum value of 1.0";
        v = 1.0;
      }

      if (!self()->isTerminalHighlightOpacityImmutable())
        self()->mTerminalHighlightOpacity = v;
    }

    /**
      Get Terminal highlight opacity
    */
    static
    double terminalHighlightOpacity()
    {
      return self()->mTerminalHighlightOpacity;
    }

    /**
      Is Terminal highlight opacity Immutable
    */
    static
    bool isTerminalHighlightOpacityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TerminalHighlightOpacity" ) );
    }

    /**
      Get Item object corresponding to TerminalHighlightOpacity()
    */
    ItemDouble *terminalHighlightOpacityItem()
    {
      return mTerminalHighlightOpacityItem;
    }

    /**
      Set Terminal highlight duration
    */
    static
    void setTerminalHighlightDuration( int v )
    {
      if (v < 0)
      {
        qDebug() << "setTerminalHighlightDuration: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 86400000)
      {
        qDebug() << "setTerminalHighlightDuration: value " << v << " is greater than the maximum value of 86400000";
        v = 86400000;
      }

      if (!self()->isTerminalHighlightDurationImmutable())
        self()->mTerminalHighlightDuration = v;
    }

    /**
      Get Terminal highlight duration
    */
    static
    int terminalHighlightDuration()
    {
      return self()->mTerminalHighlightDuration;
    }

    /**
      Is Terminal highlight duration Immutable
    */
    static
    bool isTerminalHighlightDurationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "TerminalHighlightDuration" ) );
    }

    /**
      Get Item object corresponding to TerminalHighlightDuration()
    */
    ItemInt *terminalHighlightDurationItem()
    {
      return mTerminalHighlightDurationItem;
    }

    /**
      Set Keyboard input block indicator color
    */
    static
    void setKeyboardInputBlockIndicatorColor( const QColor & v )
    {
      if (!self()->isKeyboardInputBlockIndicatorColorImmutable())
        self()->mKeyboardInputBlockIndicatorColor = v;
    }

    /**
      Get Keyboard input block indicator color
    */
    static
    QColor keyboardInputBlockIndicatorColor()
    {
      return self()->mKeyboardInputBlockIndicatorColor;
    }

    /**
      Is Keyboard input block indicator color Immutable
    */
    static
    bool isKeyboardInputBlockIndicatorColorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "KeyboardInputBlockIndicatorColor" ) );
    }

    /**
      Get Item object corresponding to KeyboardInputBlockIndicatorColor()
    */
    ItemColor *keyboardInputBlockIndicatorColorItem()
    {
      return mKeyboardInputBlockIndicatorColorItem;
    }

    /**
      Set Keyboard input block indicator opacity
    */
    static
    void setKeyboardInputBlockIndicatorOpacity( double v )
    {
      if (v < 0)
      {
        qDebug() << "setKeyboardInputBlockIndicatorOpacity: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 1.0)
      {
        qDebug() << "setKeyboardInputBlockIndicatorOpacity: value " << v << " is greater than the maximum value of 1.0";
        v = 1.0;
      }

      if (!self()->isKeyboardInputBlockIndicatorOpacityImmutable())
        self()->mKeyboardInputBlockIndicatorOpacity = v;
    }

    /**
      Get Keyboard input block indicator opacity
    */
    static
    double keyboardInputBlockIndicatorOpacity()
    {
      return self()->mKeyboardInputBlockIndicatorOpacity;
    }

    /**
      Is Keyboard input block indicator opacity Immutable
    */
    static
    bool isKeyboardInputBlockIndicatorOpacityImmutable()
    {
      return self()->isImmutable( QStringLiteral( "KeyboardInputBlockIndicatorOpacity" ) );
    }

    /**
      Get Item object corresponding to KeyboardInputBlockIndicatorOpacity()
    */
    ItemDouble *keyboardInputBlockIndicatorOpacityItem()
    {
      return mKeyboardInputBlockIndicatorOpacityItem;
    }

    /**
      Set Keyboard input block indicator duration
    */
    static
    void setKeyboardInputBlockIndicatorDuration( int v )
    {
      if (v < 0)
      {
        qDebug() << "setKeyboardInputBlockIndicatorDuration: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 86400000)
      {
        qDebug() << "setKeyboardInputBlockIndicatorDuration: value " << v << " is greater than the maximum value of 86400000";
        v = 86400000;
      }

      if (!self()->isKeyboardInputBlockIndicatorDurationImmutable())
        self()->mKeyboardInputBlockIndicatorDuration = v;
    }

    /**
      Get Keyboard input block indicator duration
    */
    static
    int keyboardInputBlockIndicatorDuration()
    {
      return self()->mKeyboardInputBlockIndicatorDuration;
    }

    /**
      Is Keyboard input block indicator duration Immutable
    */
    static
    bool isKeyboardInputBlockIndicatorDurationImmutable()
    {
      return self()->isImmutable( QStringLiteral( "KeyboardInputBlockIndicatorDuration" ) );
    }

    /**
      Get Item object corresponding to KeyboardInputBlockIndicatorDuration()
    */
    ItemInt *keyboardInputBlockIndicatorDurationItem()
    {
      return mKeyboardInputBlockIndicatorDurationItem;
    }

    /**
      Set Attempt to use the window manager to animate the window
    */
    static
    void setUseWMAssist( bool v )
    {
      if (!self()->isUseWMAssistImmutable())
        self()->mUseWMAssist = v;
    }

    /**
      Get Attempt to use the window manager to animate the window
    */
    static
    bool useWMAssist()
    {
      return self()->mUseWMAssist;
    }

    /**
      Is Attempt to use the window manager to animate the window Immutable
    */
    static
    bool isUseWMAssistImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseWMAssist" ) );
    }

    /**
      Get Item object corresponding to UseWMAssist()
    */
    ItemBool *useWMAssistItem()
    {
      return mUseWMAssistItem;
    }

    /**
      Set Animation frames
    */
    static
    void setFrames( int v )
    {
      if (v < 0)
      {
        qDebug() << "setFrames: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 50)
      {
        qDebug() << "setFrames: value " << v << " is greater than the maximum value of 50";
        v = 50;
      }

      if (!self()->isFramesImmutable())
        self()->mFrames = v;
    }

    /**
      Get Animation frames
    */
    static
    int frames()
    {
      return self()->mFrames;
    }

    /**
      Is Animation frames Immutable
    */
    static
    bool isFramesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "Frames" ) );
    }

    /**
      Get Item object corresponding to Frames()
    */
    ItemInt *framesItem()
    {
      return mFramesItem;
    }

    /**
      Set Auto-open window
    */
    static
    void setPollMouse( bool v )
    {
      if (!self()->isPollMouseImmutable())
        self()->mPollMouse = v;
    }

    /**
      Get Auto-open window
    */
    static
    bool pollMouse()
    {
      return self()->mPollMouse;
    }

    /**
      Is Auto-open window Immutable
    */
    static
    bool isPollMouseImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PollMouse" ) );
    }

    /**
      Get Item object corresponding to PollMouse()
    */
    ItemBool *pollMouseItem()
    {
      return mPollMouseItem;
    }

    /**
      Set Mouse pointer poll interval
    */
    static
    void setPollInterval( int v )
    {
      if (!self()->isPollIntervalImmutable())
        self()->mPollInterval = v;
    }

    /**
      Get Mouse pointer poll interval
    */
    static
    int pollInterval()
    {
      return self()->mPollInterval;
    }

    /**
      Is Mouse pointer poll interval Immutable
    */
    static
    bool isPollIntervalImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PollInterval" ) );
    }

    /**
      Get Item object corresponding to PollInterval()
    */
    ItemInt *pollIntervalItem()
    {
      return mPollIntervalItem;
    }

    /**
      Set Application first run
    */
    static
    void setFirstRun( bool v )
    {
      if (!self()->isFirstRunImmutable())
        self()->mFirstRun = v;
    }

    /**
      Get Application first run
    */
    static
    bool firstRun()
    {
      return self()->mFirstRun;
    }

    /**
      Is Application first run Immutable
    */
    static
    bool isFirstRunImmutable()
    {
      return self()->isImmutable( QStringLiteral( "FirstRun" ) );
    }

    /**
      Get Item object corresponding to FirstRun()
    */
    ItemBool *firstRunItem()
    {
      return mFirstRunItem;
    }

    /**
      Set Confirm quit with multiple sessions
    */
    static
    void setConfirmQuit( bool v )
    {
      if (!self()->isConfirmQuitImmutable())
        self()->mConfirmQuit = v;
    }

    /**
      Get Confirm quit with multiple sessions
    */
    static
    bool confirmQuit()
    {
      return self()->mConfirmQuit;
    }

    /**
      Is Confirm quit with multiple sessions Immutable
    */
    static
    bool isConfirmQuitImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ConfirmQuit" ) );
    }

    /**
      Get Item object corresponding to ConfirmQuit()
    */
    ItemBool *confirmQuitItem()
    {
      return mConfirmQuitItem;
    }

  protected:
    Settings();
    friend class SettingsHelper;


    // Window
    int mScreen;
    int mWidth;
    int mHeight;
    int mPosition;
    bool mShowOnAllDesktops;
    bool mKeepOpen;
    bool mKeepOpenAfterLastSessionCloses;
    bool mToggleToFocus;
    bool mKeepAbove;
    bool mShowTitleBar;
    bool mShowTabBar;
    bool mDynamicTabTitles;
    bool mShowSystrayIcon;

    // Behavior
    bool mFocusFollowsMouse;
    bool mOpenAfterStart;
    bool mRememberFullscreen;

    // Appearance
    QString mSkin;
    bool mSkinInstalledWithKns;
    bool mTranslucency;
    QColor mBackgroundColor;
    int mBackgroundColorOpacity;
    bool mTerminalHighlightOnManualActivation;
    bool mHideSkinBorders;
    double mTerminalHighlightOpacity;
    int mTerminalHighlightDuration;
    QColor mKeyboardInputBlockIndicatorColor;
    double mKeyboardInputBlockIndicatorOpacity;
    int mKeyboardInputBlockIndicatorDuration;

    // Animation
    bool mUseWMAssist;
    int mFrames;

    // AutoOpen
    bool mPollMouse;
    int mPollInterval;

    // Dialogs
    bool mFirstRun;
    bool mConfirmQuit;

  private:
    ItemInt *mScreenItem;
    ItemInt *mWidthItem;
    ItemInt *mHeightItem;
    ItemInt *mPositionItem;
    ItemBool *mShowOnAllDesktopsItem;
    ItemBool *mKeepOpenItem;
    ItemBool *mKeepOpenAfterLastSessionClosesItem;
    ItemBool *mToggleToFocusItem;
    ItemBool *mKeepAboveItem;
    ItemBool *mShowTitleBarItem;
    ItemBool *mShowTabBarItem;
    ItemBool *mDynamicTabTitlesItem;
    ItemBool *mShowSystrayIconItem;
    ItemBool *mFocusFollowsMouseItem;
    ItemBool *mOpenAfterStartItem;
    ItemBool *mRememberFullscreenItem;
    ItemString *mSkinItem;
    ItemBool *mSkinInstalledWithKnsItem;
    ItemBool *mTranslucencyItem;
    ItemColor *mBackgroundColorItem;
    ItemInt *mBackgroundColorOpacityItem;
    ItemBool *mTerminalHighlightOnManualActivationItem;
    ItemBool *mHideSkinBordersItem;
    ItemDouble *mTerminalHighlightOpacityItem;
    ItemInt *mTerminalHighlightDurationItem;
    ItemColor *mKeyboardInputBlockIndicatorColorItem;
    ItemDouble *mKeyboardInputBlockIndicatorOpacityItem;
    ItemInt *mKeyboardInputBlockIndicatorDurationItem;
    ItemBool *mUseWMAssistItem;
    ItemInt *mFramesItem;
    ItemBool *mPollMouseItem;
    ItemInt *mPollIntervalItem;
    ItemBool *mFirstRunItem;
    ItemBool *mConfirmQuitItem;
};

#endif

