mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-14 02:27:09 -07:00
Speedup compilation speed
libtorrent has a relatively heavy headers, that take lots of time to process. This commit removes unnecessary includes of libtorrent headers and replaces them with forward declarations. I had to move some functions in QBtSession from slots to regular functions because moc'ed file want to see complete types of all parameters of slots. "time make" of full rebuild before this series of commits: real 13m35.937s user 12m1.295s sys 1m25.908s after: real 10m54.390s user 9m31.167s sys 1m12.580s
This commit is contained in:
parent
f6732e87f2
commit
de5f38a160
11 changed files with 105 additions and 59 deletions
|
@ -70,6 +70,9 @@
|
|||
#include <libtorrent/alert_types.hpp>
|
||||
#include <libtorrent/torrent_info.hpp>
|
||||
#include <libtorrent/error_code.hpp>
|
||||
#include <libtorrent/alert_types.hpp>
|
||||
#include <libtorrent/session.hpp>
|
||||
#include <libtorrent/ip_filter.hpp>
|
||||
#include <queue>
|
||||
#include <string.h>
|
||||
#include "dnsupdater.h"
|
||||
|
@ -2056,48 +2059,6 @@ void QBtSession::disableIPFilter() {
|
|||
filterPath = "";
|
||||
}
|
||||
|
||||
// Set BT session settings (user_agent)
|
||||
void QBtSession::setSessionSettings(const session_settings &sessionSettings) {
|
||||
qDebug("Set session settings");
|
||||
s->set_settings(sessionSettings);
|
||||
}
|
||||
|
||||
// Set Proxy
|
||||
void QBtSession::setProxySettings(proxy_settings proxySettings) {
|
||||
qDebug() << Q_FUNC_INFO;
|
||||
|
||||
proxySettings.proxy_peer_connections = Preferences::instance()->proxyPeerConnections();
|
||||
s->set_proxy(proxySettings);
|
||||
|
||||
// Define environment variable
|
||||
QString proxy_str;
|
||||
switch(proxySettings.type) {
|
||||
case proxy_settings::http_pw:
|
||||
proxy_str = "http://"+misc::toQString(proxySettings.username)+":"+misc::toQString(proxySettings.password)+"@"+misc::toQString(proxySettings.hostname)+":"+QString::number(proxySettings.port);
|
||||
break;
|
||||
case proxy_settings::http:
|
||||
proxy_str = "http://"+misc::toQString(proxySettings.hostname)+":"+QString::number(proxySettings.port);
|
||||
break;
|
||||
case proxy_settings::socks5:
|
||||
proxy_str = misc::toQString(proxySettings.hostname)+":"+QString::number(proxySettings.port);
|
||||
break;
|
||||
case proxy_settings::socks5_pw:
|
||||
proxy_str = misc::toQString(proxySettings.username)+":"+misc::toQString(proxySettings.password)+"@"+misc::toQString(proxySettings.hostname)+":"+QString::number(proxySettings.port);
|
||||
break;
|
||||
default:
|
||||
qDebug("Disabling HTTP communications proxy");
|
||||
qputenv("http_proxy", QByteArray());
|
||||
qputenv("sock_proxy", QByteArray());
|
||||
return;
|
||||
}
|
||||
// We need this for urllib in search engine plugins
|
||||
qDebug("HTTP communications proxy string: %s", qPrintable(proxy_str));
|
||||
if (proxySettings.type == proxy_settings::socks5 || proxySettings.type == proxy_settings::socks5_pw)
|
||||
qputenv("sock_proxy", proxy_str.toLocal8Bit());
|
||||
else
|
||||
qputenv("http_proxy", proxy_str.toLocal8Bit());
|
||||
}
|
||||
|
||||
void QBtSession::recursiveTorrentDownload(const QTorrentHandle &h) {
|
||||
try {
|
||||
for (int i=0; i<h.num_files(); ++i) {
|
||||
|
@ -2794,6 +2755,53 @@ session_status QBtSession::getSessionStatus() const {
|
|||
return s->status();
|
||||
}
|
||||
|
||||
void QBtSession::applyEncryptionSettings(pe_settings se) {
|
||||
qDebug("Applying encryption settings");
|
||||
s->set_pe_settings(se);
|
||||
}
|
||||
|
||||
// Set Proxy
|
||||
void QBtSession::setProxySettings(proxy_settings proxySettings) {
|
||||
qDebug() << Q_FUNC_INFO;
|
||||
|
||||
proxySettings.proxy_peer_connections = Preferences::instance()->proxyPeerConnections();
|
||||
s->set_proxy(proxySettings);
|
||||
|
||||
// Define environment variable
|
||||
QString proxy_str;
|
||||
switch(proxySettings.type) {
|
||||
case proxy_settings::http_pw:
|
||||
proxy_str = "http://"+misc::toQString(proxySettings.username)+":"+misc::toQString(proxySettings.password)+"@"+misc::toQString(proxySettings.hostname)+":"+QString::number(proxySettings.port);
|
||||
break;
|
||||
case proxy_settings::http:
|
||||
proxy_str = "http://"+misc::toQString(proxySettings.hostname)+":"+QString::number(proxySettings.port);
|
||||
break;
|
||||
case proxy_settings::socks5:
|
||||
proxy_str = misc::toQString(proxySettings.hostname)+":"+QString::number(proxySettings.port);
|
||||
break;
|
||||
case proxy_settings::socks5_pw:
|
||||
proxy_str = misc::toQString(proxySettings.username)+":"+misc::toQString(proxySettings.password)+"@"+misc::toQString(proxySettings.hostname)+":"+QString::number(proxySettings.port);
|
||||
break;
|
||||
default:
|
||||
qDebug("Disabling HTTP communications proxy");
|
||||
qputenv("http_proxy", QByteArray());
|
||||
qputenv("sock_proxy", QByteArray());
|
||||
return;
|
||||
}
|
||||
// We need this for urllib in search engine plugins
|
||||
qDebug("HTTP communications proxy string: %s", qPrintable(proxy_str));
|
||||
if (proxySettings.type == proxy_settings::socks5 || proxySettings.type == proxy_settings::socks5_pw)
|
||||
qputenv("sock_proxy", proxy_str.toLocal8Bit());
|
||||
else
|
||||
qputenv("http_proxy", proxy_str.toLocal8Bit());
|
||||
}
|
||||
|
||||
// Set BT session settings (user_agent)
|
||||
void QBtSession::setSessionSettings(const session_settings &sessionSettings) {
|
||||
qDebug("Set session settings");
|
||||
s->set_settings(sessionSettings);
|
||||
}
|
||||
|
||||
QString QBtSession::getSavePath(const QString &hash, bool fromScanDir, QString filePath, bool imported) {
|
||||
QString savePath;
|
||||
if (TorrentTempData::hasTempData(hash)) {
|
||||
|
@ -2923,11 +2931,6 @@ qreal QBtSession::getPayloadUploadRate() const {
|
|||
return s->status().payload_upload_rate;
|
||||
}
|
||||
|
||||
void QBtSession::applyEncryptionSettings(pe_settings se) {
|
||||
qDebug("Applying encryption settings");
|
||||
s->set_pe_settings(se);
|
||||
}
|
||||
|
||||
// Will fast resume torrents in
|
||||
// backup directory
|
||||
void QBtSession::startUpTorrents() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue