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

#include <lib/gwenviewlib_export.h>

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

#include <lib/sorting.h>
#include <lib/zoommode.h>
#include <lib/slideshow.h>
#include <lib/thumbnailactions.h>
#include <lib/mousewheelbehavior.h>
#include <lib/fullscreenbackground.h>
#include <lib/documentview/documentview.h>
#include <lib/documentview/rasterimageview.h>
#include <lib/print/printoptionspage.h>
#include <lib/renderingintent.h>
#include <lib/documentview/documentview.h>

namespace Gwenview {

class GWENVIEWLIB_EXPORT GwenviewConfig : public KConfigSkeleton
{
  public:

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

    /**
      Set PreferredMetaInfoKeyList
    */
    static
    void setPreferredMetaInfoKeyList( const QStringList & v )
    {
      if (!self()->isPreferredMetaInfoKeyListImmutable())
        self()->mPreferredMetaInfoKeyList = v;
    }

    /**
      Get PreferredMetaInfoKeyList
    */
    static
    QStringList preferredMetaInfoKeyList()
    {
      return self()->mPreferredMetaInfoKeyList;
    }

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

    /**
      Set IsVisible ViewMode
    */
    static
    void setSideBarVisible( bool v )
    {
      if (!self()->isSideBarVisibleImmutable())
        self()->mSideBarVisible = v;
    }

    /**
      Get IsVisible ViewMode
    */
    static
    bool sideBarVisible()
    {
      return self()->mSideBarVisible;
    }

    /**
      Is IsVisible ViewMode Immutable
    */
    static
    bool isSideBarVisibleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SideBarVisible" ) );
    }

    /**
      Set IsVisible ViewMode FullScreen
    */
    static
    void setSideBarVisibleViewModeFullScreen( bool v )
    {
      if (!self()->isSideBarVisibleViewModeFullScreenImmutable())
        self()->mSideBarVisibleViewModeFullScreen = v;
    }

    /**
      Get IsVisible ViewMode FullScreen
    */
    static
    bool sideBarVisibleViewModeFullScreen()
    {
      return self()->mSideBarVisibleViewModeFullScreen;
    }

    /**
      Is IsVisible ViewMode FullScreen Immutable
    */
    static
    bool isSideBarVisibleViewModeFullScreenImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SideBarVisibleViewModeFullScreen" ) );
    }

    /**
      Set IsVisible Spotlight Mode
    */
    static
    void setSideBarVisibleSpotlightMode( bool v )
    {
      if (!self()->isSideBarVisibleSpotlightModeImmutable())
        self()->mSideBarVisibleSpotlightMode = v;
    }

    /**
      Get IsVisible Spotlight Mode
    */
    static
    bool sideBarVisibleSpotlightMode()
    {
      return self()->mSideBarVisibleSpotlightMode;
    }

    /**
      Is IsVisible Spotlight Mode Immutable
    */
    static
    bool isSideBarVisibleSpotlightModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SideBarVisibleSpotlightMode" ) );
    }

    /**
      Set SideBarSplitterSizes
    */
    static
    void setSideBarSplitterSizes( const QList<int> & v )
    {
      if (!self()->isSideBarSplitterSizesImmutable())
        self()->mSideBarSplitterSizes = v;
    }

    /**
      Get SideBarSplitterSizes
    */
    static
    QList<int> sideBarSplitterSizes()
    {
      return self()->mSideBarSplitterSizes;
    }

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

    /**
      Set InformationSplitterSizes
    */
    static
    void setInformationSplitterSizes( const QList<int> & v )
    {
      if (!self()->isInformationSplitterSizesImmutable())
        self()->mInformationSplitterSizes = v;
    }

    /**
      Get InformationSplitterSizes
    */
    static
    QList<int> informationSplitterSizes()
    {
      return self()->mInformationSplitterSizes;
    }

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

    /**
      Set BirdEyeViewEnabled
    */
    static
    void setBirdEyeViewEnabled( bool v )
    {
      if (!self()->isBirdEyeViewEnabledImmutable())
        self()->mBirdEyeViewEnabled = v;
    }

    /**
      Get BirdEyeViewEnabled
    */
    static
    bool birdEyeViewEnabled()
    {
      return self()->mBirdEyeViewEnabled;
    }

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

    /**
      Set BackgroundColorMode
    */
    static
    void setBackgroundColorMode( Gwenview::DocumentView::BackgroundColorMode v )
    {
      if (!self()->isBackgroundColorModeImmutable())
        self()->mBackgroundColorMode = v;
    }

    /**
      Get BackgroundColorMode
    */
    static
    Gwenview::DocumentView::BackgroundColorMode backgroundColorMode()
    {
      return static_cast<Gwenview::DocumentView::BackgroundColorMode>(self()->mBackgroundColorMode);
    }

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

    /**
      Set HistoryEnabled
    */
    static
    void setHistoryEnabled( bool v )
    {
      if (!self()->isHistoryEnabledImmutable())
        self()->mHistoryEnabled = v;
    }

    /**
      Get HistoryEnabled
    */
    static
    bool historyEnabled()
    {
      return self()->mHistoryEnabled;
    }

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

    /**
      Set PercentageOfMemoryUsageWarning
    */
    static
    void setPercentageOfMemoryUsageWarning( double v )
    {
      if (!self()->isPercentageOfMemoryUsageWarningImmutable())
        self()->mPercentageOfMemoryUsageWarning = v;
    }

    /**
      Get PercentageOfMemoryUsageWarning
    */
    static
    double percentageOfMemoryUsageWarning()
    {
      return self()->mPercentageOfMemoryUsageWarning;
    }

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

    /**
      Set BlackListedExtensions
    */
    static
    void setBlackListedExtensions( const QStringList & v )
    {
      if (!self()->isBlackListedExtensionsImmutable())
        self()->mBlackListedExtensions = v;
    }

    /**
      Get BlackListedExtensions
    */
    static
    QStringList blackListedExtensions()
    {
      return self()->mBlackListedExtensions;
    }

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

    /**
      Set ThumbnailBarIsVisible
    */
    static
    void setThumbnailBarIsVisible( bool v )
    {
      if (!self()->isThumbnailBarIsVisibleImmutable())
        self()->mThumbnailBarIsVisible = v;
    }

    /**
      Get ThumbnailBarIsVisible
    */
    static
    bool thumbnailBarIsVisible()
    {
      return self()->mThumbnailBarIsVisible;
    }

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

    /**
      Set JPEGQuality
    */
    static
    void setJPEGQuality( int v )
    {
      if (!self()->isJPEGQualityImmutable())
        self()->mJPEGQuality = v;
    }

    /**
      Get JPEGQuality
    */
    static
    int jPEGQuality()
    {
      return self()->mJPEGQuality;
    }

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

    /**
      Set LastTargetDir
    */
    static
    void setLastTargetDir( const QString & v )
    {
      if (!self()->isLastTargetDirImmutable())
        self()->mLastTargetDir = v;
    }

    /**
      Get LastTargetDir
    */
    static
    QString lastTargetDir()
    {
      return self()->mLastTargetDir;
    }

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

    /**
      Set ThumbnailBarOrientation
    */
    static
    void setThumbnailBarOrientation( Qt::Orientation v )
    {
      if (!self()->isThumbnailBarOrientationImmutable())
        self()->mThumbnailBarOrientation = v;
    }

    /**
      Get ThumbnailBarOrientation
    */
    static
    Qt::Orientation thumbnailBarOrientation()
    {
      return static_cast<Qt::Orientation>(self()->mThumbnailBarOrientation);
    }

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

    /**
      Set ThumbnailBarRowCount
    */
    static
    void setThumbnailBarRowCount( int v )
    {
      if (!self()->isThumbnailBarRowCountImmutable())
        self()->mThumbnailBarRowCount = v;
    }

    /**
      Get ThumbnailBarRowCount
    */
    static
    int thumbnailBarRowCount()
    {
      return self()->mThumbnailBarRowCount;
    }

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

    /**
      Set UrlNavigatorIsEditable
    */
    static
    void setUrlNavigatorIsEditable( bool v )
    {
      if (!self()->isUrlNavigatorIsEditableImmutable())
        self()->mUrlNavigatorIsEditable = v;
    }

    /**
      Get UrlNavigatorIsEditable
    */
    static
    bool urlNavigatorIsEditable()
    {
      return self()->mUrlNavigatorIsEditable;
    }

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

    /**
      Set UrlNavigatorShowFullPath
    */
    static
    void setUrlNavigatorShowFullPath( bool v )
    {
      if (!self()->isUrlNavigatorShowFullPathImmutable())
        self()->mUrlNavigatorShowFullPath = v;
    }

    /**
      Get UrlNavigatorShowFullPath
    */
    static
    bool urlNavigatorShowFullPath()
    {
      return self()->mUrlNavigatorShowFullPath;
    }

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

    /**
      Set DefaultExportPluginText
    */
    static
    void setDefaultExportPluginText( const QString & v )
    {
      if (!self()->isDefaultExportPluginTextImmutable())
        self()->mDefaultExportPluginText = v;
    }

    /**
      Get DefaultExportPluginText
    */
    static
    QString defaultExportPluginText()
    {
      return self()->mDefaultExportPluginText;
    }

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

    /**
      Set SideBarPage
    */
    static
    void setSideBarPage( const QString & v )
    {
      if (!self()->isSideBarPageImmutable())
        self()->mSideBarPage = v;
    }

    /**
      Get SideBarPage
    */
    static
    QString sideBarPage()
    {
      return self()->mSideBarPage;
    }

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

    /**
      Set FullScreenBackground
    */
    static
    void setFullScreenBackground( Gwenview::FullScreenBackground::Enum v )
    {
      if (!self()->isFullScreenBackgroundImmutable())
        self()->mFullScreenBackground = v;
    }

    /**
      Get FullScreenBackground
    */
    static
    Gwenview::FullScreenBackground::Enum fullScreenBackground()
    {
      return static_cast<Gwenview::FullScreenBackground::Enum>(self()->mFullScreenBackground);
    }

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

    /**
      Set ThumbnailActions
    */
    static
    void setThumbnailActions( Gwenview::ThumbnailActions::Enum v )
    {
      if (!self()->isThumbnailActionsImmutable())
        self()->mThumbnailActions = v;
    }

    /**
      Get ThumbnailActions
    */
    static
    Gwenview::ThumbnailActions::Enum thumbnailActions()
    {
      return static_cast<Gwenview::ThumbnailActions::Enum>(self()->mThumbnailActions);
    }

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

    /**
      Set LastUsedVersion
    */
    static
    void setLastUsedVersion( int v )
    {
      if (!self()->isLastUsedVersionImmutable())
        self()->mLastUsedVersion = v;
    }

    /**
      Get LastUsedVersion
    */
    static
    int lastUsedVersion()
    {
      return self()->mLastUsedVersion;
    }

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

    /**
      Set ShowHiddenFiles
    */
    static
    void setShowHiddenFiles( bool v )
    {
      if (!self()->isShowHiddenFilesImmutable())
        self()->mShowHiddenFiles = v;
    }

    /**
      Get ShowHiddenFiles
    */
    static
    bool showHiddenFiles()
    {
      return self()->mShowHiddenFiles;
    }

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

    /**
      Set FullScreenPreferredMetaInfoKeyList
    */
    static
    void setFullScreenPreferredMetaInfoKeyList( const QStringList & v )
    {
      if (!self()->isFullScreenPreferredMetaInfoKeyListImmutable())
        self()->mFullScreenPreferredMetaInfoKeyList = v;
    }

    /**
      Get FullScreenPreferredMetaInfoKeyList
    */
    static
    QStringList fullScreenPreferredMetaInfoKeyList()
    {
      return self()->mFullScreenPreferredMetaInfoKeyList;
    }

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

    /**
      Set FullScreenColorScheme
    */
    static
    void setFullScreenColorScheme( const QString & v )
    {
      if (!self()->isFullScreenColorSchemeImmutable())
        self()->mFullScreenColorScheme = v;
    }

    /**
      Get FullScreenColorScheme
    */
    static
    QString fullScreenColorScheme()
    {
      return self()->mFullScreenColorScheme;
    }

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

    /**
      Set FullScreenBarHeight
    */
    static
    void setFullScreenBarHeight( int v )
    {
      if (!self()->isFullScreenBarHeightImmutable())
        self()->mFullScreenBarHeight = v;
    }

    /**
      Get FullScreenBarHeight
    */
    static
    int fullScreenBarHeight()
    {
      return self()->mFullScreenBarHeight;
    }

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

    /**
      Set ShowFullScreenThumbnails
    */
    static
    void setShowFullScreenThumbnails( bool v )
    {
      if (!self()->isShowFullScreenThumbnailsImmutable())
        self()->mShowFullScreenThumbnails = v;
    }

    /**
      Get ShowFullScreenThumbnails
    */
    static
    bool showFullScreenThumbnails()
    {
      return self()->mShowFullScreenThumbnails;
    }

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

    /**
      Set FullScreenModeActive
    */
    static
    void setFullScreenModeActive( bool v )
    {
      if (!self()->isFullScreenModeActiveImmutable())
        self()->mFullScreenModeActive = v;
    }

    /**
      Get FullScreenModeActive
    */
    static
    bool fullScreenModeActive()
    {
      return self()->mFullScreenModeActive;
    }

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

    /**
      Set AlphaBackgroundMode
    */
    static
    void setAlphaBackgroundMode( Gwenview::AbstractImageView::AlphaBackgroundMode v )
    {
      if (!self()->isAlphaBackgroundModeImmutable())
        self()->mAlphaBackgroundMode = v;
    }

    /**
      Get AlphaBackgroundMode
    */
    static
    Gwenview::AbstractImageView::AlphaBackgroundMode alphaBackgroundMode()
    {
      return static_cast<Gwenview::AbstractImageView::AlphaBackgroundMode>(self()->mAlphaBackgroundMode);
    }

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

    /**
      Set AlphaBackgroundColor
    */
    static
    void setAlphaBackgroundColor( const QColor & v )
    {
      if (!self()->isAlphaBackgroundColorImmutable())
        self()->mAlphaBackgroundColor = v;
    }

    /**
      Get AlphaBackgroundColor
    */
    static
    QColor alphaBackgroundColor()
    {
      return self()->mAlphaBackgroundColor;
    }

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

    /**
      Set MouseWheelBehavior
    */
    static
    void setMouseWheelBehavior( Gwenview::MouseWheelBehavior::Enum v )
    {
      if (!self()->isMouseWheelBehaviorImmutable())
        self()->mMouseWheelBehavior = v;
    }

    /**
      Get MouseWheelBehavior
    */
    static
    Gwenview::MouseWheelBehavior::Enum mouseWheelBehavior()
    {
      return static_cast<Gwenview::MouseWheelBehavior::Enum>(self()->mMouseWheelBehavior);
    }

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

    /**
      Set EnlargeSmallerImages
    */
    static
    void setEnlargeSmallerImages( bool v )
    {
      if (!self()->isEnlargeSmallerImagesImmutable())
        self()->mEnlargeSmallerImages = v;
    }

    /**
      Get EnlargeSmallerImages
    */
    static
    bool enlargeSmallerImages()
    {
      return self()->mEnlargeSmallerImages;
    }

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

    /**
      Set ApplyExifOrientation
    */
    static
    void setApplyExifOrientation( bool v )
    {
      if (!self()->isApplyExifOrientationImmutable())
        self()->mApplyExifOrientation = v;
    }

    /**
      Get ApplyExifOrientation
    */
    static
    bool applyExifOrientation()
    {
      return self()->mApplyExifOrientation;
    }

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

    /**
      Set ThumbnailSplitterSizes
    */
    static
    void setThumbnailSplitterSizes( const QList<int> & v )
    {
      if (!self()->isThumbnailSplitterSizesImmutable())
        self()->mThumbnailSplitterSizes = v;
    }

    /**
      Get ThumbnailSplitterSizes
    */
    static
    QList<int> thumbnailSplitterSizes()
    {
      return self()->mThumbnailSplitterSizes;
    }

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

    /**
      Set AnimationMethod
    */
    static
    void setAnimationMethod( Gwenview::DocumentView::AnimationMethod v )
    {
      if (!self()->isAnimationMethodImmutable())
        self()->mAnimationMethod = v;
    }

    /**
      Get AnimationMethod
    */
    static
    Gwenview::DocumentView::AnimationMethod animationMethod()
    {
      return static_cast<Gwenview::DocumentView::AnimationMethod>(self()->mAnimationMethod);
    }

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

    /**
      Set ZoomMode
    */
    static
    void setZoomMode( Gwenview::ZoomMode::Enum v )
    {
      if (!self()->isZoomModeImmutable())
        self()->mZoomMode = v;
    }

    /**
      Get ZoomMode
    */
    static
    Gwenview::ZoomMode::Enum zoomMode()
    {
      return static_cast<Gwenview::ZoomMode::Enum>(self()->mZoomMode);
    }

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

    /**
      Set RenderingIntent
    */
    static
    void setRenderingIntent( Gwenview::RenderingIntent::Enum v )
    {
      if (!self()->isRenderingIntentImmutable())
        self()->mRenderingIntent = v;
    }

    /**
      Get RenderingIntent
    */
    static
    Gwenview::RenderingIntent::Enum renderingIntent()
    {
      return static_cast<Gwenview::RenderingIntent::Enum>(self()->mRenderingIntent);
    }

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

    /**
      Set EnableColorManagement
    */
    static
    void setEnableColorManagement( bool v )
    {
      if (!self()->isEnableColorManagementImmutable())
        self()->mEnableColorManagement = v;
    }

    /**
      Get EnableColorManagement
    */
    static
    bool enableColorManagement()
    {
      return self()->mEnableColorManagement;
    }

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

    /**
      Set SpotlightMode
    */
    static
    void setSpotlightMode( bool v )
    {
      if (!self()->isSpotlightModeImmutable())
        self()->mSpotlightMode = v;
    }

    /**
      Get SpotlightMode
    */
    static
    bool spotlightMode()
    {
      return self()->mSpotlightMode;
    }

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

    /**
      Set NavigationEndNotification
    */
    static
    void setNavigationEndNotification( Gwenview::SlideShow::NavigationEndNotification v )
    {
      if (!self()->isNavigationEndNotificationImmutable())
        self()->mNavigationEndNotification = v;
    }

    /**
      Get NavigationEndNotification
    */
    static
    Gwenview::SlideShow::NavigationEndNotification navigationEndNotification()
    {
      return static_cast<Gwenview::SlideShow::NavigationEndNotification>(self()->mNavigationEndNotification);
    }

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

    /**
      Set ThumbnailSize
    */
    static
    void setThumbnailSize( int v )
    {
      if (!self()->isThumbnailSizeImmutable())
        self()->mThumbnailSize = v;
    }

    /**
      Get ThumbnailSize
    */
    static
    int thumbnailSize()
    {
      return self()->mThumbnailSize;
    }

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

    /**
      Set ThumbnailAspectRatio
    */
    static
    void setThumbnailAspectRatio( double v )
    {
      if (!self()->isThumbnailAspectRatioImmutable())
        self()->mThumbnailAspectRatio = v;
    }

    /**
      Get ThumbnailAspectRatio
    */
    static
    double thumbnailAspectRatio()
    {
      return self()->mThumbnailAspectRatio;
    }

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

    /**
      Set LowResourceUsageMode
    */
    static
    void setLowResourceUsageMode( bool v )
    {
      if (!self()->isLowResourceUsageModeImmutable())
        self()->mLowResourceUsageMode = v;
    }

    /**
      Get LowResourceUsageMode
    */
    static
    bool lowResourceUsageMode()
    {
      return self()->mLowResourceUsageMode;
    }

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

    /**
      Set Sorting
    */
    static
    void setSorting( Gwenview::Sorting::Enum v )
    {
      if (!self()->isSortingImmutable())
        self()->mSorting = v;
    }

    /**
      Get Sorting
    */
    static
    Gwenview::Sorting::Enum sorting()
    {
      return static_cast<Gwenview::Sorting::Enum>(self()->mSorting);
    }

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

    /**
      Set SortDescending
    */
    static
    void setSortDescending( bool v )
    {
      if (!self()->isSortDescendingImmutable())
        self()->mSortDescending = v;
    }

    /**
      Get SortDescending
    */
    static
    bool sortDescending()
    {
      return self()->mSortDescending;
    }

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

    /**
      Set ThumbnailDetails
    */
    static
    void setThumbnailDetails( int v )
    {
      if (!self()->isThumbnailDetailsImmutable())
        self()->mThumbnailDetails = v;
    }

    /**
      Get ThumbnailDetails
    */
    static
    int thumbnailDetails()
    {
      return self()->mThumbnailDetails;
    }

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

    /**
      Set ListVideos
    */
    static
    void setListVideos( bool v )
    {
      if (!self()->isListVideosImmutable())
        self()->mListVideos = v;
    }

    /**
      Get ListVideos
    */
    static
    bool listVideos()
    {
      return self()->mListVideos;
    }

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

    /**
      Set AutoplayVideos
    */
    static
    void setAutoplayVideos( bool v )
    {
      if (!self()->isAutoplayVideosImmutable())
        self()->mAutoplayVideos = v;
    }

    /**
      Get AutoplayVideos
    */
    static
    bool autoplayVideos()
    {
      return self()->mAutoplayVideos;
    }

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

    /**
      Set WrapAfterLast
    */
    static
    void setWrapAfterLast( bool v )
    {
      if (!self()->isWrapAfterLastImmutable())
        self()->mWrapAfterLast = v;
    }

    /**
      Get WrapAfterLast
    */
    static
    bool wrapAfterLast()
    {
      return self()->mWrapAfterLast;
    }

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

    /**
      Set PrintPosition
    */
    static
    void setPrintPosition( int v )
    {
      if (!self()->isPrintPositionImmutable())
        self()->mPrintPosition = v;
    }

    /**
      Get PrintPosition
    */
    static
    int printPosition()
    {
      return self()->mPrintPosition;
    }

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

    /**
      Set PrintScaleMode
    */
    static
    void setPrintScaleMode( Gwenview::PrintOptionsPage::ScaleMode v )
    {
      if (!self()->isPrintScaleModeImmutable())
        self()->mPrintScaleMode = v;
    }

    /**
      Get PrintScaleMode
    */
    static
    Gwenview::PrintOptionsPage::ScaleMode printScaleMode()
    {
      return static_cast<Gwenview::PrintOptionsPage::ScaleMode>(self()->mPrintScaleMode);
    }

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

    /**
      Set PrintEnlargeSmallerImages
    */
    static
    void setPrintEnlargeSmallerImages( bool v )
    {
      if (!self()->isPrintEnlargeSmallerImagesImmutable())
        self()->mPrintEnlargeSmallerImages = v;
    }

    /**
      Get PrintEnlargeSmallerImages
    */
    static
    bool printEnlargeSmallerImages()
    {
      return self()->mPrintEnlargeSmallerImages;
    }

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

    /**
      Set PrintWidth
    */
    static
    void setPrintWidth( double v )
    {
      if (!self()->isPrintWidthImmutable())
        self()->mPrintWidth = v;
    }

    /**
      Get PrintWidth
    */
    static
    double printWidth()
    {
      return self()->mPrintWidth;
    }

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

    /**
      Set PrintHeight
    */
    static
    void setPrintHeight( double v )
    {
      if (!self()->isPrintHeightImmutable())
        self()->mPrintHeight = v;
    }

    /**
      Get PrintHeight
    */
    static
    double printHeight()
    {
      return self()->mPrintHeight;
    }

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

    /**
      Set PrintUnit
    */
    static
    void setPrintUnit( Gwenview::PrintOptionsPage::Unit v )
    {
      if (!self()->isPrintUnitImmutable())
        self()->mPrintUnit = v;
    }

    /**
      Get PrintUnit
    */
    static
    Gwenview::PrintOptionsPage::Unit printUnit()
    {
      return static_cast<Gwenview::PrintOptionsPage::Unit>(self()->mPrintUnit);
    }

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

    /**
      Set PrintKeepRatio
    */
    static
    void setPrintKeepRatio( bool v )
    {
      if (!self()->isPrintKeepRatioImmutable())
        self()->mPrintKeepRatio = v;
    }

    /**
      Get PrintKeepRatio
    */
    static
    bool printKeepRatio()
    {
      return self()->mPrintKeepRatio;
    }

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

    /**
      Set Display slide show images in random order
    */
    static
    void setRandom( bool v )
    {
      if (!self()->isRandomImmutable())
        self()->mRandom = v;
    }

    /**
      Get Display slide show images in random order
    */
    static
    bool random()
    {
      return self()->mRandom;
    }

    /**
      Is Display slide show images in random order Immutable
    */
    static
    bool isRandomImmutable()
    {
      return self()->isImmutable( QStringLiteral( "random" ) );
    }

    /**
      Set Show slideshow in fullscreen mode
    */
    static
    void setFullscreen( bool v )
    {
      if (!self()->isFullscreenImmutable())
        self()->mFullscreen = v;
    }

    /**
      Get Show slideshow in fullscreen mode
    */
    static
    bool fullscreen()
    {
      return self()->mFullscreen;
    }

    /**
      Is Show slideshow in fullscreen mode Immutable
    */
    static
    bool isFullscreenImmutable()
    {
      return self()->isImmutable( QStringLiteral( "fullscreen" ) );
    }

    /**
      Set Loop on images
    */
    static
    void setLoop( bool v )
    {
      if (!self()->isLoopImmutable())
        self()->mLoop = v;
    }

    /**
      Get Loop on images
    */
    static
    bool loop()
    {
      return self()->mLoop;
    }

    /**
      Is Loop on images Immutable
    */
    static
    bool isLoopImmutable()
    {
      return self()->isImmutable( QStringLiteral( "loop" ) );
    }

    /**
      Set Stop at last image of folder
    */
    static
    void setStopAtEnd( bool v )
    {
      if (!self()->isStopAtEndImmutable())
        self()->mStopAtEnd = v;
    }

    /**
      Get Stop at last image of folder
    */
    static
    bool stopAtEnd()
    {
      return self()->mStopAtEnd;
    }

    /**
      Is Stop at last image of folder Immutable
    */
    static
    bool isStopAtEndImmutable()
    {
      return self()->isImmutable( QStringLiteral( "stopAtEnd" ) );
    }

    /**
      Set Interval between images (in seconds)
    */
    static
    void setInterval( double v )
    {
      if (!self()->isIntervalImmutable())
        self()->mInterval = v;
    }

    /**
      Get Interval between images (in seconds)
    */
    static
    double interval()
    {
      return self()->mInterval;
    }

    /**
      Is Interval between images (in seconds) Immutable
    */
    static
    bool isIntervalImmutable()
    {
      return self()->isImmutable( QStringLiteral( "interval" ) );
    }

    /**
      Set RedEyeReductionDiameter
    */
    static
    void setRedEyeReductionDiameter( int v )
    {
      if (!self()->isRedEyeReductionDiameterImmutable())
        self()->mRedEyeReductionDiameter = v;
    }

    /**
      Get RedEyeReductionDiameter
    */
    static
    int redEyeReductionDiameter()
    {
      return self()->mRedEyeReductionDiameter;
    }

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

    /**
      Set CropAdvancedSettingsEnabled
    */
    static
    void setCropAdvancedSettingsEnabled( bool v )
    {
      if (!self()->isCropAdvancedSettingsEnabledImmutable())
        self()->mCropAdvancedSettingsEnabled = v;
    }

    /**
      Get CropAdvancedSettingsEnabled
    */
    static
    bool cropAdvancedSettingsEnabled()
    {
      return self()->mCropAdvancedSettingsEnabled;
    }

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

    /**
      Set Restrict crop to image ratio when Advanced Settings disabled
    */
    static
    void setCropPreserveAspectRatio( bool v )
    {
      if (!self()->isCropPreserveAspectRatioImmutable())
        self()->mCropPreserveAspectRatio = v;
    }

    /**
      Get Restrict crop to image ratio when Advanced Settings disabled
    */
    static
    bool cropPreserveAspectRatio()
    {
      return self()->mCropPreserveAspectRatio;
    }

    /**
      Is Restrict crop to image ratio when Advanced Settings disabled Immutable
    */
    static
    bool isCropPreserveAspectRatioImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CropPreserveAspectRatio" ) );
    }

    /**
      Set Index representing selected ratio in the Advanced settings combobox
    */
    static
    void setCropRatioIndex( int v )
    {
      if (!self()->isCropRatioIndexImmutable())
        self()->mCropRatioIndex = v;
    }

    /**
      Get Index representing selected ratio in the Advanced settings combobox
    */
    static
    int cropRatioIndex()
    {
      return self()->mCropRatioIndex;
    }

    /**
      Is Index representing selected ratio in the Advanced settings combobox Immutable
    */
    static
    bool isCropRatioIndexImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CropRatioIndex" ) );
    }

    /**
      Set Last used crop ratio width when Advanced Settings enabled
    */
    static
    void setCropRatioWidth( double v )
    {
      if (!self()->isCropRatioWidthImmutable())
        self()->mCropRatioWidth = v;
    }

    /**
      Get Last used crop ratio width when Advanced Settings enabled
    */
    static
    double cropRatioWidth()
    {
      return self()->mCropRatioWidth;
    }

    /**
      Is Last used crop ratio width when Advanced Settings enabled Immutable
    */
    static
    bool isCropRatioWidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CropRatioWidth" ) );
    }

    /**
      Set Last used crop ratio height when Advanced Settings enabled
    */
    static
    void setCropRatioHeight( double v )
    {
      if (!self()->isCropRatioHeightImmutable())
        self()->mCropRatioHeight = v;
    }

    /**
      Get Last used crop ratio height when Advanced Settings enabled
    */
    static
    double cropRatioHeight()
    {
      return self()->mCropRatioHeight;
    }

    /**
      Is Last used crop ratio height when Advanced Settings enabled Immutable
    */
    static
    bool isCropRatioHeightImmutable()
    {
      return self()->isImmutable( QStringLiteral( "CropRatioHeight" ) );
    }

    /**
      Set IsVisible BrowseMode
    */
    static
    void setStatusBarVisibleBrowseMode( bool v )
    {
      if (!self()->isStatusBarVisibleBrowseModeImmutable())
        self()->mStatusBarVisibleBrowseMode = v;
    }

    /**
      Get IsVisible BrowseMode
    */
    static
    bool statusBarVisibleBrowseMode()
    {
      return self()->mStatusBarVisibleBrowseMode;
    }

    /**
      Is IsVisible BrowseMode Immutable
    */
    static
    bool isStatusBarVisibleBrowseModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StatusBarVisibleBrowseMode" ) );
    }

    /**
      Set IsVisible ViewMode
    */
    static
    void setStatusBarVisibleViewMode( bool v )
    {
      if (!self()->isStatusBarVisibleViewModeImmutable())
        self()->mStatusBarVisibleViewMode = v;
    }

    /**
      Get IsVisible ViewMode
    */
    static
    bool statusBarVisibleViewMode()
    {
      return self()->mStatusBarVisibleViewMode;
    }

    /**
      Is IsVisible ViewMode Immutable
    */
    static
    bool isStatusBarVisibleViewModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StatusBarVisibleViewMode" ) );
    }

    /**
      Set IsVisible ViewMode FullScreen
    */
    static
    void setStatusBarVisibleViewModeFullScreen( bool v )
    {
      if (!self()->isStatusBarVisibleViewModeFullScreenImmutable())
        self()->mStatusBarVisibleViewModeFullScreen = v;
    }

    /**
      Get IsVisible ViewMode FullScreen
    */
    static
    bool statusBarVisibleViewModeFullScreen()
    {
      return self()->mStatusBarVisibleViewModeFullScreen;
    }

    /**
      Is IsVisible ViewMode FullScreen Immutable
    */
    static
    bool isStatusBarVisibleViewModeFullScreenImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StatusBarVisibleViewModeFullScreen" ) );
    }

    /**
      Set IsVisible Spotlight Mode
    */
    static
    void setStatusBarVisibleSpotlightMode( bool v )
    {
      if (!self()->isStatusBarVisibleSpotlightModeImmutable())
        self()->mStatusBarVisibleSpotlightMode = v;
    }

    /**
      Get IsVisible Spotlight Mode
    */
    static
    bool statusBarVisibleSpotlightMode()
    {
      return self()->mStatusBarVisibleSpotlightMode;
    }

    /**
      Is IsVisible Spotlight Mode Immutable
    */
    static
    bool isStatusBarVisibleSpotlightModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "StatusBarVisibleSpotlightMode" ) );
    }

  protected:
    GwenviewConfig();
    friend class GwenviewConfigHelper;


    // SideBar
    QStringList mPreferredMetaInfoKeyList;
    bool mSideBarVisible;
    bool mSideBarVisibleViewModeFullScreen;
    bool mSideBarVisibleSpotlightMode;
    QList<int> mSideBarSplitterSizes;
    QList<int> mInformationSplitterSizes;

    // General
    bool mBirdEyeViewEnabled;
    int mBackgroundColorMode;
    bool mHistoryEnabled;
    double mPercentageOfMemoryUsageWarning;
    QStringList mBlackListedExtensions;
    bool mThumbnailBarIsVisible;
    int mJPEGQuality;
    QString mLastTargetDir;
    int mThumbnailBarOrientation;
    int mThumbnailBarRowCount;
    bool mUrlNavigatorIsEditable;
    bool mUrlNavigatorShowFullPath;
    QString mDefaultExportPluginText;
    QString mSideBarPage;
    int mFullScreenBackground;
    int mThumbnailActions;
    int mLastUsedVersion;
    bool mShowHiddenFiles;

    // FullScreen
    QStringList mFullScreenPreferredMetaInfoKeyList;
    QString mFullScreenColorScheme;
    int mFullScreenBarHeight;
    bool mShowFullScreenThumbnails;
    bool mFullScreenModeActive;

    // ImageView
    int mAlphaBackgroundMode;
    QColor mAlphaBackgroundColor;
    int mMouseWheelBehavior;
    bool mEnlargeSmallerImages;
    bool mApplyExifOrientation;
    QList<int> mThumbnailSplitterSizes;
    int mAnimationMethod;
    int mZoomMode;
    int mRenderingIntent;
    bool mEnableColorManagement;
    bool mSpotlightMode;
    int mNavigationEndNotification;

    // ThumbnailView
    int mThumbnailSize;
    double mThumbnailAspectRatio;
    bool mLowResourceUsageMode;
    int mSorting;
    bool mSortDescending;
    int mThumbnailDetails;
    bool mListVideos;
    bool mAutoplayVideos;
    bool mWrapAfterLast;

    // Print
    int mPrintPosition;
    int mPrintScaleMode;
    bool mPrintEnlargeSmallerImages;
    double mPrintWidth;
    double mPrintHeight;
    int mPrintUnit;
    bool mPrintKeepRatio;

    // slide show
    bool mRandom;
    bool mFullscreen;
    bool mLoop;
    bool mStopAtEnd;
    double mInterval;

    // RedEyeReduction
    int mRedEyeReductionDiameter;

    // Crop
    bool mCropAdvancedSettingsEnabled;
    bool mCropPreserveAspectRatio;
    int mCropRatioIndex;
    double mCropRatioWidth;
    double mCropRatioHeight;

    // StatusBar
    bool mStatusBarVisibleBrowseMode;
    bool mStatusBarVisibleViewMode;
    bool mStatusBarVisibleViewModeFullScreen;
    bool mStatusBarVisibleSpotlightMode;
};

}

#endif

