Fixes for PR #607

This commit is contained in:
Feross Aboukhadijeh
2016-05-31 12:12:25 -07:00
parent 71b08304f2
commit c82bdbd39d
5 changed files with 34 additions and 28 deletions

View File

@@ -3,7 +3,7 @@ module.exports = {
openSeedDirectory, openSeedDirectory,
openTorrentFile, openTorrentFile,
openTorrentAddress, openTorrentAddress,
openAddFiles openFiles
} }
var electron = require('electron') var electron = require('electron')
@@ -55,6 +55,30 @@ function openSeedDirectory () {
}) })
} }
/*
* Show flexible open dialog that supports selecting .torrent files to add, or
* a file or folder to create a single-file or single-directory torrent.
*/
function openFiles () {
if (!windows.main.win) return
log('openFiles')
var opts = process.platform === 'darwin'
? {
title: 'Select a file or folder to add.',
properties: [ 'openFile', 'openDirectory' ]
}
: {
title: 'Select a file to add.',
properties: [ 'openFile' ]
}
setTitle(opts.title)
electron.dialog.showOpenDialog(windows.main.win, opts, function (selectedPaths) {
resetTitle()
if (!Array.isArray(selectedPaths)) return
windows.main.dispatch('onOpen', selectedPaths)
})
}
/* /*
* Show open dialog to open a .torrent file. * Show open dialog to open a .torrent file.
*/ */
@@ -62,7 +86,7 @@ function openTorrentFile () {
if (!windows.main.win) return if (!windows.main.win) return
log('openTorrentFile') log('openTorrentFile')
var opts = { var opts = {
title: 'Select a .torrent file to open.', title: 'Select a .torrent file.',
filters: [{ name: 'Torrent Files', extensions: ['torrent'] }], filters: [{ name: 'Torrent Files', extensions: ['torrent'] }],
properties: [ 'openFile', 'multiSelections' ] properties: [ 'openFile', 'multiSelections' ]
} }
@@ -84,24 +108,6 @@ function openTorrentAddress () {
windows.main.dispatch('openTorrentAddress') windows.main.dispatch('openTorrentAddress')
} }
/*
* Show open dialog for all file types (.torrent, files to seed)
*/
function openAddFiles () {
if (!windows.main.win) return
log('openAddFiles')
var opts = {
title: 'Select a .torrent file to open or start seeding files.',
properties: [ 'openFile', 'multiSelections' ]
}
setTitle(opts.title)
electron.dialog.showOpenDialog(windows.main.win, opts, function (selectedPaths) {
resetTitle()
if (!Array.isArray(selectedPaths)) return
windows.main.dispatch('onOpen', selectedPaths)
})
}
/** /**
* Dialogs on do not show a title on OS X, so the window title is used instead. * Dialogs on do not show a title on OS X, so the window title is used instead.
*/ */

View File

@@ -46,7 +46,7 @@ function init () {
*/ */
ipc.on('openTorrentFile', () => dialog.openTorrentFile()) ipc.on('openTorrentFile', () => dialog.openTorrentFile())
ipc.on('openAddFiles', () => dialog.openAddFiles()) ipc.on('openFiles', () => dialog.openFiles())
/** /**
* Dock * Dock

View File

@@ -227,8 +227,8 @@ function dispatch (action, ...args) {
if (action === 'openTorrentFile') { if (action === 'openTorrentFile') {
ipcRenderer.send('openTorrentFile') /* open torrent file */ ipcRenderer.send('openTorrentFile') /* open torrent file */
} }
if (action === 'openAddFiles') { if (action === 'openFiles') {
ipcRenderer.send('openAddFiles') /* add files with dialog */ ipcRenderer.send('openFiles') /* add files with dialog */
} }
if (action === 'showCreateTorrent') { if (action === 'showCreateTorrent') {
showCreateTorrent(args[0] /* paths */) showCreateTorrent(args[0] /* paths */)
@@ -240,8 +240,8 @@ function dispatch (action, ...args) {
if (action === 'createTorrent') { if (action === 'createTorrent') {
createTorrent(args[0] /* options */) createTorrent(args[0] /* options */)
} }
if (action === 'openFile') { if (action === 'openItem') {
openFile(args[0] /* infoHash */, args[1] /* index */) openItem(args[0] /* infoHash */, args[1] /* index */)
} }
if (action === 'toggleTorrent') { if (action === 'toggleTorrent') {
toggleTorrent(args[0] /* infoHash */) toggleTorrent(args[0] /* infoHash */)
@@ -1157,7 +1157,7 @@ function closePlayer (cb) {
cb() cb()
} }
function openFile (infoHash, index) { function openItem (infoHash, index) {
var torrentSummary = getTorrentSummary(infoHash) var torrentSummary = getTorrentSummary(infoHash)
var filePath = path.join( var filePath = path.join(
torrentSummary.path, torrentSummary.path,

View File

@@ -39,7 +39,7 @@ function Header (state) {
<i <i
class='icon add' class='icon add'
title='Add torrent' title='Add torrent'
onclick=${dispatcher('openAddFiles')}> onclick=${dispatcher('openFiles')}>
add add
</i> </i>
` `

View File

@@ -244,7 +244,7 @@ function TorrentList (state) {
handleClick = dispatcher('play', infoHash, index) handleClick = dispatcher('play', infoHash, index)
} else { } else {
icon = 'description' /* file icon, opens in OS default app */ icon = 'description' /* file icon, opens in OS default app */
handleClick = dispatcher('openFile', infoHash, index) handleClick = dispatcher('openItem', infoHash, index)
} }
var rowClass = '' var rowClass = ''
if (!isSelected) rowClass = 'disabled' // File deselected, not being torrented if (!isSelected) rowClass = 'disabled' // File deselected, not being torrented