diff --git a/src/renderer/controllers/torrent-list-controller.js b/src/renderer/controllers/torrent-list-controller.js index e32cfcbc..6113dfec 100644 --- a/src/renderer/controllers/torrent-list-controller.js +++ b/src/renderer/controllers/torrent-list-controller.js @@ -279,6 +279,16 @@ module.exports = class TorrentListController { enabled: torrentSummary.torrentFileName != null })) + menu.append(new electron.remote.MenuItem({ + type: 'separator' + })) + + const sortedByName = this.state.saved.prefs.sortByName + menu.append(new electron.remote.MenuItem({ + label: `${sortedByName ? '✓ ' : ''}Sort by Name`, + click: () => dispatch('updatePreferences', 'sortByName', !sortedByName) + })) + menu.popup(electron.remote.getCurrentWindow()) } diff --git a/src/renderer/pages/torrent-list-page.js b/src/renderer/pages/torrent-list-page.js index 76eb003b..ae6991ae 100644 --- a/src/renderer/pages/torrent-list-page.js +++ b/src/renderer/pages/torrent-list-page.js @@ -279,12 +279,17 @@ module.exports = class TorrentList extends React.Component { ) } else { // We do know the files. List them and show download stats for each one + const sortByName = this.props.state.saved.prefs.sortByName const sorter = natsort() - const fileRows = torrentSummary.files + let fileRows = torrentSummary.files .filter((file) => !file.path.includes('/.____padding_file/')) .map((file, index) => ({ file, index })) - .sort((a, b) => sorter(a.file.name, b.file.name)) - .map((object) => this.renderFileRow(torrentSummary, object.file, object.index)) + + if (sortByName) { + fileRows = fileRows.sort((a, b) => sorter(a.file.name, b.file.name)) + } + + fileRows = fileRows.map((object) => this.renderFileRow(torrentSummary, object.file, object.index)) filesElement = (