mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-01-22 04:24:23 +00:00
- FEATURE: Labeled torrent can be downloaded corresponding subfolders
This commit is contained in:
parent
755b8dec30
commit
1fd57b5d63
@ -1,5 +1,6 @@
|
|||||||
* Unreleased - Christophe Dumez <chris@qbittorrent.org> - v2.1.0
|
* Unreleased - Christophe Dumez <chris@qbittorrent.org> - v2.1.0
|
||||||
- FEATURE: Torrents can be labeled/categorized
|
- FEATURE: Torrents can be labeled/categorized
|
||||||
|
- FEATURE: Labeled torrent can be downloaded corresponding subfolders
|
||||||
- FEATURE: Disk cache size can be set from preferences
|
- FEATURE: Disk cache size can be set from preferences
|
||||||
- FEATURE: Peer Exchange (PeX) can be disabled from preferences
|
- FEATURE: Peer Exchange (PeX) can be disabled from preferences
|
||||||
|
|
||||||
|
@ -102,6 +102,7 @@ Bittorrent::Bittorrent() : preAllocateAll(false), addInPause(false), ratio_limit
|
|||||||
downloader = new downloadThread(this);
|
downloader = new downloadThread(this);
|
||||||
connect(downloader, SIGNAL(downloadFinished(QString, QString)), this, SLOT(processDownloadedFile(QString, QString)));
|
connect(downloader, SIGNAL(downloadFinished(QString, QString)), this, SLOT(processDownloadedFile(QString, QString)));
|
||||||
connect(downloader, SIGNAL(downloadFailure(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString)));
|
connect(downloader, SIGNAL(downloadFailure(QString, QString)), this, SLOT(handleDownloadFailure(QString, QString)));
|
||||||
|
appendLabelToSavePath = Preferences::appendTorrentLabel();
|
||||||
// Apply user settings to Bittorrent session
|
// Apply user settings to Bittorrent session
|
||||||
configureSession();
|
configureSession();
|
||||||
qDebug("* BTSession constructed");
|
qDebug("* BTSession constructed");
|
||||||
@ -233,6 +234,7 @@ void Bittorrent::configureSession() {
|
|||||||
} else {
|
} else {
|
||||||
setDefaultTempPath(QString::null);
|
setDefaultTempPath(QString::null);
|
||||||
}
|
}
|
||||||
|
setAppendLabelToSavePath(Preferences::appendTorrentLabel());
|
||||||
preAllocateAllFiles(Preferences::preAllocateAllFiles());
|
preAllocateAllFiles(Preferences::preAllocateAllFiles());
|
||||||
startTorrentsInPause(Preferences::addTorrentsInPause());
|
startTorrentsInPause(Preferences::addTorrentsInPause());
|
||||||
// * Scan dir
|
// * Scan dir
|
||||||
@ -1279,6 +1281,38 @@ void Bittorrent::setDefaultTempPath(QString temppath) {
|
|||||||
defaultTempPath = temppath;
|
defaultTempPath = temppath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Bittorrent::appendLabelToTorrentSavePath(QTorrentHandle h) {
|
||||||
|
if(!h.is_valid()) return;
|
||||||
|
QString label = TorrentPersistentData::getLabel(h.hash());
|
||||||
|
if(label.isEmpty()) return;
|
||||||
|
// Current save path
|
||||||
|
QString old_save_path = TorrentPersistentData::getSavePath(h.hash());
|
||||||
|
QDir old_dir(old_save_path);
|
||||||
|
if(old_dir.dirName() != label) {
|
||||||
|
QString new_save_path = old_dir.absoluteFilePath(label);
|
||||||
|
TorrentPersistentData::saveSavePath(h.hash(), new_save_path);
|
||||||
|
if(old_dir == QDir(h.save_path())) {
|
||||||
|
// Move storage
|
||||||
|
h.move_storage(new_save_path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Bittorrent::setAppendLabelToSavePath(bool append) {
|
||||||
|
if(appendLabelToSavePath != Preferences::appendTorrentLabel()) {
|
||||||
|
appendLabelToSavePath = !appendLabelToSavePath;
|
||||||
|
if(appendLabelToSavePath) {
|
||||||
|
// Move torrents storage to sub folder with label name
|
||||||
|
std::vector<torrent_handle> torrents = getTorrents();
|
||||||
|
std::vector<torrent_handle>::iterator torrentIT;
|
||||||
|
for(torrentIT = torrents.begin(); torrentIT != torrents.end(); torrentIT++) {
|
||||||
|
QTorrentHandle h = QTorrentHandle(*torrentIT);
|
||||||
|
appendLabelToTorrentSavePath(h);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Enable directory scanning
|
// Enable directory scanning
|
||||||
void Bittorrent::enableDirectoryScanning(QString scan_dir) {
|
void Bittorrent::enableDirectoryScanning(QString scan_dir) {
|
||||||
if(!scan_dir.isEmpty()) {
|
if(!scan_dir.isEmpty()) {
|
||||||
@ -1672,24 +1706,40 @@ QString Bittorrent::getSavePath(QString hash) {
|
|||||||
QString savePath;
|
QString savePath;
|
||||||
if(TorrentTempData::hasTempData(hash)) {
|
if(TorrentTempData::hasTempData(hash)) {
|
||||||
savePath = TorrentTempData::getSavePath(hash);
|
savePath = TorrentTempData::getSavePath(hash);
|
||||||
|
if(savePath.isEmpty())
|
||||||
|
savePath = defaultSavePath;
|
||||||
|
if(appendLabelToSavePath) {
|
||||||
|
QString label = TorrentTempData::getLabel(hash);
|
||||||
|
if(!label.isEmpty()) {
|
||||||
|
QDir save_dir(savePath);
|
||||||
|
if(save_dir.dirName() != label) {
|
||||||
|
savePath = save_dir.absoluteFilePath(label);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
qDebug("getSavePath, got save_path from temp data: %s", savePath.toLocal8Bit().data());
|
qDebug("getSavePath, got save_path from temp data: %s", savePath.toLocal8Bit().data());
|
||||||
} else {
|
} else {
|
||||||
savePath = TorrentPersistentData::getSavePath(hash);
|
savePath = TorrentPersistentData::getSavePath(hash);
|
||||||
|
if(savePath.isEmpty())
|
||||||
|
savePath = defaultSavePath;
|
||||||
|
if(appendLabelToSavePath) {
|
||||||
|
QString label = TorrentPersistentData::getLabel(hash);
|
||||||
|
if(!label.isEmpty()) {
|
||||||
|
QDir save_dir(savePath);
|
||||||
|
if(save_dir.dirName() != label) {
|
||||||
|
savePath = save_dir.absoluteFilePath(label);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
qDebug("getSavePath, got save_path from persistent data: %s", savePath.toLocal8Bit().data());
|
qDebug("getSavePath, got save_path from persistent data: %s", savePath.toLocal8Bit().data());
|
||||||
}
|
}
|
||||||
if(savePath.isEmpty()) {
|
|
||||||
// use default save path if no other can be found
|
|
||||||
qDebug("Using default save path because none was set: %s", defaultSavePath.toLocal8Bit().data());
|
|
||||||
savePath = defaultSavePath;
|
|
||||||
}
|
|
||||||
// Checking if savePath Dir exists
|
// Checking if savePath Dir exists
|
||||||
// create it if it is not
|
// create it if it is not
|
||||||
QDir saveDir(savePath);
|
QDir saveDir(savePath);
|
||||||
if(!saveDir.exists()) {
|
if(!saveDir.exists()) {
|
||||||
if(!saveDir.mkpath(saveDir.path())) {
|
if(!saveDir.mkpath(saveDir.path())) {
|
||||||
std::cerr << "Couldn't create the save directory: " << saveDir.path().toLocal8Bit().data() << "\n";
|
std::cerr << "Couldn't create the save directory: " << saveDir.path().toLocal8Bit().data() << "\n";
|
||||||
// XXX: handle this better
|
// XXX: Do something else?
|
||||||
return QDir::homePath();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return savePath;
|
return savePath;
|
||||||
|
@ -109,6 +109,7 @@ private:
|
|||||||
bool DHTEnabled;
|
bool DHTEnabled;
|
||||||
bool PeXEnabled;
|
bool PeXEnabled;
|
||||||
bool queueingEnabled;
|
bool queueingEnabled;
|
||||||
|
bool appendLabelToSavePath;
|
||||||
QString defaultSavePath;
|
QString defaultSavePath;
|
||||||
QString defaultTempPath;
|
QString defaultTempPath;
|
||||||
// GeoIP
|
// GeoIP
|
||||||
@ -199,6 +200,8 @@ public slots:
|
|||||||
void setSessionSettings(session_settings sessionSettings);
|
void setSessionSettings(session_settings sessionSettings);
|
||||||
void startTorrentsInPause(bool b);
|
void startTorrentsInPause(bool b);
|
||||||
void setDefaultTempPath(QString temppath);
|
void setDefaultTempPath(QString temppath);
|
||||||
|
void setAppendLabelToSavePath(bool append);
|
||||||
|
void appendLabelToTorrentSavePath(QTorrentHandle h);
|
||||||
void applyEncryptionSettings(pe_settings se);
|
void applyEncryptionSettings(pe_settings se);
|
||||||
void setDownloadLimit(QString hash, long val);
|
void setDownloadLimit(QString hash, long val);
|
||||||
void setUploadLimit(QString hash, long val);
|
void setUploadLimit(QString hash, long val);
|
||||||
|
@ -148,6 +148,8 @@ options_imp::options_imp(QWidget *parent):QDialog(parent){
|
|||||||
// Downloads tab
|
// Downloads tab
|
||||||
connect(checkTempFolder, SIGNAL(toggled(bool)), this, SLOT(enableTempPathInput(bool)));
|
connect(checkTempFolder, SIGNAL(toggled(bool)), this, SLOT(enableTempPathInput(bool)));
|
||||||
connect(checkScanDir, SIGNAL(toggled(bool)), this, SLOT(enableDirScan(bool)));
|
connect(checkScanDir, SIGNAL(toggled(bool)), this, SLOT(enableDirScan(bool)));
|
||||||
|
connect(checkAppendLabel, SIGNAL(toggled(bool)), this, SLOT(enableDirScan(bool)));
|
||||||
|
connect(checkAppendqB, SIGNAL(toggled(bool)), this, SLOT(enableDirScan(bool)));
|
||||||
connect(actionTorrentDlOnDblClBox, SIGNAL(currentIndexChanged(int)), this, SLOT(enableApplyButton()));
|
connect(actionTorrentDlOnDblClBox, SIGNAL(currentIndexChanged(int)), this, SLOT(enableApplyButton()));
|
||||||
connect(actionTorrentFnOnDblClBox, SIGNAL(currentIndexChanged(int)), this, SLOT(enableApplyButton()));
|
connect(actionTorrentFnOnDblClBox, SIGNAL(currentIndexChanged(int)), this, SLOT(enableApplyButton()));
|
||||||
connect(checkTempFolder, SIGNAL(toggled(bool)), this, SLOT(enableApplyButton()));
|
connect(checkTempFolder, SIGNAL(toggled(bool)), this, SLOT(enableApplyButton()));
|
||||||
@ -369,6 +371,8 @@ void options_imp::saveOptions(){
|
|||||||
settings.setValue(QString::fromUtf8("SavePath"), getSavePath());
|
settings.setValue(QString::fromUtf8("SavePath"), getSavePath());
|
||||||
settings.setValue(QString::fromUtf8("TempPathEnabled"), isTempPathEnabled());
|
settings.setValue(QString::fromUtf8("TempPathEnabled"), isTempPathEnabled());
|
||||||
settings.setValue(QString::fromUtf8("TempPath"), getTempPath());
|
settings.setValue(QString::fromUtf8("TempPath"), getTempPath());
|
||||||
|
settings.setValue(QString::fromUtf8("AppendLabel"), checkAppendLabel->isChecked());
|
||||||
|
settings.setValue(QString::fromUtf8("UseIncompleteExtension"), checkAppendqB->isChecked());
|
||||||
settings.setValue(QString::fromUtf8("PreAllocation"), preAllocateAllFiles());
|
settings.setValue(QString::fromUtf8("PreAllocation"), preAllocateAllFiles());
|
||||||
settings.setValue(QString::fromUtf8("DiskCache"), spinCache->value());
|
settings.setValue(QString::fromUtf8("DiskCache"), spinCache->value());
|
||||||
settings.setValue(QString::fromUtf8("AdditionDialog"), useAdditionDialog());
|
settings.setValue(QString::fromUtf8("AdditionDialog"), useAdditionDialog());
|
||||||
@ -580,6 +584,8 @@ void options_imp::loadOptions(){
|
|||||||
enableTempPathInput(checkTempFolder->isChecked());
|
enableTempPathInput(checkTempFolder->isChecked());
|
||||||
}
|
}
|
||||||
textTempPath->setText(Preferences::getTempPath());
|
textTempPath->setText(Preferences::getTempPath());
|
||||||
|
checkAppendLabel->setChecked(Preferences::appendTorrentLabel());
|
||||||
|
checkAppendqB->setChecked(Preferences::useIncompleteFilesExtension());
|
||||||
checkPreallocateAll->setChecked(Preferences::preAllocateAllFiles());
|
checkPreallocateAll->setChecked(Preferences::preAllocateAllFiles());
|
||||||
spinCache->setValue(Preferences::diskCacheSize());
|
spinCache->setValue(Preferences::diskCacheSize());
|
||||||
checkAdditionDialog->setChecked(Preferences::useAdditionDialog());
|
checkAdditionDialog->setChecked(Preferences::useAdditionDialog());
|
||||||
|
@ -133,6 +133,16 @@ public:
|
|||||||
return settings.value(QString::fromUtf8("Preferences/Downloads/TempPath"), home+"qBT_dir"+QDir::separator()+"temp").toString();
|
return settings.value(QString::fromUtf8("Preferences/Downloads/TempPath"), home+"qBT_dir"+QDir::separator()+"temp").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool useIncompleteFilesExtension() {
|
||||||
|
QSettings settings("qBittorrent", "qBittorrent");
|
||||||
|
return settings.value(QString::fromUtf8("Preferences/Downloads/UseIncompleteExtension"), false).toBool();
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool appendTorrentLabel() {
|
||||||
|
QSettings settings("qBittorrent", "qBittorrent");
|
||||||
|
return settings.value(QString::fromUtf8("Preferences/Downloads/AppendLabel"), false).toBool();
|
||||||
|
}
|
||||||
|
|
||||||
static bool preAllocateAllFiles() {
|
static bool preAllocateAllFiles() {
|
||||||
QSettings settings("qBittorrent", "qBittorrent");
|
QSettings settings("qBittorrent", "qBittorrent");
|
||||||
return settings.value(QString::fromUtf8("Preferences/Downloads/PreAllocation"), false).toBool();
|
return settings.value(QString::fromUtf8("Preferences/Downloads/PreAllocation"), false).toBool();
|
||||||
|
@ -639,7 +639,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>642</width>
|
<width>642</width>
|
||||||
<height>472</height>
|
<height>515</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_17">
|
<layout class="QVBoxLayout" name="verticalLayout_17">
|
||||||
@ -655,77 +655,87 @@
|
|||||||
<string>File system</string>
|
<string>File system</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_12">
|
<layout class="QVBoxLayout" name="verticalLayout_12">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>3</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout">
|
<widget class="QGroupBox" name="groupBox_3">
|
||||||
<property name="spacing">
|
<property name="styleSheet">
|
||||||
<number>6</number>
|
<string>QGroupBox::title {
|
||||||
|
font-weight: normal;
|
||||||
|
margin-left: -3px;
|
||||||
|
}
|
||||||
|
QGroupBox {
|
||||||
|
border-width: 0;
|
||||||
|
}</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="margin">
|
<property name="title">
|
||||||
<number>0</number>
|
<string>Destination Folder:</string>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<layout class="QVBoxLayout" name="verticalLayout_26">
|
||||||
<layout class="QHBoxLayout">
|
<item>
|
||||||
<property name="spacing">
|
<layout class="QHBoxLayout" name="horizontalLayout_10">
|
||||||
<number>6</number>
|
<item>
|
||||||
</property>
|
<widget class="QLineEdit" name="textSavePath">
|
||||||
<property name="margin">
|
<property name="text">
|
||||||
<number>0</number>
|
<string/>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
</widget>
|
||||||
<widget class="QLabel" name="lblSavePath">
|
</item>
|
||||||
<property name="text">
|
<item>
|
||||||
<string>Download folder:</string>
|
<widget class="QToolButton" name="browseSaveDirButton">
|
||||||
</property>
|
<property name="enabled">
|
||||||
</widget>
|
<bool>true</bool>
|
||||||
</item>
|
</property>
|
||||||
<item>
|
<property name="minimumSize">
|
||||||
<widget class="QLineEdit" name="textSavePath">
|
<size>
|
||||||
<property name="text">
|
<width>22</width>
|
||||||
<string/>
|
<height>22</height>
|
||||||
</property>
|
</size>
|
||||||
</widget>
|
</property>
|
||||||
</item>
|
<property name="maximumSize">
|
||||||
<item>
|
<size>
|
||||||
<widget class="QToolButton" name="browseSaveDirButton">
|
<width>25</width>
|
||||||
<property name="enabled">
|
<height>27</height>
|
||||||
<bool>true</bool>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="icon">
|
||||||
<size>
|
<iconset resource="../icons.qrc">
|
||||||
<width>22</width>
|
<normaloff>:/Icons/oxygen/browse.png</normaloff>:/Icons/oxygen/browse.png</iconset>
|
||||||
<height>22</height>
|
</property>
|
||||||
</size>
|
</widget>
|
||||||
</property>
|
</item>
|
||||||
<property name="maximumSize">
|
</layout>
|
||||||
<size>
|
</item>
|
||||||
<width>25</width>
|
<item>
|
||||||
<height>27</height>
|
<widget class="QCheckBox" name="checkAppendLabel">
|
||||||
</size>
|
<property name="text">
|
||||||
</property>
|
<string>Append the torrent's label</string>
|
||||||
<property name="icon">
|
</property>
|
||||||
<iconset resource="../icons.qrc">
|
</widget>
|
||||||
<normaloff>:/Icons/oxygen/browse.png</normaloff>:/Icons/oxygen/browse.png</iconset>
|
</item>
|
||||||
</property>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
<item>
|
||||||
</item>
|
<widget class="QCheckBox" name="checkTempFolder">
|
||||||
</layout>
|
<property name="text">
|
||||||
|
<string>Use a different folder for incomplete downloads:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="checkTempFolder">
|
|
||||||
<property name="text">
|
|
||||||
<string>Temp folder:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLineEdit" name="textTempPath">
|
<widget class="QLineEdit" name="textTempPath">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string>QLineEdit {
|
||||||
|
margin-left: 23px;
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@ -759,6 +769,65 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="checkScanDir">
|
||||||
|
<property name="text">
|
||||||
|
<string>Automatically load .torrent files from:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout">
|
||||||
|
<property name="spacing">
|
||||||
|
<number>6</number>
|
||||||
|
</property>
|
||||||
|
<property name="margin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="textScanDir">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string>QLineEdit {
|
||||||
|
margin-left: 23px;
|
||||||
|
}</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="browseScanDirButton">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>22</width>
|
||||||
|
<height>22</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>25</width>
|
||||||
|
<height>27</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="../icons.qrc">
|
||||||
|
<normaloff>:/Icons/oxygen/browse.png</normaloff>:/Icons/oxygen/browse.png</iconset>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="checkAppendqB">
|
||||||
|
<property name="text">
|
||||||
|
<string>Append .!qB extension to incomplete files</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="checkPreallocateAll">
|
<widget class="QCheckBox" name="checkPreallocateAll">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@ -813,68 +882,6 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="dirScanBox">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="title">
|
|
||||||
<string comment="qBittorrent will watch a directory and automatically download torrents present in it">Folder watching</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout">
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="checkScanDir">
|
|
||||||
<property name="text">
|
|
||||||
<string>Automatically download torrents present in this folder:</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout">
|
|
||||||
<property name="spacing">
|
|
||||||
<number>6</number>
|
|
||||||
</property>
|
|
||||||
<property name="margin">
|
|
||||||
<number>0</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QLineEdit" name="textScanDir">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QToolButton" name="browseScanDirButton">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>22</width>
|
|
||||||
<height>22</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>25</width>
|
|
||||||
<height>27</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="icon">
|
|
||||||
<iconset resource="../icons.qrc">
|
|
||||||
<normaloff>:/Icons/oxygen/browse.png</normaloff>:/Icons/oxygen/browse.png</iconset>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||||
<item>
|
<item>
|
||||||
@ -1125,7 +1132,7 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>602</width>
|
<width>451</width>
|
||||||
<height>513</height>
|
<height>513</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -1546,8 +1553,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>620</width>
|
<width>468</width>
|
||||||
<height>490</height>
|
<height>376</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_19">
|
<layout class="QVBoxLayout" name="verticalLayout_19">
|
||||||
@ -2454,8 +2461,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>218</width>
|
<width>620</width>
|
||||||
<height>220</height>
|
<height>490</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_23">
|
<layout class="QVBoxLayout" name="verticalLayout_23">
|
||||||
@ -2618,8 +2625,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>451</width>
|
<width>620</width>
|
||||||
<height>195</height>
|
<height>490</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_24">
|
<layout class="QVBoxLayout" name="verticalLayout_24">
|
||||||
@ -2834,7 +2841,6 @@
|
|||||||
<tabstop>checkPreallocateAll</tabstop>
|
<tabstop>checkPreallocateAll</tabstop>
|
||||||
<tabstop>checkAdditionDialog</tabstop>
|
<tabstop>checkAdditionDialog</tabstop>
|
||||||
<tabstop>checkStartPaused</tabstop>
|
<tabstop>checkStartPaused</tabstop>
|
||||||
<tabstop>checkScanDir</tabstop>
|
|
||||||
<tabstop>browseScanDirButton</tabstop>
|
<tabstop>browseScanDirButton</tabstop>
|
||||||
<tabstop>spinPort</tabstop>
|
<tabstop>spinPort</tabstop>
|
||||||
<tabstop>checkUPnP</tabstop>
|
<tabstop>checkUPnP</tabstop>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user