(force = false)
| 794 | var generateAppMenuData = {resetZoom: null, onReading: null}; |
| 795 | |
| 796 | function generateAppMenu(force = false) |
| 797 | { |
| 798 | const indexPath = dom.history.path; |
| 799 | |
| 800 | if(force || generateAppMenuData.resetZoom !== electron.webFrame.getZoomFactor() || generateAppMenuData.onReading !== onReading || generateAppMenuData.indexPath !== indexPath) |
| 801 | { |
| 802 | let currentWindow = electronRemote.getCurrentWindow(); |
| 803 | generateAppMenuData = {resetZoom: electron.webFrame.getZoomFactor(), onReading: onReading, indexPath: indexPath}; |
| 804 | |
| 805 | let currentPath = onReading ? reading.readingCurrentPath() : indexPath; |
| 806 | let pathIsFolder = (currentPath && fs.existsSync(currentPath) && fs.statSync(currentPath).isDirectory()) ? true : false; |
| 807 | |
| 808 | var menuTemplate = [ |
| 809 | { |
| 810 | label: language.menu.file.main, |
| 811 | submenu: [ |
| 812 | {label: language.menu.file.openFile, click: function(){openComicDialog()}, accelerator: 'CmdOrCtrl+O'}, |
| 813 | {label: language.menu.file.openFolder, click: function(){openComicDialog(true)}, accelerator: 'CmdOrCtrl+Shift+O'}, |
| 814 | {label: language.menu.file.addFile, click: function(){addComic()}}, |
| 815 | {label: language.menu.file.addFolder, click: function(){addComic(true)}}, |
| 816 | {type: 'separator'}, |
| 817 | {label: language.global.labels, enabled: currentPath, click: function(){reading.contextMenu.labels()}}, |
| 818 | {label: pathIsFolder ? language.global.contextMenu.openFolderLocation : language.global.contextMenu.openFileLocation, enabled: currentPath, click: function(){reading.contextMenu.openFileLocation()}}, |
| 819 | {label: language.global.contextMenu.aboutFile, enabled: currentPath, click: function(){reading.contextMenu.aboutFile()}}, |
| 820 | {type: 'separator'}, |
| 821 | {role: 'quit', label: language.menu.file.quit, click: function(){electronRemote.app.quit();}}, |
| 822 | ] |
| 823 | }, |
| 824 | { |
| 825 | label: language.menu.view.main, |
| 826 | submenu: [ |
| 827 | {label: language.menu.view.resetZoom, enabled: (electron.webFrame.getZoomFactor() != 1 ? true : false), click: function(){resetZoom(); generateAppMenu();}, accelerator: 'CmdOrCtrl+0'}, |
| 828 | {label: language.menu.view.zoomIn, click: function(){zoomIn(); generateAppMenu();}, accelerator: 'CmdOrCtrl+Plus'}, |
| 829 | {label: language.menu.view.zoomIn, click: function(){zoomIn(); generateAppMenu();}, accelerator: 'CmdOrCtrl+=', visible: false, acceleratorWorksWhenHidden: true}, |
| 830 | {label: language.menu.view.zoomOut, click: function(){zoomOut(); generateAppMenu();}, accelerator: 'CmdOrCtrl+-'}, |
| 831 | {type: 'separator'}, |
| 832 | {label: language.menu.view.toggleFullScreen, click: function(){fullScreen();}, accelerator: 'F11'}, |
| 833 | ] |
| 834 | }, |
| 835 | { |
| 836 | label: language.menu.goto.main, |
| 837 | submenu: [ |
| 838 | {label: language.reading.firstPage, enabled: onReading, click: function(){reading.goStart();}}, |
| 839 | {label: language.reading.previous, enabled: onReading, click: function(){reading.goPrevious();}}, |
| 840 | {label: language.reading.next, enabled: onReading, click: function(){reading.goNext();}}, |
| 841 | {label: language.reading.lastPage, enabled: onReading, click: function(){reading.goEnd();}}, |
| 842 | // {label: 'Next chapter', enabled: onReading, click: function(){reading.goEnd();}, accelerator: 'Ctrl+End'}, |
| 843 | ] |
| 844 | }, |
| 845 | { |
| 846 | label: language.menu.debug.main, |
| 847 | submenu: [ |
| 848 | {label: language.menu.debug.reload, click: function(){electronRemote.getCurrentWindow().webContents.reload();}, accelerator: 'CmdOrCtrl+R'}, |
| 849 | {label: language.menu.debug.forceReload, click: function(){electronRemote.getCurrentWindow().webContents.reloadIgnoringCache();}, accelerator: 'CmdOrCtrl+Shift+R'}, |
| 850 | {label: language.menu.debug.toggleDevTools, click: function(){electronRemote.getCurrentWindow().webContents.toggleDevTools();}, accelerator: 'CmdOrCtrl+Shift+I'}, |
| 851 | ] |
| 852 | }, |
| 853 | { |
no test coverage detected