// This file is generated by kconfig_compiler_kf5 from dolphin_directoryviewpropertysettings.kcfg.
// All changes you do to this file will be lost.
#ifndef VIEWPROPERTYSETTINGS_H
#define VIEWPROPERTYSETTINGS_H

#include <views/dolphinview.h>
#include <qnamespace.h>

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

#include <kfileitemdelegate.h>
class ViewPropertySettings : public KConfigSkeleton
{
  public:

    ViewPropertySettings( KSharedConfig::Ptr config = KSharedConfig::openConfig() );
    ~ViewPropertySettings();

    /**
      Set Hidden files shown
    */
    void setHiddenFilesShown( bool v )
    {
      if (!isImmutable( QStringLiteral( "HiddenFilesShown" ) ))
        mHiddenFilesShown = v;
    }

    /**
      Get Hidden files shown
    */
    bool hiddenFilesShown() const
    {
      return mHiddenFilesShown;
    }

    /**
      Set Version
    */
    void setVersion( int v )
    {
      if (!isImmutable( QStringLiteral( "Version" ) ))
        mVersion = v;
    }

    /**
      Get Version
    */
    int version() const
    {
      return mVersion;
    }

    /**
      Set View Mode
    */
    void setViewMode( int v )
    {
      if (!isImmutable( QStringLiteral( "ViewMode" ) ))
        mViewMode = v;
    }

    /**
      Get View Mode
    */
    int viewMode() const
    {
      return mViewMode;
    }

    /**
      Set Previews shown
    */
    void setPreviewsShown( bool v )
    {
      if (!isImmutable( QStringLiteral( "PreviewsShown" ) ))
        mPreviewsShown = v;
    }

    /**
      Get Previews shown
    */
    bool previewsShown() const
    {
      return mPreviewsShown;
    }

    /**
      Set Grouped Sorting
    */
    void setGroupedSorting( bool v )
    {
      if (!isImmutable( QStringLiteral( "GroupedSorting" ) ))
        mGroupedSorting = v;
    }

    /**
      Get Grouped Sorting
    */
    bool groupedSorting() const
    {
      return mGroupedSorting;
    }

    /**
      Set Sort files by
    */
    void setSortRole( const QString & v )
    {
      if (!isImmutable( QStringLiteral( "SortRole" ) ))
        mSortRole = v;
    }

    /**
      Get Sort files by
    */
    QString sortRole() const
    {
      return mSortRole;
    }

    /**
      Set Order in which to sort files
    */
    void setSortOrder( int v )
    {
      if (v < Qt::AscendingOrder)
      {
        qDebug() << "setSortOrder: value " << v << " is less than the minimum value of Qt::AscendingOrder";
        v = Qt::AscendingOrder;
      }

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

      if (!isImmutable( QStringLiteral( "SortOrder" ) ))
        mSortOrder = v;
    }

    /**
      Get Order in which to sort files
    */
    int sortOrder() const
    {
      return mSortOrder;
    }

    /**
      Set Show folders first when sorting files and folders
    */
    void setSortFoldersFirst( bool v )
    {
      if (!isImmutable( QStringLiteral( "SortFoldersFirst" ) ))
        mSortFoldersFirst = v;
    }

    /**
      Get Show folders first when sorting files and folders
    */
    bool sortFoldersFirst() const
    {
      return mSortFoldersFirst;
    }

    /**
      Set Visible roles
    */
    void setVisibleRoles( const QStringList & v )
    {
      if (!isImmutable( QStringLiteral( "VisibleRoles" ) ))
        mVisibleRoles = v;
    }

    /**
      Get Visible roles
    */
    QStringList visibleRoles() const
    {
      return mVisibleRoles;
    }

    /**
      Set Header column widths
    */
    void setHeaderColumnWidths( const QList<int> & v )
    {
      if (!isImmutable( QStringLiteral( "HeaderColumnWidths" ) ))
        mHeaderColumnWidths = v;
    }

    /**
      Get Header column widths
    */
    QList<int> headerColumnWidths() const
    {
      return mHeaderColumnWidths;
    }

    /**
      Set Properties last changed
    */
    void setTimestamp( const QDateTime & v )
    {
      if (!isImmutable( QStringLiteral( "Timestamp" ) ))
        mTimestamp = v;
    }

    /**
      Get Properties last changed
    */
    QDateTime timestamp() const
    {
      return mTimestamp;
    }

    /**
      Set Additional Information
    */
    void setAdditionalInfo( const QStringList & v )
    {
      if (!isImmutable( QStringLiteral( "AdditionalInfo" ) ))
        mAdditionalInfo = v;
    }

    /**
      Get Additional Information
    */
    QStringList additionalInfo() const
    {
      return mAdditionalInfo;
    }

  protected:

    // Settings
    bool mHiddenFilesShown;

    // Dolphin
    int mVersion;
    int mViewMode;
    bool mPreviewsShown;
    bool mGroupedSorting;
    QString mSortRole;
    int mSortOrder;
    bool mSortFoldersFirst;
    QStringList mVisibleRoles;
    QList<int> mHeaderColumnWidths;
    QDateTime mTimestamp;
    QStringList mAdditionalInfo;

  private:
};

#endif

