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

#include <dolphin_export.h>

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

#include <kiconloader.h>
#include <QFontDatabase>

class DOLPHIN_EXPORT DetailsModeSettings : public KConfigSkeleton
{
  public:

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

    /**
      Set ViewFont
    */
    static
    void setViewFont( const QFont & v )
    {
      if (!self()->isViewFontImmutable())
        self()->mViewFont = v;
    }

    /**
      Get ViewFont
    */
    static
    QFont viewFont()
    {
      return self()->mViewFont;
    }

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

    /**
      Set Use system font
    */
    static
    void setUseSystemFont( bool v )
    {
      if (!self()->isUseSystemFontImmutable())
        self()->mUseSystemFont = v;
    }

    /**
      Get Use system font
    */
    static
    bool useSystemFont()
    {
      return self()->mUseSystemFont;
    }

    /**
      Is Use system font Immutable
    */
    static
    bool isUseSystemFontImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseSystemFont" ) );
    }

    /**
      Set Icon size
    */
    static
    void setIconSize( int v )
    {
      if (!self()->isIconSizeImmutable())
        self()->mIconSize = v;
    }

    /**
      Get Icon size
    */
    static
    int iconSize()
    {
      return self()->mIconSize;
    }

    /**
      Is Icon size Immutable
    */
    static
    bool isIconSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "IconSize" ) );
    }

    /**
      Set Preview size
    */
    static
    void setPreviewSize( int v )
    {
      if (!self()->isPreviewSizeImmutable())
        self()->mPreviewSize = v;
    }

    /**
      Get Preview size
    */
    static
    int previewSize()
    {
      return self()->mPreviewSize;
    }

    /**
      Is Preview size Immutable
    */
    static
    bool isPreviewSizeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PreviewSize" ) );
    }

    /**
      Set Position of columns
    */
    static
    void setColumnPositions( const QList<int> & v )
    {
      if (!self()->isColumnPositionsImmutable())
        self()->mColumnPositions = v;
    }

    /**
      Get Position of columns
    */
    static
    QList<int> columnPositions()
    {
      return self()->mColumnPositions;
    }

    /**
      Is Position of columns Immutable
    */
    static
    bool isColumnPositionsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ColumnPositions" ) );
    }

    /**
      Set Left side padding
    */
    static
    void setLeftPadding( uint v )
    {
      if (!self()->isLeftPaddingImmutable())
        self()->mLeftPadding = v;
    }

    /**
      Get Left side padding
    */
    static
    uint leftPadding()
    {
      return self()->mLeftPadding;
    }

    /**
      Is Left side padding Immutable
    */
    static
    bool isLeftPaddingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "LeftPadding" ) );
    }

    /**
      Set Right side padding
    */
    static
    void setRightPadding( uint v )
    {
      if (!self()->isRightPaddingImmutable())
        self()->mRightPadding = v;
    }

    /**
      Get Right side padding
    */
    static
    uint rightPadding()
    {
      return self()->mRightPadding;
    }

    /**
      Is Right side padding Immutable
    */
    static
    bool isRightPaddingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RightPadding" ) );
    }

    /**
      Set Highlight entire row
    */
    static
    void setHighlightEntireRow( bool v )
    {
      if (!self()->isHighlightEntireRowImmutable())
        self()->mHighlightEntireRow = v;
    }

    /**
      Get Highlight entire row
    */
    static
    bool highlightEntireRow()
    {
      return self()->mHighlightEntireRow;
    }

    /**
      Is Highlight entire row Immutable
    */
    static
    bool isHighlightEntireRowImmutable()
    {
      return self()->isImmutable( QStringLiteral( "HighlightEntireRow" ) );
    }

    /**
      Set Expandable folders
    */
    static
    void setExpandableFolders( bool v )
    {
      if (!self()->isExpandableFoldersImmutable())
        self()->mExpandableFolders = v;
    }

    /**
      Get Expandable folders
    */
    static
    bool expandableFolders()
    {
      return self()->mExpandableFolders;
    }

    /**
      Is Expandable folders Immutable
    */
    static
    bool isExpandableFoldersImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ExpandableFolders" ) );
    }

  protected:
    DetailsModeSettings();
    friend class DetailsModeSettingsHelper;


    // DetailsMode
    QFont mViewFont;
    bool mUseSystemFont;
    int mIconSize;
    int mPreviewSize;
    QList<int> mColumnPositions;
    uint mLeftPadding;
    uint mRightPadding;
    bool mHighlightEntireRow;
    bool mExpandableFolders;
};

#endif

