mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2026-01-02 21:52:32 -06:00
* Add copy options to webui context menu Add Copy Hash to gui (closes #6964) * Use switch statement * Use camel case, switch from signal to qaction. * Rename variable * Change variable name
This commit is contained in:
committed by
Mike Tzou
parent
08aa827366
commit
145641ac41
@@ -18,6 +18,7 @@
|
||||
<![endif]-->
|
||||
<script type="text/javascript" src="scripts/mocha-yc.js"></script>
|
||||
<script type="text/javascript" src="scripts/mocha-init.js"></script>
|
||||
<script type="text/javascript" src="scripts/clipboard.min.js"></script>
|
||||
<script type="text/javascript" src="scripts/misc.js"></script>
|
||||
<script type="text/javascript" src="scripts/progressbar.js"></script>
|
||||
<script type="text/javascript" src="scripts/dynamicTable.js" charset="utf-8"></script>
|
||||
@@ -125,6 +126,9 @@
|
||||
<li class="separator"><a href="#SequentialDownload"><img src="theme/checked" alt="QBT_TR(Download in sequential order)QBT_TR[CONTEXT=TransferListWidget]"/> QBT_TR(Download in sequential order)QBT_TR[CONTEXT=TransferListWidget]</a></li>
|
||||
<li><a href="#FirstLastPiecePrio"><img src="theme/checked" alt="QBT_TR(Download first and last pieces first)QBT_TR[CONTEXT=TransferListWidget]"/> QBT_TR(Download first and last pieces first)QBT_TR[CONTEXT=TransferListWidget]</a></li>
|
||||
<li class="separator"><a href="#ForceRecheck"><img src="theme/document-edit-verify" alt="QBT_TR(Force recheck)QBT_TR[CONTEXT=TransferListWidget]"/> QBT_TR(Force recheck)QBT_TR[CONTEXT=TransferListWidget]</a></li>
|
||||
<li class="separator"><a href="#" id="CopyName" class="copyToClipboard"><img src="theme/edit-copy" alt="QBT_TR(Copy name)QBT_TR[CONTEXT=TransferListWidget]"/> QBT_TR(Copy name)QBT_TR[CONTEXT=TransferListWidget]</a></li>
|
||||
<li><a href="#" id="CopyMagnetLink" class="copyToClipboard"><img src="theme/kt-magnet" alt="QBT_TR(Copy magnet link)QBT_TR[CONTEXT=TransferListWidget]"/> QBT_TR(Copy magnet link)QBT_TR[CONTEXT=TransferListWidget]</a></li>
|
||||
<li><a href="#" id="CopyHash" class="copyToClipboard"><img src="theme/kt-magnet" alt="QBT_TR(Copy hash)QBT_TR[CONTEXT=TransferListWidget]"/> QBT_TR(Copy hash)QBT_TR[CONTEXT=TransferListWidget]</a></li>
|
||||
</ul>
|
||||
<ul id="categoriesFilterMenu" class="contextMenu">
|
||||
<li><a href="#CreateCategory"><img src="theme/list-add" alt="QBT_TR(Add category...)QBT_TR[CONTEXT=CategoryFilterWidget]"/> QBT_TR(Add category...)QBT_TR[CONTEXT=CategoryFilterWidget]</a></li>
|
||||
|
||||
@@ -38,6 +38,8 @@ var alternativeSpeedLimits = false;
|
||||
var queueing_enabled = true;
|
||||
var syncMainDataTimerPeriod = 1500;
|
||||
|
||||
var clipboardEvent;
|
||||
|
||||
var CATEGORIES_ALL = 1;
|
||||
var CATEGORIES_UNCATEGORIZED = 2;
|
||||
|
||||
@@ -309,6 +311,7 @@ window.addEvent('load', function () {
|
||||
update_categories = true;
|
||||
}
|
||||
if (response['torrents']) {
|
||||
var updateTorrentList = false;
|
||||
for (var key in response['torrents']) {
|
||||
response['torrents'][key]['hash'] = key;
|
||||
response['torrents'][key]['rowId'] = key;
|
||||
@@ -317,7 +320,12 @@ window.addEvent('load', function () {
|
||||
torrentsTable.updateRowData(response['torrents'][key]);
|
||||
if (addTorrentToCategoryList(response['torrents'][key]))
|
||||
update_categories = true;
|
||||
if (response['torrents'][key]['name'])
|
||||
updateTorrentList = true;
|
||||
}
|
||||
|
||||
if (updateTorrentList)
|
||||
setupCopyEventHandler();
|
||||
}
|
||||
if (response['torrents_removed'])
|
||||
response['torrents_removed'].each(function (hash) {
|
||||
@@ -590,6 +598,31 @@ function closeWindows() {
|
||||
MochaUI.closeAll();
|
||||
}
|
||||
|
||||
function setupCopyEventHandler() {
|
||||
if (clipboardEvent)
|
||||
clipboardEvent.destroy();
|
||||
|
||||
clipboardEvent = new Clipboard('.copyToClipboard', {
|
||||
text: function(trigger) {
|
||||
var textToCopy;
|
||||
|
||||
switch (trigger.id) {
|
||||
case "CopyName":
|
||||
textToCopy = copyNameFN();
|
||||
break;
|
||||
case "CopyMagnetLink":
|
||||
textToCopy = copyMagnetLinkFN();
|
||||
break;
|
||||
case "CopyHash":
|
||||
textToCopy = copyHashFN();
|
||||
break;
|
||||
}
|
||||
|
||||
return textToCopy;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var keyboardEvents = new Keyboard({
|
||||
defaultEventType: 'keydown',
|
||||
events: {
|
||||
|
||||
7
src/webui/www/public/scripts/clipboard.min.js
vendored
Normal file
7
src/webui/www/public/scripts/clipboard.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -451,6 +451,36 @@ initializeWindows = function() {
|
||||
}
|
||||
};
|
||||
|
||||
copyNameFN = function() {
|
||||
var selectedRows = torrentsTable.selectedRowsIds();
|
||||
var names = [];
|
||||
if (selectedRows.length) {
|
||||
var rows = torrentsTable.getFilteredAndSortedRows();
|
||||
for (var i = 0; i < selectedRows.length; i++) {
|
||||
var hash = selectedRows[i];
|
||||
names.push(rows[hash].full_data.name);
|
||||
}
|
||||
}
|
||||
return names.join("\n");
|
||||
};
|
||||
|
||||
copyMagnetLinkFN = function() {
|
||||
var selectedRows = torrentsTable.selectedRowsIds();
|
||||
var magnets = [];
|
||||
if (selectedRows.length) {
|
||||
var rows = torrentsTable.getFilteredAndSortedRows();
|
||||
for (var i = 0; i < selectedRows.length; i++) {
|
||||
var hash = selectedRows[i];
|
||||
magnets.push(rows[hash].full_data.magnet_uri);
|
||||
}
|
||||
}
|
||||
return magnets.join("\n");
|
||||
};
|
||||
|
||||
copyHashFN = function() {
|
||||
return torrentsTable.selectedRowsIds().join("\n");
|
||||
};
|
||||
|
||||
['pauseAll', 'resumeAll'].each(function(item) {
|
||||
addClickEvent(item, function(e) {
|
||||
new Event(e).stop();
|
||||
|
||||
Reference in New Issue
Block a user