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:
@@ -8,6 +8,7 @@ const squirrelStartup = require('electron-squirrel-startup');
|
|||||||
const getConfig = require('./getConfig.js');
|
const getConfig = require('./getConfig.js');
|
||||||
const { isMac, isDevEnv } = require('./utils/misc.js');
|
const { isMac, isDevEnv } = require('./utils/misc.js');
|
||||||
|
|
||||||
|
|
||||||
// exit early for squirrel installer
|
// exit early for squirrel installer
|
||||||
if (squirrelStartup) {
|
if (squirrelStartup) {
|
||||||
return;
|
return;
|
||||||
@@ -18,6 +19,7 @@ require('./mainApiMgr.js');
|
|||||||
// monitor memory of main process
|
// monitor memory of main process
|
||||||
require('./memoryMonitor.js');
|
require('./memoryMonitor.js');
|
||||||
|
|
||||||
|
|
||||||
const windowMgr = require('./windowMgr.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 app = electron.app;
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
|
||||||
const menuTemplate = require('./menuTemplate.js');
|
const menuTemplate = require('./menus/menuTemplate.js');
|
||||||
const loadErrors = require('./dialogs/showLoadError.js');
|
const loadErrors = require('./dialogs/showLoadError.js');
|
||||||
const { isMac } = require('./utils/misc.js');
|
const { isMac } = require('./utils/misc.js');
|
||||||
const getGuid = require('./utils/getGuid.js');
|
const getGuid = require('./utils/getGuid.js');
|
||||||
const log = require('./log.js')
|
const log = require('./log.js')
|
||||||
const logLevels = require('./enums/logLevels.js');
|
const logLevels = require('./enums/logLevels.js');
|
||||||
|
|
||||||
|
//context menu
|
||||||
|
const contextMenu = require('./menus/contextMenu.js');
|
||||||
|
|
||||||
// show dialog when certificate errors occur
|
// show dialog when certificate errors occur
|
||||||
require('./dialogs/showCertError.js');
|
require('./dialogs/showCertError.js');
|
||||||
@@ -112,6 +114,7 @@ function createMainWindow(url) {
|
|||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
electron.shell.openExternal(newWinUrl);
|
electron.shell.openExternal(newWinUrl);
|
||||||
});
|
});
|
||||||
|
contextMenu(mainWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
app.on('before-quit', function() {
|
app.on('before-quit', function() {
|
||||||
@@ -166,6 +169,7 @@ function createChildWindow(url, title, width, height) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
contextMenu(childWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
function setIsOnline(status) {
|
function setIsOnline(status) {
|
||||||
|
|||||||
@@ -80,6 +80,7 @@
|
|||||||
"async": "^2.1.5",
|
"async": "^2.1.5",
|
||||||
"electron-squirrel-startup": "^1.0.0",
|
"electron-squirrel-startup": "^1.0.0",
|
||||||
"keymirror": "0.1.1",
|
"keymirror": "0.1.1",
|
||||||
|
"electron-context-menu": "^0.8.0",
|
||||||
"winreg": "^1.2.3"
|
"winreg": "^1.2.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user