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

#include <kaddressbook_export.h>

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

class KADDRESSBOOK_EXPORT Settings : public KConfigSkeleton
{
  public:
    enum EnumSortOrder { Ascending, Descending };
    enum EnumViewMode { Dummy, Simple, TwoColumn, ThreeColumn };

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

    /**
      Set DefaultFileName
    */
    static
    void setDefaultFileName( const QString & v )
    {
      if (!self()->isDefaultFileNameImmutable())
        self()->mDefaultFileName = v;
    }

    /**
      Get DefaultFileName
    */
    static
    QString defaultFileName()
    {
      return self()->mDefaultFileName;
    }

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

    /**
      Get Item object corresponding to DefaultFileName()
    */
    ItemString *defaultFileNameItem()
    {
      return mDefaultFileNameItem;
    }

    /**
      Set Printing style
    */
    static
    void setPrintingStyle( int v )
    {
      if (!self()->isPrintingStyleImmutable())
        self()->mPrintingStyle = v;
    }

    /**
      Get Printing style
    */
    static
    int printingStyle()
    {
      return self()->mPrintingStyle;
    }

    /**
      Is Printing style Immutable
    */
    static
    bool isPrintingStyleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "PrintingStyle" ) );
    }

    /**
      Get Item object corresponding to PrintingStyle()
    */
    ItemInt *printingStyleItem()
    {
      return mPrintingStyleItem;
    }

    /**
      Set Default sort order
    */
    static
    void setSortOrder( int v )
    {
      if (!self()->isSortOrderImmutable())
        self()->mSortOrder = v;
    }

    /**
      Get Default sort order
    */
    static
    int sortOrder()
    {
      return self()->mSortOrder;
    }

    /**
      Is Default sort order Immutable
    */
    static
    bool isSortOrderImmutable()
    {
      return self()->isImmutable( QStringLiteral( "SortOrder" ) );
    }

    /**
      Get Item object corresponding to SortOrder()
    */
    ItemEnum *sortOrderItem()
    {
      return mSortOrderItem;
    }

    /**
      Set ContactModelColumns
    */
    static
    void setContactModelColumns( const QList<int> & v )
    {
      if (!self()->isContactModelColumnsImmutable())
        self()->mContactModelColumns = v;
    }

    /**
      Get ContactModelColumns
    */
    static
    QList<int> contactModelColumns()
    {
      return self()->mContactModelColumns;
    }

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

    /**
      Get Item object corresponding to ContactModelColumns()
    */
    ItemIntList *contactModelColumnsItem()
    {
      return mContactModelColumnsItem;
    }

    /**
      Set Viewing mode
    */
    static
    void setViewMode( int v )
    {
      if (!self()->isViewModeImmutable())
        self()->mViewMode = v;
    }

    /**
      Get Viewing mode
    */
    static
    int viewMode()
    {
      return self()->mViewMode;
    }

    /**
      Is Viewing mode Immutable
    */
    static
    bool isViewModeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "ViewMode" ) );
    }

    /**
      Get Item object corresponding to ViewMode()
    */
    ItemEnum *viewModeItem()
    {
      return mViewModeItem;
    }

    /**
      Set ShowMenuBar
    */
    static
    void setShowMenuBar( bool v )
    {
      if (!self()->isShowMenuBarImmutable())
        self()->mShowMenuBar = v;
    }

    /**
      Get ShowMenuBar
    */
    static
    bool showMenuBar()
    {
      return self()->mShowMenuBar;
    }

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

    /**
      Get Item object corresponding to ShowMenuBar()
    */
    ItemBool *showMenuBarItem()
    {
      return mShowMenuBarItem;
    }

    /**
      Set EnabledActivities
    */
    static
    void setEnabledActivities( bool v )
    {
      if (!self()->isEnabledActivitiesImmutable())
        self()->mEnabledActivities = v;
    }

    /**
      Get EnabledActivities
    */
    static
    bool enabledActivities()
    {
      return self()->mEnabledActivities;
    }

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

    /**
      Get Item object corresponding to EnabledActivities()
    */
    ItemBool *enabledActivitiesItem()
    {
      return mEnabledActivitiesItem;
    }

    /**
      Set PreviousNewFeaturesMD5
    */
    static
    void setPreviousNewFeaturesMD5( const QString & v )
    {
      if (!self()->isPreviousNewFeaturesMD5Immutable())
        self()->mPreviousNewFeaturesMD5 = v;
    }

    /**
      Get PreviousNewFeaturesMD5
    */
    static
    QString previousNewFeaturesMD5()
    {
      return self()->mPreviousNewFeaturesMD5;
    }

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

    /**
      Get Item object corresponding to PreviousNewFeaturesMD5()
    */
    ItemString *previousNewFeaturesMD5Item()
    {
      return mPreviousNewFeaturesMD5Item;
    }

  protected:
    Settings();
    friend class SettingsHelper;


    // Printing
    QString mDefaultFileName;
    int mPrintingStyle;
    int mSortOrder;

    // Views
    QList<int> mContactModelColumns;
    int mViewMode;
    bool mShowMenuBar;

    // Activities
    bool mEnabledActivities;

    // General
    QString mPreviousNewFeaturesMD5;

  private:
    ItemString *mDefaultFileNameItem;
    ItemInt *mPrintingStyleItem;
    ItemEnum *mSortOrderItem;
    ItemIntList *mContactModelColumnsItem;
    ItemEnum *mViewModeItem;
    ItemBool *mShowMenuBarItem;
    ItemBool *mEnabledActivitiesItem;
    ItemString *mPreviousNewFeaturesMD5Item;
};

#endif

