Skip to content

Commit

Permalink
Add showSelectAll option (#160)
Browse files Browse the repository at this point in the history
Co-authored-by: Sindre Sorhus <sindresorhus@gmail.com>
  • Loading branch information
hns258 and sindresorhus committed Aug 11, 2022
1 parent 066b11f commit 3efba17
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 2 deletions.
1 change: 1 addition & 0 deletions fixtures/fixture.js
Expand Up @@ -36,6 +36,7 @@ contextMenu({
}
],
append: () => {},
showSelectAll: true,
showCopyImageAddress: true,
showSaveImageAs: true,
showInspectElement: false,
Expand Down
16 changes: 15 additions & 1 deletion index.d.ts
Expand Up @@ -40,6 +40,11 @@ declare namespace contextMenu {
*/
readonly paste?: string;

/**
@default 'Select All'
*/
readonly selectAll?: string;

/**
@default 'Save Image'
*/
Expand Down Expand Up @@ -98,6 +103,7 @@ declare namespace contextMenu {
readonly cut: (options: ActionOptions) => MenuItemConstructorOptions;
readonly copy: (options: ActionOptions) => MenuItemConstructorOptions;
readonly paste: (options: ActionOptions) => MenuItemConstructorOptions;
readonly selectAll: (options: ActionOptions) => MenuItemConstructorOptions;
readonly saveImage: (options: ActionOptions) => MenuItemConstructorOptions;
readonly saveImageAs: (options: ActionOptions) => MenuItemConstructorOptions;
readonly copyLink: (options: ActionOptions) => MenuItemConstructorOptions;
Expand Down Expand Up @@ -161,6 +167,13 @@ declare namespace contextMenu {
*/
readonly showSearchWithGoogle?: boolean;

/**
Show the `Select All` menu item when right-clicking in a window.
Default: `false` on macOS, `true` on Windows and Linux
*/
readonly showSelectAll?: boolean;

/**
Show the `Copy Image` menu item when right-clicking on an image.
Expand Down Expand Up @@ -266,6 +279,7 @@ declare namespace contextMenu {
- `showLearnSpelling`
- `showLookUpSelection`
- `showSearchWithGoogle`
- `showSelectAll`
- `showCopyImage`
- `showCopyImageAddress`
- `showSaveImageAs`
Expand All @@ -275,7 +289,7 @@ declare namespace contextMenu {
To get spellchecking, “Correct Automatically”, and “Learn Spelling” in the menu, please enable the `spellcheck` preference in browser window: `new BrowserWindow({webPreferences: {spellcheck: true}})`
@default [...dictionarySuggestions, defaultActions.separator(), defaultActions.separator(), defaultActions.learnSpelling(), defaultActions.separator(), defaultActions.lookUpSelection(), defaultActions.separator(),defaultActions.searchWithGoogle(), defaultActions.cut(), defaultActions.copy(), defaultActions.paste(), defaultActions.separator(), defaultActions.saveImage(), defaultActions.saveImageAs(), defaultActions.copyLink(), defaultActions.copyImage(), defaultActions.copyImageAddress(), defaultActions.separator(), defaultActions.copyLink(), defaultActions.saveLinkAs(), defaultActions.separator(), defaultActions.inspect()]
@default [...dictionarySuggestions, defaultActions.separator(), defaultActions.separator(), defaultActions.learnSpelling(), defaultActions.separator(), defaultActions.lookUpSelection(), defaultActions.separator(),defaultActions.searchWithGoogle(), defaultActions.cut(), defaultActions.copy(), defaultActions.paste(), defaultActions.selectAll(), defaultActions.separator(), defaultActions.saveImage(), defaultActions.saveImageAs(), defaultActions.copyLink(), defaultActions.copyImage(), defaultActions.copyImageAddress(), defaultActions.separator(), defaultActions.copyLink(), defaultActions.saveLinkAs(), defaultActions.separator(), defaultActions.inspect()]
*/
readonly menu?: (
defaultActions: Actions,
Expand Down
9 changes: 9 additions & 0 deletions index.js
Expand Up @@ -119,6 +119,13 @@ const create = (win, options) => {
}
}
}),
selectAll: decorateMenuItem({
id: 'selectAll',
label: 'Select &All',
click() {
webContents(win).selectAll();
}
}),
saveImage: decorateMenuItem({
id: 'saveImage',
label: 'Save I&mage',
Expand Down Expand Up @@ -200,6 +207,7 @@ const create = (win, options) => {
};

const shouldShowInspectElement = typeof options.showInspectElement === 'boolean' ? options.showInspectElement : isDev;
const shouldShowSelectAll = options.showSelectAll || (options.showSelectAll !== false && process.platform !== 'darwin');

function word(suggestion) {
return {
Expand Down Expand Up @@ -240,6 +248,7 @@ const create = (win, options) => {
defaultActions.cut(),
defaultActions.copy(),
defaultActions.paste(),
shouldShowSelectAll && defaultActions.selectAll(),
defaultActions.separator(),
options.showSaveImage && defaultActions.saveImage(),
options.showSaveImageAs && defaultActions.saveImageAs(),
Expand Down
11 changes: 10 additions & 1 deletion readme.md
Expand Up @@ -143,6 +143,13 @@ Default: `true`

Show the `Search with Google` menu item when right-clicking text.

#### showSelectAll

Type: `boolean`\
Default: `false` on macOS, `true` on Windows and Linux

Show the `Select All` menu item when right-clicking in a window.

#### showCopyImage

Type: `boolean`\
Expand Down Expand Up @@ -249,13 +256,14 @@ To get spellchecking, “Correct Automatically”, and “Learn Spelling” in t
The following options are ignored when `menu` is used:

- `showLookUpSelection`
- `showSearchWithGoogle`
- `showSelectAll`
- `showCopyImage`
- `showCopyImageAddress`
- `showSaveImageAs`
- `showSaveLinkAs`
- `showInspectElement`
- `showServices`
- `showSearchWithGoogle`

Default actions:

Expand All @@ -267,6 +275,7 @@ Default actions:
- `cut`
- `copy`
- `paste`
- `selectAll`
- `saveImage`
- `saveImageAs`
- `copyImage`
Expand Down

0 comments on commit 3efba17

Please sign in to comment.