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

#include <dolphin_export.h>

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

class DOLPHIN_EXPORT ContentDisplaySettings : public KConfigSkeleton
{
  public:
    class EnumDirectorySizeMode
    {
      public:
      enum type { ContentCount, ContentSize, None, COUNT };
    };
    class EnumUsePermissionsFormat
    {
      public:
      enum type { SymbolicFormat, NumericFormat, CombinedFormat, COUNT };
    };
    enum ElidingMode { Right, Middle };

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

    /**
      Set How we display the size of directories
    */
    static
    void setDirectorySizeMode( int v )
    {
      if (!self()->isDirectorySizeModeImmutable())
        self()->mDirectorySizeMode = v;
    }

    /**
      Get How we display the size of directories
    */
    static
    int directorySizeMode()
    {
      return self()->mDirectorySizeMode;
    }

    /**
      Is How we display the size of directories Immutable
    */
    static
    bool isDirectorySizeModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "DirectorySizeMode" ) );
    }

    /**
      Set Recursive directory size limit
    */
    static
    void setRecursiveDirectorySizeLimit( uint v )
    {
      if (!self()->isRecursiveDirectorySizeLimitImmutable())
        self()->mRecursiveDirectorySizeLimit = v;
    }

    /**
      Get Recursive directory size limit
    */
    static
    uint recursiveDirectorySizeLimit()
    {
      return self()->mRecursiveDirectorySizeLimit;
    }

    /**
      Is Recursive directory size limit Immutable
    */
    static
    bool isRecursiveDirectorySizeLimitImmutable()
    {
      return self()->isImmutable( QStringLiteral( "RecursiveDirectorySizeLimit" ) );
    }

    /**
      Set if true we use short relative dates, if not short dates
    */
    static
    void setUseShortRelativeDates( bool v )
    {
      if (!self()->isUseShortRelativeDatesImmutable())
        self()->mUseShortRelativeDates = v;
    }

    /**
      Get if true we use short relative dates, if not short dates
    */
    static
    bool useShortRelativeDates()
    {
      return self()->mUseShortRelativeDates;
    }

    /**
      Is if true we use short relative dates, if not short dates Immutable
    */
    static
    bool isUseShortRelativeDatesImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UseShortRelativeDates" ) );
    }

    /**
      Set Permissions style format
    */
    static
    void setUsePermissionsFormat( int v )
    {
      if (!self()->isUsePermissionsFormatImmutable())
        self()->mUsePermissionsFormat = v;
    }

    /**
      Get Permissions style format
    */
    static
    int usePermissionsFormat()
    {
      return self()->mUsePermissionsFormat;
    }

    /**
      Is Permissions style format Immutable
    */
    static
    bool isUsePermissionsFormatImmutable()
    {
      return self()->isImmutable( QStringLiteral( "UsePermissionsFormat" ) );
    }

    /**
      Set Eliding Mode
    */
    static
    void setElidingMode( int v )
    {
      if (!self()->isElidingModeImmutable())
        self()->mElidingMode = v;
    }

    /**
      Get Eliding Mode
    */
    static
    int elidingMode()
    {
      return self()->mElidingMode;
    }

    /**
      Is Eliding Mode Immutable
    */
    static
    bool isElidingModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ElidingMode" ) );
    }

  protected:
    ContentDisplaySettings();
    friend class ContentDisplaySettingsHelper;


    // ContentDisplay
    int mDirectorySizeMode;
    uint mRecursiveDirectorySizeLimit;
    bool mUseShortRelativeDates;
    int mUsePermissionsFormat;
    int mElidingMode;
};

#endif

