Add default label/accelerator to role menu items
authorKevin Sawicki <kevinsawicki@gmail.com>
Wed, 22 Jun 2016 17:45:01 +0000 (10:45 -0700)
committerKevin Sawicki <kevinsawicki@gmail.com>
Wed, 22 Jun 2016 20:09:48 +0000 (13:09 -0700)
lib/browser/api/menu-item-roles.js
lib/browser/api/menu-item.js

index 13484e5..f26e9c5 100644 (file)
@@ -1,4 +1,4 @@
-module.exports = {
+const roles = {
   undo: {
     label: 'Undo',
     accelerator: 'CmdOrCtrl+Z',
@@ -63,3 +63,15 @@ module.exports = {
     method: 'toggleFullScreen'
   }
 }
+
+exports.getDefaultLabel = function (role) {
+  if (roles.hasOwnProperty(role)) {
+    return roles[role].label
+  } else {
+    return ''
+  }
+}
+
+exports.getDefaultAccelerator = function (role) {
+  if (roles.hasOwnProperty(role)) return roles[role].accelerator
+}
index 264be81..ba98096 100644 (file)
@@ -1,5 +1,7 @@
 'use strict'
 
+const roles = require('./menu-item-roles')
+
 let nextCommandId = 0
 
 // Maps role to methods of webContents
@@ -58,11 +60,11 @@ const MenuItem = function (options) {
 
   this.overrideReadOnlyProperty('type', 'normal')
   this.overrideReadOnlyProperty('role')
-  this.overrideReadOnlyProperty('accelerator')
+  this.overrideReadOnlyProperty('accelerator', roles.getDefaultAccelerator(this.role))
   this.overrideReadOnlyProperty('icon')
   this.overrideReadOnlyProperty('submenu')
 
-  this.overrideProperty('label', '')
+  this.overrideProperty('label', roles.getDefaultLabel(this.role))
   this.overrideProperty('sublabel', '')
   this.overrideProperty('enabled', true)
   this.overrideProperty('visible', true)