mirror of
https://github.com/finos/SymphonyElectron.git
synced 2025-02-25 18:55:29 -06:00
Add context menu to Symphony Electron (#39)
* Add context menu to Symphony Electron * Moving menus to js/menus directory * make contextMenu window changeable
This commit is contained in:
parent
2ded38c542
commit
3f8757dc90
@ -8,6 +8,7 @@ const squirrelStartup = require('electron-squirrel-startup');
|
||||
const getConfig = require('./getConfig.js');
|
||||
const { isMac, isDevEnv } = require('./utils/misc.js');
|
||||
|
||||
|
||||
// exit early for squirrel installer
|
||||
if (squirrelStartup) {
|
||||
return;
|
||||
@ -18,6 +19,7 @@ require('./mainApiMgr.js');
|
||||
// monitor memory of main process
|
||||
require('./memoryMonitor.js');
|
||||
|
||||
|
||||
const windowMgr = require('./windowMgr.js');
|
||||
|
||||
/**
|
||||
|
51
js/menus/contextMenu.js
Normal file
51
js/menus/contextMenu.js
Normal file
@ -0,0 +1,51 @@
|
||||
'use strict';
|
||||
var cm = require('electron-context-menu');
|
||||
|
||||
/**
|
||||
* Creates & applies Right Click Context Menu based on
|
||||
* electron-context-menu library o all windows.
|
||||
* Unless activated on edittable field, Reload option is shown.
|
||||
* Enabled Cut/Copy/Paste/Delete/Select all on text.
|
||||
* Enabled Save Image on images
|
||||
* Enabled Copy Link on href Link
|
||||
* Inspect Element is not enabled.
|
||||
*/
|
||||
function contextMenu(browserWindow){
|
||||
cm({
|
||||
browserWindow,
|
||||
|
||||
prepend: (params) => [
|
||||
{
|
||||
role: 'reload',
|
||||
enabled: params.isEditable === false,
|
||||
visible: params.isEditable === false
|
||||
},
|
||||
{
|
||||
role: 'undo',
|
||||
enabled: params.isEditable && params.editFlags.canUndu,
|
||||
visible: params.isEditable
|
||||
},
|
||||
{
|
||||
role: 'redo',
|
||||
enabled: params.isEditable && params.editFlags.canRedo,
|
||||
visible: params.isEditable
|
||||
}
|
||||
],
|
||||
append: (params) => [
|
||||
{
|
||||
role: 'delete',
|
||||
enabled: params.isEditable && params.editFlags.canDelete,
|
||||
visible: params.isEditable
|
||||
},
|
||||
{
|
||||
role: 'selectall',
|
||||
enabled: params.isEditable && params.editFlags.canSelectAll,
|
||||
visible: params.isEditable
|
||||
}
|
||||
],
|
||||
|
||||
showInspectElement: false
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = contextMenu;
|
@ -4,13 +4,15 @@ const electron = require('electron');
|
||||
const app = electron.app;
|
||||
const path = require('path');
|
||||
|
||||
const menuTemplate = require('./menuTemplate.js');
|
||||
const menuTemplate = require('./menus/menuTemplate.js');
|
||||
const loadErrors = require('./dialogs/showLoadError.js');
|
||||
const { isMac } = require('./utils/misc.js');
|
||||
const getGuid = require('./utils/getGuid.js');
|
||||
const log = require('./log.js')
|
||||
const logLevels = require('./enums/logLevels.js');
|
||||
|
||||
//context menu
|
||||
const contextMenu = require('./menus/contextMenu.js');
|
||||
|
||||
// show dialog when certificate errors occur
|
||||
require('./dialogs/showCertError.js');
|
||||
@ -112,6 +114,7 @@ function createMainWindow(url) {
|
||||
event.preventDefault();
|
||||
electron.shell.openExternal(newWinUrl);
|
||||
});
|
||||
contextMenu(mainWindow);
|
||||
}
|
||||
|
||||
app.on('before-quit', function() {
|
||||
@ -166,6 +169,7 @@ function createChildWindow(url, title, width, height) {
|
||||
}
|
||||
}
|
||||
});
|
||||
contextMenu(childWindow);
|
||||
}
|
||||
|
||||
function setIsOnline(status) {
|
||||
|
@ -80,6 +80,7 @@
|
||||
"async": "^2.1.5",
|
||||
"electron-squirrel-startup": "^1.0.0",
|
||||
"keymirror": "0.1.1",
|
||||
"electron-context-menu": "^0.8.0",
|
||||
"winreg": "^1.2.3"
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user