Merge pull request #6016 from 86Box/feature/wizard-improvements

Update the Add New VM wizard appearance
This commit is contained in:
Miran Grča
2025-08-22 19:59:21 +02:00
committed by GitHub
7 changed files with 323 additions and 19 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="128"
height="128"
viewBox="0 0 128 128"
version="1.1"
id="svg1"
inkscape:export-filename="addvm-logo.png"
inkscape:export-xdpi="36"
inkscape:export-ydpi="36"
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
sodipodi:docname="addvm-logo.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="px"
inkscape:zoom="8"
inkscape:cx="74.6875"
inkscape:cy="59.8125"
inkscape:window-width="3440"
inkscape:window-height="1369"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="g72" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g72">
<rect
style="fill:#000080;stroke:#f9f9f9;stroke-width:8;stroke-dasharray:none"
id="rect63"
width="120"
height="119.99999"
x="4"
y="4" />
<g
id="g47"
transform="translate(24,20)">
<path
style="fill:#ffffff;stroke:none;stroke-width:1;stroke-dasharray:none"
d="M 0,53 41,74 75,57 33.5,36.25 Z"
id="path5"
sodipodi:nodetypes="ccccc" />
<path
id="path1"
style="fill:#000080;stroke:#000080;stroke-width:4;stroke-dasharray:none"
d="M 0,53 V 68.5 L 41,89 75,72 V 57 L 41,74 Z" />
<path
id="path43"
style="baseline-shift:baseline;display:inline;overflow:visible;opacity:1;vector-effect:none;fill:#ffffff;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="M 0,53 V 68.5 L 41,89 75,72 V 57 L 41,74 Z m 2,3.271484 38,19.464844 v 10.527344 l -38,-19 z m 71,3.964844 v 10.527344 l -31,15.5 V 75.736328 Z"
sodipodi:nodetypes="ccccccccccccccccc" />
<path
style="fill:#ffffff;stroke:none;stroke-width:1;stroke-dasharray:none"
d="m 4,61 2,1 v 2 L 4,63 Z"
id="path14"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#ffffff;stroke:none;stroke-width:1;stroke-dasharray:none"
d="m 24,71 12,6 v 2 L 24,73 Z"
id="path15"
sodipodi:nodetypes="ccccc" />
</g>
<g
id="g75">
<path
id="path3"
style="fill:#ffffff;stroke:none;stroke-width:1;stroke-dasharray:none"
d="M 74,20 44,26 40,24 29,29 64,47 74,41 95,31 Z" />
<path
id="path2"
style="fill:#000080;stroke:#000080;stroke-width:4;stroke-dasharray:none"
d="M 29 29 L 29 68 L 64 85 L 74 81 L 75 80.599609 L 75 74.5 L 93 65.5 L 93 52 L 95 50 L 95 31 L 74 41 L 64 47 L 29 29 z " />
<path
style="fill:#ffffff;stroke:none;stroke-width:1;stroke-dasharray:none"
d="M 34,38 V 62 L 60,75 V 51 Z"
id="path10"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#f9f9f9;stroke:none;stroke-width:1;stroke-dasharray:none"
d="m 55,74 2,1 v 2 l -2,-1 z"
id="path14-2"
sodipodi:nodetypes="ccccc" />
<path
id="path63"
style="fill:#ffffff;stroke:none;stroke-width:2;stroke-dasharray:none"
d="m 29,29 v 39 l 35,17 10,-4 1,-0.400391 V 74.5 l 18,-9 V 53.414062 L 95,51.414 V 31 L 74,41 64,47 Z m 2,3.277344 32,16.457031 V 82.291016 L 31,66.748047 Z m 62,1.890625 v 16.417969 l -18,18 V 42.738281 Z m -20,9.763672 v 35.314453 l -8,3.199218 v -33.71289 z m 18,11.482421 v 8.84961 l -16,8 v -0.84961 z"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccc" />
</g>
<path
style="baseline-shift:baseline;display:inline;overflow:visible;opacity:1;fill:#f9f9f9;stroke:#000080;stroke-width:8;stroke-dasharray:none;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="M 80,64 V 80 H 64 v 16 h 16 v 16 H 96 V 96 h 16 V 80 H 96 V 64 Z"
id="path72" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

View File

@@ -0,0 +1,197 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="256"
height="512"
viewBox="0 0 256 512"
version="1.1"
id="svg1"
inkscape:export-filename="addvm-watermark.png"
inkscape:export-xdpi="60"
inkscape:export-ydpi="60"
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
sodipodi:docname="addvm-watermark.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="px"
inkscape:zoom="1.0064533"
inkscape:cx="-9.4390871"
inkscape:cy="139.59913"
inkscape:window-width="3440"
inkscape:window-height="1369"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="g4-4" />
<defs
id="defs1">
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath29">
<rect
style="fill:#000080;stroke:#000080;stroke-width:0.515789;stroke-dasharray:none"
id="rect30"
width="52.300762"
height="105.11731"
x="-128.85944"
y="277.26517" />
</clipPath>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g72"
transform="matrix(0.75,0,0,0.75,128,32)">
<rect
style="fill:#000080;stroke:#000080;stroke-width:3.33335;stroke-dasharray:none"
id="rect4"
width="338"
height="679.33331"
x="-44.305092"
y="-335.05698"
transform="translate(-124.69491,294.05695)" />
<g
id="g6"
transform="matrix(6.4626209,0,0,6.4626209,663.76968,-1832.8597)"
clip-path="url(#clipPath29)">
<g
id="g47-0"
transform="translate(-124.69491,294.05695)">
<path
style="fill:#0000ff;stroke:none;stroke-width:1;stroke-dasharray:none"
d="M 0,53 41,74 75,57 33.5,36.25 Z"
id="path5-1"
sodipodi:nodetypes="ccccc" />
<path
id="path1-6"
style="fill:#000080;stroke:#000080;stroke-width:3.33333;stroke-dasharray:none"
d="M 0,53 V 68.5 L 41,89 75,72 V 57 L 41,74 Z" />
<path
id="path43-5"
style="baseline-shift:baseline;display:inline;overflow:visible;opacity:1;vector-effect:none;fill:#0000ff;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="M 0,53 V 68.5 L 41,89 75,72 V 57 L 41,74 Z m 2,3.271484 38,19.464844 v 10.527344 l -38,-19 z m 71,3.964844 v 10.527344 l -31,15.5 V 75.736328 Z"
sodipodi:nodetypes="ccccccccccccccccc" />
<path
style="fill:#0000ff;stroke:none;stroke-width:1;stroke-dasharray:none"
d="m 4,61 2,1 v 2 L 4,63 Z"
id="path14-7"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#0000ff;stroke:none;stroke-width:1;stroke-dasharray:none"
d="m 24,71 12,6 v 2 L 24,73 Z"
id="path15-5"
sodipodi:nodetypes="ccccc" />
</g>
<g
id="g4-4"
transform="translate(-148.69491,274.05693)">
<path
id="path3-1"
style="fill:#0000ff;stroke:none;stroke-width:0.999997;stroke-dasharray:none"
d="m 73.999991,20.000012 -29.999993,6.000001 -3.999999,-2 -10.999997,5 34.999991,17.999999 9.999998,-6 20.999995,-9.999999 z" />
<path
id="path2-2"
style="fill:#000080;stroke:#000080;stroke-width:3.33333;stroke-dasharray:none"
d="m 29.000002,29.000013 v 38.999999 l 34.999991,17.000001 9.999998,-4.000005 0.999996,-0.400387 V 74.500012 L 92.999984,65.500011 V 52.000012 l 2.000002,-2 V 31.000013 l -20.999995,9.999999 -9.999998,6 z" />
<path
style="fill:#0000ff;stroke:none;stroke-width:0.999997;stroke-dasharray:none"
d="m 34,38.000012 v 24 L 59.999994,75.000016 V 51.000012 Z"
id="path10-0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#0000ff;stroke:none;stroke-width:0.999997;stroke-dasharray:none"
d="m 54.999996,74.000012 1.999999,1.000004 v 1.999995 l -1.999999,-0.999998 z"
id="path14-2-0"
sodipodi:nodetypes="ccccc" />
<path
id="path63-1"
style="fill:#0000ff;stroke:none;stroke-width:2;stroke-dasharray:none"
d="m 29.000002,29.000013 v 38.999999 l 34.999991,17.000001 9.999998,-4.000005 0.999996,-0.400387 V 74.500012 L 92.999984,65.500011 V 53.414074 l 2.000002,-2.000062 V 31.000013 l -20.999995,9.999999 -9.999998,6 z m 1.999999,3.277344 31.999993,16.45703 V 82.291028 L 31.000001,66.748058 Z m 61.999983,1.890625 V 50.58595 l -17.999997,18 V 42.738293 Z m -19.999993,9.763671 v 35.31445 l -7.999998,3.199223 V 48.732434 Z m 17.999998,11.482421 v 8.849609 l -16.000002,8.000001 v -0.84961 z"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccc" />
</g>
</g>
<g
id="g5">
<rect
style="fill:#000055;stroke:#f9f9f9;stroke-width:8.00002;stroke-dasharray:none"
id="rect63"
width="119.99998"
height="119.99998"
x="4.00001"
y="4.0000124" />
<g
id="g47"
transform="translate(24.000003,20.000012)">
<path
style="fill:#ffffff;stroke:none;stroke-width:1;stroke-dasharray:none"
d="M 0,53 41,74 75,57 33.5,36.25 Z"
id="path5"
sodipodi:nodetypes="ccccc" />
<path
id="path1"
style="fill:#000055;stroke:#000055;stroke-width:3.33333333;stroke-dasharray:none"
d="M 0,53 V 68.5 L 41,89 75,72 V 57 L 41,74 Z" />
<path
id="path43"
style="baseline-shift:baseline;display:inline;overflow:visible;opacity:1;vector-effect:none;fill:#ffffff;enable-background:accumulate;stop-color:#000000;stop-opacity:1"
d="M 0,53 V 68.5 L 41,89 75,72 V 57 L 41,74 Z m 2,3.271484 38,19.464844 v 10.527344 l -38,-19 z m 71,3.964844 v 10.527344 l -31,15.5 V 75.736328 Z"
sodipodi:nodetypes="ccccccccccccccccc" />
<path
style="fill:#ffffff;stroke:none;stroke-width:1;stroke-dasharray:none"
d="m 4,61 2,1 v 2 L 4,63 Z"
id="path14"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#ffffff;stroke:none;stroke-width:1;stroke-dasharray:none"
d="m 24,71 12,6 v 2 L 24,73 Z"
id="path15"
sodipodi:nodetypes="ccccc" />
</g>
<g
id="g4">
<path
id="path3"
style="fill:#ffffff;stroke:none;stroke-width:0.999997;stroke-dasharray:none"
d="m 73.999991,20.000012 -29.999993,6.000001 -3.999999,-2 -10.999997,5 34.999991,17.999999 9.999998,-6 20.999995,-9.999999 z" />
<path
id="path2"
style="fill:#000055;stroke:#000055;stroke-width:3.33333333;stroke-dasharray:none"
d="m 29.000002,29.000013 v 38.999999 l 34.999991,17.000001 9.999998,-4.000005 0.999996,-0.400387 V 74.500012 L 92.999984,65.500011 V 52.000012 l 2.000002,-2 V 31.000013 l -20.999995,9.999999 -9.999998,6 z" />
<path
style="fill:#ffffff;stroke:none;stroke-width:0.999997;stroke-dasharray:none"
d="m 34,38.000012 v 24 L 59.999994,75.000016 V 51.000012 Z"
id="path10"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#f9f9f9;stroke:none;stroke-width:0.999997;stroke-dasharray:none"
d="m 54.999996,74.000012 1.999999,1.000004 v 1.999995 l -1.999999,-0.999998 z"
id="path14-2"
sodipodi:nodetypes="ccccc" />
<path
id="path63"
style="fill:#ffffff;stroke:none;stroke-width:2;stroke-dasharray:none"
d="m 29.000002,29.000013 v 38.999999 l 34.999991,17.000001 9.999998,-4.000005 0.999996,-0.400387 V 74.500012 L 92.999984,65.500011 V 53.414074 l 2.000002,-2.000062 V 31.000013 l -20.999995,9.999999 -9.999998,6 z m 1.999999,3.277344 31.999993,16.45703 V 82.291028 L 31.000001,66.748058 Z m 61.999983,1.890625 V 50.58595 l -17.999997,18 V 42.738293 Z m -19.999993,9.763671 v 35.31445 l -7.999998,3.199223 V 48.732434 Z m 17.999998,11.482421 v 8.849609 l -16.000002,8.000001 v -0.84961 z"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccc" />
</g>
<path
style="baseline-shift:baseline;display:inline;overflow:visible;fill:#f9f9f9;stroke:#000055;stroke-width:8.00002;stroke-dasharray:none;enable-background:accumulate;stop-color:#000000"
d="m 79.999989,64.000011 v 16 H 63.999993 V 96.000008 H 79.999989 V 112 H 95.999991 V 96.000008 H 111.99998 V 80.000011 H 95.999991 v -16 z"
id="path72" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -715,7 +715,7 @@ msgid "Image %1"
msgstr "Obraz %1"
msgid "86Box could not find any usable ROM images.\n\nPlease <a href=\"https://github.com/86Box/roms/releases/latest\">download</a> a ROM set and extract it into the \"roms\" directory."
msgstr "86Box nenalezl žádné použitelné image pamětí ROM.\n\n<a href=\"https://github.com/86Box/roms/releases/latest\">Stáhněte</a> sadu obrazů ROM a extrahujte ji do složky \"roms\"."
msgstr "86Box nenalezl žádné použitelné obrazy pamětí ROM.\n\n<a href=\"https://github.com/86Box/roms/releases/latest\">Stáhněte</a> sadu obrazů ROM a extrahujte ji do složky \"roms\"."
msgid "(empty)"
msgstr "(prázdné)"
@@ -1141,7 +1141,7 @@ msgid "New configuration"
msgstr "Nová konfigurace"
msgid "Complete"
msgstr "Dokončit"
msgstr "Závěr"
msgid "The wizard will now launch the configuration for the new system."
msgstr "Průvodce nyní spustí konfiguraci nového systému."

View File

@@ -47,14 +47,10 @@ VMManagerAddMachine(QWidget *parent) : QWizard(parent)
#ifndef Q_OS_MACOS
setWizardStyle(ModernStyle);
// setPixmap(LogoPixmap, scaledPixmap);
// setPixmap(LogoPixmap, wizardPixmap);
// setPixmap(WatermarkPixmap, scaledPixmap);
setPixmap(WatermarkPixmap, wizardPixmap);
setPixmap(LogoPixmap, QPixmap(":assets/addvm-logo.png"));
#else
// macos
// setPixmap(BackgroundPixmap, scaledPixmap);
setPixmap(BackgroundPixmap, wizardPixmap);
setWizardStyle(MacStyle);
setPixmap(BackgroundPixmap, QPixmap(":/assets/86box-wizard.png"));
#endif
// Wizard wants to resize based on image. This keeps the size
@@ -66,7 +62,6 @@ VMManagerAddMachine(QWidget *parent) : QWizard(parent)
setMinimumSize(size());
#endif
setOption(HaveHelpButton, false);
// setPixmap(LogoPixmap, QPixmap(":/settings/qt/icons/86Box-gray.ico"));
setWindowTitle(tr("Add new system wizard"));
}
@@ -76,7 +71,7 @@ IntroPage(QWidget *parent)
{
setTitle(tr("Introduction"));
setPixmap(QWizard::WatermarkPixmap, QPixmap(":/assets/qt/assets/86box.png"));
setPixmap(QWizard::WatermarkPixmap, QPixmap(":assets/addvm-watermark.png"));
topLabel = new QLabel(tr("This will help you add a new system to 86Box."));
// topLabel = new QLabel(tr("This will help you add a new system to 86Box.\n\n Choose \"New configuration\" if you'd like to create a new machine.\n\nChoose \"Use existing configuration\" if you'd like to paste in an existing configuration from elsewhere."));
@@ -112,9 +107,7 @@ WithExistingConfigPage::
WithExistingConfigPage(QWidget *parent)
{
setTitle(tr("Use existing configuration"));
const auto topLabel = new QLabel(tr("Paste the contents of the existing configuration file into the box below."));
topLabel->setWordWrap(true);
setSubTitle(tr("Paste the contents of the existing configuration file into the box below."));
existingConfiguration = new QPlainTextEdit();
const auto monospaceFont = new QFont();
@@ -132,7 +125,6 @@ WithExistingConfigPage(QWidget *parent)
registerField("existingConfiguration*", this, "configuration");
const auto layout = new QVBoxLayout();
layout->addWidget(topLabel);
layout->addWidget(existingConfiguration);
const auto loadFileButton = new QPushButton();
const auto loadFileLabel = new QLabel(tr("Load configuration from file"));
@@ -207,12 +199,11 @@ NameAndLocationPage(QWidget *parent)
dirValidate = QRegularExpression(R"(^[^/]+$)");
#endif
const auto topLabel = new QLabel(tr("Enter the name of the system and choose the location"));
setSubTitle(tr("Enter the name of the system and choose the location"));
#else
setTitle(tr("System name"));
const auto topLabel = new QLabel(tr("Enter the name of the system"));
setSubTitle(tr("Enter the name of the system"));
#endif
topLabel->setWordWrap(true);
const auto chooseDirectoryButton = new QPushButton();
chooseDirectoryButton->setIcon(QApplication::style()->standardIcon(QStyle::SP_DirIcon));
@@ -240,7 +231,6 @@ NameAndLocationPage(QWidget *parent)
registerField("displayName*", displayName);
const auto layout = new QGridLayout();
layout->addWidget(topLabel, 0, 0, 1, -1);
// Spacer row
layout->setRowMinimumHeight(1, 20);
layout->addWidget(systemNameLabel, 2, 0);
@@ -352,6 +342,8 @@ ConclusionPage(QWidget *parent)
{
setTitle(tr("Complete"));
setPixmap(QWizard::WatermarkPixmap, QPixmap(":assets/addvm-watermark.png"));
topLabel = new QLabel(tr("The wizard will now launch the configuration for the new system."));
topLabel->setWordWrap(true);

View File

@@ -83,6 +83,8 @@
<file alias="86box-yellow.png">qt/assets/86box-yellow.png</file>
<file alias="86box.png">qt/assets/86box.png</file>
<file alias="86box-wizard.png">qt/assets/86box-wizard.png</file>
<file alias="addvm-logo.png">qt/assets/addvm-logo.png</file>
<file alias="addvm-watermark.png">qt/assets/addvm-watermark.png</file>
</qresource>
<qresource prefix="/systemicons">
<file alias="cpq_deskpro.png">qt/assets/systemicons/cpq_deskpro.png</file>