qBittorrent
AdvancedSettings Class Reference

#include <advancedsettings.h>

Inheritance diagram for AdvancedSettings:
Collaboration diagram for AdvancedSettings:

Public Slots

void saveAdvancedSettings ()
 

Signals

void settingsChanged ()
 

Public Member Functions

 AdvancedSettings (QWidget *parent)
 

Private Slots

void updateCacheSpinSuffix (int value)
 
void updateSaveResumeDataIntervalSuffix (int value)
 
void updateInterfaceAddressCombo ()
 

Private Member Functions

void loadAdvancedSettings ()
 
template<typename T >
void addRow (int row, const QString &text, T *widget)
 

Private Attributes

QSpinBox m_spinBoxAsyncIOThreads
 
QSpinBox m_spinBoxFilePoolSize
 
QSpinBox m_spinBoxCheckingMemUsage
 
QSpinBox m_spinBoxSaveResumeDataInterval
 
QSpinBox m_spinBoxOutgoingPortsMin
 
QSpinBox m_spinBoxOutgoingPortsMax
 
QSpinBox m_spinBoxUPnPLeaseDuration
 
QSpinBox m_spinBoxPeerToS
 
QSpinBox m_spinBoxListRefresh
 
QSpinBox m_spinBoxTrackerPort
 
QSpinBox m_spinBoxSendBufferWatermark
 
QSpinBox m_spinBoxSendBufferLowWatermark
 
QSpinBox m_spinBoxSendBufferWatermarkFactor
 
QSpinBox m_spinBoxConnectionSpeed
 
QSpinBox m_spinBoxSocketBacklogSize
 
QSpinBox m_spinBoxMaxConcurrentHTTPAnnounces
 
QSpinBox m_spinBoxStopTrackerTimeout
 
QSpinBox m_spinBoxSavePathHistoryLength
 
QSpinBox m_spinBoxPeerTurnover
 
QSpinBox m_spinBoxPeerTurnoverCutoff
 
QSpinBox m_spinBoxPeerTurnoverInterval
 
QCheckBox m_checkBoxOsCache
 
QCheckBox m_checkBoxRecheckCompleted
 
QCheckBox m_checkBoxResolveCountries
 
QCheckBox m_checkBoxResolveHosts
 
QCheckBox m_checkBoxProgramNotifications
 
QCheckBox m_checkBoxTorrentAddedNotifications
 
QCheckBox m_checkBoxReannounceWhenAddressChanged
 
QCheckBox m_checkBoxTrackerFavicon
 
QCheckBox m_checkBoxTrackerStatus
 
QCheckBox m_checkBoxConfirmTorrentRecheck
 
QCheckBox m_checkBoxConfirmRemoveAllTags
 
QCheckBox m_checkBoxAnnounceAllTrackers
 
QCheckBox m_checkBoxAnnounceAllTiers
 
QCheckBox m_checkBoxMultiConnectionsPerIp
 
QCheckBox m_checkBoxValidateHTTPSTrackerCertificate
 
QCheckBox m_checkBoxSSRFMitigation
 
QCheckBox m_checkBoxBlockPeersOnPrivilegedPorts
 
QCheckBox m_checkBoxPieceExtentAffinity
 
QCheckBox m_checkBoxSuggestMode
 
QCheckBox m_checkBoxSpeedWidgetEnabled
 
QCheckBox m_checkBoxIDNSupport
 
QComboBox m_comboBoxInterface
 
QComboBox m_comboBoxInterfaceAddress
 
QComboBox m_comboBoxUtpMixedMode
 
QComboBox m_comboBoxChokingAlgorithm
 
QComboBox m_comboBoxSeedChokingAlgorithm
 
QComboBox m_comboBoxResumeDataStorage
 
QLineEdit m_lineEditAnnounceIP
 
QSpinBox m_spinBoxCache
 
QSpinBox m_spinBoxCacheTTL
 
QCheckBox m_checkBoxCoalesceRW
 
QCheckBox m_checkBoxIconsInMenusEnabled
 

Detailed Description

Definition at line 37 of file advancedsettings.h.

Constructor & Destructor Documentation

◆ AdvancedSettings()

AdvancedSettings::AdvancedSettings ( QWidget *  parent)

Definition at line 148 of file advancedsettings.cpp.

149  : QTableWidget(parent)
150 {
151  // column
152  setColumnCount(COL_COUNT);
153  QStringList header = {tr("Setting"), tr("Value", "Value set for this setting")};
154  setHorizontalHeaderLabels(header);
155  // row
156  setRowCount(ROW_COUNT);
157  verticalHeader()->setVisible(false);
158  // etc.
159  setAlternatingRowColors(true);
160  setSelectionMode(QAbstractItemView::NoSelection);
161  setEditTriggers(QAbstractItemView::NoEditTriggers);
162  // Load settings
164  resizeColumnToContents(0);
165  horizontalHeader()->setStretchLastSection(true);
166 }

References anonymous_namespace{advancedsettings.cpp}::COL_COUNT, loadAdvancedSettings(), and anonymous_namespace{advancedsettings.cpp}::ROW_COUNT.

Here is the call graph for this function:

Member Function Documentation

◆ addRow()

template<typename T >
void AdvancedSettings::addRow ( int  row,
const QString &  text,
T *  widget 
)
private

Definition at line 765 of file advancedsettings.cpp.

766 {
767  auto label = new QLabel(text);
768  label->setOpenExternalLinks(true);
769 
770  setCellWidget(row, PROPERTY, label);
771  setCellWidget(row, VALUE, widget);
772 
773  if constexpr (std::is_same_v<T, QCheckBox>)
774  connect(widget, &QCheckBox::stateChanged, this, &AdvancedSettings::settingsChanged);
775  else if constexpr (std::is_same_v<T, QSpinBox>)
776  connect(widget, qOverload<int>(&QSpinBox::valueChanged), this, &AdvancedSettings::settingsChanged);
777  else if constexpr (std::is_same_v<T, QComboBox>)
778  connect(widget, qOverload<int>(&QComboBox::currentIndexChanged), this, &AdvancedSettings::settingsChanged);
779  else if constexpr (std::is_same_v<T, QLineEdit>)
780  connect(widget, &QLineEdit::textChanged, this, &AdvancedSettings::settingsChanged);
781 }
void settingsChanged()

References anonymous_namespace{advancedsettings.cpp}::PROPERTY, settingsChanged(), and anonymous_namespace{advancedsettings.cpp}::VALUE.

Referenced by loadAdvancedSettings().

Here is the caller graph for this function:

◆ loadAdvancedSettings()

void AdvancedSettings::loadAdvancedSettings ( )
private

Definition at line 387 of file advancedsettings.cpp.

388 {
389  const Preferences *const pref = Preferences::instance();
390  const BitTorrent::Session *const session = BitTorrent::Session::instance();
391 
392  // add section headers
393  auto *labelQbtLink = new QLabel(
394  makeLink(QLatin1String("https://github.com/qbittorrent/qBittorrent/wiki/Explanation-of-Options-in-qBittorrent#Advanced")
395  , tr("Open documentation"))
396  , this);
397  labelQbtLink->setOpenExternalLinks(true);
398  addRow(QBITTORRENT_HEADER, QString::fromLatin1("<b>%1</b>").arg(tr("qBittorrent Section")), labelQbtLink);
399  static_cast<QLabel *>(cellWidget(QBITTORRENT_HEADER, PROPERTY))->setAlignment(Qt::AlignCenter | Qt::AlignVCenter);
400 
401  auto *labelLibtorrentLink = new QLabel(
402  makeLink(QLatin1String("https://www.libtorrent.org/reference-Settings.html")
403  , tr("Open documentation"))
404  , this);
405  labelLibtorrentLink->setOpenExternalLinks(true);
406  addRow(LIBTORRENT_HEADER, QString::fromLatin1("<b>%1</b>").arg(tr("libtorrent Section")), labelLibtorrentLink);
407  static_cast<QLabel *>(cellWidget(LIBTORRENT_HEADER, PROPERTY))->setAlignment(Qt::AlignCenter | Qt::AlignVCenter);
408 
409  m_comboBoxResumeDataStorage.addItems({tr("Fastresume files"), tr("SQLite database (experimental)")});
411  addRow(RESUME_DATA_STORAGE, tr("Resume data storage type (requires restart)"), &m_comboBoxResumeDataStorage);
412 
413 #if defined(Q_OS_WIN)
414  m_comboBoxOSMemoryPriority.addItems({tr("Normal"), tr("Below normal"), tr("Medium"), tr("Low"), tr("Very low")});
415  int OSMemoryPriorityIndex = 0;
416  switch (session->getOSMemoryPriority())
417  {
418  default:
419  case BitTorrent::OSMemoryPriority::Normal:
420  OSMemoryPriorityIndex = 0;
421  break;
422  case BitTorrent::OSMemoryPriority::BelowNormal:
423  OSMemoryPriorityIndex = 1;
424  break;
425  case BitTorrent::OSMemoryPriority::Medium:
426  OSMemoryPriorityIndex = 2;
427  break;
428  case BitTorrent::OSMemoryPriority::Low:
429  OSMemoryPriorityIndex = 3;
430  break;
431  case BitTorrent::OSMemoryPriority::VeryLow:
432  OSMemoryPriorityIndex = 4;
433  break;
434  }
435  m_comboBoxOSMemoryPriority.setCurrentIndex(OSMemoryPriorityIndex);
436  addRow(OS_MEMORY_PRIORITY, (tr("Process memory priority (Windows >= 8 only)")
437  + ' ' + makeLink("https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/ns-processthreadsapi-memory_priority_information", "(?)"))
438  , &m_comboBoxOSMemoryPriority);
439 #endif
440 
441  // Async IO threads
442  m_spinBoxAsyncIOThreads.setMinimum(1);
443  m_spinBoxAsyncIOThreads.setMaximum(1024);
444  m_spinBoxAsyncIOThreads.setValue(session->asyncIOThreads());
445  addRow(ASYNC_IO_THREADS, (tr("Asynchronous I/O threads") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#aio_threads", "(?)"))
447 
448 #ifdef QBT_USES_LIBTORRENT2
449  // Hashing threads
450  m_spinBoxHashingThreads.setMinimum(1);
451  m_spinBoxHashingThreads.setMaximum(1024);
452  m_spinBoxHashingThreads.setValue(session->hashingThreads());
453  addRow(HASHING_THREADS, (tr("Hashing threads") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#hashing_threads", "(?)"))
454  , &m_spinBoxHashingThreads);
455 #endif
456 
457  // File pool size
458  m_spinBoxFilePoolSize.setMinimum(1);
459  m_spinBoxFilePoolSize.setMaximum(std::numeric_limits<int>::max());
460  m_spinBoxFilePoolSize.setValue(session->filePoolSize());
461  addRow(FILE_POOL_SIZE, (tr("File pool size") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#file_pool_size", "(?)"))
463 
464  // Checking Memory Usage
465  m_spinBoxCheckingMemUsage.setMinimum(1);
466  // When build as 32bit binary, set the maximum value lower to prevent crashes.
467 #ifdef QBT_APP_64BIT
468  m_spinBoxCheckingMemUsage.setMaximum(1024);
469 #else
470  // Allocate at most 128MiB out of the remaining 512MiB (see the cache part below)
471  m_spinBoxCheckingMemUsage.setMaximum(128);
472 #endif
473  m_spinBoxCheckingMemUsage.setValue(session->checkingMemUsage());
474  m_spinBoxCheckingMemUsage.setSuffix(tr(" MiB"));
475  addRow(CHECKING_MEM_USAGE, (tr("Outstanding memory when checking torrents") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#checking_mem_usage", "(?)"))
477 #ifndef QBT_USES_LIBTORRENT2
478  // Disk write cache
479  m_spinBoxCache.setMinimum(-1);
480  // When build as 32bit binary, set the maximum at less than 2GB to prevent crashes.
481 #ifdef QBT_APP_64BIT
482  m_spinBoxCache.setMaximum(33554431); // 32768GiB
483 #else
484  // allocate 1536MiB and leave 512MiB to the rest of program data in RAM
485  m_spinBoxCache.setMaximum(1536);
486 #endif
487  m_spinBoxCache.setValue(session->diskCacheSize());
489  connect(&m_spinBoxCache, qOverload<int>(&QSpinBox::valueChanged)
491  addRow(DISK_CACHE, (tr("Disk cache") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#cache_size", "(?)"))
492  , &m_spinBoxCache);
493  // Disk cache expiry
494  m_spinBoxCacheTTL.setMinimum(1);
495  m_spinBoxCacheTTL.setMaximum(std::numeric_limits<int>::max());
496  m_spinBoxCacheTTL.setValue(session->diskCacheTTL());
497  m_spinBoxCacheTTL.setSuffix(tr(" s", " seconds"));
498  addRow(DISK_CACHE_TTL, (tr("Disk cache expiry interval") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#cache_expiry", "(?)"))
499  , &m_spinBoxCacheTTL);
500 #endif
501  // Enable OS cache
502  m_checkBoxOsCache.setChecked(session->useOSCache());
503  addRow(OS_CACHE, (tr("Enable OS cache") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#disk_io_write_mode", "(?)"))
504  , &m_checkBoxOsCache);
505 #ifndef QBT_USES_LIBTORRENT2
506  // Coalesce reads & writes
507  m_checkBoxCoalesceRW.setChecked(session->isCoalesceReadWriteEnabled());
508  addRow(COALESCE_RW, (tr("Coalesce reads & writes") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#coalesce_reads", "(?)"))
510 #endif
511  // Piece extent affinity
513  addRow(PIECE_EXTENT_AFFINITY, (tr("Use piece extent affinity") + ' ' + makeLink("https://libtorrent.org/single-page-ref.html#piece_extent_affinity", "(?)")), &m_checkBoxPieceExtentAffinity);
514  // Suggest mode
515  m_checkBoxSuggestMode.setChecked(session->isSuggestModeEnabled());
516  addRow(SUGGEST_MODE, (tr("Send upload piece suggestions") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#suggest_mode", "(?)"))
518  // Send buffer watermark
519  m_spinBoxSendBufferWatermark.setMinimum(1);
520  m_spinBoxSendBufferWatermark.setMaximum(std::numeric_limits<int>::max());
521  m_spinBoxSendBufferWatermark.setSuffix(tr(" KiB"));
523  addRow(SEND_BUF_WATERMARK, (tr("Send buffer watermark") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#send_buffer_watermark", "(?)"))
525  m_spinBoxSendBufferLowWatermark.setMinimum(1);
526  m_spinBoxSendBufferLowWatermark.setMaximum(std::numeric_limits<int>::max());
527  m_spinBoxSendBufferLowWatermark.setSuffix(tr(" KiB"));
529  addRow(SEND_BUF_LOW_WATERMARK, (tr("Send buffer low watermark") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#send_buffer_low_watermark", "(?)"))
532  m_spinBoxSendBufferWatermarkFactor.setMaximum(std::numeric_limits<int>::max());
533  m_spinBoxSendBufferWatermarkFactor.setSuffix(" %");
535  addRow(SEND_BUF_WATERMARK_FACTOR, (tr("Send buffer watermark factor") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#send_buffer_watermark_factor", "(?)"))
537  // Outgoing connections per second
538  m_spinBoxConnectionSpeed.setMinimum(0);
539  m_spinBoxConnectionSpeed.setMaximum(std::numeric_limits<int>::max());
540  m_spinBoxConnectionSpeed.setValue(session->connectionSpeed());
541  addRow(CONNECTION_SPEED, (tr("Outgoing connections per second") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#connection_speed", "(?)"))
543  // Socket listen backlog size
544  m_spinBoxSocketBacklogSize.setMinimum(1);
545  m_spinBoxSocketBacklogSize.setMaximum(std::numeric_limits<int>::max());
546  m_spinBoxSocketBacklogSize.setValue(session->socketBacklogSize());
547  addRow(SOCKET_BACKLOG_SIZE, (tr("Socket backlog size") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#listen_queue_size", "(?)"))
549  // Save resume data interval
550  m_spinBoxSaveResumeDataInterval.setMinimum(0);
551  m_spinBoxSaveResumeDataInterval.setMaximum(std::numeric_limits<int>::max());
553  connect(&m_spinBoxSaveResumeDataInterval, qOverload<int>(&QSpinBox::valueChanged)
556  addRow(SAVE_RESUME_DATA_INTERVAL, tr("Save resume data interval", "How often the fastresume file is saved."), &m_spinBoxSaveResumeDataInterval);
557  // Outgoing port Min
558  m_spinBoxOutgoingPortsMin.setMinimum(0);
559  m_spinBoxOutgoingPortsMin.setMaximum(65535);
560  m_spinBoxOutgoingPortsMin.setValue(session->outgoingPortsMin());
561  addRow(OUTGOING_PORT_MIN, (tr("Outgoing ports (Min) [0: Disabled]")
562  + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#outgoing_port", "(?)"))
564  // Outgoing port Min
565  m_spinBoxOutgoingPortsMax.setMinimum(0);
566  m_spinBoxOutgoingPortsMax.setMaximum(65535);
567  m_spinBoxOutgoingPortsMax.setValue(session->outgoingPortsMax());
568  addRow(OUTGOING_PORT_MAX, (tr("Outgoing ports (Max) [0: Disabled]")
569  + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#outgoing_port", "(?)"))
571  // UPnP lease duration
572  m_spinBoxUPnPLeaseDuration.setMinimum(0);
573  m_spinBoxUPnPLeaseDuration.setMaximum(std::numeric_limits<int>::max());
574  m_spinBoxUPnPLeaseDuration.setValue(session->UPnPLeaseDuration());
575  m_spinBoxUPnPLeaseDuration.setSuffix(tr(" s", " seconds"));
576  addRow(UPNP_LEASE_DURATION, (tr("UPnP lease duration [0: Permanent lease]") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#upnp_lease_duration", "(?)"))
578  // Type of service
579  m_spinBoxPeerToS.setMinimum(0);
580  m_spinBoxPeerToS.setMaximum(255);
581  m_spinBoxPeerToS.setValue(session->peerToS());
582  addRow(PEER_TOS, (tr("Type of service (ToS) for connections to peers") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#peer_tos", "(?)"))
583  , &m_spinBoxPeerToS);
584  // uTP-TCP mixed mode
585  m_comboBoxUtpMixedMode.addItems({tr("Prefer TCP"), tr("Peer proportional (throttles TCP)")});
586  m_comboBoxUtpMixedMode.setCurrentIndex(static_cast<int>(session->utpMixedMode()));
587  addRow(UTP_MIX_MODE, (tr("%1-TCP mixed mode algorithm", "uTP-TCP mixed mode algorithm").arg(C_UTP)
588  + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#mixed_mode_algorithm", "(?)"))
590  // Support internationalized domain name (IDN)
591  m_checkBoxIDNSupport.setChecked(session->isIDNSupportEnabled());
592  addRow(IDN_SUPPORT, (tr("Support internationalized domain name (IDN)")
593  + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#allow_idna", "(?)"))
595  // multiple connections per IP
597  addRow(MULTI_CONNECTIONS_PER_IP, (tr("Allow multiple connections from the same IP address")
598  + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#allow_multiple_connections_per_ip", "(?)"))
600  // Validate HTTPS tracker certificate
602  addRow(VALIDATE_HTTPS_TRACKER_CERTIFICATE, (tr("Validate HTTPS tracker certificates")
603  + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#validate_https_trackers", "(?)"))
605  // SSRF mitigation
606  m_checkBoxSSRFMitigation.setChecked(session->isSSRFMitigationEnabled());
607  addRow(SSRF_MITIGATION, (tr("Server-side request forgery (SSRF) mitigation")
608  + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#ssrf_mitigation", "(?)"))
610  // Disallow connection to peers on privileged ports
612  addRow(BLOCK_PEERS_ON_PRIVILEGED_PORTS, (tr("Disallow connection to peers on privileged ports") + ' ' + makeLink("https://libtorrent.org/single-page-ref.html#no_connect_privileged_ports", "(?)")), &m_checkBoxBlockPeersOnPrivilegedPorts);
613  // Recheck completed torrents
615  addRow(RECHECK_COMPLETED, tr("Recheck torrents on completion"), &m_checkBoxRecheckCompleted);
616  // Transfer list refresh interval
617  m_spinBoxListRefresh.setMinimum(30);
618  m_spinBoxListRefresh.setMaximum(99999);
619  m_spinBoxListRefresh.setValue(session->refreshInterval());
620  m_spinBoxListRefresh.setSuffix(tr(" ms", " milliseconds"));
621  addRow(LIST_REFRESH, tr("Transfer list refresh interval"), &m_spinBoxListRefresh);
622  // Resolve Peer countries
624  addRow(RESOLVE_COUNTRIES, tr("Resolve peer countries"), &m_checkBoxResolveCountries);
625  // Resolve peer hosts
626  m_checkBoxResolveHosts.setChecked(pref->resolvePeerHostNames());
627  addRow(RESOLVE_HOSTS, tr("Resolve peer host names"), &m_checkBoxResolveHosts);
628  // Network interface
629  m_comboBoxInterface.addItem(tr("Any interface", "i.e. Any network interface"));
630  const QString currentInterface = session->networkInterface();
631  bool interfaceExists = currentInterface.isEmpty();
632  int i = 1;
633  for (const QNetworkInterface &iface : asConst(QNetworkInterface::allInterfaces()))
634  {
635  m_comboBoxInterface.addItem(iface.humanReadableName(), iface.name());
636  if (!currentInterface.isEmpty() && (iface.name() == currentInterface))
637  {
638  m_comboBoxInterface.setCurrentIndex(i);
639  interfaceExists = true;
640  }
641  ++i;
642  }
643  // Saved interface does not exist, show it anyway
644  if (!interfaceExists)
645  {
646  m_comboBoxInterface.addItem(session->networkInterfaceName(), currentInterface);
647  m_comboBoxInterface.setCurrentIndex(i);
648  }
649  connect(&m_comboBoxInterface, qOverload<int>(&QComboBox::currentIndexChanged)
651  addRow(NETWORK_IFACE, tr("Network interface"), &m_comboBoxInterface);
652  // Network interface address
654  addRow(NETWORK_IFACE_ADDRESS, tr("Optional IP address to bind to"), &m_comboBoxInterfaceAddress);
655  // Announce IP
656  m_lineEditAnnounceIP.setText(session->announceIP());
657  addRow(ANNOUNCE_IP, (tr("IP address reported to trackers (requires restart)")
658  + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#announce_ip", "(?)"))
660  // Max concurrent HTTP announces
661  m_spinBoxMaxConcurrentHTTPAnnounces.setMaximum(std::numeric_limits<int>::max());
663  addRow(MAX_CONCURRENT_HTTP_ANNOUNCES, (tr("Max concurrent HTTP announces") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#max_concurrent_http_announces", "(?)"))
665  // Stop tracker timeout
666  m_spinBoxStopTrackerTimeout.setValue(session->stopTrackerTimeout());
667  m_spinBoxStopTrackerTimeout.setSuffix(tr(" s", " seconds"));
668  addRow(STOP_TRACKER_TIMEOUT, (tr("Stop tracker timeout") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#stop_tracker_timeout", "(?)"))
670 
671  // Program notifications
672  const MainWindow *const mainWindow = static_cast<Application*>(QCoreApplication::instance())->mainWindow();
673  m_checkBoxProgramNotifications.setChecked(mainWindow->isNotificationsEnabled());
674  addRow(PROGRAM_NOTIFICATIONS, tr("Display notifications"), &m_checkBoxProgramNotifications);
675  // Torrent added notifications
677  addRow(TORRENT_ADDED_NOTIFICATIONS, tr("Display notifications for added torrents"), &m_checkBoxTorrentAddedNotifications);
678 #if (defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)) && defined(QT_DBUS_LIB)
679  // Notification timeout
680  m_spinBoxNotificationTimeout.setMinimum(-1);
681  m_spinBoxNotificationTimeout.setMaximum(std::numeric_limits<int>::max());
682  m_spinBoxNotificationTimeout.setValue(mainWindow->getNotificationTimeout());
683  m_spinBoxNotificationTimeout.setSpecialValueText(tr("System default"));
684  m_spinBoxNotificationTimeout.setSuffix(tr(" ms", " milliseconds"));
685  addRow(NOTIFICATION_TIMEOUT, tr("Notification timeout [0: infinite]"), &m_spinBoxNotificationTimeout);
686 #endif
687  // Reannounce to all trackers when ip/port changed
689  addRow(REANNOUNCE_WHEN_ADDRESS_CHANGED, tr("Reannounce to all trackers when IP or port changed"), &m_checkBoxReannounceWhenAddressChanged);
690  // Download tracker's favicon
691  m_checkBoxTrackerFavicon.setChecked(mainWindow->isDownloadTrackerFavicon());
692  addRow(DOWNLOAD_TRACKER_FAVICON, tr("Download tracker's favicon"), &m_checkBoxTrackerFavicon);
693  // Save path history length
696  addRow(SAVE_PATH_HISTORY_LENGTH, tr("Save path history length"), &m_spinBoxSavePathHistoryLength);
697  // Enable speed graphs
699  addRow(ENABLE_SPEED_WIDGET, tr("Enable speed graphs"), &m_checkBoxSpeedWidgetEnabled);
700 #ifndef Q_OS_MACOS
701  // Enable icons in menus
703  addRow(ENABLE_ICONS_IN_MENUS, tr("Enable icons in menus"), &m_checkBoxIconsInMenusEnabled);
704 #endif
705  // Tracker State
706  m_checkBoxTrackerStatus.setChecked(session->isTrackerEnabled());
707  addRow(TRACKER_STATUS, tr("Enable embedded tracker"), &m_checkBoxTrackerStatus);
708  // Tracker port
709  m_spinBoxTrackerPort.setMinimum(1);
710  m_spinBoxTrackerPort.setMaximum(65535);
711  m_spinBoxTrackerPort.setValue(pref->getTrackerPort());
712  addRow(TRACKER_PORT, tr("Embedded tracker port"), &m_spinBoxTrackerPort);
713  // Choking algorithm
714  m_comboBoxChokingAlgorithm.addItems({tr("Fixed slots"), tr("Upload rate based")});
715  m_comboBoxChokingAlgorithm.setCurrentIndex(static_cast<int>(session->chokingAlgorithm()));
716  addRow(CHOKING_ALGORITHM, (tr("Upload slots behavior") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#choking_algorithm", "(?)"))
718  // Seed choking algorithm
719  m_comboBoxSeedChokingAlgorithm.addItems({tr("Round-robin"), tr("Fastest upload"), tr("Anti-leech")});
720  m_comboBoxSeedChokingAlgorithm.setCurrentIndex(static_cast<int>(session->seedChokingAlgorithm()));
721  addRow(SEED_CHOKING_ALGORITHM, (tr("Upload choking algorithm") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#seed_choking_algorithm", "(?)"))
723 
724  // Torrent recheck confirmation
726  addRow(CONFIRM_RECHECK_TORRENT, tr("Confirm torrent recheck"), &m_checkBoxConfirmTorrentRecheck);
727 
728  // Remove all tags confirmation
730  addRow(CONFIRM_REMOVE_ALL_TAGS, tr("Confirm removal of all tags"), &m_checkBoxConfirmRemoveAllTags);
731 
732  // Announce to all trackers in a tier
734  addRow(ANNOUNCE_ALL_TRACKERS, (tr("Always announce to all trackers in a tier")
735  + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#announce_to_all_trackers", "(?)"))
737 
738  // Announce to all tiers
739  m_checkBoxAnnounceAllTiers.setChecked(session->announceToAllTiers());
740  addRow(ANNOUNCE_ALL_TIERS, (tr("Always announce to all tiers")
741  + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#announce_to_all_tiers", "(?)"))
743 
744  m_spinBoxPeerTurnover.setMinimum(0);
745  m_spinBoxPeerTurnover.setMaximum(100);
746  m_spinBoxPeerTurnover.setValue(session->peerTurnover());
747  m_spinBoxPeerTurnover.setSuffix(" %");
748  addRow(PEER_TURNOVER, (tr("Peer turnover disconnect percentage") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#peer_turnover", "(?)"))
750  m_spinBoxPeerTurnoverCutoff.setMinimum(0);
751  m_spinBoxPeerTurnoverCutoff.setMaximum(100);
752  m_spinBoxPeerTurnoverCutoff.setSuffix(" %");
753  m_spinBoxPeerTurnoverCutoff.setValue(session->peerTurnoverCutoff());
754  addRow(PEER_TURNOVER_CUTOFF, (tr("Peer turnover threshold percentage") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#peer_turnover", "(?)"))
756  m_spinBoxPeerTurnoverInterval.setMinimum(30);
757  m_spinBoxPeerTurnoverInterval.setMaximum(3600);
758  m_spinBoxPeerTurnoverInterval.setSuffix(tr(" s", " seconds"));
760  addRow(PEER_TURNOVER_INTERVAL, (tr("Peer turnover disconnect interval") + ' ' + makeLink("https://www.libtorrent.org/reference-Settings.html#peer_turnover", "(?)"))
762 }
static const int minPathHistoryLength
static const int maxPathHistoryLength
static int savePathHistoryLength()
QCheckBox m_checkBoxConfirmRemoveAllTags
QCheckBox m_checkBoxConfirmTorrentRecheck
QCheckBox m_checkBoxSuggestMode
QCheckBox m_checkBoxBlockPeersOnPrivilegedPorts
QCheckBox m_checkBoxCoalesceRW
QCheckBox m_checkBoxSpeedWidgetEnabled
QCheckBox m_checkBoxIconsInMenusEnabled
QCheckBox m_checkBoxSSRFMitigation
QCheckBox m_checkBoxResolveHosts
QCheckBox m_checkBoxPieceExtentAffinity
QSpinBox m_spinBoxCheckingMemUsage
QSpinBox m_spinBoxTrackerPort
QSpinBox m_spinBoxSendBufferWatermark
QCheckBox m_checkBoxReannounceWhenAddressChanged
QCheckBox m_checkBoxTrackerFavicon
QCheckBox m_checkBoxOsCache
void addRow(int row, const QString &text, T *widget)
QSpinBox m_spinBoxFilePoolSize
QSpinBox m_spinBoxStopTrackerTimeout
QCheckBox m_checkBoxMultiConnectionsPerIp
void updateInterfaceAddressCombo()
QSpinBox m_spinBoxSavePathHistoryLength
QCheckBox m_checkBoxAnnounceAllTrackers
QSpinBox m_spinBoxPeerTurnover
QComboBox m_comboBoxInterface
QCheckBox m_checkBoxTrackerStatus
QSpinBox m_spinBoxListRefresh
QCheckBox m_checkBoxProgramNotifications
QSpinBox m_spinBoxSendBufferLowWatermark
QCheckBox m_checkBoxResolveCountries
QCheckBox m_checkBoxValidateHTTPSTrackerCertificate
void updateCacheSpinSuffix(int value)
QSpinBox m_spinBoxUPnPLeaseDuration
QSpinBox m_spinBoxSaveResumeDataInterval
void updateSaveResumeDataIntervalSuffix(int value)
QComboBox m_comboBoxUtpMixedMode
QSpinBox m_spinBoxPeerToS
QSpinBox m_spinBoxMaxConcurrentHTTPAnnounces
QSpinBox m_spinBoxOutgoingPortsMax
QSpinBox m_spinBoxOutgoingPortsMin
QSpinBox m_spinBoxPeerTurnoverCutoff
QSpinBox m_spinBoxSocketBacklogSize
QSpinBox m_spinBoxPeerTurnoverInterval
QComboBox m_comboBoxChokingAlgorithm
QSpinBox m_spinBoxCacheTTL
QSpinBox m_spinBoxSendBufferWatermarkFactor
QCheckBox m_checkBoxTorrentAddedNotifications
QComboBox m_comboBoxInterfaceAddress
QLineEdit m_lineEditAnnounceIP
QComboBox m_comboBoxResumeDataStorage
QCheckBox m_checkBoxAnnounceAllTiers
QSpinBox m_spinBoxConnectionSpeed
QCheckBox m_checkBoxRecheckCompleted
QSpinBox m_spinBoxAsyncIOThreads
QCheckBox m_checkBoxIDNSupport
QComboBox m_comboBoxSeedChokingAlgorithm
int refreshInterval() const
Definition: session.cpp:573
QString networkInterfaceName() const
Definition: session.cpp:2813
bool blockPeersOnPrivilegedPorts() const
Definition: session.cpp:3801
int peerTurnover() const
Definition: session.cpp:3137
bool isReannounceWhenAddressChangedEnabled() const
Definition: session.cpp:3643
SeedChokingAlgorithm seedChokingAlgorithm() const
Definition: session.cpp:2881
int asyncIOThreads() const
Definition: session.cpp:3179
static Session * instance()
Definition: session.cpp:997
bool isTrackerEnabled() const
Definition: session.cpp:913
bool isIDNSupportEnabled() const
Definition: session.cpp:3749
int sendBufferWatermark() const
Definition: session.cpp:3330
int outgoingPortsMin() const
Definition: session.cpp:3531
QString networkInterface() const
Definition: session.cpp:2799
int UPnPLeaseDuration() const
Definition: session.cpp:3559
int stopTrackerTimeout() const
Definition: session.cpp:3662
int diskCacheTTL() const
Definition: session.cpp:3263
int outgoingPortsMax() const
Definition: session.cpp:3545
int peerTurnoverCutoff() const
Definition: session.cpp:3151
int peerToS() const
Definition: session.cpp:3573
int sendBufferLowWatermark() const
Definition: session.cpp:3343
bool announceToAllTiers() const
Definition: session.cpp:3123
int sendBufferWatermarkFactor() const
Definition: session.cpp:3356
bool usePieceExtentAffinity() const
Definition: session.cpp:3309
int connectionSpeed() const
Definition: session.cpp:3369
int checkingMemUsage() const
Definition: session.cpp:3221
QString announceIP() const
Definition: session.cpp:3615
int hashingThreads() const
Definition: session.cpp:3193
int peerTurnoverInterval() const
Definition: session.cpp:3165
int socketBacklogSize() const
Definition: session.cpp:3382
int maxConcurrentHTTPAnnounces() const
Definition: session.cpp:3629
bool isSSRFMitigationEnabled() const
Definition: session.cpp:3788
bool multiConnectionsPerIpEnabled() const
Definition: session.cpp:3762
int saveResumeDataInterval() const
Definition: session.cpp:2759
ChokingAlgorithm chokingAlgorithm() const
Definition: session.cpp:2868
bool useOSCache() const
Definition: session.cpp:3277
bool isSuggestModeEnabled() const
Definition: session.cpp:3304
bool announceToAllTrackers() const
Definition: session.cpp:3109
bool isCoalesceReadWriteEnabled() const
Definition: session.cpp:3291
MixedModeAlgorithm utpMixedMode() const
Definition: session.cpp:3736
int diskCacheSize() const
Definition: session.cpp:3237
bool validateHTTPSTrackerCertificate() const
Definition: session.cpp:3775
int filePoolSize() const
Definition: session.cpp:3207
ResumeDataStorageType resumeDataStorageType() const
Definition: session.cpp:2985
bool isTorrentAddedNotificationsEnabled() const
Definition: mainwindow.cpp:516
bool isDownloadTrackerFavicon() const
Definition: mainwindow.cpp:538
bool isNotificationsEnabled() const
Definition: mainwindow.cpp:506
bool resolvePeerCountries() const
static Preferences * instance()
int getTrackerPort() const
bool resolvePeerHostNames() const
bool recheckTorrentsOnCompletion() const
bool confirmRemoveAllTags() const
bool isSpeedWidgetEnabled() const
bool confirmTorrentRecheck() const
bool iconsInMenusEnabled() const
constexpr std::add_const_t< T > & asConst(T &t) noexcept
Definition: global.h:42
QString makeLink(const QString &url, const QString &linkLabel)
const char C_UTP[]

References addRow(), anonymous_namespace{advancedsettings.cpp}::ANNOUNCE_ALL_TIERS, anonymous_namespace{advancedsettings.cpp}::ANNOUNCE_ALL_TRACKERS, anonymous_namespace{advancedsettings.cpp}::ANNOUNCE_IP, BitTorrent::Session::announceIP(), BitTorrent::Session::announceToAllTiers(), BitTorrent::Session::announceToAllTrackers(), asConst(), anonymous_namespace{advancedsettings.cpp}::ASYNC_IO_THREADS, BitTorrent::Session::asyncIOThreads(), anonymous_namespace{advancedsettings.cpp}::BLOCK_PEERS_ON_PRIVILEGED_PORTS, BitTorrent::Session::blockPeersOnPrivilegedPorts(), C_UTP, anonymous_namespace{advancedsettings.cpp}::CHECKING_MEM_USAGE, BitTorrent::Session::checkingMemUsage(), anonymous_namespace{advancedsettings.cpp}::CHOKING_ALGORITHM, BitTorrent::Session::chokingAlgorithm(), anonymous_namespace{advancedsettings.cpp}::COALESCE_RW, anonymous_namespace{advancedsettings.cpp}::CONFIRM_RECHECK_TORRENT, anonymous_namespace{advancedsettings.cpp}::CONFIRM_REMOVE_ALL_TAGS, Preferences::confirmRemoveAllTags(), Preferences::confirmTorrentRecheck(), anonymous_namespace{advancedsettings.cpp}::CONNECTION_SPEED, BitTorrent::Session::connectionSpeed(), anonymous_namespace{advancedsettings.cpp}::DISK_CACHE, anonymous_namespace{advancedsettings.cpp}::DISK_CACHE_TTL, BitTorrent::Session::diskCacheSize(), BitTorrent::Session::diskCacheTTL(), anonymous_namespace{advancedsettings.cpp}::DOWNLOAD_TRACKER_FAVICON, anonymous_namespace{advancedsettings.cpp}::ENABLE_ICONS_IN_MENUS, anonymous_namespace{advancedsettings.cpp}::ENABLE_SPEED_WIDGET, anonymous_namespace{advancedsettings.cpp}::FILE_POOL_SIZE, BitTorrent::Session::filePoolSize(), Preferences::getTrackerPort(), BitTorrent::Session::hashingThreads(), Preferences::iconsInMenusEnabled(), anonymous_namespace{advancedsettings.cpp}::IDN_SUPPORT, BitTorrent::Session::instance(), Preferences::instance(), BitTorrent::Session::isCoalesceReadWriteEnabled(), MainWindow::isDownloadTrackerFavicon(), BitTorrent::Session::isIDNSupportEnabled(), MainWindow::isNotificationsEnabled(), BitTorrent::Session::isReannounceWhenAddressChangedEnabled(), Preferences::isSpeedWidgetEnabled(), BitTorrent::Session::isSSRFMitigationEnabled(), BitTorrent::Session::isSuggestModeEnabled(), MainWindow::isTorrentAddedNotificationsEnabled(), BitTorrent::Session::isTrackerEnabled(), BitTorrent::SessionSettingsEnums::Legacy, anonymous_namespace{advancedsettings.cpp}::LIBTORRENT_HEADER, anonymous_namespace{advancedsettings.cpp}::LIST_REFRESH, m_checkBoxAnnounceAllTiers, m_checkBoxAnnounceAllTrackers, m_checkBoxBlockPeersOnPrivilegedPorts, m_checkBoxCoalesceRW, m_checkBoxConfirmRemoveAllTags, m_checkBoxConfirmTorrentRecheck, m_checkBoxIconsInMenusEnabled, m_checkBoxIDNSupport, m_checkBoxMultiConnectionsPerIp, m_checkBoxOsCache, m_checkBoxPieceExtentAffinity, m_checkBoxProgramNotifications, m_checkBoxReannounceWhenAddressChanged, m_checkBoxRecheckCompleted, m_checkBoxResolveCountries, m_checkBoxResolveHosts, m_checkBoxSpeedWidgetEnabled, m_checkBoxSSRFMitigation, m_checkBoxSuggestMode, m_checkBoxTorrentAddedNotifications, m_checkBoxTrackerFavicon, m_checkBoxTrackerStatus, m_checkBoxValidateHTTPSTrackerCertificate, m_comboBoxChokingAlgorithm, m_comboBoxInterface, m_comboBoxInterfaceAddress, m_comboBoxResumeDataStorage, m_comboBoxSeedChokingAlgorithm, m_comboBoxUtpMixedMode, m_lineEditAnnounceIP, m_spinBoxAsyncIOThreads, m_spinBoxCache, m_spinBoxCacheTTL, m_spinBoxCheckingMemUsage, m_spinBoxConnectionSpeed, m_spinBoxFilePoolSize, m_spinBoxListRefresh, m_spinBoxMaxConcurrentHTTPAnnounces, m_spinBoxOutgoingPortsMax, m_spinBoxOutgoingPortsMin, m_spinBoxPeerToS, m_spinBoxPeerTurnover, m_spinBoxPeerTurnoverCutoff, m_spinBoxPeerTurnoverInterval, m_spinBoxSavePathHistoryLength, m_spinBoxSaveResumeDataInterval, m_spinBoxSendBufferLowWatermark, m_spinBoxSendBufferWatermark, m_spinBoxSendBufferWatermarkFactor, m_spinBoxSocketBacklogSize, m_spinBoxStopTrackerTimeout, m_spinBoxTrackerPort, m_spinBoxUPnPLeaseDuration, anonymous_namespace{advancedsettings.cpp}::makeLink(), anonymous_namespace{advancedsettings.cpp}::MAX_CONCURRENT_HTTP_ANNOUNCES, BitTorrent::Session::maxConcurrentHTTPAnnounces(), AddNewTorrentDialog::maxPathHistoryLength, AddNewTorrentDialog::minPathHistoryLength, anonymous_namespace{advancedsettings.cpp}::MULTI_CONNECTIONS_PER_IP, BitTorrent::Session::multiConnectionsPerIpEnabled(), anonymous_namespace{advancedsettings.cpp}::NETWORK_IFACE, anonymous_namespace{advancedsettings.cpp}::NETWORK_IFACE_ADDRESS, BitTorrent::Session::networkInterface(), BitTorrent::Session::networkInterfaceName(), anonymous_namespace{advancedsettings.cpp}::OS_CACHE, anonymous_namespace{advancedsettings.cpp}::OUTGOING_PORT_MAX, anonymous_namespace{advancedsettings.cpp}::OUTGOING_PORT_MIN, BitTorrent::Session::outgoingPortsMax(), BitTorrent::Session::outgoingPortsMin(), anonymous_namespace{advancedsettings.cpp}::PEER_TOS, anonymous_namespace{advancedsettings.cpp}::PEER_TURNOVER, anonymous_namespace{advancedsettings.cpp}::PEER_TURNOVER_CUTOFF, anonymous_namespace{advancedsettings.cpp}::PEER_TURNOVER_INTERVAL, BitTorrent::Session::peerToS(), BitTorrent::Session::peerTurnover(), BitTorrent::Session::peerTurnoverCutoff(), BitTorrent::Session::peerTurnoverInterval(), anonymous_namespace{advancedsettings.cpp}::PIECE_EXTENT_AFFINITY, anonymous_namespace{advancedsettings.cpp}::PROGRAM_NOTIFICATIONS, anonymous_namespace{advancedsettings.cpp}::PROPERTY, anonymous_namespace{advancedsettings.cpp}::QBITTORRENT_HEADER, anonymous_namespace{advancedsettings.cpp}::REANNOUNCE_WHEN_ADDRESS_CHANGED, anonymous_namespace{advancedsettings.cpp}::RECHECK_COMPLETED, Preferences::recheckTorrentsOnCompletion(), BitTorrent::Session::refreshInterval(), anonymous_namespace{advancedsettings.cpp}::RESOLVE_COUNTRIES, anonymous_namespace{advancedsettings.cpp}::RESOLVE_HOSTS, Preferences::resolvePeerCountries(), Preferences::resolvePeerHostNames(), anonymous_namespace{advancedsettings.cpp}::RESUME_DATA_STORAGE, BitTorrent::Session::resumeDataStorageType(), anonymous_namespace{advancedsettings.cpp}::SAVE_PATH_HISTORY_LENGTH, anonymous_namespace{advancedsettings.cpp}::SAVE_RESUME_DATA_INTERVAL, AddNewTorrentDialog::savePathHistoryLength(), BitTorrent::Session::saveResumeDataInterval(), anonymous_namespace{advancedsettings.cpp}::SEED_CHOKING_ALGORITHM, BitTorrent::Session::seedChokingAlgorithm(), anonymous_namespace{advancedsettings.cpp}::SEND_BUF_LOW_WATERMARK, anonymous_namespace{advancedsettings.cpp}::SEND_BUF_WATERMARK, anonymous_namespace{advancedsettings.cpp}::SEND_BUF_WATERMARK_FACTOR, BitTorrent::Session::sendBufferLowWatermark(), BitTorrent::Session::sendBufferWatermark(), BitTorrent::Session::sendBufferWatermarkFactor(), anonymous_namespace{advancedsettings.cpp}::SOCKET_BACKLOG_SIZE, BitTorrent::Session::socketBacklogSize(), anonymous_namespace{advancedsettings.cpp}::SSRF_MITIGATION, anonymous_namespace{advancedsettings.cpp}::STOP_TRACKER_TIMEOUT, BitTorrent::Session::stopTrackerTimeout(), anonymous_namespace{advancedsettings.cpp}::SUGGEST_MODE, anonymous_namespace{advancedsettings.cpp}::TORRENT_ADDED_NOTIFICATIONS, anonymous_namespace{advancedsettings.cpp}::TRACKER_PORT, anonymous_namespace{advancedsettings.cpp}::TRACKER_STATUS, updateCacheSpinSuffix(), updateInterfaceAddressCombo(), updateSaveResumeDataIntervalSuffix(), anonymous_namespace{advancedsettings.cpp}::UPNP_LEASE_DURATION, BitTorrent::Session::UPnPLeaseDuration(), BitTorrent::Session::useOSCache(), BitTorrent::Session::usePieceExtentAffinity(), anonymous_namespace{advancedsettings.cpp}::UTP_MIX_MODE, BitTorrent::Session::utpMixedMode(), anonymous_namespace{advancedsettings.cpp}::VALIDATE_HTTPS_TRACKER_CERTIFICATE, and BitTorrent::Session::validateHTTPSTrackerCertificate().

Referenced by AdvancedSettings().

Here is the caller graph for this function:

◆ saveAdvancedSettings

void AdvancedSettings::saveAdvancedSettings ( )
slot

Definition at line 168 of file advancedsettings.cpp.

169 {
170  Preferences *const pref = Preferences::instance();
172 
173  session->setResumeDataStorageType((m_comboBoxResumeDataStorage.currentIndex() == 0)
175  : BitTorrent::ResumeDataStorageType::SQLite);
176 
177 #if defined(Q_OS_WIN)
178  BitTorrent::OSMemoryPriority prio = BitTorrent::OSMemoryPriority::Normal;
179  switch (m_comboBoxOSMemoryPriority.currentIndex())
180  {
181  case 0:
182  default:
183  prio = BitTorrent::OSMemoryPriority::Normal;
184  break;
185  case 1:
186  prio = BitTorrent::OSMemoryPriority::BelowNormal;
187  break;
188  case 2:
189  prio = BitTorrent::OSMemoryPriority::Medium;
190  break;
191  case 3:
192  prio = BitTorrent::OSMemoryPriority::Low;
193  break;
194  case 4:
195  prio = BitTorrent::OSMemoryPriority::VeryLow;
196  break;
197  }
198  session->setOSMemoryPriority(prio);
199 #endif
200  // Async IO threads
201  session->setAsyncIOThreads(m_spinBoxAsyncIOThreads.value());
202 #ifdef QBT_USES_LIBTORRENT2
203  // Hashing threads
204  session->setHashingThreads(m_spinBoxHashingThreads.value());
205 #endif
206  // File pool size
207  session->setFilePoolSize(m_spinBoxFilePoolSize.value());
208  // Checking Memory Usage
210 #ifndef QBT_USES_LIBTORRENT2
211  // Disk write cache
212  session->setDiskCacheSize(m_spinBoxCache.value());
213  session->setDiskCacheTTL(m_spinBoxCacheTTL.value());
214 #endif
215  // Enable OS cache
216  session->setUseOSCache(m_checkBoxOsCache.isChecked());
217 #ifndef QBT_USES_LIBTORRENT2
218  // Coalesce reads & writes
220 #endif
221  // Piece extent affinity
223  // Suggest mode
224  session->setSuggestMode(m_checkBoxSuggestMode.isChecked());
225  // Send buffer watermark
229  // Outgoing connections per second
231  // Socket listen backlog size
233  // Save resume data interval
235  // Outgoing ports
238  // UPnP lease duration
240  // Type of service
241  session->setPeerToS(m_spinBoxPeerToS.value());
242  // uTP-TCP mixed mode
243  session->setUtpMixedMode(static_cast<BitTorrent::MixedModeAlgorithm>(m_comboBoxUtpMixedMode.currentIndex()));
244  // Support internationalized domain name (IDN)
245  session->setIDNSupportEnabled(m_checkBoxIDNSupport.isChecked());
246  // multiple connections per IP
248  // Validate HTTPS tracker certificate
250  // SSRF mitigation
252  // Disallow connection to peers on privileged ports
254  // Recheck torrents on completion
256  // Transfer list refresh interval
257  session->setRefreshInterval(m_spinBoxListRefresh.value());
258  // Peer resolution
260  pref->resolvePeerHostNames(m_checkBoxResolveHosts.isChecked());
261  // Network interface
262  if (m_comboBoxInterface.currentIndex() == 0)
263  {
264  // All interfaces (default)
265  session->setNetworkInterface(QString());
266  session->setNetworkInterfaceName(QString());
267  }
268  else
269  {
270  session->setNetworkInterface(m_comboBoxInterface.itemData(m_comboBoxInterface.currentIndex()).toString());
271  session->setNetworkInterfaceName(m_comboBoxInterface.currentText());
272  }
273 
274  // Interface address
275  // Construct a QHostAddress to filter malformed strings
276  const QHostAddress ifaceAddr(m_comboBoxInterfaceAddress.currentData().toString().trimmed());
277  session->setNetworkInterfaceAddress(ifaceAddr.toString());
278 
279  // Announce IP
280  // Construct a QHostAddress to filter malformed strings
281  const QHostAddress addr(m_lineEditAnnounceIP.text().trimmed());
282  session->setAnnounceIP(addr.toString());
283  // Max concurrent HTTP announces
285  // Stop tracker timeout
287  // Program notification
288  MainWindow *const mainWindow = static_cast<Application*>(QCoreApplication::instance())->mainWindow();
291 #if (defined(Q_OS_UNIX) && !defined(Q_OS_MACOS)) && defined(QT_DBUS_LIB)
292  mainWindow->setNotificationTimeout(m_spinBoxNotificationTimeout.value());
293 #endif
294  // Reannounce to all trackers when ip/port changed
296  // Misc GUI properties
297  mainWindow->setDownloadTrackerFavicon(m_checkBoxTrackerFavicon.isChecked());
300 #ifndef Q_OS_MACOS
302 #endif
303 
304  // Tracker
305  pref->setTrackerPort(m_spinBoxTrackerPort.value());
306  session->setTrackerEnabled(m_checkBoxTrackerStatus.isChecked());
307  // Choking algorithm
308  session->setChokingAlgorithm(static_cast<BitTorrent::ChokingAlgorithm>(m_comboBoxChokingAlgorithm.currentIndex()));
309  // Seed choking algorithm
311 
313 
315 
318 
319  session->setPeerTurnover(m_spinBoxPeerTurnover.value());
322 }
static void setSavePathHistoryLength(int value)
void setDiskCacheTTL(int ttl)
Definition: session.cpp:3268
void setOutgoingPortsMax(int max)
Definition: session.cpp:3550
void setPeerTurnoverInterval(int num)
Definition: session.cpp:3170
void setResumeDataStorageType(ResumeDataStorageType type)
Definition: session.cpp:2990
void setTrackerEnabled(bool enabled)
Definition: session.cpp:918
void setConnectionSpeed(int value)
Definition: session.cpp:3374
void setUseOSCache(bool use)
Definition: session.cpp:3282
void setAsyncIOThreads(int num)
Definition: session.cpp:3184
void setAnnounceIP(const QString &ip)
Definition: session.cpp:3620
void setStopTrackerTimeout(int value)
Definition: session.cpp:3667
void setSendBufferLowWatermark(int value)
Definition: session.cpp:3348
void setSuggestMode(bool mode)
Definition: session.cpp:3322
void setUPnPLeaseDuration(int duration)
Definition: session.cpp:3564
void setSSRFMitigationEnabled(bool enabled)
Definition: session.cpp:3793
void setMultiConnectionsPerIpEnabled(bool enabled)
Definition: session.cpp:3767
void setHashingThreads(int num)
Definition: session.cpp:3198
void setPieceExtentAffinity(bool enabled)
Definition: session.cpp:3314
void setReannounceWhenAddressChangedEnabled(bool enabled)
Definition: session.cpp:3648
void setSaveResumeDataInterval(int value)
Definition: session.cpp:2764
void setSendBufferWatermark(int value)
Definition: session.cpp:3335
void setMaxConcurrentHTTPAnnounces(int value)
Definition: session.cpp:3634
void setDiskCacheSize(int size)
Definition: session.cpp:3248
void setCheckingMemUsage(int size)
Definition: session.cpp:3226
void setRefreshInterval(int value)
Definition: session.cpp:578
void setUtpMixedMode(MixedModeAlgorithm mode)
Definition: session.cpp:3741
void setFilePoolSize(int size)
Definition: session.cpp:3212
void setSeedChokingAlgorithm(SeedChokingAlgorithm mode)
Definition: session.cpp:2886
void setAnnounceToAllTrackers(bool val)
Definition: session.cpp:3114
void setOutgoingPortsMin(int min)
Definition: session.cpp:3536
void setPeerTurnoverCutoff(int num)
Definition: session.cpp:3156
void setAnnounceToAllTiers(bool val)
Definition: session.cpp:3128
void setPeerTurnover(int num)
Definition: session.cpp:3142
void setValidateHTTPSTrackerCertificate(bool enabled)
Definition: session.cpp:3780
void setBlockPeersOnPrivilegedPorts(bool enabled)
Definition: session.cpp:3806
void setIDNSupportEnabled(bool enabled)
Definition: session.cpp:3754
void setSocketBacklogSize(int value)
Definition: session.cpp:3387
void setNetworkInterfaceAddress(const QString &address)
Definition: session.cpp:2828
void setChokingAlgorithm(ChokingAlgorithm mode)
Definition: session.cpp:2873
void setNetworkInterface(const QString &iface)
Definition: session.cpp:2804
void setNetworkInterfaceName(const QString &name)
Definition: session.cpp:2818
void setSendBufferWatermarkFactor(int value)
Definition: session.cpp:3361
void setCoalesceReadWriteEnabled(bool enabled)
Definition: session.cpp:3296
void setPeerToS(int value)
Definition: session.cpp:3578
void setNotificationsEnabled(bool value)
Definition: mainwindow.cpp:511
void setTorrentAddedNotificationsEnabled(bool value)
Definition: mainwindow.cpp:521
void setDownloadTrackerFavicon(bool value)
Definition: mainwindow.cpp:543
void setIconsInMenusEnabled(bool enable)
void setTrackerPort(int port)
void setSpeedWidgetEnabled(bool enabled)
void setConfirmRemoveAllTags(bool enabled)
void setConfirmTorrentRecheck(bool enabled)

References BitTorrent::Session::instance(), Preferences::instance(), BitTorrent::SessionSettingsEnums::Legacy, m_checkBoxAnnounceAllTiers, m_checkBoxAnnounceAllTrackers, m_checkBoxBlockPeersOnPrivilegedPorts, m_checkBoxCoalesceRW, m_checkBoxConfirmRemoveAllTags, m_checkBoxConfirmTorrentRecheck, m_checkBoxIconsInMenusEnabled, m_checkBoxIDNSupport, m_checkBoxMultiConnectionsPerIp, m_checkBoxOsCache, m_checkBoxPieceExtentAffinity, m_checkBoxProgramNotifications, m_checkBoxReannounceWhenAddressChanged, m_checkBoxRecheckCompleted, m_checkBoxResolveCountries, m_checkBoxResolveHosts, m_checkBoxSpeedWidgetEnabled, m_checkBoxSSRFMitigation, m_checkBoxSuggestMode, m_checkBoxTorrentAddedNotifications, m_checkBoxTrackerFavicon, m_checkBoxTrackerStatus, m_checkBoxValidateHTTPSTrackerCertificate, m_comboBoxChokingAlgorithm, m_comboBoxInterface, m_comboBoxInterfaceAddress, m_comboBoxResumeDataStorage, m_comboBoxSeedChokingAlgorithm, m_comboBoxUtpMixedMode, m_lineEditAnnounceIP, m_spinBoxAsyncIOThreads, m_spinBoxCache, m_spinBoxCacheTTL, m_spinBoxCheckingMemUsage, m_spinBoxConnectionSpeed, m_spinBoxFilePoolSize, m_spinBoxListRefresh, m_spinBoxMaxConcurrentHTTPAnnounces, m_spinBoxOutgoingPortsMax, m_spinBoxOutgoingPortsMin, m_spinBoxPeerToS, m_spinBoxPeerTurnover, m_spinBoxPeerTurnoverCutoff, m_spinBoxPeerTurnoverInterval, m_spinBoxSavePathHistoryLength, m_spinBoxSaveResumeDataInterval, m_spinBoxSendBufferLowWatermark, m_spinBoxSendBufferWatermark, m_spinBoxSendBufferWatermarkFactor, m_spinBoxSocketBacklogSize, m_spinBoxStopTrackerTimeout, m_spinBoxTrackerPort, m_spinBoxUPnPLeaseDuration, Preferences::recheckTorrentsOnCompletion(), Preferences::resolvePeerCountries(), Preferences::resolvePeerHostNames(), BitTorrent::Session::setAnnounceIP(), BitTorrent::Session::setAnnounceToAllTiers(), BitTorrent::Session::setAnnounceToAllTrackers(), BitTorrent::Session::setAsyncIOThreads(), BitTorrent::Session::setBlockPeersOnPrivilegedPorts(), BitTorrent::Session::setCheckingMemUsage(), BitTorrent::Session::setChokingAlgorithm(), BitTorrent::Session::setCoalesceReadWriteEnabled(), Preferences::setConfirmRemoveAllTags(), Preferences::setConfirmTorrentRecheck(), BitTorrent::Session::setConnectionSpeed(), BitTorrent::Session::setDiskCacheSize(), BitTorrent::Session::setDiskCacheTTL(), MainWindow::setDownloadTrackerFavicon(), BitTorrent::Session::setFilePoolSize(), BitTorrent::Session::setHashingThreads(), Preferences::setIconsInMenusEnabled(), BitTorrent::Session::setIDNSupportEnabled(), BitTorrent::Session::setMaxConcurrentHTTPAnnounces(), BitTorrent::Session::setMultiConnectionsPerIpEnabled(), BitTorrent::Session::setNetworkInterface(), BitTorrent::Session::setNetworkInterfaceAddress(), BitTorrent::Session::setNetworkInterfaceName(), MainWindow::setNotificationsEnabled(), BitTorrent::Session::setOutgoingPortsMax(), BitTorrent::Session::setOutgoingPortsMin(), BitTorrent::Session::setPeerToS(), BitTorrent::Session::setPeerTurnover(), BitTorrent::Session::setPeerTurnoverCutoff(), BitTorrent::Session::setPeerTurnoverInterval(), BitTorrent::Session::setPieceExtentAffinity(), BitTorrent::Session::setReannounceWhenAddressChangedEnabled(), BitTorrent::Session::setRefreshInterval(), BitTorrent::Session::setResumeDataStorageType(), AddNewTorrentDialog::setSavePathHistoryLength(), BitTorrent::Session::setSaveResumeDataInterval(), BitTorrent::Session::setSeedChokingAlgorithm(), BitTorrent::Session::setSendBufferLowWatermark(), BitTorrent::Session::setSendBufferWatermark(), BitTorrent::Session::setSendBufferWatermarkFactor(), BitTorrent::Session::setSocketBacklogSize(), Preferences::setSpeedWidgetEnabled(), BitTorrent::Session::setSSRFMitigationEnabled(), BitTorrent::Session::setStopTrackerTimeout(), BitTorrent::Session::setSuggestMode(), MainWindow::setTorrentAddedNotificationsEnabled(), BitTorrent::Session::setTrackerEnabled(), Preferences::setTrackerPort(), BitTorrent::Session::setUPnPLeaseDuration(), BitTorrent::Session::setUseOSCache(), BitTorrent::Session::setUtpMixedMode(), and BitTorrent::Session::setValidateHTTPSTrackerCertificate().

Referenced by OptionsDialog::saveOptions().

Here is the caller graph for this function:

◆ settingsChanged

void AdvancedSettings::settingsChanged ( )
signal

Referenced by addRow(), and OptionsDialog::OptionsDialog().

Here is the caller graph for this function:

◆ updateCacheSpinSuffix

void AdvancedSettings::updateCacheSpinSuffix ( int  value)
privateslot

Definition at line 325 of file advancedsettings.cpp.

326 {
327  if (value == 0)
328  m_spinBoxCache.setSuffix(tr(" (disabled)"));
329  else if (value < 0)
330  m_spinBoxCache.setSuffix(tr(" (auto)"));
331  else
332  m_spinBoxCache.setSuffix(tr(" MiB"));
333 }
T value(const QString &key, const T &defaultValue={})
Definition: preferences.cpp:64

References m_spinBoxCache, and anonymous_namespace{preferences.cpp}::value().

Referenced by loadAdvancedSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateInterfaceAddressCombo

void AdvancedSettings::updateInterfaceAddressCombo ( )
privateslot

Definition at line 344 of file advancedsettings.cpp.

345 {
346  // Try to get the currently selected interface name
347  const QString ifaceName = m_comboBoxInterface.itemData(m_comboBoxInterface.currentIndex()).toString(); // Empty string for the first element
348  const QString currentAddress = BitTorrent::Session::instance()->networkInterfaceAddress();
349 
350  // Clear all items and reinsert them, default to all
352  m_comboBoxInterfaceAddress.addItem(tr("All addresses"), {});
353  m_comboBoxInterfaceAddress.addItem(tr("All IPv4 addresses"), QLatin1String("0.0.0.0"));
354  m_comboBoxInterfaceAddress.addItem(tr("All IPv6 addresses"), QLatin1String("::"));
355 
356  const auto populateCombo = [this](const QHostAddress &addr)
357  {
358  if (addr.protocol() == QAbstractSocket::IPv4Protocol)
359  {
360  const QString str = addr.toString();
361  m_comboBoxInterfaceAddress.addItem(str, str);
362  }
363  else if (addr.protocol() == QAbstractSocket::IPv6Protocol)
364  {
365  const QString str = Utils::Net::canonicalIPv6Addr(addr).toString();
366  m_comboBoxInterfaceAddress.addItem(str, str);
367  }
368  };
369 
370  if (ifaceName.isEmpty())
371  {
372  for (const QHostAddress &addr : asConst(QNetworkInterface::allAddresses()))
373  populateCombo(addr);
374  }
375  else
376  {
377  const QNetworkInterface iface = QNetworkInterface::interfaceFromName(ifaceName);
378  const QList<QNetworkAddressEntry> addresses = iface.addressEntries();
379  for (const QNetworkAddressEntry &entry : addresses)
380  populateCombo(entry.ip());
381  }
382 
383  const int index = m_comboBoxInterfaceAddress.findData(currentAddress);
384  m_comboBoxInterfaceAddress.setCurrentIndex(std::max(index, 0));
385 }
QString networkInterfaceAddress() const
Definition: session.cpp:2823
QHostAddress canonicalIPv6Addr(const QHostAddress &addr)
Definition: net.cpp:100

References asConst(), Utils::Net::canonicalIPv6Addr(), BitTorrent::Session::instance(), m_comboBoxInterface, m_comboBoxInterfaceAddress, and BitTorrent::Session::networkInterfaceAddress().

Referenced by loadAdvancedSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateSaveResumeDataIntervalSuffix

void AdvancedSettings::updateSaveResumeDataIntervalSuffix ( int  value)
privateslot

Definition at line 336 of file advancedsettings.cpp.

337 {
338  if (value > 0)
339  m_spinBoxSaveResumeDataInterval.setSuffix(tr(" min", " minutes"));
340  else
341  m_spinBoxSaveResumeDataInterval.setSuffix(tr(" (disabled)"));
342 }

References m_spinBoxSaveResumeDataInterval, and anonymous_namespace{preferences.cpp}::value().

Referenced by loadAdvancedSettings().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ m_checkBoxAnnounceAllTiers

QCheckBox AdvancedSettings::m_checkBoxAnnounceAllTiers
private

Definition at line 68 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxAnnounceAllTrackers

QCheckBox AdvancedSettings::m_checkBoxAnnounceAllTrackers
private

Definition at line 68 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxBlockPeersOnPrivilegedPorts

QCheckBox AdvancedSettings::m_checkBoxBlockPeersOnPrivilegedPorts
private

Definition at line 69 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxCoalesceRW

QCheckBox AdvancedSettings::m_checkBoxCoalesceRW
private

Definition at line 77 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxConfirmRemoveAllTags

QCheckBox AdvancedSettings::m_checkBoxConfirmRemoveAllTags
private

Definition at line 68 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxConfirmTorrentRecheck

QCheckBox AdvancedSettings::m_checkBoxConfirmTorrentRecheck
private

Definition at line 68 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxIconsInMenusEnabled

QCheckBox AdvancedSettings::m_checkBoxIconsInMenusEnabled
private

Definition at line 88 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxIDNSupport

QCheckBox AdvancedSettings::m_checkBoxIDNSupport
private

Definition at line 70 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxMultiConnectionsPerIp

QCheckBox AdvancedSettings::m_checkBoxMultiConnectionsPerIp
private

Definition at line 69 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxOsCache

QCheckBox AdvancedSettings::m_checkBoxOsCache
private

Definition at line 66 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxPieceExtentAffinity

QCheckBox AdvancedSettings::m_checkBoxPieceExtentAffinity
private

Definition at line 69 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxProgramNotifications

QCheckBox AdvancedSettings::m_checkBoxProgramNotifications
private

Definition at line 67 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxReannounceWhenAddressChanged

QCheckBox AdvancedSettings::m_checkBoxReannounceWhenAddressChanged
private

Definition at line 67 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxRecheckCompleted

QCheckBox AdvancedSettings::m_checkBoxRecheckCompleted
private

Definition at line 66 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxResolveCountries

QCheckBox AdvancedSettings::m_checkBoxResolveCountries
private

Definition at line 66 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxResolveHosts

QCheckBox AdvancedSettings::m_checkBoxResolveHosts
private

Definition at line 66 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxSpeedWidgetEnabled

QCheckBox AdvancedSettings::m_checkBoxSpeedWidgetEnabled
private

Definition at line 70 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxSSRFMitigation

QCheckBox AdvancedSettings::m_checkBoxSSRFMitigation
private

Definition at line 69 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxSuggestMode

QCheckBox AdvancedSettings::m_checkBoxSuggestMode
private

Definition at line 70 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxTorrentAddedNotifications

QCheckBox AdvancedSettings::m_checkBoxTorrentAddedNotifications
private

Definition at line 67 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxTrackerFavicon

QCheckBox AdvancedSettings::m_checkBoxTrackerFavicon
private

Definition at line 67 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxTrackerStatus

QCheckBox AdvancedSettings::m_checkBoxTrackerStatus
private

Definition at line 67 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_checkBoxValidateHTTPSTrackerCertificate

QCheckBox AdvancedSettings::m_checkBoxValidateHTTPSTrackerCertificate
private

Definition at line 69 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_comboBoxChokingAlgorithm

QComboBox AdvancedSettings::m_comboBoxChokingAlgorithm
private

Definition at line 71 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_comboBoxInterface

QComboBox AdvancedSettings::m_comboBoxInterface
private

◆ m_comboBoxInterfaceAddress

QComboBox AdvancedSettings::m_comboBoxInterfaceAddress
private

◆ m_comboBoxResumeDataStorage

QComboBox AdvancedSettings::m_comboBoxResumeDataStorage
private

Definition at line 72 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_comboBoxSeedChokingAlgorithm

QComboBox AdvancedSettings::m_comboBoxSeedChokingAlgorithm
private

Definition at line 72 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_comboBoxUtpMixedMode

QComboBox AdvancedSettings::m_comboBoxUtpMixedMode
private

Definition at line 71 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_lineEditAnnounceIP

QLineEdit AdvancedSettings::m_lineEditAnnounceIP
private

Definition at line 73 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxAsyncIOThreads

QSpinBox AdvancedSettings::m_spinBoxAsyncIOThreads
private

Definition at line 61 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxCache

QSpinBox AdvancedSettings::m_spinBoxCache
private

◆ m_spinBoxCacheTTL

QSpinBox AdvancedSettings::m_spinBoxCacheTTL
private

Definition at line 76 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxCheckingMemUsage

QSpinBox AdvancedSettings::m_spinBoxCheckingMemUsage
private

Definition at line 61 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxConnectionSpeed

QSpinBox AdvancedSettings::m_spinBoxConnectionSpeed
private

Definition at line 64 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxFilePoolSize

QSpinBox AdvancedSettings::m_spinBoxFilePoolSize
private

Definition at line 61 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxListRefresh

QSpinBox AdvancedSettings::m_spinBoxListRefresh
private

Definition at line 63 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxMaxConcurrentHTTPAnnounces

QSpinBox AdvancedSettings::m_spinBoxMaxConcurrentHTTPAnnounces
private

Definition at line 64 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxOutgoingPortsMax

QSpinBox AdvancedSettings::m_spinBoxOutgoingPortsMax
private

Definition at line 62 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxOutgoingPortsMin

QSpinBox AdvancedSettings::m_spinBoxOutgoingPortsMin
private

Definition at line 62 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxPeerToS

QSpinBox AdvancedSettings::m_spinBoxPeerToS
private

Definition at line 62 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxPeerTurnover

QSpinBox AdvancedSettings::m_spinBoxPeerTurnover
private

Definition at line 65 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxPeerTurnoverCutoff

QSpinBox AdvancedSettings::m_spinBoxPeerTurnoverCutoff
private

Definition at line 65 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxPeerTurnoverInterval

QSpinBox AdvancedSettings::m_spinBoxPeerTurnoverInterval
private

Definition at line 65 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxSavePathHistoryLength

QSpinBox AdvancedSettings::m_spinBoxSavePathHistoryLength
private

Definition at line 65 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxSaveResumeDataInterval

QSpinBox AdvancedSettings::m_spinBoxSaveResumeDataInterval
private

◆ m_spinBoxSendBufferLowWatermark

QSpinBox AdvancedSettings::m_spinBoxSendBufferLowWatermark
private

Definition at line 63 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxSendBufferWatermark

QSpinBox AdvancedSettings::m_spinBoxSendBufferWatermark
private

Definition at line 63 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxSendBufferWatermarkFactor

QSpinBox AdvancedSettings::m_spinBoxSendBufferWatermarkFactor
private

Definition at line 64 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxSocketBacklogSize

QSpinBox AdvancedSettings::m_spinBoxSocketBacklogSize
private

Definition at line 64 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxStopTrackerTimeout

QSpinBox AdvancedSettings::m_spinBoxStopTrackerTimeout
private

Definition at line 64 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxTrackerPort

QSpinBox AdvancedSettings::m_spinBoxTrackerPort
private

Definition at line 63 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().

◆ m_spinBoxUPnPLeaseDuration

QSpinBox AdvancedSettings::m_spinBoxUPnPLeaseDuration
private

Definition at line 62 of file advancedsettings.h.

Referenced by loadAdvancedSettings(), and saveAdvancedSettings().


The documentation for this class was generated from the following files: