From e2f41c6f4277d6ddd3cbed01d4abdc4b073cd64d Mon Sep 17 00:00:00 2001 From: Jack Date: Fri, 6 Nov 2020 20:28:33 +0000 Subject: [PATCH] added override sync option to the keymap layout --- src/js/commandline.js | 11 +++++++++-- src/js/settings.js | 9 ++++++--- src/js/userconfig.js | 32 ++++++++++++++++++++++++++------ 3 files changed, 41 insertions(+), 11 deletions(-) diff --git a/src/js/commandline.js b/src/js/commandline.js index d1171fd0f..516bcc4b5 100644 --- a/src/js/commandline.js +++ b/src/js/commandline.js @@ -1665,15 +1665,22 @@ let commandsKeymapLayouts = { if (Object.keys(layouts).length > 0) { commandsKeymapLayouts.list = []; + commandsKeymapLayouts.list.push({ + id: "changeKeymapLayoutOverrideSync", + display: "override sync", + exec: () => { + changeKeymapLayout("overrideSync"); + restartTest(); + }, + }); Object.keys(layouts).forEach((layout) => { if (layout.toString() != "default") { commandsKeymapLayouts.list.push({ id: "changeKeymapLayout" + capitalizeFirstLetter(layout), - display: layout.replace("_", " "), + display: layout.replace(/_/g, " "), exec: () => { changeKeymapLayout(layout); restartTest(); - saveConfigToCookie(); }, }); } diff --git a/src/js/settings.js b/src/js/settings.js index 44c60e6a8..7370c4913 100644 --- a/src/js/settings.js +++ b/src/js/settings.js @@ -269,7 +269,7 @@ async function fillSettingsPage() { languages.forEach((language) => { langEl.append( `
${language.replace( - "_", + /_/g, " " )}
` ); @@ -280,18 +280,21 @@ async function fillSettingsPage() { Object.keys(layouts).forEach((layout) => { layoutEl.append( `
${layout.replace( - "_", + /_/g, " " )}
` ); }); let keymapEl = $(".pageSettings .section.keymapLayout .buttons").empty(); + keymapEl.append( + `
override sync
` + ); Object.keys(layouts).forEach((layout) => { if (layout.toString() != "default") { keymapEl.append( `
${layout.replace( - "_", + /_/g, " " )}
` ); diff --git a/src/js/userconfig.js b/src/js/userconfig.js index ffab2d499..92cff96f4 100644 --- a/src/js/userconfig.js +++ b/src/js/userconfig.js @@ -1272,6 +1272,9 @@ function changeLayout(layout, nosave) { } config.layout = layout; updateTestModesNotice(); + if (config.keymapLayout === "overrideSync") { + refreshKeymapKeys(config.keymapLayout); + } if (!nosave) saveConfigToCookie(); } @@ -1376,22 +1379,40 @@ function changeKeymapLayout(layout, nosave) { layout = "qwerty"; } config.keymapLayout = layout; + refreshKeymapKeys(layout); if (!nosave) saveConfigToCookie(); // layouts[layout].forEach((x) => { // console.log(x); // }); + // console.log(all.join()); +} + +function refreshKeymapKeys(layout) { try { - if (layouts[layout].keymapShowTopRow) { + let lts = layouts[layout]; //layout to show + let layoutString = layout; + if (config.keymapLayout === "overrideSync") { + if (config.layout === "default") { + lts = layouts["qwerty"]; + layoutString = "default"; + } else { + lts = layouts[config.layout]; + layoutString = config.layout; + } + } + + if (lts.keymapShowTopRow) { $(".keymap .r1").removeClass("hidden"); } else { $(".keymap .r1").addClass("hidden"); } - $($(".keymap .r5 .keymap-key .letter")[0]).text(layout.replace(/_/g, " ")); + $($(".keymap .r5 .keymap-key .letter")[0]).text( + layoutString.replace(/_/g, " ") + ); + keymapShowIsoKey(lts.iso); - keymapShowIsoKey(layouts[layout].iso); - - var toReplace = layouts[layout].keys.slice(1, 48); + var toReplace = lts.keys.slice(1, 48); // var _ = toReplace.splice(12, 1); var count = 0; @@ -1456,7 +1477,6 @@ function changeKeymapLayout(layout, nosave) { ); changeKeymapLayout("qwerty", true); } - // console.log(all.join()); } function changeFontSize(fontSize, nosave) {