Commit d306d25e authored by Danil Boldyrev's avatar Danil Boldyrev
Browse files

Made tooltip optional.

You can disable it in the settings.
Enabled by default
parent 38aca6f6
Loading
Loading
Loading
Loading
+71 −51
Original line number Diff line number Diff line
@@ -39,13 +39,23 @@ function createHotkeyConfig(defaultHotkeysConfig, hotkeysConfigOpts) {
    const usedKeys = new Set();

    for (const key in defaultHotkeysConfig) {
        if (hotkeysConfigOpts[key] && isSingleLetter(hotkeysConfigOpts[key]) && !usedKeys.has(hotkeysConfigOpts[key].toUpperCase())) {
        if (typeof hotkeysConfigOpts[key] === "boolean") {
            result[key] = hotkeysConfigOpts[key];
            continue;
        }
        if (
            hotkeysConfigOpts[key] &&
            isSingleLetter(hotkeysConfigOpts[key]) &&
            !usedKeys.has(hotkeysConfigOpts[key].toUpperCase())
        ) {
            // If the property passed the test and has not yet been used, add 'Key' before it and save it
            result[key] = 'Key' + hotkeysConfigOpts[key].toUpperCase();
            result[key] = "Key" + hotkeysConfigOpts[key].toUpperCase();
            usedKeys.add(hotkeysConfigOpts[key].toUpperCase());
        } else {
            // If the property does not pass the test or has already been used, we keep the default value
            console.error(`Hotkey: ${hotkeysConfigOpts[key]} for ${key} is repeated and conflicts with another hotkey or is not 1 letter. The default hotkey is used: ${defaultHotkeysConfig[key]}`);
            console.error(
                `Hotkey: ${hotkeysConfigOpts[key]} for ${key} is repeated and conflicts with another hotkey or is not 1 letter. The default hotkey is used: ${defaultHotkeysConfig[key]}`
            );
            result[key] = defaultHotkeysConfig[key];
        }
    }
@@ -62,7 +72,8 @@ onUiLoaded(async() => {
        canvas_hotkey_reset: "KeyR",
        canvas_hotkey_fullscreen: "KeyS",
        canvas_hotkey_move: "KeyF",
        canvas_hotkey_overlap: "KeyO"
        canvas_hotkey_overlap: "KeyO",
        canvas_show_tooltip: true
    };

    const hotkeysConfig = createHotkeyConfig(
@@ -97,7 +108,9 @@ onUiLoaded(async() => {
        let fullScreenMode = false;

        // Create tooltip
        const toolTipElemnt = targetElement.querySelector(".image-container");
        function createTooltip() {
            const toolTipElemnt =
                targetElement.querySelector(".image-container");
            const tooltip = document.createElement("div");
            tooltip.className = "tooltip";

@@ -135,7 +148,8 @@ onUiLoaded(async() => {
            ];
            hotkeys.forEach(function(hotkey) {
                const p = document.createElement("p");
            p.innerHTML = "<b>" + hotkey.key + "</b>" + " - " + hotkey.action;
                p.innerHTML =
                    "<b>" + hotkey.key + "</b>" + " - " + hotkey.action;
                tooltipContent.appendChild(p);
            });

@@ -145,6 +159,12 @@ onUiLoaded(async() => {

            // Add a hint element to the target element
            toolTipElemnt.appendChild(tooltip);
        }

        //Show tool tip if setting enable
        if (hotkeysConfig.canvas_show_tooltip) {
            createTooltip();
        }

        // In the course of research, it was found that the tag img is very harmful when zooming and creates white canvases. This hack allows you to almost never think about this problem, it has no effect on webui.
        function fixCanvas() {
+1 −0
Original line number Diff line number Diff line
@@ -5,4 +5,5 @@ shared.options_templates.update(shared.options_section(('canvas_hotkey', "Canvas
    "canvas_hotkey_fullscreen": shared.OptionInfo("S", "Fullscreen Mode, maximizes the picture so that it fits into the screen and stretches it to its full width "),
    "canvas_hotkey_reset": shared.OptionInfo("R", "Reset zoom and canvas positon"),
    "canvas_hotkey_overlap": shared.OptionInfo("O", "Toggle overlap ( Technical button, neededs for testing )"),
    "canvas_show_tooltip": shared.OptionInfo(True, "Enable tooltip on the canvas"),
}))