mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-11 08:05:12 +00:00
Rollup merge of #97317 - GuillaumeGomez:gui-settings-text-click, r=jsha
Allow to click on setting text You can test it [here](https://rustdoc.crud.net/imperio/gui-settings-text-click/doc/foo/index.html). This PR allows to click on the text alongside the toggle to change it. r? `@jsha`
This commit is contained in:
commit
02b630f566
@ -1 +1 @@
|
|||||||
0.9.3
|
0.9.5
|
@ -1415,30 +1415,6 @@ pre.rust {
|
|||||||
#settings-menu.rotate > a img {
|
#settings-menu.rotate > a img {
|
||||||
animation: rotating 2s linear infinite;
|
animation: rotating 2s linear infinite;
|
||||||
}
|
}
|
||||||
#settings-menu #settings {
|
|
||||||
position: absolute;
|
|
||||||
right: 0;
|
|
||||||
z-index: 1;
|
|
||||||
display: block;
|
|
||||||
margin-top: 7px;
|
|
||||||
border-radius: 3px;
|
|
||||||
border: 1px solid;
|
|
||||||
}
|
|
||||||
#settings-menu #settings .setting-line {
|
|
||||||
margin: 0.6em;
|
|
||||||
}
|
|
||||||
/* This rule is to draw the little arrow connecting the settings menu to the gear icon. */
|
|
||||||
#settings-menu #settings::before {
|
|
||||||
content: '';
|
|
||||||
position: absolute;
|
|
||||||
right: 11px;
|
|
||||||
border: solid;
|
|
||||||
border-width: 1px 1px 0 0;
|
|
||||||
display: inline-block;
|
|
||||||
padding: 4px;
|
|
||||||
transform: rotate(-45deg);
|
|
||||||
top: -5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#help-button {
|
#help-button {
|
||||||
font-family: "Fira Sans", Arial, sans-serif;
|
font-family: "Fira Sans", Arial, sans-serif;
|
||||||
|
@ -46,9 +46,12 @@
|
|||||||
.toggle {
|
.toggle {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: 45px;
|
width: 100%;
|
||||||
height: 27px;
|
height: 27px;
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.toggle input {
|
.toggle input {
|
||||||
@ -57,12 +60,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.slider {
|
.slider {
|
||||||
position: absolute;
|
position: relative;
|
||||||
|
width: 45px;
|
||||||
|
display: block;
|
||||||
|
height: 28px;
|
||||||
|
margin-right: 20px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
background-color: #ccc;
|
background-color: #ccc;
|
||||||
transition: .3s;
|
transition: .3s;
|
||||||
}
|
}
|
||||||
@ -95,3 +98,28 @@ input:checked + .slider:before {
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div#settings {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
z-index: 1;
|
||||||
|
display: block;
|
||||||
|
margin-top: 7px;
|
||||||
|
border-radius: 3px;
|
||||||
|
border: 1px solid;
|
||||||
|
}
|
||||||
|
#settings .setting-line {
|
||||||
|
margin: 1.2em 0.6em;
|
||||||
|
}
|
||||||
|
/* This rule is to draw the little arrow connecting the settings menu to the gear icon. */
|
||||||
|
div#settings::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
right: 11px;
|
||||||
|
border: solid;
|
||||||
|
border-width: 1px 1px 0 0;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 4px;
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
top: -5px;
|
||||||
|
}
|
||||||
|
@ -130,12 +130,11 @@
|
|||||||
} else {
|
} else {
|
||||||
// This is a toggle.
|
// This is a toggle.
|
||||||
const checked = setting["default"] === true ? " checked" : "";
|
const checked = setting["default"] === true ? " checked" : "";
|
||||||
output += `
|
output += `<label class="toggle">\
|
||||||
<label class="toggle">
|
<input type="checkbox" id="${js_data_name}"${checked}>\
|
||||||
<input type="checkbox" id="${js_data_name}"${checked}>
|
<span class="slider"></span>\
|
||||||
<span class="slider"></span>
|
<span class="label">${setting_name}</span>\
|
||||||
</label>
|
</label>`;
|
||||||
<div>${setting_name}</div>`;
|
|
||||||
}
|
}
|
||||||
output += "</div>";
|
output += "</div>";
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ wait-for: "#settings"
|
|||||||
|
|
||||||
// We check that the "Use system theme" is disabled.
|
// We check that the "Use system theme" is disabled.
|
||||||
assert-property: ("#use-system-theme", {"checked": "false"})
|
assert-property: ("#use-system-theme", {"checked": "false"})
|
||||||
assert: "//*[@class='setting-line']/*[text()='Use system theme']"
|
assert: "//*[@class='setting-line']//span[text()='Use system theme']"
|
||||||
// Meaning that only the "theme" menu is showing up.
|
// Meaning that only the "theme" menu is showing up.
|
||||||
assert: ".setting-line:not(.hidden) #theme"
|
assert: ".setting-line:not(.hidden) #theme"
|
||||||
assert: ".setting-line.hidden #preferred-dark-theme"
|
assert: ".setting-line.hidden #preferred-dark-theme"
|
||||||
@ -55,7 +55,13 @@ assert: ".setting-line.hidden #theme"
|
|||||||
assert-text: ("#preferred-dark-theme .setting-name", "Preferred dark theme")
|
assert-text: ("#preferred-dark-theme .setting-name", "Preferred dark theme")
|
||||||
assert-text: ("#preferred-light-theme .setting-name", "Preferred light theme")
|
assert-text: ("#preferred-light-theme .setting-name", "Preferred light theme")
|
||||||
|
|
||||||
|
// We now check that clicking on the "sliders"' text is like clicking on the slider.
|
||||||
|
// To test it, we use the "Disable keyboard shortcuts".
|
||||||
|
local-storage: {"rustdoc-disable-shortcuts": "false"}
|
||||||
|
click: ".setting-line:last-child .toggle .label"
|
||||||
|
assert-local-storage: {"rustdoc-disable-shortcuts": "true"}
|
||||||
|
|
||||||
// Now we go to the settings page to check that the CSS is loaded as expected.
|
// Now we go to the settings page to check that the CSS is loaded as expected.
|
||||||
goto: file://|DOC_PATH|/settings.html
|
goto: file://|DOC_PATH|/settings.html
|
||||||
wait-for: "#settings"
|
wait-for: "#settings"
|
||||||
assert-css: (".setting-line .toggle", {"width": "45px", "margin-right": "20px"})
|
assert-css: (".setting-line .toggle .slider", {"width": "45px", "margin-right": "20px"})
|
||||||
|
@ -19,6 +19,7 @@ function showHelp() {
|
|||||||
console.log(" --help : show this message then quit");
|
console.log(" --help : show this message then quit");
|
||||||
console.log(" --tests-folder [PATH] : location of the .GOML tests folder");
|
console.log(" --tests-folder [PATH] : location of the .GOML tests folder");
|
||||||
console.log(" --jobs [NUMBER] : number of threads to run tests on");
|
console.log(" --jobs [NUMBER] : number of threads to run tests on");
|
||||||
|
console.log(" --executable-path [PATH] : path of the browser's executable to be used");
|
||||||
}
|
}
|
||||||
|
|
||||||
function isNumeric(s) {
|
function isNumeric(s) {
|
||||||
@ -34,6 +35,8 @@ function parseOptions(args) {
|
|||||||
"show_text": false,
|
"show_text": false,
|
||||||
"no_headless": false,
|
"no_headless": false,
|
||||||
"jobs": -1,
|
"jobs": -1,
|
||||||
|
"executable_path": null,
|
||||||
|
"no_sandbox": false,
|
||||||
};
|
};
|
||||||
var correspondances = {
|
var correspondances = {
|
||||||
"--doc-folder": "doc_folder",
|
"--doc-folder": "doc_folder",
|
||||||
@ -41,13 +44,16 @@ function parseOptions(args) {
|
|||||||
"--debug": "debug",
|
"--debug": "debug",
|
||||||
"--show-text": "show_text",
|
"--show-text": "show_text",
|
||||||
"--no-headless": "no_headless",
|
"--no-headless": "no_headless",
|
||||||
|
"--executable-path": "executable_path",
|
||||||
|
"--no-sandbox": "no_sandbox",
|
||||||
};
|
};
|
||||||
|
|
||||||
for (var i = 0; i < args.length; ++i) {
|
for (var i = 0; i < args.length; ++i) {
|
||||||
if (args[i] === "--doc-folder"
|
if (args[i] === "--doc-folder"
|
||||||
|| args[i] === "--tests-folder"
|
|| args[i] === "--tests-folder"
|
||||||
|| args[i] === "--file"
|
|| args[i] === "--file"
|
||||||
|| args[i] === "--jobs") {
|
|| args[i] === "--jobs"
|
||||||
|
|| args[i] === "--executable-path") {
|
||||||
i += 1;
|
i += 1;
|
||||||
if (i >= args.length) {
|
if (i >= args.length) {
|
||||||
console.log("Missing argument after `" + args[i - 1] + "` option.");
|
console.log("Missing argument after `" + args[i - 1] + "` option.");
|
||||||
@ -68,6 +74,9 @@ function parseOptions(args) {
|
|||||||
} else if (args[i] === "--help") {
|
} else if (args[i] === "--help") {
|
||||||
showHelp();
|
showHelp();
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
|
} else if (args[i] === "--no-sandbox") {
|
||||||
|
console.log("`--no-sandbox` is being used. Be very careful!");
|
||||||
|
opts[correspondances[args[i]]] = true;
|
||||||
} else if (correspondances[args[i]]) {
|
} else if (correspondances[args[i]]) {
|
||||||
opts[correspondances[args[i]]] = true;
|
opts[correspondances[args[i]]] = true;
|
||||||
} else {
|
} else {
|
||||||
@ -147,10 +156,17 @@ async function main(argv) {
|
|||||||
if (opts["show_text"]) {
|
if (opts["show_text"]) {
|
||||||
args.push("--show-text");
|
args.push("--show-text");
|
||||||
}
|
}
|
||||||
|
if (opts["no_sandbox"]) {
|
||||||
|
args.push("--no-sandbox");
|
||||||
|
}
|
||||||
if (opts["no_headless"]) {
|
if (opts["no_headless"]) {
|
||||||
args.push("--no-headless");
|
args.push("--no-headless");
|
||||||
headless = false;
|
headless = false;
|
||||||
}
|
}
|
||||||
|
if (opts["executable_path"] !== null) {
|
||||||
|
args.push("--executable-path");
|
||||||
|
args.push(opts["executable_path"]);
|
||||||
|
}
|
||||||
options.parseArguments(args);
|
options.parseArguments(args);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`invalid argument: ${error}`);
|
console.error(`invalid argument: ${error}`);
|
||||||
|
Loading…
Reference in New Issue
Block a user