mirror of
https://github.com/amitwh/markdown-converter.git
synced 2026-08-24 07:20:16 +05:30
feat(settings): expose monospace font toggle in Settings UI
Add a View > Monospace Font menu (font family radio + ligatures
checkbox) — the app's existing reachable UI surface for this class of
preference (mirrors Theme/Font Size/Spell Check). The menu sends the
change to the renderer, which persists it via the already-working
ipcMain.handle('set-monospace-settings', ...) and applies it live via
the same applyMonospaceClasses() used on initial load.
Amit Haridas
This commit is contained in:
+38
@@ -1218,6 +1218,44 @@ function createMenu() {
|
|||||||
{
|
{
|
||||||
type: 'separator',
|
type: 'separator',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'Monospace Font',
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
label: 'JetBrains Mono',
|
||||||
|
type: 'radio',
|
||||||
|
checked: readSettingsJsonCached().monospaceFont !== 'fira-code',
|
||||||
|
click: () =>
|
||||||
|
mainWindow.webContents.send('monospace-setting-change', {
|
||||||
|
monospaceFont: 'jetbrains-mono',
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Fira Code',
|
||||||
|
type: 'radio',
|
||||||
|
checked: readSettingsJsonCached().monospaceFont === 'fira-code',
|
||||||
|
click: () =>
|
||||||
|
mainWindow.webContents.send('monospace-setting-change', {
|
||||||
|
monospaceFont: 'fira-code',
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'separator',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Ligatures',
|
||||||
|
type: 'checkbox',
|
||||||
|
checked: readSettingsJsonCached().monospaceLigatures === true,
|
||||||
|
click: (menuItem) =>
|
||||||
|
mainWindow.webContents.send('monospace-setting-change', {
|
||||||
|
monospaceLigatures: menuItem.checked,
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 'separator',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: 'Spell Check',
|
label: 'Spell Check',
|
||||||
type: 'checkbox',
|
type: 'checkbox',
|
||||||
|
|||||||
@@ -1875,6 +1875,17 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|||||||
applyMonospaceClasses(null);
|
applyMonospaceClasses(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Reachable UI control: View > Monospace Font menu (main.js) sends the
|
||||||
|
// requested change here; persist it via the existing setter and apply it
|
||||||
|
// live the same way the initial load above does.
|
||||||
|
ipcRenderer.on('monospace-setting-change', (event, partial) => {
|
||||||
|
if (!window.electronAPI || typeof window.electronAPI.invoke !== 'function') return;
|
||||||
|
window.electronAPI
|
||||||
|
.invoke('set-monospace-settings', partial)
|
||||||
|
.then(applyMonospaceClasses)
|
||||||
|
.catch(() => {});
|
||||||
|
});
|
||||||
|
|
||||||
// Welcome tab on startup
|
// Welcome tab on startup
|
||||||
const hasLaunched = localStorage.getItem('hasLaunchedBefore');
|
const hasLaunched = localStorage.getItem('hasLaunchedBefore');
|
||||||
const showWelcome = localStorage.getItem('showWelcomeOnStartup') !== 'false';
|
const showWelcome = localStorage.getItem('showWelcomeOnStartup') !== 'false';
|
||||||
|
|||||||
Reference in New Issue
Block a user