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

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

class BittorrentSettings : public KConfigSkeleton
{
  public:

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

    /**
      Set UploadLimit
    */
    static
    void setUploadLimit( int v )
    {
      if (!self()->isUploadLimitImmutable())
        self()->mUploadLimit = v;
    }

    /**
      Get UploadLimit
    */
    static
    int uploadLimit()
    {
      return self()->mUploadLimit;
    }

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

    /**
      Set DownloadLimit
    */
    static
    void setDownloadLimit( int v )
    {
      if (!self()->isDownloadLimitImmutable())
        self()->mDownloadLimit = v;
    }

    /**
      Get DownloadLimit
    */
    static
    int downloadLimit()
    {
      return self()->mDownloadLimit;
    }

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

    /**
      Set Port
    */
    static
    void setPort( int v )
    {
      if (!self()->isPortImmutable())
        self()->mPort = v;
    }

    /**
      Get Port
    */
    static
    int port()
    {
      return self()->mPort;
    }

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

    /**
      Set EnableUTP
    */
    static
    void setEnableUTP( bool v )
    {
      if (!self()->isEnableUTPImmutable())
        self()->mEnableUTP = v;
    }

    /**
      Get EnableUTP
    */
    static
    bool enableUTP()
    {
      return self()->mEnableUTP;
    }

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

    /**
      Set TorrentDir
    */
    static
    void setTorrentDir( const QString & v )
    {
      if (!self()->isTorrentDirImmutable())
        self()->mTorrentDir = v;
    }

    /**
      Get TorrentDir
    */
    static
    QString torrentDir()
    {
      return self()->mTorrentDir;
    }

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

    /**
      Set TmpDir
    */
    static
    void setTmpDir( const QString & v )
    {
      if (!self()->isTmpDirImmutable())
        self()->mTmpDir = v;
    }

    /**
      Get TmpDir
    */
    static
    QString tmpDir()
    {
      return self()->mTmpDir;
    }

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

    /**
      Set PreAlloc
    */
    static
    void setPreAlloc( bool v )
    {
      if (!self()->isPreAllocImmutable())
        self()->mPreAlloc = v;
    }

    /**
      Get PreAlloc
    */
    static
    bool preAlloc()
    {
      return self()->mPreAlloc;
    }

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

    /**
      Set FileColumnWidths
    */
    static
    void setFileColumnWidths( const QList<int> & v )
    {
      if (!self()->isFileColumnWidthsImmutable())
        self()->mFileColumnWidths = v;
    }

    /**
      Get FileColumnWidths
    */
    static
    QList<int> fileColumnWidths()
    {
      return self()->mFileColumnWidths;
    }

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

    /**
      Set PeersColumnWidths
    */
    static
    void setPeersColumnWidths( const QList<int> & v )
    {
      if (!self()->isPeersColumnWidthsImmutable())
        self()->mPeersColumnWidths = v;
    }

    /**
      Get PeersColumnWidths
    */
    static
    QList<int> peersColumnWidths()
    {
      return self()->mPeersColumnWidths;
    }

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

    /**
      Set ChunksColumnWidths
    */
    static
    void setChunksColumnWidths( const QList<int> & v )
    {
      if (!self()->isChunksColumnWidthsImmutable())
        self()->mChunksColumnWidths = v;
    }

    /**
      Get ChunksColumnWidths
    */
    static
    QList<int> chunksColumnWidths()
    {
      return self()->mChunksColumnWidths;
    }

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

  protected:
    BittorrentSettings();
    friend class BittorrentSettingsHelper;


    // General
    int mUploadLimit;
    int mDownloadLimit;
    int mPort;
    bool mEnableUTP;

    // Dirs
    QString mTorrentDir;
    QString mTmpDir;
    bool mPreAlloc;

    // AdvancedDetails
    QList<int> mFileColumnWidths;
    QList<int> mPeersColumnWidths;
    QList<int> mChunksColumnWidths;
};

#endif

