mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-02-02 18:04:32 +00:00
Add auto torrent management to webui context menu (addresses #6815)
This commit is contained in:
parent
e2893fe68f
commit
771033a449
@ -110,6 +110,7 @@ static const char KEY_TORRENT_RATIO_LIMIT[] = "ratio_limit";
|
||||
static const char KEY_TORRENT_LAST_SEEN_COMPLETE_TIME[] = "seen_complete";
|
||||
static const char KEY_TORRENT_LAST_ACTIVITY_TIME[] = "last_activity";
|
||||
static const char KEY_TORRENT_TOTAL_SIZE[] = "total_size";
|
||||
static const char KEY_TORRENT_AUTO_TORRENT_MANAGEMENT[] = "auto_tmm";
|
||||
|
||||
// Peer keys
|
||||
static const char KEY_PEER_IP[] = "ip";
|
||||
@ -824,6 +825,7 @@ QVariantMap toMap(BitTorrent::TorrentHandle *const torrent)
|
||||
ret[KEY_TORRENT_AMOUNT_COMPLETED] = torrent->completedSize();
|
||||
ret[KEY_TORRENT_RATIO_LIMIT] = torrent->maxRatio();
|
||||
ret[KEY_TORRENT_LAST_SEEN_COMPLETE_TIME] = torrent->lastSeenComplete().toTime_t();
|
||||
ret[KEY_TORRENT_AUTO_TORRENT_MANAGEMENT] = torrent->isAutoTMMEnabled();
|
||||
|
||||
if (torrent->isPaused() || torrent->isChecking())
|
||||
ret[KEY_TORRENT_LAST_ACTIVITY_TIME] = 0;
|
||||
|
@ -122,6 +122,7 @@ QMap<QString, QMap<QString, WebApplication::Action> > WebApplication::initialize
|
||||
ADD_ACTION(command, bottomPrio);
|
||||
ADD_ACTION(command, setLocation);
|
||||
ADD_ACTION(command, rename);
|
||||
ADD_ACTION(command, setAutoTMM);
|
||||
ADD_ACTION(command, recheck);
|
||||
ADD_ACTION(command, setCategory);
|
||||
ADD_ACTION(command, addCategory);
|
||||
@ -822,6 +823,21 @@ void WebApplication::action_command_rename()
|
||||
}
|
||||
}
|
||||
|
||||
void WebApplication::action_command_setAutoTMM()
|
||||
{
|
||||
CHECK_URI(0);
|
||||
CHECK_PARAMETERS("hashes" << "enable");
|
||||
|
||||
QStringList hashes = request().posts["hashes"].split("|");
|
||||
QString enableStr = request().posts["enable"];
|
||||
|
||||
foreach (const QString &hash, hashes) {
|
||||
BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash);
|
||||
if (torrent)
|
||||
torrent->setAutoTMMEnabled(enableStr == "true");
|
||||
}
|
||||
}
|
||||
|
||||
void WebApplication::action_command_recheck()
|
||||
{
|
||||
CHECK_URI(0);
|
||||
|
@ -92,6 +92,7 @@ private:
|
||||
void action_command_bottomPrio();
|
||||
void action_command_setLocation();
|
||||
void action_command_rename();
|
||||
void action_command_setAutoTMM();
|
||||
void action_command_recheck();
|
||||
void action_command_setCategory();
|
||||
void action_command_addCategory();
|
||||
|
@ -115,6 +115,9 @@
|
||||
<a href="#Category" class="arrow-right"><img src="theme/view-categories" alt="QBT_TR(Category)QBT_TR[CONTEXT=TransferListWidget]"/> QBT_TR(Category)QBT_TR[CONTEXT=TransferListWidget]</a>
|
||||
<ul id="contextCategoryList" class="scrollableMenu"></ul>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#AutoTorrentManagement"><img src="theme/checked" alt="QBT_TR(Automatic Torrent Management)QBT_TR[CONTEXT=TransferListWidget]"/> QBT_TR(Automatic Torrent Management)QBT_TR[CONTEXT=TransferListWidget]</a>
|
||||
</li>
|
||||
<li id="queueingMenuItems" class="separator">
|
||||
<a href="#priority" class="arrow-right"><span style="display: inline-block; width:16px"></span> QBT_TR(Priority)QBT_TR[CONTEXT=TransferListWidget]</a>
|
||||
<ul>
|
||||
|
@ -255,6 +255,8 @@ var TorrentsTableContextMenu = new Class({
|
||||
all_are_force_start = true;
|
||||
there_are_force_start = false;
|
||||
all_are_super_seeding = true;
|
||||
all_are_auto_tmm = true;
|
||||
there_are_auto_tmm = false;
|
||||
|
||||
var h = torrentsTable.selectedRowsIds();
|
||||
h.each(function(item, index){
|
||||
@ -284,6 +286,11 @@ var TorrentsTableContextMenu = new Class({
|
||||
all_are_force_start = false;
|
||||
else
|
||||
there_are_force_start = true;
|
||||
|
||||
if (data['auto_tmm'] != true)
|
||||
all_are_auto_tmm = false;
|
||||
else
|
||||
there_are_auto_tmm = true;
|
||||
});
|
||||
|
||||
show_seq_dl = true;
|
||||
@ -336,6 +343,12 @@ var TorrentsTableContextMenu = new Class({
|
||||
this.hideItem('ForceStart');
|
||||
else if (!there_are_paused && !there_are_force_start)
|
||||
this.hideItem('Start');
|
||||
|
||||
if (!all_are_auto_tmm && there_are_auto_tmm)
|
||||
this.hideItem('AutoTorrentManagement');
|
||||
else
|
||||
this.setItemChecked('AutoTorrentManagement', all_are_auto_tmm);
|
||||
|
||||
},
|
||||
|
||||
updateCategoriesSubMenu : function (category_list) {
|
||||
|
@ -303,6 +303,27 @@ initializeWindows = function() {
|
||||
}
|
||||
};
|
||||
|
||||
autoTorrentManagementFN = function() {
|
||||
var hashes = torrentsTable.selectedRowsIds();
|
||||
if (hashes.length) {
|
||||
var enable = false;
|
||||
hashes.each(function(hash, index) {
|
||||
var row = torrentsTable.rows[hash];
|
||||
if (!row.full_data.auto_tmm)
|
||||
enable = true;
|
||||
});
|
||||
new Request({
|
||||
url: 'command/setAutoTMM',
|
||||
method: 'post',
|
||||
data: {
|
||||
hashes: hashes.join("|"),
|
||||
enable: enable
|
||||
}
|
||||
}).send();
|
||||
updateMainData();
|
||||
}
|
||||
};
|
||||
|
||||
recheckFN = function() {
|
||||
var hashes = torrentsTable.selectedRowsIds();
|
||||
if (hashes.length) {
|
||||
|
@ -70,6 +70,9 @@
|
||||
toggleFirstLastPiecePrioFN();
|
||||
},
|
||||
|
||||
AutoTorrentManagement : function (element, ref) {
|
||||
autoTorrentManagementFN();
|
||||
},
|
||||
ForceRecheck : function (element, ref) {
|
||||
recheckFN();
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user