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

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

class QQmlEngine;
class QJSEngine;

class ContactConfig : public KConfigSkeleton
{
  Q_OBJECT
  QML_ELEMENT
  QML_SINGLETON
  public:

    static ContactConfig *self();
    static ContactConfig *create(QQmlEngine *, QJSEngine *);
    ~ContactConfig() override;

    /**
      Set Show the Menubar.
    */
    static
    void setShowMenubar( bool v )
    {
      if (v != self()->mShowMenubar && !self()->isShowMenubarImmutable()) {
        self()->mShowMenubar = v;
        Q_EMIT self()->showMenubarChanged();
      }
    }

    Q_PROPERTY(bool showMenubar READ showMenubar WRITE setShowMenubar NOTIFY showMenubarChanged)
    Q_PROPERTY(bool isShowMenubarImmutable READ isShowMenubarImmutable CONSTANT)
    Q_PROPERTY(bool defaultShowMenubarValue READ defaultShowMenubarValue CONSTANT)
    /**
      Get Show the Menubar.
    */
    static
    bool showMenubar()
    {
      return self()->mShowMenubar;
    }

    /**
      Is Show the Menubar. Immutable
    */
    static
    bool isShowMenubarImmutable()
    {
      return self()->isImmutable( QStringLiteral( "showMenubar" ) );
    }

    /**
      Get Show the Menubar. default value
    */
    static
    bool defaultShowMenubarValue()
    {
        return defaultShowMenubarValue_helper();
    }

    /**
      Set Always have mainDrawer.collapsed.
    */
    static
    void setForceCollapsedMainDrawer( bool v )
    {
      if (v != self()->mForceCollapsedMainDrawer && !self()->isForceCollapsedMainDrawerImmutable()) {
        self()->mForceCollapsedMainDrawer = v;
        Q_EMIT self()->forceCollapsedMainDrawerChanged();
      }
    }

    Q_PROPERTY(bool forceCollapsedMainDrawer READ forceCollapsedMainDrawer WRITE setForceCollapsedMainDrawer NOTIFY forceCollapsedMainDrawerChanged)
    Q_PROPERTY(bool isForceCollapsedMainDrawerImmutable READ isForceCollapsedMainDrawerImmutable CONSTANT)
    Q_PROPERTY(bool defaultForceCollapsedMainDrawerValue READ defaultForceCollapsedMainDrawerValue CONSTANT)
    /**
      Get Always have mainDrawer.collapsed.
    */
    static
    bool forceCollapsedMainDrawer()
    {
      return self()->mForceCollapsedMainDrawer;
    }

    /**
      Is Always have mainDrawer.collapsed. Immutable
    */
    static
    bool isForceCollapsedMainDrawerImmutable()
    {
      return self()->isImmutable( QStringLiteral( "forceCollapsedMainDrawer" ) );
    }

    /**
      Get Always have mainDrawer.collapsed. default value
    */
    static
    bool defaultForceCollapsedMainDrawerValue()
    {
        return defaultForceCollapsedMainDrawerValue_helper();
    }

    /**
      Set The last used event collection used when creating a contact.
    */
    static
    void setLastUsedAddressBookCollection( int v )
    {
      if (v != self()->mLastUsedAddressBookCollection && !self()->isLastUsedAddressBookCollectionImmutable()) {
        self()->mLastUsedAddressBookCollection = v;
        Q_EMIT self()->lastUsedAddressBookCollectionChanged();
      }
    }

    Q_PROPERTY(int lastUsedAddressBookCollection READ lastUsedAddressBookCollection WRITE setLastUsedAddressBookCollection NOTIFY lastUsedAddressBookCollectionChanged)
    Q_PROPERTY(bool isLastUsedAddressBookCollectionImmutable READ isLastUsedAddressBookCollectionImmutable CONSTANT)
    Q_PROPERTY(int defaultLastUsedAddressBookCollectionValue READ defaultLastUsedAddressBookCollectionValue CONSTANT)
    /**
      Get The last used event collection used when creating a contact.
    */
    static
    int lastUsedAddressBookCollection()
    {
      return self()->mLastUsedAddressBookCollection;
    }

    /**
      Is The last used event collection used when creating a contact. Immutable
    */
    static
    bool isLastUsedAddressBookCollectionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "lastUsedAddressBookCollection" ) );
    }

    /**
      Get The last used event collection used when creating a contact. default value
    */
    static
    int defaultLastUsedAddressBookCollectionValue()
    {
        return defaultLastUsedAddressBookCollectionValue_helper();
    }


    enum {
      signalShowMenubarChanged = 1,
      signalForceCollapsedMainDrawerChanged = 2,
      signalLastUsedAddressBookCollectionChanged = 3
    };

  Q_SIGNALS:
    void showMenubarChanged();

    void forceCollapsedMainDrawerChanged();

    void lastUsedAddressBookCollectionChanged();

  private:
    void itemChanged(quint64 signalFlag);

  protected:
    ContactConfig(QObject *parent = nullptr);
    friend class ContactConfigHelper;


    // General
    bool mShowMenubar;
    static bool defaultShowMenubarValue_helper();
    bool mForceCollapsedMainDrawer;
    static bool defaultForceCollapsedMainDrawerValue_helper();

    // Editor
    int mLastUsedAddressBookCollection;
    static int defaultLastUsedAddressBookCollectionValue_helper();
};

#endif

