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

#include "mailcommon_export.h"

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

namespace MailCommon {

class MAILCOMMON_EXPORT MailCommonSettings : public KConfigSkeleton
{
  public:
    class EnumFavoriteCollectionViewMode
    {
      public:
      enum type { HiddenMode, IconMode, ListMode, COUNT };
    };

    MailCommonSettings( );
    ~MailCommonSettings() override;

    /**
      Set IconSize
    */
    void setIconSize( int v )
    {
      if (!isIconSizeImmutable())
        mIconSize = v;
    }

    /**
      Get IconSize
    */
    int iconSize() const
    {
      return mIconSize;
    }

    /**
      Is IconSize Immutable
    */
    bool isIconSizeImmutable() const
    {
      return isImmutable( QStringLiteral( "IconSize" ) );
    }

    /**
      Get Item object corresponding to IconSize()
    */
    ItemInt *iconSizeItem()
    {
      return mIconSizeItem;
    }

    /**
      Set FavoriteCollectionViewHeight
    */
    void setFavoriteCollectionViewHeight( int v )
    {
      if (!isFavoriteCollectionViewHeightImmutable())
        mFavoriteCollectionViewHeight = v;
    }

    /**
      Get FavoriteCollectionViewHeight
    */
    int favoriteCollectionViewHeight() const
    {
      return mFavoriteCollectionViewHeight;
    }

    /**
      Is FavoriteCollectionViewHeight Immutable
    */
    bool isFavoriteCollectionViewHeightImmutable() const
    {
      return isImmutable( QStringLiteral( "FavoriteCollectionViewHeight" ) );
    }

    /**
      Get Item object corresponding to FavoriteCollectionViewHeight()
    */
    ItemInt *favoriteCollectionViewHeightItem()
    {
      return mFavoriteCollectionViewHeightItem;
    }

    /**
      Set Display Mode of the Favorite Collections View
    */
    void setFavoriteCollectionViewMode( int v )
    {
      if (!isFavoriteCollectionViewModeImmutable())
        mFavoriteCollectionViewMode = v;
    }

    /**
      Get Display Mode of the Favorite Collections View
    */
    int favoriteCollectionViewMode() const
    {
      return mFavoriteCollectionViewMode;
    }

    /**
      Is Display Mode of the Favorite Collections View Immutable
    */
    bool isFavoriteCollectionViewModeImmutable() const
    {
      return isImmutable( QStringLiteral( "FavoriteCollectionViewMode" ) );
    }

    /**
      Get Item object corresponding to FavoriteCollectionViewMode()
    */
    ItemEnum *favoriteCollectionViewModeItem()
    {
      return mFavoriteCollectionViewModeItem;
    }

    /**
      Set order
    */
    void setOrder( const QStringList & v )
    {
      if (!isOrderImmutable())
        mOrder = v;
    }

    /**
      Get order
    */
    QStringList order() const
    {
      return mOrder;
    }

    /**
      Is order Immutable
    */
    bool isOrderImmutable() const
    {
      return isImmutable( QStringLiteral( "order" ) );
    }

    /**
      Get Item object corresponding to order()
    */
    ItemStringList *orderItem()
    {
      return mOrderItem;
    }

    /**
      Set EnableAccountOrder
    */
    void setEnableAccountOrder( bool v )
    {
      if (!isEnableAccountOrderImmutable())
        mEnableAccountOrder = v;
    }

    /**
      Get EnableAccountOrder
    */
    bool enableAccountOrder() const
    {
      return mEnableAccountOrder;
    }

    /**
      Is EnableAccountOrder Immutable
    */
    bool isEnableAccountOrderImmutable() const
    {
      return isImmutable( QStringLiteral( "EnableAccountOrder" ) );
    }

    /**
      Get Item object corresponding to EnableAccountOrder()
    */
    ItemBool *enableAccountOrderItem()
    {
      return mEnableAccountOrderItem;
    }

  protected:

    // FavoriteCollectionWidget
    int mIconSize;

    // FavoriteCollectionView
    int mFavoriteCollectionViewHeight;
    int mFavoriteCollectionViewMode;

    // AccountOrder
    QStringList mOrder;
    bool mEnableAccountOrder;

  private:
    ItemInt *mIconSizeItem;
    ItemInt *mFavoriteCollectionViewHeightItem;
    ItemEnum *mFavoriteCollectionViewModeItem;
    ItemStringList *mOrderItem;
    ItemBool *mEnableAccountOrderItem;
};

}

#endif

