aboutsummaryrefslogtreecommitdiffstats
path: root/src/webview
diff options
context:
space:
mode:
authorLibravatar Stefan Malzner <stefan@adlk.io>2017-11-15 11:10:40 +0100
committerLibravatar GitHub <noreply@github.com>2017-11-15 11:10:40 +0100
commitabfad99bd4bb9db8697322d141c2cf57e9213172 (patch)
treecd4be4f7552341687cfa1e30bbed57abcbda6bc8 /src/webview
parentMerge pull request #277 from meetfranz/feature/pricing-info (diff)
parentfix weird settings navigation styles (diff)
downloadferdium-app-abfad99bd4bb9db8697322d141c2cf57e9213172.tar.gz
ferdium-app-abfad99bd4bb9db8697322d141c2cf57e9213172.tar.zst
ferdium-app-abfad99bd4bb9db8697322d141c2cf57e9213172.zip
Merge pull request #276 from meetfranz/feature/spellcheck-settings
Spellcheck settings
Diffstat (limited to 'src/webview')
-rw-r--r--src/webview/plugin.js28
-rw-r--r--src/webview/spellchecker.js40
2 files changed, 50 insertions, 18 deletions
diff --git a/src/webview/plugin.js b/src/webview/plugin.js
index ffc9084e4..c877132b1 100644
--- a/src/webview/plugin.js
+++ b/src/webview/plugin.js
@@ -1,11 +1,13 @@
1const { ipcRenderer } = require('electron'); 1import { ipcRenderer } from 'electron';
2const path = require('path'); 2import path from 'path';
3 3
4const RecipeWebview = require('./lib/RecipeWebview'); 4import RecipeWebview from './lib/RecipeWebview';
5 5
6require('./notifications.js'); 6import Spellchecker from './spellchecker.js';
7require('./spellchecker.js'); 7import './notifications.js';
8require('./ime.js'); 8import './ime.js';
9
10const spellchecker = new Spellchecker();
9 11
10ipcRenderer.on('initializeRecipe', (e, data) => { 12ipcRenderer.on('initializeRecipe', (e, data) => {
11 const modulePath = path.join(data.recipe.path, 'webview.js'); 13 const modulePath = path.join(data.recipe.path, 'webview.js');
@@ -19,6 +21,20 @@ ipcRenderer.on('initializeRecipe', (e, data) => {
19 } 21 }
20}); 22});
21 23
24ipcRenderer.on('settings-update', (e, data) => {
25 if (data.enableSpellchecking) {
26 if (!spellchecker.isEnabled) {
27 spellchecker.enable();
28
29 // TODO: this does not work yet, needs more testing
30 // if (data.spellcheckingLanguage !== 'auto') {
31 // console.log('set spellchecking language to', data.spellcheckingLanguage);
32 // spellchecker.switchLanguage(data.spellcheckingLanguage);
33 // }
34 }
35 }
36});
37
22document.addEventListener('DOMContentLoaded', () => { 38document.addEventListener('DOMContentLoaded', () => {
23 ipcRenderer.sendToHost('hello'); 39 ipcRenderer.sendToHost('hello');
24}, false); 40}, false);
diff --git a/src/webview/spellchecker.js b/src/webview/spellchecker.js
index ec8807874..5beb77e03 100644
--- a/src/webview/spellchecker.js
+++ b/src/webview/spellchecker.js
@@ -1,14 +1,30 @@
1import { SpellCheckHandler, ContextMenuListener, ContextMenuBuilder } from 'electron-spellchecker'; 1import { SpellCheckHandler, ContextMenuListener, ContextMenuBuilder } from 'electron-spellchecker';
2 2
3window.spellCheckHandler = new SpellCheckHandler(); 3import { isMac } from '../environment';
4setTimeout(() => { 4
5 window.spellCheckHandler.attachToInput(); 5export default class Spellchecker {
6}, 1000); 6 isEnabled = false;
7 7 spellchecker = null;
8// TODO: should we set the language to user settings? 8
9// window.spellCheckHandler.switchLanguage('en-US'); 9 enable() {
10 10 this.spellchecker = new SpellCheckHandler();
11const contextMenuBuilder = new ContextMenuBuilder(window.spellCheckHandler); 11 if (!isMac) {
12const contextMenuListener = new ContextMenuListener((info) => { // eslint-disable-line 12 this.spellchecker.attachToInput();
13 contextMenuBuilder.showPopupMenu(info); 13 this.spellchecker.switchLanguage(navigator.language);
14}); 14 }
15
16 const contextMenuBuilder = new ContextMenuBuilder(this.spellchecker);
17
18 new ContextMenuListener((info) => { // eslint-disable-line
19 contextMenuBuilder.showPopupMenu(info);
20 });
21 }
22
23 // TODO: this does not work yet, needs more testing
24 // switchLanguage(language) {
25 // if (language !== 'auto') {
26 // this.spellchecker.switchLanguage(language);
27 // }
28 // }
29}
30