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

#include <ktcore_export.h>

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

class KTCORE_EXPORT Settings : public KConfigSkeleton
{
  public:

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

    /**
      Set Maximum number of downloads (0 = no limit)
    */
    static
    void setMaxDownloads( int v )
    {
      if (v < 0)
      {
        qDebug() << "setMaxDownloads: value " << v << " is less than the minimum value of 0";
        v = 0;
      }
      if (!self()->isMaxDownloadsImmutable())
        self()->mMaxDownloads = v;
    }

    /**
      Get Maximum number of downloads (0 = no limit)
    */
    static
    int maxDownloads()
    {
      return self()->mMaxDownloads;
    }

    /**
      Is Maximum number of downloads (0 = no limit) Immutable
    */
    static
    bool isMaxDownloadsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "maxDownloads" ) );
    }

    /**
      Set Maximum number of seeds (0 = no limit)
    */
    static
    void setMaxSeeds( int v )
    {
      if (v < 0)
      {
        qDebug() << "setMaxSeeds: value " << v << " is less than the minimum value of 0";
        v = 0;
      }
      if (!self()->isMaxSeedsImmutable())
        self()->mMaxSeeds = v;
    }

    /**
      Get Maximum number of seeds (0 = no limit)
    */
    static
    int maxSeeds()
    {
      return self()->mMaxSeeds;
    }

    /**
      Is Maximum number of seeds (0 = no limit) Immutable
    */
    static
    bool isMaxSeedsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "maxSeeds" ) );
    }

    /**
      Set Start downloads on low disk space?
    */
    static
    void setStartDownloadsOnLowDiskSpace( int v )
    {
      if (!self()->isStartDownloadsOnLowDiskSpaceImmutable())
        self()->mStartDownloadsOnLowDiskSpace = v;
    }

    /**
      Get Start downloads on low disk space?
    */
    static
    int startDownloadsOnLowDiskSpace()
    {
      return self()->mStartDownloadsOnLowDiskSpace;
    }

    /**
      Is Start downloads on low disk space? Immutable
    */
    static
    bool isStartDownloadsOnLowDiskSpaceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "startDownloadsOnLowDiskSpace" ) );
    }

    /**
      Set Maximum number of connections per torrent (0 = no limit)
    */
    static
    void setMaxConnections( int v )
    {
      if (v < 0)
      {
        qDebug() << "setMaxConnections: value " << v << " is less than the minimum value of 0";
        v = 0;
      }
      if (!self()->isMaxConnectionsImmutable())
        self()->mMaxConnections = v;
    }

    /**
      Get Maximum number of connections per torrent (0 = no limit)
    */
    static
    int maxConnections()
    {
      return self()->mMaxConnections;
    }

    /**
      Is Maximum number of connections per torrent (0 = no limit) Immutable
    */
    static
    bool isMaxConnectionsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "maxConnections" ) );
    }

    /**
      Set Maximum number of connections for all torrents (0 = no limit) 
    */
    static
    void setMaxTotalConnections( int v )
    {
      if (v < 0)
      {
        qDebug() << "setMaxTotalConnections: value " << v << " is less than the minimum value of 0";
        v = 0;
      }
      if (!self()->isMaxTotalConnectionsImmutable())
        self()->mMaxTotalConnections = v;
    }

    /**
      Get Maximum number of connections for all torrents (0 = no limit) 
    */
    static
    int maxTotalConnections()
    {
      return self()->mMaxTotalConnections;
    }

    /**
      Is Maximum number of connections for all torrents (0 = no limit)  Immutable
    */
    static
    bool isMaxTotalConnectionsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "maxTotalConnections" ) );
    }

    /**
      Set Maximum upload speed in KiB/sec (0 = no limit)
    */
    static
    void setMaxUploadRate( int v )
    {
      if (v < 0)
      {
        qDebug() << "setMaxUploadRate: value " << v << " is less than the minimum value of 0";
        v = 0;
      }
      if (!self()->isMaxUploadRateImmutable())
        self()->mMaxUploadRate = v;
    }

    /**
      Get Maximum upload speed in KiB/sec (0 = no limit)
    */
    static
    int maxUploadRate()
    {
      return self()->mMaxUploadRate;
    }

    /**
      Is Maximum upload speed in KiB/sec (0 = no limit) Immutable
    */
    static
    bool isMaxUploadRateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "maxUploadRate" ) );
    }

    /**
      Set Maximum download speed in KiB/sec (0 = no limit)
    */
    static
    void setMaxDownloadRate( int v )
    {
      if (v < 0)
      {
        qDebug() << "setMaxDownloadRate: value " << v << " is less than the minimum value of 0";
        v = 0;
      }
      if (!self()->isMaxDownloadRateImmutable())
        self()->mMaxDownloadRate = v;
    }

    /**
      Get Maximum download speed in KiB/sec (0 = no limit)
    */
    static
    int maxDownloadRate()
    {
      return self()->mMaxDownloadRate;
    }

    /**
      Is Maximum download speed in KiB/sec (0 = no limit) Immutable
    */
    static
    bool isMaxDownloadRateImmutable()
    {
      return self()->isImmutable( QStringLiteral( "maxDownloadRate" ) );
    }

    /**
      Set Maximum share ratio (0 = no limit)
    */
    static
    void setMaxRatio( double v )
    {
      if (v < 0)
      {
        qDebug() << "setMaxRatio: value " << v << " is less than the minimum value of 0";
        v = 0;
      }
      if (!self()->isMaxRatioImmutable())
        self()->mMaxRatio = v;
    }

    /**
      Get Maximum share ratio (0 = no limit)
    */
    static
    double maxRatio()
    {
      return self()->mMaxRatio;
    }

    /**
      Is Maximum share ratio (0 = no limit) Immutable
    */
    static
    bool isMaxRatioImmutable()
    {
      return self()->isImmutable( QStringLiteral( "maxRatio" ) );
    }

    /**
      Set greenRatio
    */
    static
    void setGreenRatio( double v )
    {
      if (v < 0)
      {
        qDebug() << "setGreenRatio: value " << v << " is less than the minimum value of 0";
        v = 0;
      }
      if (!self()->isGreenRatioImmutable())
        self()->mGreenRatio = v;
    }

    /**
      Get greenRatio
    */
    static
    double greenRatio()
    {
      return self()->mGreenRatio;
    }

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

    /**
      Set Port
    */
    static
    void setPort( int v )
    {
      if (v < 0)
      {
        qDebug() << "setPort: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 65535)
      {
        qDebug() << "setPort: value " << v << " is greater than the maximum value of 65535";
        v = 65535;
      }

      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 Port
    */
    static
    void setUdpTrackerPort( int v )
    {
      if (v < 0)
      {
        qDebug() << "setUdpTrackerPort: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 65535)
      {
        qDebug() << "setUdpTrackerPort: value " << v << " is greater than the maximum value of 65535";
        v = 65535;
      }

      if (!self()->isUdpTrackerPortImmutable())
        self()->mUdpTrackerPort = v;
    }

    /**
      Get Port
    */
    static
    int udpTrackerPort()
    {
      return self()->mUdpTrackerPort;
    }

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

    /**
      Set Show a system tray icon
    */
    static
    void setShowSystemTrayIcon( bool v )
    {
      if (!self()->isShowSystemTrayIconImmutable())
        self()->mShowSystemTrayIcon = v;
    }

    /**
      Get Show a system tray icon
    */
    static
    bool showSystemTrayIcon()
    {
      return self()->mShowSystemTrayIcon;
    }

    /**
      Is Show a system tray icon Immutable
    */
    static
    bool isShowSystemTrayIconImmutable()
    {
      return self()->isImmutable( QStringLiteral( "showSystemTrayIcon" ) );
    }

    /**
      Set Show a total speeds in the title
    */
    static
    void setShowTotalSpeedInTitle( bool v )
    {
      if (!self()->isShowTotalSpeedInTitleImmutable())
        self()->mShowTotalSpeedInTitle = v;
    }

    /**
      Get Show a total speeds in the title
    */
    static
    bool showTotalSpeedInTitle()
    {
      return self()->mShowTotalSpeedInTitle;
    }

    /**
      Is Show a total speeds in the title Immutable
    */
    static
    bool isShowTotalSpeedInTitleImmutable()
    {
      return self()->isImmutable( QStringLiteral( "showTotalSpeedInTitle" ) );
    }

    /**
      Set Show speed bar in tray icon
    */
    static
    void setShowSpeedBarInTrayIcon( bool v )
    {
      if (!self()->isShowSpeedBarInTrayIconImmutable())
        self()->mShowSpeedBarInTrayIcon = v;
    }

    /**
      Get Show speed bar in tray icon
    */
    static
    bool showSpeedBarInTrayIcon()
    {
      return self()->mShowSpeedBarInTrayIcon;
    }

    /**
      Is Show speed bar in tray icon Immutable
    */
    static
    bool isShowSpeedBarInTrayIconImmutable()
    {
      return self()->isImmutable( QStringLiteral( "showSpeedBarInTrayIcon" ) );
    }

    /**
      Set Download bandwidth (in kb/s):
    */
    static
    void setDownloadBandwidth( int v )
    {
      if (v < 0)
      {
        qDebug() << "setDownloadBandwidth: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 1000000)
      {
        qDebug() << "setDownloadBandwidth: value " << v << " is greater than the maximum value of 1000000";
        v = 1000000;
      }

      if (!self()->isDownloadBandwidthImmutable())
        self()->mDownloadBandwidth = v;
    }

    /**
      Get Download bandwidth (in kb/s):
    */
    static
    int downloadBandwidth()
    {
      return self()->mDownloadBandwidth;
    }

    /**
      Is Download bandwidth (in kb/s): Immutable
    */
    static
    bool isDownloadBandwidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "downloadBandwidth" ) );
    }

    /**
      Set Upload bandwidth (in kb/s):
    */
    static
    void setUploadBandwidth( int v )
    {
      if (v < 0)
      {
        qDebug() << "setUploadBandwidth: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 1000000)
      {
        qDebug() << "setUploadBandwidth: value " << v << " is greater than the maximum value of 1000000";
        v = 1000000;
      }

      if (!self()->isUploadBandwidthImmutable())
        self()->mUploadBandwidth = v;
    }

    /**
      Get Upload bandwidth (in kb/s):
    */
    static
    int uploadBandwidth()
    {
      return self()->mUploadBandwidth;
    }

    /**
      Is Upload bandwidth (in kb/s): Immutable
    */
    static
    bool isUploadBandwidthImmutable()
    {
      return self()->isImmutable( QStringLiteral( "uploadBandwidth" ) );
    }

    /**
      Set Always minimize to system tray on startup.
    */
    static
    void setAlwaysMinimizeToSystemTray( bool v )
    {
      if (!self()->isAlwaysMinimizeToSystemTrayImmutable())
        self()->mAlwaysMinimizeToSystemTray = v;
    }

    /**
      Get Always minimize to system tray on startup.
    */
    static
    bool alwaysMinimizeToSystemTray()
    {
      return self()->mAlwaysMinimizeToSystemTray;
    }

    /**
      Is Always minimize to system tray on startup. Immutable
    */
    static
    bool isAlwaysMinimizeToSystemTrayImmutable()
    {
      return self()->isImmutable( QStringLiteral( "alwaysMinimizeToSystemTray" ) );
    }

    /**
      Set Show popup messages when torrent is finished.
    */
    static
    void setShowPopups( bool v )
    {
      if (!self()->isShowPopupsImmutable())
        self()->mShowPopups = v;
    }

    /**
      Get Show popup messages when torrent is finished.
    */
    static
    bool showPopups()
    {
      return self()->mShowPopups;
    }

    /**
      Is Show popup messages when torrent is finished. Immutable
    */
    static
    bool isShowPopupsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "showPopups" ) );
    }

    /**
      Set Keep seeding after download has finished
    */
    static
    void setKeepSeeding( bool v )
    {
      if (!self()->isKeepSeedingImmutable())
        self()->mKeepSeeding = v;
    }

    /**
      Get Keep seeding after download has finished
    */
    static
    bool keepSeeding()
    {
      return self()->mKeepSeeding;
    }

    /**
      Is Keep seeding after download has finished Immutable
    */
    static
    bool isKeepSeedingImmutable()
    {
      return self()->isImmutable( QStringLiteral( "keepSeeding" ) );
    }

    /**
      Set Folder to store temporary files
    */
    static
    void setTempDir( const QString & v )
    {
      if (!self()->isTempDirImmutable())
        self()->mTempDir = v;
    }

    /**
      Get Folder to store temporary files
    */
    static
    QString tempDir()
    {
      return self()->mTempDir;
    }

    /**
      Is Folder to store temporary files Immutable
    */
    static
    bool isTempDirImmutable()
    {
      return self()->isImmutable( QStringLiteral( "tempDir" ) );
    }

    /**
      Set Whether to automatically save downloads to saveDir
    */
    static
    void setUseSaveDir( bool v )
    {
      if (!self()->isUseSaveDirImmutable())
        self()->mUseSaveDir = v;
    }

    /**
      Get Whether to automatically save downloads to saveDir
    */
    static
    bool useSaveDir()
    {
      return self()->mUseSaveDir;
    }

    /**
      Is Whether to automatically save downloads to saveDir Immutable
    */
    static
    bool isUseSaveDirImmutable()
    {
      return self()->isImmutable( QStringLiteral( "useSaveDir" ) );
    }

    /**
      Set Folder to store downloaded files
    */
    static
    void setSaveDir( const QString & v )
    {
      if (!self()->isSaveDirImmutable())
        self()->mSaveDir = v;
    }

    /**
      Get Folder to store downloaded files
    */
    static
    QString saveDir()
    {
      return self()->mSaveDir;
    }

    /**
      Is Folder to store downloaded files Immutable
    */
    static
    bool isSaveDirImmutable()
    {
      return self()->isImmutable( QStringLiteral( "saveDir" ) );
    }

    /**
      Set Whether to automatically copy .torrent files to torrentCopyDir
    */
    static
    void setUseTorrentCopyDir( bool v )
    {
      if (!self()->isUseTorrentCopyDirImmutable())
        self()->mUseTorrentCopyDir = v;
    }

    /**
      Get Whether to automatically copy .torrent files to torrentCopyDir
    */
    static
    bool useTorrentCopyDir()
    {
      return self()->mUseTorrentCopyDir;
    }

    /**
      Is Whether to automatically copy .torrent files to torrentCopyDir Immutable
    */
    static
    bool isUseTorrentCopyDirImmutable()
    {
      return self()->isImmutable( QStringLiteral( "useTorrentCopyDir" ) );
    }

    /**
      Set Folder to copy .torrent files to
    */
    static
    void setTorrentCopyDir( const QString & v )
    {
      if (!self()->isTorrentCopyDirImmutable())
        self()->mTorrentCopyDir = v;
    }

    /**
      Get Folder to copy .torrent files to
    */
    static
    QString torrentCopyDir()
    {
      return self()->mTorrentCopyDir;
    }

    /**
      Is Folder to copy .torrent files to Immutable
    */
    static
    bool isTorrentCopyDirImmutable()
    {
      return self()->isImmutable( QStringLiteral( "torrentCopyDir" ) );
    }

    /**
      Set Whether to use a custom IP to pass to the tracker
    */
    static
    void setUseCustomIP( bool v )
    {
      if (!self()->isUseCustomIPImmutable())
        self()->mUseCustomIP = v;
    }

    /**
      Get Whether to use a custom IP to pass to the tracker
    */
    static
    bool useCustomIP()
    {
      return self()->mUseCustomIP;
    }

    /**
      Is Whether to use a custom IP to pass to the tracker Immutable
    */
    static
    bool isUseCustomIPImmutable()
    {
      return self()->isImmutable( QStringLiteral( "useCustomIP" ) );
    }

    /**
      Set Directory which was used as the last save directory
    */
    static
    void setLastSaveDir( const QString & v )
    {
      if (!self()->isLastSaveDirImmutable())
        self()->mLastSaveDir = v;
    }

    /**
      Get Directory which was used as the last save directory
    */
    static
    QString lastSaveDir()
    {
      return self()->mLastSaveDir;
    }

    /**
      Is Directory which was used as the last save directory Immutable
    */
    static
    bool isLastSaveDirImmutable()
    {
      return self()->isImmutable( QStringLiteral( "lastSaveDir" ) );
    }

    /**
      Set IP to pass to the tracker
    */
    static
    void setCustomIP( const QString & v )
    {
      if (!self()->isCustomIPImmutable())
        self()->mCustomIP = v;
    }

    /**
      Get IP to pass to the tracker
    */
    static
    QString customIP()
    {
      return self()->mCustomIP;
    }

    /**
      Is IP to pass to the tracker Immutable
    */
    static
    bool isCustomIPImmutable()
    {
      return self()->isImmutable( QStringLiteral( "customIP" ) );
    }

    /**
      Set GUI update interval
    */
    static
    void setGuiUpdateInterval( int v )
    {
      if (v < 500)
      {
        qDebug() << "setGuiUpdateInterval: value " << v << " is less than the minimum value of 500";
        v = 500;
      }

      if (v > 5000)
      {
        qDebug() << "setGuiUpdateInterval: value " << v << " is greater than the maximum value of 5000";
        v = 5000;
      }

      if (!self()->isGuiUpdateIntervalImmutable())
        self()->mGuiUpdateInterval = v;
    }

    /**
      Get GUI update interval
    */
    static
    int guiUpdateInterval()
    {
      return self()->mGuiUpdateInterval;
    }

    /**
      Is GUI update interval Immutable
    */
    static
    bool isGuiUpdateIntervalImmutable()
    {
      return self()->isImmutable( QStringLiteral( "guiUpdateInterval" ) );
    }

    /**
      Set Support for DHT
    */
    static
    void setDhtSupport( bool v )
    {
      if (!self()->isDhtSupportImmutable())
        self()->mDhtSupport = v;
    }

    /**
      Get Support for DHT
    */
    static
    bool dhtSupport()
    {
      return self()->mDhtSupport;
    }

    /**
      Is Support for DHT Immutable
    */
    static
    bool isDhtSupportImmutable()
    {
      return self()->isImmutable( QStringLiteral( "dhtSupport" ) );
    }

    /**
      Set DHT port
    */
    static
    void setDhtPort( int v )
    {
      if (v < 1)
      {
        qDebug() << "setDhtPort: value " << v << " is less than the minimum value of 1";
        v = 1;
      }

      if (v > 65535)
      {
        qDebug() << "setDhtPort: value " << v << " is greater than the maximum value of 65535";
        v = 65535;
      }

      if (!self()->isDhtPortImmutable())
        self()->mDhtPort = v;
    }

    /**
      Get DHT port
    */
    static
    int dhtPort()
    {
      return self()->mDhtPort;
    }

    /**
      Is DHT port Immutable
    */
    static
    bool isDhtPortImmutable()
    {
      return self()->isImmutable( QStringLiteral( "dhtPort" ) );
    }

    /**
      Set pexEnabled
    */
    static
    void setPexEnabled( bool v )
    {
      if (!self()->isPexEnabledImmutable())
        self()->mPexEnabled = v;
    }

    /**
      Get pexEnabled
    */
    static
    bool pexEnabled()
    {
      return self()->mPexEnabled;
    }

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

    /**
      Set Number of upload slots
    */
    static
    void setNumUploadSlots( int v )
    {
      if (v < 2)
      {
        qDebug() << "setNumUploadSlots: value " << v << " is less than the minimum value of 2";
        v = 2;
      }

      if (v > 100)
      {
        qDebug() << "setNumUploadSlots: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (!self()->isNumUploadSlotsImmutable())
        self()->mNumUploadSlots = v;
    }

    /**
      Get Number of upload slots
    */
    static
    int numUploadSlots()
    {
      return self()->mNumUploadSlots;
    }

    /**
      Is Number of upload slots Immutable
    */
    static
    bool isNumUploadSlotsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "numUploadSlots" ) );
    }

    /**
      Set Use protocol encryption
    */
    static
    void setUseEncryption( bool v )
    {
      if (!self()->isUseEncryptionImmutable())
        self()->mUseEncryption = v;
    }

    /**
      Get Use protocol encryption
    */
    static
    bool useEncryption()
    {
      return self()->mUseEncryption;
    }

    /**
      Is Use protocol encryption Immutable
    */
    static
    bool isUseEncryptionImmutable()
    {
      return self()->isImmutable( QStringLiteral( "useEncryption" ) );
    }

    /**
      Set Allow unencrypted connections
    */
    static
    void setAllowUnencryptedConnections( bool v )
    {
      if (!self()->isAllowUnencryptedConnectionsImmutable())
        self()->mAllowUnencryptedConnections = v;
    }

    /**
      Get Allow unencrypted connections
    */
    static
    bool allowUnencryptedConnections()
    {
      return self()->mAllowUnencryptedConnections;
    }

    /**
      Is Allow unencrypted connections Immutable
    */
    static
    bool isAllowUnencryptedConnectionsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "allowUnencryptedConnections" ) );
    }

    /**
      Set typeOfService
    */
    static
    void setTypeOfService( int v )
    {
      if (v < 0)
      {
        qDebug() << "setTypeOfService: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 255)
      {
        qDebug() << "setTypeOfService: value " << v << " is greater than the maximum value of 255";
        v = 255;
      }

      if (!self()->isTypeOfServiceImmutable())
        self()->mTypeOfService = v;
    }

    /**
      Get typeOfService
    */
    static
    int typeOfService()
    {
      return self()->mTypeOfService;
    }

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

    /**
      Set dscp
    */
    static
    void setDscp( int v )
    {
      if (v < 0)
      {
        qDebug() << "setDscp: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 63)
      {
        qDebug() << "setDscp: value " << v << " is greater than the maximum value of 63";
        v = 63;
      }

      if (!self()->isDscpImmutable())
        self()->mDscp = v;
    }

    /**
      Get dscp
    */
    static
    int dscp()
    {
      return self()->mDscp;
    }

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

    /**
      Set maxConnectingSockets
    */
    static
    void setMaxConnectingSockets( int v )
    {
      if (v < 10)
      {
        qDebug() << "setMaxConnectingSockets: value " << v << " is less than the minimum value of 10";
        v = 10;
      }

      if (v > 500)
      {
        qDebug() << "setMaxConnectingSockets: value " << v << " is greater than the maximum value of 500";
        v = 500;
      }

      if (!self()->isMaxConnectingSocketsImmutable())
        self()->mMaxConnectingSockets = v;
    }

    /**
      Get maxConnectingSockets
    */
    static
    int maxConnectingSockets()
    {
      return self()->mMaxConnectingSockets;
    }

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

    /**
      Set checkWhenFinished
    */
    static
    void setCheckWhenFinished( bool v )
    {
      if (!self()->isCheckWhenFinishedImmutable())
        self()->mCheckWhenFinished = v;
    }

    /**
      Get checkWhenFinished
    */
    static
    bool checkWhenFinished()
    {
      return self()->mCheckWhenFinished;
    }

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

    /**
      Set Columns shown in KTorrentView
    */
    static
    void setShownColumns( const QList<int> & v )
    {
      if (!self()->isShownColumnsImmutable())
        self()->mShownColumns = v;
    }

    /**
      Get Columns shown in KTorrentView
    */
    static
    QList<int> shownColumns()
    {
      return self()->mShownColumns;
    }

    /**
      Is Columns shown in KTorrentView Immutable
    */
    static
    bool isShownColumnsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "shownColumns" ) );
    }

    /**
      Set useKDEProxySettings
    */
    static
    void setUseKDEProxySettings( bool v )
    {
      if (!self()->isUseKDEProxySettingsImmutable())
        self()->mUseKDEProxySettings = v;
    }

    /**
      Get useKDEProxySettings
    */
    static
    bool useKDEProxySettings()
    {
      return self()->mUseKDEProxySettings;
    }

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

    /**
      Set httpProxy
    */
    static
    void setHttpProxy( const QString & v )
    {
      if (!self()->isHttpProxyImmutable())
        self()->mHttpProxy = v;
    }

    /**
      Get httpProxy
    */
    static
    QString httpProxy()
    {
      return self()->mHttpProxy;
    }

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

    /**
      Set httpProxyPort
    */
    static
    void setHttpProxyPort( int v )
    {
      if (v < 1)
      {
        qDebug() << "setHttpProxyPort: value " << v << " is less than the minimum value of 1";
        v = 1;
      }

      if (v > 65535)
      {
        qDebug() << "setHttpProxyPort: value " << v << " is greater than the maximum value of 65535";
        v = 65535;
      }

      if (!self()->isHttpProxyPortImmutable())
        self()->mHttpProxyPort = v;
    }

    /**
      Get httpProxyPort
    */
    static
    int httpProxyPort()
    {
      return self()->mHttpProxyPort;
    }

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

    /**
      Set useProxyForWebSeeds
    */
    static
    void setUseProxyForWebSeeds( bool v )
    {
      if (!self()->isUseProxyForWebSeedsImmutable())
        self()->mUseProxyForWebSeeds = v;
    }

    /**
      Get useProxyForWebSeeds
    */
    static
    bool useProxyForWebSeeds()
    {
      return self()->mUseProxyForWebSeeds;
    }

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

    /**
      Set useProxyForTracker
    */
    static
    void setUseProxyForTracker( bool v )
    {
      if (!self()->isUseProxyForTrackerImmutable())
        self()->mUseProxyForTracker = v;
    }

    /**
      Get useProxyForTracker
    */
    static
    bool useProxyForTracker()
    {
      return self()->mUseProxyForTracker;
    }

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

    /**
      Set socksEnabled
    */
    static
    void setSocksEnabled( bool v )
    {
      if (!self()->isSocksEnabledImmutable())
        self()->mSocksEnabled = v;
    }

    /**
      Get socksEnabled
    */
    static
    bool socksEnabled()
    {
      return self()->mSocksEnabled;
    }

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

    /**
      Set socksProxy
    */
    static
    void setSocksProxy( const QString & v )
    {
      if (!self()->isSocksProxyImmutable())
        self()->mSocksProxy = v;
    }

    /**
      Get socksProxy
    */
    static
    QString socksProxy()
    {
      return self()->mSocksProxy;
    }

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

    /**
      Set socksPort
    */
    static
    void setSocksPort( int v )
    {
      if (v < 1)
      {
        qDebug() << "setSocksPort: value " << v << " is less than the minimum value of 1";
        v = 1;
      }

      if (v > 65535)
      {
        qDebug() << "setSocksPort: value " << v << " is greater than the maximum value of 65535";
        v = 65535;
      }

      if (!self()->isSocksPortImmutable())
        self()->mSocksPort = v;
    }

    /**
      Get socksPort
    */
    static
    int socksPort()
    {
      return self()->mSocksPort;
    }

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

    /**
      Set socksVersion
    */
    static
    void setSocksVersion( int v )
    {
      if (v < 4)
      {
        qDebug() << "setSocksVersion: value " << v << " is less than the minimum value of 4";
        v = 4;
      }

      if (v > 5)
      {
        qDebug() << "setSocksVersion: value " << v << " is greater than the maximum value of 5";
        v = 5;
      }

      if (!self()->isSocksVersionImmutable())
        self()->mSocksVersion = v;
    }

    /**
      Get socksVersion
    */
    static
    int socksVersion()
    {
      return self()->mSocksVersion;
    }

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

    /**
      Set socksUsePassword
    */
    static
    void setSocksUsePassword( bool v )
    {
      if (!self()->isSocksUsePasswordImmutable())
        self()->mSocksUsePassword = v;
    }

    /**
      Get socksUsePassword
    */
    static
    bool socksUsePassword()
    {
      return self()->mSocksUsePassword;
    }

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

    /**
      Set socksUsername
    */
    static
    void setSocksUsername( const QString & v )
    {
      if (!self()->isSocksUsernameImmutable())
        self()->mSocksUsername = v;
    }

    /**
      Get socksUsername
    */
    static
    QString socksUsername()
    {
      return self()->mSocksUsername;
    }

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

    /**
      Set socksPassword
    */
    static
    void setSocksPassword( const QString & v )
    {
      if (!self()->isSocksPasswordImmutable())
        self()->mSocksPassword = v;
    }

    /**
      Get socksPassword
    */
    static
    QString socksPassword()
    {
      return self()->mSocksPassword;
    }

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

    /**
      Set diskPrealloc
    */
    static
    void setDiskPrealloc( bool v )
    {
      if (!self()->isDiskPreallocImmutable())
        self()->mDiskPrealloc = v;
    }

    /**
      Get diskPrealloc
    */
    static
    bool diskPrealloc()
    {
      return self()->mDiskPrealloc;
    }

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

    /**
      Set fullDiskPrealloc
    */
    static
    void setFullDiskPrealloc( bool v )
    {
      if (!self()->isFullDiskPreallocImmutable())
        self()->mFullDiskPrealloc = v;
    }

    /**
      Get fullDiskPrealloc
    */
    static
    bool fullDiskPrealloc()
    {
      return self()->mFullDiskPrealloc;
    }

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

    /**
      Set When there is no space left to complete download, and the available disk space is less than this value, the torrent will be stopped.
    */
    static
    void setMinDiskSpace( int v )
    {
      if (v < 10)
      {
        qDebug() << "setMinDiskSpace: value " << v << " is less than the minimum value of 10";
        v = 10;
      }

      if (v > 10000)
      {
        qDebug() << "setMinDiskSpace: value " << v << " is greater than the maximum value of 10000";
        v = 10000;
      }

      if (!self()->isMinDiskSpaceImmutable())
        self()->mMinDiskSpace = v;
    }

    /**
      Get When there is no space left to complete download, and the available disk space is less than this value, the torrent will be stopped.
    */
    static
    int minDiskSpace()
    {
      return self()->mMinDiskSpace;
    }

    /**
      Is When there is no space left to complete download, and the available disk space is less than this value, the torrent will be stopped. Immutable
    */
    static
    bool isMinDiskSpaceImmutable()
    {
      return self()->isImmutable( QStringLiteral( "minDiskSpace" ) );
    }

    /**
      Set cpuUsage
    */
    static
    void setCpuUsage( int v )
    {
      if (v < 1)
      {
        qDebug() << "setCpuUsage: value " << v << " is less than the minimum value of 1";
        v = 1;
      }

      if (v > 250)
      {
        qDebug() << "setCpuUsage: value " << v << " is greater than the maximum value of 250";
        v = 250;
      }

      if (!self()->isCpuUsageImmutable())
        self()->mCpuUsage = v;
    }

    /**
      Get cpuUsage
    */
    static
    int cpuUsage()
    {
      return self()->mCpuUsage;
    }

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

    /**
      Set Whether to automatically move completed downloads to completedDir
    */
    static
    void setUseCompletedDir( bool v )
    {
      if (!self()->isUseCompletedDirImmutable())
        self()->mUseCompletedDir = v;
    }

    /**
      Get Whether to automatically move completed downloads to completedDir
    */
    static
    bool useCompletedDir()
    {
      return self()->mUseCompletedDir;
    }

    /**
      Is Whether to automatically move completed downloads to completedDir Immutable
    */
    static
    bool isUseCompletedDirImmutable()
    {
      return self()->isImmutable( QStringLiteral( "useCompletedDir" ) );
    }

    /**
      Set Folder to move completed downloaded files to
    */
    static
    void setCompletedDir( const QString & v )
    {
      if (!self()->isCompletedDirImmutable())
        self()->mCompletedDir = v;
    }

    /**
      Get Folder to move completed downloaded files to
    */
    static
    QString completedDir()
    {
      return self()->mCompletedDir;
    }

    /**
      Is Folder to move completed downloaded files to Immutable
    */
    static
    bool isCompletedDirImmutable()
    {
      return self()->isImmutable( QStringLiteral( "completedDir" ) );
    }

    /**
      Set Maximum seed time in hours (0 = no limit)
    */
    static
    void setMaxSeedTime( double v )
    {
      if (v < 0)
      {
        qDebug() << "setMaxSeedTime: value " << v << " is less than the minimum value of 0";
        v = 0;
      }
      if (!self()->isMaxSeedTimeImmutable())
        self()->mMaxSeedTime = v;
    }

    /**
      Get Maximum seed time in hours (0 = no limit)
    */
    static
    double maxSeedTime()
    {
      return self()->mMaxSeedTime;
    }

    /**
      Is Maximum seed time in hours (0 = no limit) Immutable
    */
    static
    bool isMaxSeedTimeImmutable()
    {
      return self()->isImmutable( QStringLiteral( "maxSeedTime" ) );
    }

    /**
      Set networkInterface
    */
    static
    void setNetworkInterface( const QString & v )
    {
      if (!self()->isNetworkInterfaceImmutable())
        self()->mNetworkInterface = v;
    }

    /**
      Get networkInterface
    */
    static
    QString networkInterface()
    {
      return self()->mNetworkInterface;
    }

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

    /**
      Set openMultipleTorrentsSilently
    */
    static
    void setOpenMultipleTorrentsSilently( bool v )
    {
      if (!self()->isOpenMultipleTorrentsSilentlyImmutable())
        self()->mOpenMultipleTorrentsSilently = v;
    }

    /**
      Get openMultipleTorrentsSilently
    */
    static
    bool openMultipleTorrentsSilently()
    {
      return self()->mOpenMultipleTorrentsSilently;
    }

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

    /**
      Set openAllTorrentsSilently
    */
    static
    void setOpenAllTorrentsSilently( bool v )
    {
      if (!self()->isOpenAllTorrentsSilentlyImmutable())
        self()->mOpenAllTorrentsSilently = v;
    }

    /**
      Get openAllTorrentsSilently
    */
    static
    bool openAllTorrentsSilently()
    {
      return self()->mOpenAllTorrentsSilently;
    }

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

    /**
      Set decreasePriorityOfStalledTorrents
    */
    static
    void setDecreasePriorityOfStalledTorrents( bool v )
    {
      if (!self()->isDecreasePriorityOfStalledTorrentsImmutable())
        self()->mDecreasePriorityOfStalledTorrents = v;
    }

    /**
      Get decreasePriorityOfStalledTorrents
    */
    static
    bool decreasePriorityOfStalledTorrents()
    {
      return self()->mDecreasePriorityOfStalledTorrents;
    }

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

    /**
      Set stallTimer
    */
    static
    void setStallTimer( int v )
    {
      if (v < 1)
      {
        qDebug() << "setStallTimer: value " << v << " is less than the minimum value of 1";
        v = 1;
      }
      if (!self()->isStallTimerImmutable())
        self()->mStallTimer = v;
    }

    /**
      Get stallTimer
    */
    static
    int stallTimer()
    {
      return self()->mStallTimer;
    }

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

    /**
      Set okTorrentColor
    */
    static
    void setOkTorrentColor( const QColor & v )
    {
      if (!self()->isOkTorrentColorImmutable())
        self()->mOkTorrentColor = v;
    }

    /**
      Get okTorrentColor
    */
    static
    QColor okTorrentColor()
    {
      return self()->mOkTorrentColor;
    }

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

    /**
      Set stalledTorrentColor
    */
    static
    void setStalledTorrentColor( const QColor & v )
    {
      if (!self()->isStalledTorrentColorImmutable())
        self()->mStalledTorrentColor = v;
    }

    /**
      Get stalledTorrentColor
    */
    static
    QColor stalledTorrentColor()
    {
      return self()->mStalledTorrentColor;
    }

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

    /**
      Set errorTorrentColor
    */
    static
    void setErrorTorrentColor( const QColor & v )
    {
      if (!self()->isErrorTorrentColorImmutable())
        self()->mErrorTorrentColor = v;
    }

    /**
      Get errorTorrentColor
    */
    static
    QColor errorTorrentColor()
    {
      return self()->mErrorTorrentColor;
    }

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

    /**
      Set highlightTorrentNameByTrackerStatus
    */
    static
    void setHighlightTorrentNameByTrackerStatus( bool v )
    {
      if (!self()->isHighlightTorrentNameByTrackerStatusImmutable())
        self()->mHighlightTorrentNameByTrackerStatus = v;
    }

    /**
      Get highlightTorrentNameByTrackerStatus
    */
    static
    bool highlightTorrentNameByTrackerStatus()
    {
      return self()->mHighlightTorrentNameByTrackerStatus;
    }

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

    /**
      Set okTrackerConnectionColor
    */
    static
    void setOkTrackerConnectionColor( const QColor & v )
    {
      if (!self()->isOkTrackerConnectionColorImmutable())
        self()->mOkTrackerConnectionColor = v;
    }

    /**
      Get okTrackerConnectionColor
    */
    static
    QColor okTrackerConnectionColor()
    {
      return self()->mOkTrackerConnectionColor;
    }

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

    /**
      Set warningsTrackerConnectionColor
    */
    static
    void setWarningsTrackerConnectionColor( const QColor & v )
    {
      if (!self()->isWarningsTrackerConnectionColorImmutable())
        self()->mWarningsTrackerConnectionColor = v;
    }

    /**
      Get warningsTrackerConnectionColor
    */
    static
    QColor warningsTrackerConnectionColor()
    {
      return self()->mWarningsTrackerConnectionColor;
    }

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

    /**
      Set timeoutTrackerConnectionColor
    */
    static
    void setTimeoutTrackerConnectionColor( const QColor & v )
    {
      if (!self()->isTimeoutTrackerConnectionColorImmutable())
        self()->mTimeoutTrackerConnectionColor = v;
    }

    /**
      Get timeoutTrackerConnectionColor
    */
    static
    QColor timeoutTrackerConnectionColor()
    {
      return self()->mTimeoutTrackerConnectionColor;
    }

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

    /**
      Set noTrackerConnectionColor
    */
    static
    void setNoTrackerConnectionColor( const QColor & v )
    {
      if (!self()->isNoTrackerConnectionColorImmutable())
        self()->mNoTrackerConnectionColor = v;
    }

    /**
      Get noTrackerConnectionColor
    */
    static
    QColor noTrackerConnectionColor()
    {
      return self()->mNoTrackerConnectionColor;
    }

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

    /**
      Set goodShareRatioColor
    */
    static
    void setGoodShareRatioColor( const QColor & v )
    {
      if (!self()->isGoodShareRatioColorImmutable())
        self()->mGoodShareRatioColor = v;
    }

    /**
      Get goodShareRatioColor
    */
    static
    QColor goodShareRatioColor()
    {
      return self()->mGoodShareRatioColor;
    }

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

    /**
      Set lowShareRatioColor
    */
    static
    void setLowShareRatioColor( const QColor & v )
    {
      if (!self()->isLowShareRatioColorImmutable())
        self()->mLowShareRatioColor = v;
    }

    /**
      Get lowShareRatioColor
    */
    static
    QColor lowShareRatioColor()
    {
      return self()->mLowShareRatioColor;
    }

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

    /**
      Set previewSizeAudio
    */
    static
    void setPreviewSizeAudio( int v )
    {
      if (v < 16)
      {
        qDebug() << "setPreviewSizeAudio: value " << v << " is less than the minimum value of 16";
        v = 16;
      }
      if (!self()->isPreviewSizeAudioImmutable())
        self()->mPreviewSizeAudio = v;
    }

    /**
      Get previewSizeAudio
    */
    static
    int previewSizeAudio()
    {
      return self()->mPreviewSizeAudio;
    }

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

    /**
      Set previewSizeVideo
    */
    static
    void setPreviewSizeVideo( int v )
    {
      if (v < 16)
      {
        qDebug() << "setPreviewSizeVideo: value " << v << " is less than the minimum value of 16";
        v = 16;
      }
      if (!self()->isPreviewSizeVideoImmutable())
        self()->mPreviewSizeVideo = v;
    }

    /**
      Get previewSizeVideo
    */
    static
    int previewSizeVideo()
    {
      return self()->mPreviewSizeVideo;
    }

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

    /**
      Set trackerListUrl
    */
    static
    void setTrackerListUrl( const QString & v )
    {
      if (!self()->isTrackerListUrlImmutable())
        self()->mTrackerListUrl = v;
    }

    /**
      Get trackerListUrl
    */
    static
    QString trackerListUrl()
    {
      return self()->mTrackerListUrl;
    }

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

    /**
      Set suppressSleep
    */
    static
    void setSuppressSleep( bool v )
    {
      if (!self()->isSuppressSleepImmutable())
        self()->mSuppressSleep = v;
    }

    /**
      Get suppressSleep
    */
    static
    bool suppressSleep()
    {
      return self()->mSuppressSleep;
    }

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

    /**
      Set manuallyControlTorrents
    */
    static
    void setManuallyControlTorrents( bool v )
    {
      if (!self()->isManuallyControlTorrentsImmutable())
        self()->mManuallyControlTorrents = v;
    }

    /**
      Get manuallyControlTorrents
    */
    static
    bool manuallyControlTorrents()
    {
      return self()->mManuallyControlTorrents;
    }

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

    /**
      Set webseedsEnabled
    */
    static
    void setWebseedsEnabled( bool v )
    {
      if (!self()->isWebseedsEnabledImmutable())
        self()->mWebseedsEnabled = v;
    }

    /**
      Get webseedsEnabled
    */
    static
    bool webseedsEnabled()
    {
      return self()->mWebseedsEnabled;
    }

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

    /**
      Set lookUpHostnameOfPeers
    */
    static
    void setLookUpHostnameOfPeers( bool v )
    {
      if (!self()->isLookUpHostnameOfPeersImmutable())
        self()->mLookUpHostnameOfPeers = v;
    }

    /**
      Get lookUpHostnameOfPeers
    */
    static
    bool lookUpHostnameOfPeers()
    {
      return self()->mLookUpHostnameOfPeers;
    }

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

    /**
      Set utpEnabled
    */
    static
    void setUtpEnabled( bool v )
    {
      if (!self()->isUtpEnabledImmutable())
        self()->mUtpEnabled = v;
    }

    /**
      Get utpEnabled
    */
    static
    bool utpEnabled()
    {
      return self()->mUtpEnabled;
    }

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

    /**
      Set onlyUseUtp
    */
    static
    void setOnlyUseUtp( bool v )
    {
      if (!self()->isOnlyUseUtpImmutable())
        self()->mOnlyUseUtp = v;
    }

    /**
      Get onlyUseUtp
    */
    static
    bool onlyUseUtp()
    {
      return self()->mOnlyUseUtp;
    }

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

    /**
      Set primaryTransportProtocol
    */
    static
    void setPrimaryTransportProtocol( int v )
    {
      if (v < 0)
      {
        qDebug() << "setPrimaryTransportProtocol: value " << v << " is less than the minimum value of 0";
        v = 0;
      }

      if (v > 1)
      {
        qDebug() << "setPrimaryTransportProtocol: value " << v << " is greater than the maximum value of 1";
        v = 1;
      }

      if (!self()->isPrimaryTransportProtocolImmutable())
        self()->mPrimaryTransportProtocol = v;
    }

    /**
      Get primaryTransportProtocol
    */
    static
    int primaryTransportProtocol()
    {
      return self()->mPrimaryTransportProtocol;
    }

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

    /**
      Set autoRenameSingleFileTorrents
    */
    static
    void setAutoRenameSingleFileTorrents( bool v )
    {
      if (!self()->isAutoRenameSingleFileTorrentsImmutable())
        self()->mAutoRenameSingleFileTorrents = v;
    }

    /**
      Get autoRenameSingleFileTorrents
    */
    static
    bool autoRenameSingleFileTorrents()
    {
      return self()->mAutoRenameSingleFileTorrents;
    }

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

    /**
      Set highlightNewTorrents
    */
    static
    void setHighlightNewTorrents( bool v )
    {
      if (!self()->isHighlightNewTorrentsImmutable())
        self()->mHighlightNewTorrents = v;
    }

    /**
      Get highlightNewTorrents
    */
    static
    bool highlightNewTorrents()
    {
      return self()->mHighlightNewTorrents;
    }

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

    /**
      Set numMagnetDownloadingSlots
    */
    static
    void setNumMagnetDownloadingSlots( int v )
    {
      if (v < 1)
      {
        qDebug() << "setNumMagnetDownloadingSlots: value " << v << " is less than the minimum value of 1";
        v = 1;
      }

      if (v > 100)
      {
        qDebug() << "setNumMagnetDownloadingSlots: value " << v << " is greater than the maximum value of 100";
        v = 100;
      }

      if (!self()->isNumMagnetDownloadingSlotsImmutable())
        self()->mNumMagnetDownloadingSlots = v;
    }

    /**
      Get numMagnetDownloadingSlots
    */
    static
    int numMagnetDownloadingSlots()
    {
      return self()->mNumMagnetDownloadingSlots;
    }

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

    /**
      Set requeueMagnets
    */
    static
    void setRequeueMagnets( bool v )
    {
      if (!self()->isRequeueMagnetsImmutable())
        self()->mRequeueMagnets = v;
    }

    /**
      Get requeueMagnets
    */
    static
    bool requeueMagnets()
    {
      return self()->mRequeueMagnets;
    }

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

    /**
      Set requeueMagnetsTime
    */
    static
    void setRequeueMagnetsTime( int v )
    {
      if (v < 1)
      {
        qDebug() << "setRequeueMagnetsTime: value " << v << " is less than the minimum value of 1";
        v = 1;
      }

      if (v > 60)
      {
        qDebug() << "setRequeueMagnetsTime: value " << v << " is greater than the maximum value of 60";
        v = 60;
      }

      if (!self()->isRequeueMagnetsTimeImmutable())
        self()->mRequeueMagnetsTime = v;
    }

    /**
      Get requeueMagnetsTime
    */
    static
    int requeueMagnetsTime()
    {
      return self()->mRequeueMagnetsTime;
    }

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

  protected:
    Settings();
    friend class SettingsHelper;


    // downloads
    int mMaxDownloads;
    int mMaxSeeds;
    int mStartDownloadsOnLowDiskSpace;
    int mMaxConnections;
    int mMaxTotalConnections;
    int mMaxUploadRate;
    int mMaxDownloadRate;
    double mMaxRatio;
    double mGreenRatio;
    int mPort;
    int mUdpTrackerPort;
    bool mShowSystemTrayIcon;
    bool mShowTotalSpeedInTitle;
    bool mShowSpeedBarInTrayIcon;
    int mDownloadBandwidth;
    int mUploadBandwidth;
    bool mAlwaysMinimizeToSystemTray;
    bool mShowPopups;
    bool mKeepSeeding;
    QString mTempDir;
    bool mUseSaveDir;
    QString mSaveDir;
    bool mUseTorrentCopyDir;
    QString mTorrentCopyDir;
    bool mUseCustomIP;
    QString mLastSaveDir;
    QString mCustomIP;
    int mGuiUpdateInterval;
    bool mDhtSupport;
    int mDhtPort;
    bool mPexEnabled;
    int mNumUploadSlots;
    bool mUseEncryption;
    bool mAllowUnencryptedConnections;
    int mTypeOfService;
    int mDscp;
    int mMaxConnectingSockets;
    bool mCheckWhenFinished;
    QList<int> mShownColumns;
    bool mUseKDEProxySettings;
    QString mHttpProxy;
    int mHttpProxyPort;
    bool mUseProxyForWebSeeds;
    bool mUseProxyForTracker;
    bool mSocksEnabled;
    QString mSocksProxy;
    int mSocksPort;
    int mSocksVersion;
    bool mSocksUsePassword;
    QString mSocksUsername;
    QString mSocksPassword;
    bool mDiskPrealloc;
    bool mFullDiskPrealloc;
    int mMinDiskSpace;
    int mCpuUsage;
    bool mUseCompletedDir;
    QString mCompletedDir;
    double mMaxSeedTime;
    QString mNetworkInterface;
    bool mOpenMultipleTorrentsSilently;
    bool mOpenAllTorrentsSilently;
    bool mDecreasePriorityOfStalledTorrents;
    int mStallTimer;
    QColor mOkTorrentColor;
    QColor mStalledTorrentColor;
    QColor mErrorTorrentColor;
    bool mHighlightTorrentNameByTrackerStatus;
    QColor mOkTrackerConnectionColor;
    QColor mWarningsTrackerConnectionColor;
    QColor mTimeoutTrackerConnectionColor;
    QColor mNoTrackerConnectionColor;
    QColor mGoodShareRatioColor;
    QColor mLowShareRatioColor;
    int mPreviewSizeAudio;
    int mPreviewSizeVideo;
    QString mTrackerListUrl;
    bool mSuppressSleep;
    bool mManuallyControlTorrents;
    bool mWebseedsEnabled;
    bool mLookUpHostnameOfPeers;
    bool mUtpEnabled;
    bool mOnlyUseUtp;
    int mPrimaryTransportProtocol;
    bool mAutoRenameSingleFileTorrents;
    bool mHighlightNewTorrents;
    int mNumMagnetDownloadingSlots;
    bool mRequeueMagnets;
    int mRequeueMagnetsTime;
};

#endif

