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

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

namespace DNSSD {

class KDNSSD_EXPORT Configuration : public KConfigSkeleton
{
  public:
    class EnumPublishType
    {
      public:
      enum type { LAN, WAN, COUNT };
    };

    static Configuration *self();
    ~Configuration();

    /**
      Set Additional domains for browsing
    */
    static
    void setDomainList( const QStringList & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "DomainList" ) ))
        self()->mDomainList = v;
    }

    /**
      Get Additional domains for browsing
    */
    static
    QStringList domainList()
    {
      return self()->mDomainList;
    }

    /**
      Set Browse local network
    */
    static
    void setBrowseLocal( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "BrowseLocal" ) ))
        self()->mBrowseLocal = v;
    }

    /**
      Get Browse local network
    */
    static
    bool browseLocal()
    {
      return self()->mBrowseLocal;
    }

    /**
      Set Recursive search for domains
    */
    static
    void setRecursive( bool v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "Recursive" ) ))
        self()->mRecursive = v;
    }

    /**
      Get Recursive search for domains
    */
    static
    bool recursive()
    {
      return self()->mRecursive;
    }

    /**
      Set Select publishing in LAN (multicast) or WAN (unicast, needs configured DNS server)
    */
    static
    void setPublishType( int v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "PublishType" ) ))
        self()->mPublishType = v;
    }

    /**
      Get Select publishing in LAN (multicast) or WAN (unicast, needs configured DNS server)
    */
    static
    int publishType()
    {
      return self()->mPublishType;
    }

    /**
      Set Name of default publishing domain for WAN
    */
    static
    void setPublishDomain( const QString & v )
    {
      if (!self()->isImmutable( QString::fromLatin1( "PublishDomain" ) ))
        self()->mPublishDomain = v;
    }

    /**
      Get Name of default publishing domain for WAN
    */
    static
    QString publishDomain()
    {
      return self()->mPublishDomain;
    }

    static
    void writeConfig()
    {
      static_cast<KConfigSkeleton*>(self())->writeConfig();
    }
  protected:
    Configuration();
    static Configuration *mSelf;


    // browsing
    QStringList mDomainList;
    bool mBrowseLocal;
    bool mRecursive;

    // publishing
    int mPublishType;
    QString mPublishDomain;

  private:
};

}

#endif

