// This file is generated by kconfig_compiler_kf5 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/mousewheelbehavior.h>
#include <lib/documentview/documentview.h>
#include <lib/documentview/rasterimageview.h>
#include <lib/print/printoptionspage.h>
namespace Gwenview {

class GWENVIEWLIB_EXPORT GwenviewConfig : public KConfigSkeleton
{
  public:

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

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

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

    /**
      Set ViewBackgroundValue
    */
    static
    void setViewBackgroundValue( int v )
    {
      if (!self()->isImmutable( QStringLiteral( "ViewBackgroundValue" ) ))
        self()->mViewBackgroundValue = v;
    }

    /**
      Get ViewBackgroundValue
    */
    static
    int viewBackgroundValue()
    {
      return self()->mViewBackgroundValue;
    }

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

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

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

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

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

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

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

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

    /**
      Set StatusBarIsVisible
    */
    static
    void setStatusBarIsVisible( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "StatusBarIsVisible" ) ))
        self()->mStatusBarIsVisible = v;
    }

    /**
      Get StatusBarIsVisible
    */
    static
    bool statusBarIsVisible()
    {
      return self()->mStatusBarIsVisible;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
      Set AlphaBackgroundMode
    */
    static
    void setAlphaBackgroundMode( Gwenview::RasterImageView::AlphaBackgroundMode v )
    {
      if (!self()->isImmutable( QStringLiteral( "AlphaBackgroundMode" ) ))
        self()->mAlphaBackgroundMode = v;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
      Set DeleteThumbnailCacheOnExit
    */
    static
    void setDeleteThumbnailCacheOnExit( bool v )
    {
      if (!self()->isImmutable( QStringLiteral( "DeleteThumbnailCacheOnExit" ) ))
        self()->mDeleteThumbnailCacheOnExit = v;
    }

    /**
      Get DeleteThumbnailCacheOnExit
    */
    static
    bool deleteThumbnailCacheOnExit()
    {
      return self()->mDeleteThumbnailCacheOnExit;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  protected:
    GwenviewConfig();
    friend class GwenviewConfigHelper;


    // SideBar
    QStringList mPreferredMetaInfoKeyList;

    // General
    int mViewBackgroundValue;
    bool mHistoryEnabled;
    double mPercentageOfMemoryUsageWarning;
    QStringList mBlackListedExtensions;
    bool mThumbnailBarIsVisible;
    bool mStatusBarIsVisible;
    QString mLastTargetDir;
    int mThumbnailBarOrientation;
    int mThumbnailBarRowCount;
    bool mUrlNavigatorIsEditable;
    bool mUrlNavigatorShowFullPath;
    QString mDefaultExportPluginText;
    QString mSideBarPage;

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

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

    // ThumbnailView
    int mThumbnailSize;
    double mThumbnailAspectRatio;
    bool mDeleteThumbnailCacheOnExit;
    int mSorting;
    int mThumbnailDetails;
    bool mListVideos;

    // 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;

  private:
};

}

#endif

