MCPcopy
hub / github.com/ollm/OpenComic / generateAppMenu

Function generateAppMenu

scripts/opencomic.js:796–879  ·  view source on GitHub ↗
(force = false)

Source from the content-addressed store, hash-verified

794var generateAppMenuData = {resetZoom: null, onReading: null};
795
796function 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 {

Callers 9

loadIndexPageFunction · 0.85
loadRecentlyOpenedFunction · 0.85
loadLanguagesPageFunction · 0.85
loadSettingsPageFunction · 0.85
loadThemePageFunction · 0.85
openComicFunction · 0.85
loadLanguageFunction · 0.85
dialogFunction · 0.85
closeDialogFunction · 0.85

Calls 7

openComicDialogFunction · 0.85
addComicFunction · 0.85
fullScreenFunction · 0.85
showAboutWindowFunction · 0.85
resetZoomFunction · 0.70
zoomInFunction · 0.70
zoomOutFunction · 0.70

Tested by

no test coverage detected