Compare commits

...

3 Commits

Author SHA1 Message Date
Benjamin Tan
e14005abab Add "Paste Torrent Address" button to context menu.
Closes #834.
2016-10-06 18:14:26 +08:00
Benjamin Tan
382ea3d965 Disable "Show in Folder/Finder" and "Remove Data File" for unstarted torrents.
Closes #936.
2016-10-06 18:14:26 +08:00
Benjamin Tan
1b466c64e1 Use a template to build torrent list context menu. 2016-10-06 18:14:17 +08:00

View File

@@ -182,47 +182,51 @@ module.exports = class TorrentListController {
openTorrentContextMenu (infoHash) {
const torrentSummary = TorrentSummary.getByKey(this.state, infoHash)
const menu = new electron.remote.Menu()
const torrentStarted = !!(torrentSummary.files && torrentSummary.progress)
menu.append(new electron.remote.MenuItem({
label: 'Remove From List',
click: () => dispatch('confirmDeleteTorrent', torrentSummary.infoHash, false)
}))
menu.append(new electron.remote.MenuItem({
label: 'Remove Data File',
click: () => dispatch('confirmDeleteTorrent', torrentSummary.infoHash, true)
}))
menu.append(new electron.remote.MenuItem({
type: 'separator'
}))
if (torrentSummary.files) {
menu.append(new electron.remote.MenuItem({
label: process.platform === 'darwin' ? 'Show in Finder' : 'Show in Folder',
click: () => showItemInFolder(torrentSummary)
}))
menu.append(new electron.remote.MenuItem({
const menuTemplate = [
{
label: 'Remove From List',
click: () => dispatch('confirmDeleteTorrent', torrentSummary.infoHash, false)
},
{
label: 'Remove Data File',
enabled: torrentStarted,
click: () => dispatch('confirmDeleteTorrent', torrentSummary.infoHash, true)
},
{
type: 'separator'
}))
}
menu.append(new electron.remote.MenuItem({
label: 'Copy Magnet Link to Clipboard',
click: () => electron.clipboard.writeText(torrentSummary.magnetURI)
}))
menu.append(new electron.remote.MenuItem({
label: 'Copy Instant.io Link to Clipboard',
click: () => electron.clipboard.writeText(`https://instant.io/#${torrentSummary.infoHash}`)
}))
menu.append(new electron.remote.MenuItem({
label: 'Save Torrent File As...',
click: () => dispatch('saveTorrentFileAs', torrentSummary.torrentKey)
}))
},
{
label: process.platform === 'darwin' ? 'Show in Finder' : 'Show in Folder',
enabled: torrentStarted,
click: () => showItemInFolder(torrentSummary)
},
{
type: 'separator'
},
{
label: 'Copy Magnet Link to Clipboard',
click: () => electron.clipboard.writeText(torrentSummary.magnetURI)
},
{
label: 'Copy Instant.io Link to Clipboard',
click: () => electron.clipboard.writeText(`https://instant.io/#${torrentSummary.infoHash}`)
},
{
label: 'Save Torrent File As...',
click: () => dispatch('saveTorrentFileAs', torrentSummary.torrentKey)
},
{
type: 'separator'
},
{
label: 'Paste Torrent Address',
role: 'paste'
}
]
const menu = electron.remote.Menu.buildFromTemplate(menuTemplate)
menu.popup(electron.remote.getCurrentWindow())
}