// This file is generated by kconfig_compiler from calendarsettings.kcfg.
// All changes you do to this file will be lost.
#ifndef AKONADI_CALENDARSETTINGS_H
#define AKONADI_CALENDARSETTINGS_H

#include <akonadi/calendar/akonadi-calendar_export.h>

#include <kconfigskeleton.h>
#include <kdebug.h>

namespace Akonadi {

class AKONADI_CALENDAR_EXPORT CalendarSettings : public KConfigSkeleton
{
  public:

    static CalendarSettings *self();
    ~CalendarSettings();

    /**
      Set FreeBusyPublishAuto
    */
    static
    void setFreeBusyPublishAuto( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyPublishAuto" ) ))
        self()->mFreeBusyPublishAuto = v;
    }

    /**
      Get FreeBusyPublishAuto
    */
    static
    bool freeBusyPublishAuto()
    {
      return self()->mFreeBusyPublishAuto;
    }

    /**
      Get Item object corresponding to FreeBusyPublishAuto()
    */
    ItemBool *freeBusyPublishAutoItem()
    {
      return mFreeBusyPublishAutoItem;
    }

    /**
      Set FreeBusyPublishDelay
    */
    static
    void setFreeBusyPublishDelay( int v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyPublishDelay" ) ))
        self()->mFreeBusyPublishDelay = v;
    }

    /**
      Get FreeBusyPublishDelay
    */
    static
    int freeBusyPublishDelay()
    {
      return self()->mFreeBusyPublishDelay;
    }

    /**
      Get Item object corresponding to FreeBusyPublishDelay()
    */
    ItemInt *freeBusyPublishDelayItem()
    {
      return mFreeBusyPublishDelayItem;
    }

    /**
      Set FreeBusyPublishDays
    */
    static
    void setFreeBusyPublishDays( int v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyPublishDays" ) ))
        self()->mFreeBusyPublishDays = v;
    }

    /**
      Get FreeBusyPublishDays
    */
    static
    int freeBusyPublishDays()
    {
      return self()->mFreeBusyPublishDays;
    }

    /**
      Get Item object corresponding to FreeBusyPublishDays()
    */
    ItemInt *freeBusyPublishDaysItem()
    {
      return mFreeBusyPublishDaysItem;
    }

    /**
      Set Free/Busy Publish URL
    */
    static
    void setFreeBusyPublishUrl( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyPublishUrl" ) ))
        self()->mFreeBusyPublishUrl = v;
    }

    /**
      Get Free/Busy Publish URL
    */
    static
    QString freeBusyPublishUrl()
    {
      return self()->mFreeBusyPublishUrl;
    }

    /**
      Get Item object corresponding to FreeBusyPublishUrl()
    */
    ItemString *freeBusyPublishUrlItem()
    {
      return mFreeBusyPublishUrlItem;
    }

    /**
      Set Free/Busy Publish Username
    */
    static
    void setFreeBusyPublishUser( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyPublishUser" ) ))
        self()->mFreeBusyPublishUser = v;
    }

    /**
      Get Free/Busy Publish Username
    */
    static
    QString freeBusyPublishUser()
    {
      return self()->mFreeBusyPublishUser;
    }

    /**
      Get Item object corresponding to FreeBusyPublishUser()
    */
    ItemString *freeBusyPublishUserItem()
    {
      return mFreeBusyPublishUserItem;
    }

    /**
      Set Free/Busy Publish Password
    */
    static
    void setFreeBusyPublishPassword( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyPublishPassword" ) ))
        self()->mFreeBusyPublishPassword = v;
    }

    /**
      Get Free/Busy Publish Password
    */
    static
    QString freeBusyPublishPassword()
    {
      return self()->mFreeBusyPublishPassword;
    }

    /**
      Get Item object corresponding to FreeBusyPublishPassword()
    */
    ItemPassword *freeBusyPublishPasswordItem()
    {
      return mFreeBusyPublishPasswordItem;
    }

    /**
      Set FreeBusyPublishSavePassword
    */
    static
    void setFreeBusyPublishSavePassword( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyPublishSavePassword" ) ))
        self()->mFreeBusyPublishSavePassword = v;
    }

    /**
      Get FreeBusyPublishSavePassword
    */
    static
    bool freeBusyPublishSavePassword()
    {
      return self()->mFreeBusyPublishSavePassword;
    }

    /**
      Get Item object corresponding to FreeBusyPublishSavePassword()
    */
    ItemBool *freeBusyPublishSavePasswordItem()
    {
      return mFreeBusyPublishSavePasswordItem;
    }

    /**
      Set Enable Automatic Free/Busy Retrieval
    */
    static
    void setFreeBusyRetrieveAuto( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyRetrieveAuto" ) ))
        self()->mFreeBusyRetrieveAuto = v;
    }

    /**
      Get Enable Automatic Free/Busy Retrieval
    */
    static
    bool freeBusyRetrieveAuto()
    {
      return self()->mFreeBusyRetrieveAuto;
    }

    /**
      Get Item object corresponding to FreeBusyRetrieveAuto()
    */
    ItemBool *freeBusyRetrieveAutoItem()
    {
      return mFreeBusyRetrieveAutoItem;
    }

    /**
      Set Use full email address for retrieval
    */
    static
    void setFreeBusyFullDomainRetrieval( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyFullDomainRetrieval" ) ))
        self()->mFreeBusyFullDomainRetrieval = v;
    }

    /**
      Get Use full email address for retrieval
    */
    static
    bool freeBusyFullDomainRetrieval()
    {
      return self()->mFreeBusyFullDomainRetrieval;
    }

    /**
      Get Item object corresponding to FreeBusyFullDomainRetrieval()
    */
    ItemBool *freeBusyFullDomainRetrievalItem()
    {
      return mFreeBusyFullDomainRetrievalItem;
    }

    /**
      Set Free/Busy Retrieval URL
    */
    static
    void setFreeBusyRetrieveUrl( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyRetrieveUrl" ) ))
        self()->mFreeBusyRetrieveUrl = v;
    }

    /**
      Get Free/Busy Retrieval URL
    */
    static
    QString freeBusyRetrieveUrl()
    {
      return self()->mFreeBusyRetrieveUrl;
    }

    /**
      Get Item object corresponding to FreeBusyRetrieveUrl()
    */
    ItemString *freeBusyRetrieveUrlItem()
    {
      return mFreeBusyRetrieveUrlItem;
    }

    /**
      Set Free/Busy Retrieval Username
    */
    static
    void setFreeBusyRetrieveUser( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyRetrieveUser" ) ))
        self()->mFreeBusyRetrieveUser = v;
    }

    /**
      Get Free/Busy Retrieval Username
    */
    static
    QString freeBusyRetrieveUser()
    {
      return self()->mFreeBusyRetrieveUser;
    }

    /**
      Get Item object corresponding to FreeBusyRetrieveUser()
    */
    ItemString *freeBusyRetrieveUserItem()
    {
      return mFreeBusyRetrieveUserItem;
    }

    /**
      Set Free/Busy Retrieval Password
    */
    static
    void setFreeBusyRetrievePassword( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyRetrievePassword" ) ))
        self()->mFreeBusyRetrievePassword = v;
    }

    /**
      Get Free/Busy Retrieval Password
    */
    static
    QString freeBusyRetrievePassword()
    {
      return self()->mFreeBusyRetrievePassword;
    }

    /**
      Get Item object corresponding to FreeBusyRetrievePassword()
    */
    ItemPassword *freeBusyRetrievePasswordItem()
    {
      return mFreeBusyRetrievePasswordItem;
    }

    /**
      Set FreeBusyRetrieveSavePassword
    */
    static
    void setFreeBusyRetrieveSavePassword( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyRetrieveSavePassword" ) ))
        self()->mFreeBusyRetrieveSavePassword = v;
    }

    /**
      Get FreeBusyRetrieveSavePassword
    */
    static
    bool freeBusyRetrieveSavePassword()
    {
      return self()->mFreeBusyRetrieveSavePassword;
    }

    /**
      Get Item object corresponding to FreeBusyRetrieveSavePassword()
    */
    ItemBool *freeBusyRetrieveSavePasswordItem()
    {
      return mFreeBusyRetrieveSavePasswordItem;
    }

    /**
      Set Send copy to owner when mailing events
    */
    static
    void setBcc( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "Bcc" ) ))
        self()->mBcc = v;
    }

    /**
      Get Send copy to owner when mailing events
    */
    static
    bool bcc()
    {
      return self()->mBcc;
    }

    /**
      Get Item object corresponding to Bcc()
    */
    ItemBool *bccItem()
    {
      return mBccItem;
    }

    /**
      Set Mail transport to use for sending e-mail messages
    */
    static
    void setMailTransport( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "MailTransport" ) ))
        self()->mMailTransport = v;
    }

    /**
      Get Mail transport to use for sending e-mail messages
    */
    static
    QString mailTransport()
    {
      return self()->mMailTransport;
    }

    /**
      Get Item object corresponding to MailTransport()
    */
    ItemString *mailTransportItem()
    {
      return mMailTransportItem;
    }

    /**
      Set Send Outlook-like pseudo counter proposals
    */
    static
    void setOutlookCompatCounterProposals( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "OutlookCompatCounterProposals" ) ))
        self()->mOutlookCompatCounterProposals = v;
    }

    /**
      Get Send Outlook-like pseudo counter proposals
    */
    static
    bool outlookCompatCounterProposals()
    {
      return self()->mOutlookCompatCounterProposals;
    }

    /**
      Get Item object corresponding to OutlookCompatCounterProposals()
    */
    ItemBool *outlookCompatCounterProposalsItem()
    {
      return mOutlookCompatCounterProposalsItem;
    }

    /**
      Set Check whether hostname and retrieval email address match
    */
    static
    void setFreeBusyCheckHostname( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "FreeBusyCheckHostname" ) ))
        self()->mFreeBusyCheckHostname = v;
    }

    /**
      Get Check whether hostname and retrieval email address match
    */
    static
    bool freeBusyCheckHostname()
    {
      return self()->mFreeBusyCheckHostname;
    }

    /**
      Get Item object corresponding to FreeBusyCheckHostname()
    */
    ItemBool *freeBusyCheckHostnameItem()
    {
      return mFreeBusyCheckHostnameItem;
    }

  protected:
    CalendarSettings();
    friend class CalendarSettingsHelper;


    // FreeBusy Publish
    bool mFreeBusyPublishAuto;
    int mFreeBusyPublishDelay;
    int mFreeBusyPublishDays;
    QString mFreeBusyPublishUrl;
    QString mFreeBusyPublishUser;
    QString mFreeBusyPublishPassword;
    bool mFreeBusyPublishSavePassword;

    // FreeBusy Retrieve
    bool mFreeBusyRetrieveAuto;
    bool mFreeBusyFullDomainRetrieval;
    QString mFreeBusyRetrieveUrl;
    QString mFreeBusyRetrieveUser;
    QString mFreeBusyRetrievePassword;
    bool mFreeBusyRetrieveSavePassword;

    // Group Scheduling
    bool mBcc;
    QString mMailTransport;

    // Hidden Options
    bool mOutlookCompatCounterProposals;
    bool mFreeBusyCheckHostname;

  private:
    ItemBool *mFreeBusyPublishAutoItem;
    ItemInt *mFreeBusyPublishDelayItem;
    ItemInt *mFreeBusyPublishDaysItem;
    ItemString *mFreeBusyPublishUrlItem;
    ItemString *mFreeBusyPublishUserItem;
    ItemPassword *mFreeBusyPublishPasswordItem;
    ItemBool *mFreeBusyPublishSavePasswordItem;
    ItemBool *mFreeBusyRetrieveAutoItem;
    ItemBool *mFreeBusyFullDomainRetrievalItem;
    ItemString *mFreeBusyRetrieveUrlItem;
    ItemString *mFreeBusyRetrieveUserItem;
    ItemPassword *mFreeBusyRetrievePasswordItem;
    ItemBool *mFreeBusyRetrieveSavePasswordItem;
    ItemBool *mBccItem;
    ItemString *mMailTransportItem;
    ItemBool *mOutlookCompatCounterProposalsItem;
    ItemBool *mFreeBusyCheckHostnameItem;
};

}

#endif

