From 23570c65b8565246a653d13e1c4d37a178499a12 Mon Sep 17 00:00:00 2001 From: Le Duy Quang Date: Mon, 22 Feb 2021 19:29:57 +0700 Subject: [PATCH] Enabled custom font entry in the command line's font changer. Also fixed an issue where the settings page does not reflect the current settings when directly accessing /settings. --- src/js/commandline.js | 12 ++++++++++++ src/js/script.js | 7 +++++++ src/js/settings.js | 21 +++++++++++++++++---- src/js/simple-popups.js | 1 + src/js/userconfig.js | 2 +- 5 files changed, 38 insertions(+), 5 deletions(-) diff --git a/src/js/commandline.js b/src/js/commandline.js index de362fa5e..19925135d 100644 --- a/src/js/commandline.js +++ b/src/js/commandline.js @@ -1658,6 +1658,18 @@ Misc.getFontsList().then((fonts) => { }, }); }); + commandsFonts.list.push({ + id: "setFontFamilyCustom", + display: "custom...", + input: true, + hover: () => { + previewFontFamily(config.fontFamily); + }, + exec: (name) => { + setFontFamily(name.replace(/\s/g, "_")); + settingsGroups.fontFamily.updateButton(); + }, + }); }); let commandsFunbox = { diff --git a/src/js/script.js b/src/js/script.js index 8f2412973..f3be7874a 100644 --- a/src/js/script.js +++ b/src/js/script.js @@ -5874,7 +5874,13 @@ if (window.location.hostname === "localhost") { } manualRestart = true; + +let configLoadDone; +let configLoadPromise = new Promise((v, x) => { + configLoadDone = v; +}); loadConfigFromCookie(); +configLoadDone(); Misc.getReleasesFromGitHub(); // getPatreonNames(); @@ -5972,6 +5978,7 @@ $(document).ready(() => { changePage(page); } }); + settingsFillPromise.then(updateSettingsPage); }); $(".scrollToTopButton").click((event) => { diff --git a/src/js/settings.js b/src/js/settings.js index 2a0d62004..eaad0dbe4 100644 --- a/src/js/settings.js +++ b/src/js/settings.js @@ -283,18 +283,22 @@ settingsGroups.alwaysShowCPM = new SettingsGroup( setAlwaysShowCPM ); -fillSettingsPage(); +let settingsFillPromise = fillSettingsPage(); async function fillSettingsPage() { + await configLoadPromise; refreshThemeButtons(); let langGroupsEl = $( ".pageSettings .section.languageGroups .buttons" ).empty(); + let currentLanguageGroup = await Misc.findCurrentGroup(config.language); Misc.getLanguageGroups().then((groups) => { groups.forEach((group) => { langGroupsEl.append( - `
${group.name}
` + `
${group.name}
` ); }); }); @@ -351,11 +355,15 @@ async function fillSettingsPage() { }); }); + let isCustomFont = true; let fontsEl = $(".pageSettings .section.fontFamily .buttons").empty(); Misc.getFontsList().then((fonts) => { fonts.forEach((font) => { + if (config.fontFamily === font.name) isCustomFont = false; fontsEl.append( - `
${ @@ -364,7 +372,12 @@ async function fillSettingsPage() { ); }); $( - '
Custom
' + isCustomFont + ? `
Custom (${config.fontFamily.replace( + /_/g, + " " + )})
` + : '
Custom
' ) .on("click", () => { simplePopups.applyCustomFont.show([]); diff --git a/src/js/simple-popups.js b/src/js/simple-popups.js index 49254595e..fa128d101 100644 --- a/src/js/simple-popups.js +++ b/src/js/simple-popups.js @@ -222,6 +222,7 @@ simplePopups.applyCustomFont = new SimplePopup( "Make sure you have the font installed on your computer before applying.", "Apply", (fontName) => { + if (fontName === "") return; settingsGroups.fontFamily.setValue(fontName.replace(/\s/g, "_")); }, () => {} diff --git a/src/js/userconfig.js b/src/js/userconfig.js index 4b735e617..b44546370 100644 --- a/src/js/userconfig.js +++ b/src/js/userconfig.js @@ -975,7 +975,7 @@ function previewFontFamily(font) { //font family function setFontFamily(font, nosave) { - if (font == undefined) { + if (font == undefined || font === "") { font = "Roboto_Mono"; } config.fontFamily = font;