Updated tests, minor bug fixes, and merge lightv2 into light.

main
Alex Huszagh 2021-07-16 17:03:26 -05:00
parent 799693e9d6
commit 038a9d2a65
73 changed files with 4278 additions and 7189 deletions

View File

@ -219,7 +219,7 @@ MIT, see [license](/LICENSE.md).
To configure the assets and the stylesheets, run `configure.py`. To compile the assets and stylesheets for Python, run `pyrcc5 breeze.qrc -o breeze_resources.py`.
In order to test your changes, first run the tests using the appropriate widget in `single.py` (see the options for `stylesheet`, `widget`, `font-size`, and `font-family`), and then run the tests with the complete UI in `example.py`. If the widget you fixed the style for does not exist in `example.py`, please add it.
In order to test your changes, first run the tests using the appropriate widget in `test.py` (see the options for `stylesheet`, `widget`, `font-size`, and `font-family`), and then run the tests with the complete UI in `example.py`. If the widget you fixed the style for does not exist in `example.py`, please add it.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in BreezeStyleSheets by you shall be licensed under the MIT license without any additional terms or conditions.

View File

@ -1,49 +1,5 @@
<RCC>
<qresource>
<file>light/branch_closed-on.svg</file>
<file>light/branch_closed.svg</file>
<file>light/branch_open-on.svg</file>
<file>light/branch_open.svg</file>
<file>light/checkbox_checked-hover.svg</file>
<file>light/checkbox_checked.svg</file>
<file>light/checkbox_checked_disabled.svg</file>
<file>light/checkbox_indeterminate-hover.svg</file>
<file>light/checkbox_indeterminate.svg</file>
<file>light/checkbox_indeterminate_disabled.svg</file>
<file>light/checkbox_unchecked-hover.svg</file>
<file>light/checkbox_unchecked_disabled.svg</file>
<file>light/close-hover.svg</file>
<file>light/close-pressed.svg</file>
<file>light/close.svg</file>
<file>light/down_arrow-hover.svg</file>
<file>light/down_arrow.svg</file>
<file>light/down_arrow_disabled.svg</file>
<file>light/hmovetoolbar.svg</file>
<file>light/hsepartoolbar.svg</file>
<file>light/left_arrow.svg</file>
<file>light/left_arrow_disabled.svg</file>
<file>light/radio_checked-hover.svg</file>
<file>light/radio_checked.svg</file>
<file>light/radio_checked_disabled.svg</file>
<file>light/radio_unchecked-hover.svg</file>
<file>light/radio_unchecked_disabled.svg</file>
<file>light/right_arrow.svg</file>
<file>light/right_arrow_disabled.svg</file>
<file>light/sizegrip.svg</file>
<file>light/stylesheet-branch-end-closed.svg</file>
<file>light/stylesheet-branch-end-open.svg</file>
<file>light/stylesheet-branch-end.svg</file>
<file>light/stylesheet-branch-more.svg</file>
<file>light/stylesheet-vline.svg</file>
<file>light/transparent.svg</file>
<file>light/undock-hover.svg</file>
<file>light/undock.svg</file>
<file>light/up_arrow-hover.svg</file>
<file>light/up_arrow.svg</file>
<file>light/up_arrow_disabled.svg</file>
<file>light/vmovetoolbar.svg</file>
<file>light/vsepartoolbars.svg</file>
<file>light/stylesheet.qss</file>
<file>dark/branch_closed.svg</file>
<file>dark/branch_closed_hover.svg</file>
<file>dark/branch_end.svg</file>
@ -77,6 +33,7 @@
<file>dark/right_arrow.svg</file>
<file>dark/right_arrow_disabled.svg</file>
<file>dark/sizegrip.svg</file>
<file>dark/stylesheet.qss</file>
<file>dark/transparent.svg</file>
<file>dark/undock.svg</file>
<file>dark/undock_hover.svg</file>
@ -86,6 +43,48 @@
<file>dark/vline.svg</file>
<file>dark/vmovetoolbar.svg</file>
<file>dark/vseptoolbar.svg</file>
<file>dark/stylesheet.qss</file>
<file>light/branch_closed.svg</file>
<file>light/branch_closed_hover.svg</file>
<file>light/branch_end.svg</file>
<file>light/branch_end_arrow.svg</file>
<file>light/branch_more.svg</file>
<file>light/branch_more_arrow.svg</file>
<file>light/branch_open.svg</file>
<file>light/branch_open_hover.svg</file>
<file>light/calendar_next.svg</file>
<file>light/calendar_previous.svg</file>
<file>light/checkbox_checked.svg</file>
<file>light/checkbox_checked_disabled.svg</file>
<file>light/checkbox_indeterminate.svg</file>
<file>light/checkbox_indeterminate_disabled.svg</file>
<file>light/checkbox_unchecked.svg</file>
<file>light/checkbox_unchecked_disabled.svg</file>
<file>light/close.svg</file>
<file>light/close_hover.svg</file>
<file>light/close_pressed.svg</file>
<file>light/down_arrow.svg</file>
<file>light/down_arrow_disabled.svg</file>
<file>light/down_arrow_hover.svg</file>
<file>light/hmovetoolbar.svg</file>
<file>light/hseptoolbar.svg</file>
<file>light/left_arrow.svg</file>
<file>light/left_arrow_disabled.svg</file>
<file>light/radio_checked.svg</file>
<file>light/radio_checked_disabled.svg</file>
<file>light/radio_unchecked.svg</file>
<file>light/radio_unchecked_disabled.svg</file>
<file>light/right_arrow.svg</file>
<file>light/right_arrow_disabled.svg</file>
<file>light/sizegrip.svg</file>
<file>light/stylesheet.qss</file>
<file>light/transparent.svg</file>
<file>light/undock.svg</file>
<file>light/undock_hover.svg</file>
<file>light/up_arrow.svg</file>
<file>light/up_arrow_disabled.svg</file>
<file>light/up_arrow_hover.svg</file>
<file>light/vline.svg</file>
<file>light/vmovetoolbar.svg</file>
<file>light/vseptoolbar.svg</file>
</qresource>
</RCC>

File diff suppressed because it is too large Load Diff

View File

@ -757,7 +757,7 @@ QPushButton:disabled
QPushButton:focus
{
color: white;
color: #eff0f1;
}
QPushButton:pressed
@ -765,6 +765,7 @@ QPushButton:pressed
background-color: #454a4f;
padding-top: -0.65em;
padding-bottom: -0.74em;
color: #eff0f1;
}
QComboBox
@ -784,6 +785,7 @@ QPushButton:checked
{
background-color: #626568;
border: 0.04em solid #76797c;
color: #eff0f1;
}
QPushButton:hover
@ -939,7 +941,7 @@ QAbstractSpinBox::down-arrow:off
border-image: url(:/dark/down_arrow_disabled.svg);
}
QAbstractSpinBox::down-arrow:hover
QAbstractSpinBox::down-arrow:!off:!disabled:hover
{
border-image: url(:/dark/down_arrow_hover.svg);
}

View File

@ -1,3 +0,0 @@
<svg width="6" height="9">
<path fill="#000" fill-rule="evenodd" d="M1,8V1L5,4.5Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 94 B

6
light/branch_closed.svg Executable file → Normal file
View File

@ -1,3 +1,5 @@
<svg width="12" height="18">
<path fill="#4b4b4b" d="M5,12V6L9,9Z"/>
<svg width="240" height="360">
<g transform="scale(20) translate(3 5.5)">
<path d="m 0.9166972,1.1894593 3.310321,3.3105408 -3.3117417,3.3105408 c -0.157702,0.1577125 -0.157702,0.4134624 0,0.5711749 0.157702,0.1577123 0.4134349,0.1577123 0.5711369,0 l 3.5973102,-3.5961283 0,0 0,0 c 0.1577019,-0.1577124 0.1577019,-0.4134624 0,-0.5711748 L 1.4864134,0.61828437 c -0.157702,-0.1577124 -0.4134349,-0.1577124 -0.5711369,0 -0.1562813,0.1577125 -0.1562813,0.41346243 0.00142,0.57117493 z" fill="#4b4b4b" fill-opacity="1.0"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 78 B

After

Width:  |  Height:  |  Size: 540 B

View File

@ -0,0 +1,5 @@
<svg width="240" height="360">
<g transform="scale(20) translate(3 5.5)">
<path d="m 0.9166972,1.1894593 3.310321,3.3105408 -3.3117417,3.3105408 c -0.157702,0.1577125 -0.157702,0.4134624 0,0.5711749 0.157702,0.1577123 0.4134349,0.1577123 0.5711369,0 l 3.5973102,-3.5961283 0,0 0,0 c 0.1577019,-0.1577124 0.1577019,-0.4134624 0,-0.5711748 L 1.4864134,0.61828437 c -0.157702,-0.1577124 -0.4134349,-0.1577124 -0.5711369,0 -0.1562813,0.1577125 -0.1562813,0.41346243 0.00142,0.57117493 z" fill="#33a4df" fill-opacity="0.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 540 B

6
light/branch_end.svg Normal file
View File

@ -0,0 +1,6 @@
<svg width="405" height="290">
<g transform="scale(5)">
<rect id="VLine" fill="#4b4b4b" x="36" width="3" height="29.75"/>
<rect id="HLine" fill="#4b4b4b" x="36" y="29.75" height="2" width="45"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 219 B

View File

@ -0,0 +1,6 @@
<svg width="405" height="290">
<g transform="scale(5)">
<rect fill="#4b4b4b" x="36" width="3" height="17"/>
<rect fill="#4b4b4b" x="66" y="29.75" height="2" width="15"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 194 B

6
light/branch_more.svg Normal file
View File

@ -0,0 +1,6 @@
<svg width="405" height="290">
<g transform="scale(5)">
<rect fill="#4b4b4b" x="36" width="3" height="58"/>
<rect fill="#4b4b4b" x="36" y="29.75" height="2" width="45"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 194 B

View File

@ -0,0 +1,7 @@
<svg width="405" height="290">
<g transform="scale(5)">
<rect fill="#4b4b4b" x="36" width="3" height="17"/>
<rect fill="#4b4b4b" x="36" y="47" width="3" height="11"/>
<rect fill="#4b4b4b" x="66" y="29.75" height="2" width="15"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 257 B

View File

@ -1,3 +0,0 @@
<svg width="9" height="6">
<path fill="#000" d="M1,1H8L4.5,5Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 74 B

6
light/branch_open.svg Executable file → Normal file
View File

@ -1,3 +1,5 @@
<svg width="18" height="12">
<path fill="#4b4b4b" d="M5.5,3H12.5L9,9Z"/>
<svg width="240" height="360">
<g transform="scale(20) translate(10 7.5) rotate(90)">
<path d="m 0.9166972,1.1894593 3.310321,3.3105408 -3.3117417,3.3105408 c -0.157702,0.1577125 -0.157702,0.4134624 0,0.5711749 0.157702,0.1577123 0.4134349,0.1577123 0.5711369,0 l 3.5973102,-3.5961283 0,0 0,0 c 0.1577019,-0.1577124 0.1577019,-0.4134624 0,-0.5711748 L 1.4864134,0.61828437 c -0.157702,-0.1577124 -0.4134349,-0.1577124 -0.5711369,0 -0.1562813,0.1577125 -0.1562813,0.41346243 0.00142,0.57117493 z" fill="#4b4b4b" fill-opacity="1.0"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 82 B

After

Width:  |  Height:  |  Size: 552 B

View File

@ -0,0 +1,5 @@
<svg width="240" height="360">
<g transform="scale(20) translate(10 7.5) rotate(90)">
<path d="m 0.9166972,1.1894593 3.310321,3.3105408 -3.3117417,3.3105408 c -0.157702,0.1577125 -0.157702,0.4134624 0,0.5711749 0.157702,0.1577123 0.4134349,0.1577123 0.5711369,0 l 3.5973102,-3.5961283 0,0 0,0 c 0.1577019,-0.1577124 0.1577019,-0.4134624 0,-0.5711748 L 1.4864134,0.61828437 c -0.157702,-0.1577124 -0.4134349,-0.1577124 -0.5711369,0 -0.1562813,0.1577125 -0.1562813,0.41346243 0.00142,0.57117493 z" fill="#33a4df" fill-opacity="0.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 552 B

5
light/calendar_next.svg Normal file
View File

@ -0,0 +1,5 @@
<svg width="90" height="90">
<g transform="scale(10)">
<path d="m 0.9166972,1.1894593 3.310321,3.3105408 -3.3117417,3.3105408 c -0.157702,0.1577125 -0.157702,0.4134624 0,0.5711749 0.157702,0.1577123 0.4134349,0.1577123 0.5711369,0 l 3.5973102,-3.5961283 0,0 0,0 c 0.1577019,-0.1577124 0.1577019,-0.4134624 0,-0.5711748 L 1.4864134,0.61828437 c -0.157702,-0.1577124 -0.4134349,-0.1577124 -0.5711369,0 -0.1562813,0.1577125 -0.1562813,0.41346243 0.00142,0.57117493 z" fill="#31363b"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 502 B

View File

@ -0,0 +1,5 @@
<svg width="90" height="90">
<g transform="scale(10)">
<path d="m 5.0823028,1.1894593 -3.310321,3.3105408 3.3117417,3.3105408 c 0.157702,0.1577125 0.157702,0.4134624 0,0.5711749 -0.157702,0.1577123 -0.4134349,0.1577123 -0.5711369,0 l -3.59731017,-3.5961283 0,0 0,0 c -0.15770191,-0.1577124 -0.15770191,-0.4134624 0,-0.5711748 L 4.5125866,0.61828437 c 0.157702,-0.1577124 0.4134349,-0.1577124 0.5711369,0 0.1562813,0.1577125 0.1562813,0.41346243 -0.00142,0.57117493 z" fill="#31363b"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 505 B

View File

@ -1,5 +0,0 @@
<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#51c2fc"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#51c2fc"/>
<path d="M5,5 h8 v8 h-8 v-8 z" fill="#51c2fc" fill-rule="evenodd"/>
</svg>

Before

Width:  |  Height:  |  Size: 330 B

10
light/checkbox_checked.svg Executable file → Normal file
View File

@ -1,5 +1,7 @@
<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#3daee9"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#3daee9"/>
<path d="M5,5 h8 v8 h-8 v-8 z" fill="#3daee9" fill-rule="evenodd"/>
<svg width="90" height="90">
<g transform="scale(5)">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#272b2f"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#272b2f"/>
<path d="M5,5 h8 v8 h-8 v-8 z" fill="#272b2f" fill-rule="evenodd"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 330 B

After

Width:  |  Height:  |  Size: 275 B

10
light/checkbox_checked_disabled.svg Executable file → Normal file
View File

@ -1,5 +1,7 @@
<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#31363B"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#31363B"/>
<path d="M5,5 h8 v8 h-8 v-8 z" fill="#31363B" fill-rule="evenodd"/>
<svg width="90" height="90">
<g transform="scale(5)">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#6a6e71"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#6a6e71"/>
<path d="M5,5 h8 v8 h-8 v-8 z" fill="#6a6e71" fill-rule="evenodd"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 330 B

After

Width:  |  Height:  |  Size: 275 B

View File

@ -1,7 +0,0 @@
<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#51c2fc"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#51c2fc"/>
<path d="M5,5 h8 v8 h-0.9 v-7.1 h-7.1 z" fill="#51c2fc" fill-rule="evenodd"/>
<path d="M13,13 h-8 v-8 h0.9 v7.1 h7.1 z" fill="#51c2fc" fill-rule="evenodd"/>
<path d="M13,5 L 5,13 v-8 h8 z" fill="#51c2fc" fill-rule="evenodd"/>
</svg>

Before

Width:  |  Height:  |  Size: 492 B

14
light/checkbox_indeterminate.svg Executable file → Normal file
View File

@ -1,7 +1,9 @@
<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#3daee9"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#3daee9"/>
<path d="M5,5 h8 v8 h-0.9 v-7.1 h-7.1 z" fill="#3daee9" fill-rule="evenodd"/>
<path d="M13,13 h-8 v-8 h0.9 v7.1 h7.1 z" fill="#3daee9" fill-rule="evenodd"/>
<path d="M13,5 L 5,13 v-8 h8 z" fill="#3daee9" fill-rule="evenodd"/>
<svg width="90" height="90">
<g transform="scale(5)">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#272b2f"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#272b2f"/>
<path d="M5,5 h8 v8 h-0.9 v-7.1 h-7.1 z" fill="#272b2f" fill-rule="evenodd"/>
<path d="M13,13 h-8 v-8 h0.9 v7.1 h7.1 z" fill="#272b2f" fill-rule="evenodd"/>
<path d="M13,5 L 5,13 v-8 h8 z" fill="#272b2f" fill-rule="evenodd"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 492 B

After

Width:  |  Height:  |  Size: 441 B

14
light/checkbox_indeterminate_disabled.svg Executable file → Normal file
View File

@ -1,7 +1,9 @@
<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#31363B"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#31363B"/>
<path d="M5,5 h8 v8 h-0.9 v-7.1 h-7.1 z" fill="#31363B" fill-rule="evenodd"/>
<path d="M13,13 h-8 v-8 h0.9 v7.1 h7.1 z" fill="#31363B" fill-rule="evenodd"/>
<path d="M13,5 L 5,13 v-8 h8 z" fill="#31363B" fill-rule="evenodd"/>
<svg width="90" height="90">
<g transform="scale(5)">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#6a6e71"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#6a6e71"/>
<path d="M5,5 h8 v8 h-0.9 v-7.1 h-7.1 z" fill="#6a6e71" fill-rule="evenodd"/>
<path d="M13,13 h-8 v-8 h0.9 v7.1 h7.1 z" fill="#6a6e71" fill-rule="evenodd"/>
<path d="M13,5 L 5,13 v-8 h8 z" fill="#6a6e71" fill-rule="evenodd"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 492 B

After

Width:  |  Height:  |  Size: 441 B

View File

@ -1,4 +0,0 @@
<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#51c2fc"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#51c2fc"/>
</svg>

Before

Width:  |  Height:  |  Size: 260 B

View File

@ -0,0 +1,6 @@
<svg width="90" height="90">
<g transform="scale(5)">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#272b2f"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#272b2f"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 203 B

8
light/checkbox_unchecked_disabled.svg Executable file → Normal file
View File

@ -1,4 +1,6 @@
<svg x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18" enable-background="new 0 0 18 18" xml:space="preserve">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#31363B"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#31363B"/>
<svg width="90" height="90">
<g transform="scale(5)">
<path d="M2,2 h14 v14 h-0.9 v-13.1 h-13.1 z" fill="#6a6e71"/>
<path d="M16,16 h-14 v-14 h0.9 v13.1 h13.1 z" fill="#6a6e71"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 260 B

After

Width:  |  Height:  |  Size: 203 B

View File

@ -1,3 +0,0 @@
<svg width="1200" height="1200">
<path d="M 600,1050 C 351.472,1050 150,848.528 150,600 150,351.472 351.472,150 600,150 c 248.528,0 450,201.472 450,450 0,248.528 -201.472,450 -450,450 z M 888.462,827.851 661.974,601.122 l 0,-2.244 226.488,-226.729 0,-60.611 -60.848,0 Q 727.339,411.986 627.043,512.451 613.524,525.358 600,538.267 l -226.487,-226.729 -61.975,0 0,60.611 L 538.026,600 311.538,826.729 l 0,61.733 60.848,0 q 34.363,-34.792 68.735,-69.59 L 600,661.733 l 226.487,226.729 61.975,0 0,-60.611 z" fill="#dc7676"/>
</svg>

Before

Width:  |  Height:  |  Size: 530 B

View File

@ -1,3 +0,0 @@
<svg width="1200" height="1200">
<path d="M 600,1050 C 351.472,1050 150,848.528 150,600 150,351.472 351.472,150 600,150 c 248.528,0 450,201.472 450,450 0,248.528 -201.472,450 -450,450 z M 888.462,827.851 661.974,601.122 l 0,-2.244 226.488,-226.729 0,-60.611 -60.848,0 Q 727.339,411.986 627.043,512.451 613.524,525.358 600,538.267 l -226.487,-226.729 -61.975,0 0,60.611 L 538.026,600 311.538,826.729 l 0,61.733 60.848,0 q 34.363,-34.792 68.735,-69.59 L 600,661.733 l 226.487,226.729 61.975,0 0,-60.611 z" fill="#b33e3e"/>
</svg>

Before

Width:  |  Height:  |  Size: 530 B

6
light/close.svg Executable file → Normal file
View File

@ -1,3 +1,5 @@
<svg width="1200" height="1200">
<path d="M 600,1050 C 351.472,1050 150,848.528 150,600 150,351.472 351.472,150 600,150 c 248.528,0 450,201.472 450,450 0,248.528 -201.472,450 -450,450 z M 888.462,827.851 661.974,601.122 l 0,-2.244 226.488,-226.729 0,-60.611 -60.848,0 Q 727.339,411.986 627.043,512.451 613.524,525.358 600,538.267 l -226.487,-226.729 -61.975,0 0,60.611 L 538.026,600 311.538,826.729 l 0,61.733 60.848,0 q 34.363,-34.792 68.735,-69.59 L 600,661.733 l 226.487,226.729 61.975,0 0,-60.611 z" fill="#626568"/>
<svg width="160" height="160">
<g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M 79.796875 10 A 70 70 0 0 0 10 80 A 70 70 0 0 0 80 150 A 70 70 0 0 0 150 80 A 70 70 0 0 0 80 10 A 70 70 0 0 0 79.796875 10 z M 110.93359 38.5 C 114.11991 38.491338 117.30995 39.711206 119.74805 42.160156 C 124.62075 47.056656 124.64102 55.0179 119.79492 59.9375 L 98.519531 81.515625 L 119.81836 103.11523 C 124.62456 107.99983 124.55858 115.91021 119.67188 120.78711 C 114.78378 125.66191 106.92589 125.64952 102.12109 120.76562 L 80.96875 99.316406 L 59.777344 120.80664 C 54.928444 125.73044 47.044169 125.75142 42.167969 120.85352 C 37.295269 115.95702 37.274294 107.99577 42.121094 103.07617 L 63.396484 81.496094 L 42.099609 59.898438 C 37.292709 55.013838 37.357441 47.101509 42.244141 42.224609 C 47.132241 37.350509 54.992075 37.362194 59.796875 42.246094 L 80.949219 63.697266 L 102.14062 42.207031 C 104.56508 39.745131 107.74728 38.508662 110.93359 38.5 z " fill="#6a6969" fill-opacity="0.7"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 530 B

After

Width:  |  Height:  |  Size: 1011 B

5
light/close_hover.svg Normal file
View File

@ -0,0 +1,5 @@
<svg width="160" height="160">
<g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M 79.796875 10 A 70 70 0 0 0 10 80 A 70 70 0 0 0 80 150 A 70 70 0 0 0 150 80 A 70 70 0 0 0 80 10 A 70 70 0 0 0 79.796875 10 z M 110.93359 38.5 C 114.11991 38.491338 117.30995 39.711206 119.74805 42.160156 C 124.62075 47.056656 124.64102 55.0179 119.79492 59.9375 L 98.519531 81.515625 L 119.81836 103.11523 C 124.62456 107.99983 124.55858 115.91021 119.67188 120.78711 C 114.78378 125.66191 106.92589 125.64952 102.12109 120.76562 L 80.96875 99.316406 L 59.777344 120.80664 C 54.928444 125.73044 47.044169 125.75142 42.167969 120.85352 C 37.295269 115.95702 37.274294 107.99577 42.121094 103.07617 L 63.396484 81.496094 L 42.099609 59.898438 C 37.292709 55.013838 37.357441 47.101509 42.244141 42.224609 C 47.132241 37.350509 54.992075 37.362194 59.796875 42.246094 L 80.949219 63.697266 L 102.14062 42.207031 C 104.56508 39.745131 107.74728 38.508662 110.93359 38.5 z " fill="#dc7676" fill-opacity="1.0"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1011 B

5
light/close_pressed.svg Normal file
View File

@ -0,0 +1,5 @@
<svg width="160" height="160">
<g>
<path fill-rule="evenodd" clip-rule="evenodd" d="M 79.796875 10 A 70 70 0 0 0 10 80 A 70 70 0 0 0 80 150 A 70 70 0 0 0 150 80 A 70 70 0 0 0 80 10 A 70 70 0 0 0 79.796875 10 z M 110.93359 38.5 C 114.11991 38.491338 117.30995 39.711206 119.74805 42.160156 C 124.62075 47.056656 124.64102 55.0179 119.79492 59.9375 L 98.519531 81.515625 L 119.81836 103.11523 C 124.62456 107.99983 124.55858 115.91021 119.67188 120.78711 C 114.78378 125.66191 106.92589 125.64952 102.12109 120.76562 L 80.96875 99.316406 L 59.777344 120.80664 C 54.928444 125.73044 47.044169 125.75142 42.167969 120.85352 C 37.295269 115.95702 37.274294 107.99577 42.121094 103.07617 L 63.396484 81.496094 L 42.099609 59.898438 C 37.292709 55.013838 37.357441 47.101509 42.244141 42.224609 C 47.132241 37.350509 54.992075 37.362194 59.796875 42.246094 L 80.949219 63.697266 L 102.14062 42.207031 C 104.56508 39.745131 107.74728 38.508662 110.93359 38.5 z " fill="#b33e3e" fill-opacity="1.0"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1011 B

View File

@ -1,3 +0,0 @@
<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
<path d="M 1.1894592,0.91769718 4.5,4.2280182 7.8105408,0.91627648 c 0.1577125,-0.157702 0.4134624,-0.157702 0.5711749,0 0.1577124,0.15770202 0.1577124,0.41343492 0,0.57113692 l -3.5961283,3.5973102 0,0 0,0 c -0.1577124,0.1577019 -0.4134624,0.1577019 -0.5711748,0 L 0.6182843,1.4874134 c -0.1577124,-0.157702 -0.1577124,-0.4134349 0,-0.57113692 0.1577125,-0.15628131 0.4134624,-0.15628131 0.5711749,0.00142 z" fill="#3daee9"/>
</svg>

Before

Width:  |  Height:  |  Size: 554 B

6
light/down_arrow.svg Executable file → Normal file
View File

@ -1,3 +1,5 @@
<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
<path d="M 1.1894592,0.91769718 4.5,4.2280182 7.8105408,0.91627648 c 0.1577125,-0.157702 0.4134624,-0.157702 0.5711749,0 0.1577124,0.15770202 0.1577124,0.41343492 0,0.57113692 l -3.5961283,3.5973102 0,0 0,0 c -0.1577124,0.1577019 -0.4134624,0.1577019 -0.5711748,0 L 0.6182843,1.4874134 c -0.1577124,-0.157702 -0.1577124,-0.4134349 0,-0.57113692 0.1577125,-0.15628131 0.4134624,-0.15628131 0.5711749,0.00142 z" fill="#31363B"/>
<svg width="90" height="60">
<g transform="scale(10)">
<path d="M 1.1894592,0.91769718 4.5,4.2280182 7.8105408,0.91627648 c 0.1577125,-0.157702 0.4134624,-0.157702 0.5711749,0 0.1577124,0.15770202 0.1577124,0.41343492 0,0.57113692 l -3.5961283,3.5973102 0,0 0,0 c -0.1577124,0.1577019 -0.4134624,0.1577019 -0.5711748,0 L 0.6182843,1.4874134 c -0.1577124,-0.157702 -0.1577124,-0.4134349 0,-0.57113692 0.1577125,-0.15628131 0.4134624,-0.15628131 0.5711749,0.00142 z" fill="#31363b" fill-opacity="1.0"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 554 B

After

Width:  |  Height:  |  Size: 521 B

6
light/down_arrow_disabled.svg Executable file → Normal file
View File

@ -1,3 +1,5 @@
<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
<path d="M 1.1894592,0.91769718 4.5,4.2280182 7.8105408,0.91627648 c 0.1577125,-0.157702 0.4134624,-0.157702 0.5711749,0 0.1577124,0.15770202 0.1577124,0.41343492 0,0.57113692 l -3.5961283,3.5973102 0,0 0,0 c -0.1577124,0.1577019 -0.4134624,0.1577019 -0.5711748,0 L 0.6182843,1.4874134 c -0.1577124,-0.157702 -0.1577124,-0.4134349 0,-0.57113692 0.1577125,-0.15628131 0.4134624,-0.15628131 0.5711749,0.00142 z" fill="#b0b0b0"/>
<svg width="90" height="60">
<g transform="scale(10)">
<path d="M 1.1894592,0.91769718 4.5,4.2280182 7.8105408,0.91627648 c 0.1577125,-0.157702 0.4134624,-0.157702 0.5711749,0 0.1577124,0.15770202 0.1577124,0.41343492 0,0.57113692 l -3.5961283,3.5973102 0,0 0,0 c -0.1577124,0.1577019 -0.4134624,0.1577019 -0.5711748,0 L 0.6182843,1.4874134 c -0.1577124,-0.157702 -0.1577124,-0.4134349 0,-0.57113692 0.1577125,-0.15628131 0.4134624,-0.15628131 0.5711749,0.00142 z" fill="#bab9b8" fill-opacity="1.0"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 554 B

After

Width:  |  Height:  |  Size: 521 B

View File

@ -0,0 +1,5 @@
<svg width="90" height="60">
<g transform="scale(10)">
<path d="M 1.1894592,0.91769718 4.5,4.2280182 7.8105408,0.91627648 c 0.1577125,-0.157702 0.4134624,-0.157702 0.5711749,0 0.1577124,0.15770202 0.1577124,0.41343492 0,0.57113692 l -3.5961283,3.5973102 0,0 0,0 c -0.1577124,0.1577019 -0.4134624,0.1577019 -0.5711748,0 L 0.6182843,1.4874134 c -0.1577124,-0.157702 -0.1577124,-0.4134349 0,-0.57113692 0.1577125,-0.15628131 0.4134624,-0.15628131 0.5711749,0.00142 z" fill="#33a4df" fill-opacity="0.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 521 B

7
light/hmovetoolbar.svg Executable file → Normal file
View File

@ -1,5 +1,4 @@
<svg x="0px" y="0px" width="16px" height="64px" viewBox="0 0 16 64" enable-background="new 0 0 16 64" xml:space="preserve">
<rect fill="#76797c" x="2" y="1" width="1" height="62.5"/>
<rect fill="#76797c" x="9" y="1" width="1" height="62.5"/>
<svg width="16" height="32">
<rect fill="#bab9b8" x="6" y="4" width="1" height="24"/>
<rect fill="#bab9b8" x="14" y="4" width="1" height="24"/>
</svg>

Before

Width:  |  Height:  |  Size: 254 B

After

Width:  |  Height:  |  Size: 159 B

View File

@ -1,3 +0,0 @@
<svg x="0px" y="0px" width="7px" height="63px" viewBox="0 0 7 63" enable-background="new 0 0 7 63" xml:space="preserve">
<rect fill="#76797c" x="2" y="13" width="1" height="37"/>
</svg>

Before

Width:  |  Height:  |  Size: 188 B

3
light/hseptoolbar.svg Normal file
View File

@ -0,0 +1,3 @@
<svg width="16" height="32">
<rect fill="#bab9b8" x="8" y="4" width="1" height="24"/>
</svg>

After

Width:  |  Height:  |  Size: 97 B

6
light/left_arrow.svg Executable file → Normal file
View File

@ -1,3 +1,5 @@
<svg x="0px" y="0px" width="6px" height="9px" viewBox="0 0 6 9" enable-background="new 0 0 6 9" xml:space="preserve">
<path d="m 5.0823028,1.1894593 -3.310321,3.3105408 3.3117417,3.3105408 c 0.157702,0.1577125 0.157702,0.4134624 0,0.5711749 -0.157702,0.1577123 -0.4134349,0.1577123 -0.5711369,0 l -3.59731017,-3.5961283 0,0 0,0 c -0.15770191,-0.1577124 -0.15770191,-0.4134624 0,-0.5711748 L 4.5125866,0.61828437 c 0.157702,-0.1577124 0.4134349,-0.1577124 0.5711369,0 0.1562813,0.1577125 0.1562813,0.41346243 -0.00142,0.57117493 z" fill="#31363B"/>
<svg width="60" height="90">
<g transform="scale(10)">
<path d="m 5.0823028,1.1894593 -3.310321,3.3105408 3.3117417,3.3105408 c 0.157702,0.1577125 0.157702,0.4134624 0,0.5711749 -0.157702,0.1577123 -0.4134349,0.1577123 -0.5711369,0 l -3.59731017,-3.5961283 0,0 0,0 c -0.15770191,-0.1577124 -0.15770191,-0.4134624 0,-0.5711748 L 4.5125866,0.61828437 c 0.157702,-0.1577124 0.4134349,-0.1577124 0.5711369,0 0.1562813,0.1577125 0.1562813,0.41346243 -0.00142,0.57117493 z" fill="#31363b"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 557 B

After

Width:  |  Height:  |  Size: 505 B

6
light/left_arrow_disabled.svg Executable file → Normal file
View File

@ -1,3 +1,5 @@
<svg x="0px" y="0px" width="6px" height="9px" viewBox="0 0 6 9" enable-background="new 0 0 6 9" xml:space="preserve">
<path d="m 5.0823028,1.1894593 -3.310321,3.3105408 3.3117417,3.3105408 c 0.157702,0.1577125 0.157702,0.4134624 0,0.5711749 -0.157702,0.1577123 -0.4134349,0.1577123 -0.5711369,0 l -3.59731017,-3.5961283 0,0 0,0 c -0.15770191,-0.1577124 -0.15770191,-0.4134624 0,-0.5711748 L 4.5125866,0.61828437 c 0.157702,-0.1577124 0.4134349,-0.1577124 0.5711369,0 0.1562813,0.1577125 0.1562813,0.41346243 -0.00142,0.57117493 z" fill="#b0b0b0"/>
<svg width="60" height="90">
<g transform="scale(10)">
<path d="m 5.0823028,1.1894593 -3.310321,3.3105408 3.3117417,3.3105408 c 0.157702,0.1577125 0.157702,0.4134624 0,0.5711749 -0.157702,0.1577123 -0.4134349,0.1577123 -0.5711369,0 l -3.59731017,-3.5961283 0,0 0,0 c -0.15770191,-0.1577124 -0.15770191,-0.4134624 0,-0.5711748 L 4.5125866,0.61828437 c 0.157702,-0.1577124 0.4134349,-0.1577124 0.5711369,0 0.1562813,0.1577125 0.1562813,0.41346243 -0.00142,0.57117493 z" fill="#bab9b8"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 557 B

After

Width:  |  Height:  |  Size: 505 B

View File

@ -1,5 +0,0 @@
<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
<path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#51c2fc" fill-rule="evenodd"/>
<path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#51c2fc" fill-rule="evenodd"/>
<path d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0" fill="#51c2fc" fill-rule="evenodd"/>
</svg>

Before

Width:  |  Height:  |  Size: 427 B

7
light/radio_checked.svg Executable file → Normal file
View File

@ -1,5 +1,4 @@
<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
<path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#3daee9" fill-rule="evenodd"/>
<path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#3daee9" fill-rule="evenodd"/>
<path d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0" fill="#3daee9" fill-rule="evenodd"/>
<svg width="100" height="100">
<circle cx="50" cy="50" r="35" stroke="#272b2f" stroke-width="10" fill="none" />
<circle cx="50" cy="50" r="17" fill="#272b2f" />
</svg>

Before

Width:  |  Height:  |  Size: 427 B

After

Width:  |  Height:  |  Size: 172 B

7
light/radio_checked_disabled.svg Executable file → Normal file
View File

@ -1,5 +1,4 @@
<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
<path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#31363B" fill-rule="evenodd"/>
<path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#31363B" fill-rule="evenodd"/>
<path d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0" fill="#31363B" fill-rule="evenodd"/>
<svg width="100" height="100">
<circle cx="50" cy="50" r="35" stroke="#6a6e71" stroke-width="10" fill="none" />
<circle cx="50" cy="50" r="17" fill="#6a6e71" />
</svg>

Before

Width:  |  Height:  |  Size: 427 B

After

Width:  |  Height:  |  Size: 172 B

View File

@ -1,4 +0,0 @@
<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
<path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#51c2fc" fill-rule="evenodd"/>
<path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#51c2fc" fill-rule="evenodd"/>
</svg>

Before

Width:  |  Height:  |  Size: 341 B

View File

@ -0,0 +1,3 @@
<svg width="100" height="100">
<circle cx="50" cy="50" r="35" stroke="#272b2f" stroke-width="10" fill="none" />
</svg>

After

Width:  |  Height:  |  Size: 121 B

5
light/radio_unchecked_disabled.svg Executable file → Normal file
View File

@ -1,4 +1,3 @@
<svg x="0px" y="0px" width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
<path d="M1,10a9,9 0 1,0 18,0 h-0.9 a8.1,8.1 0 1,1 -16.2,0 h-0.9" fill="#31363B" fill-rule="evenodd"/>
<path d="M1,10a9,9 0 1,1 18,0 h-0.9 a8.1,8.1 0 1,0 -16.2,0 h-0.9" fill="#31363B" fill-rule="evenodd"/>
<svg width="100" height="100">
<circle cx="50" cy="50" r="35" stroke="#6a6e71" stroke-width="10" fill="none" />
</svg>

Before

Width:  |  Height:  |  Size: 341 B

After

Width:  |  Height:  |  Size: 121 B

6
light/right_arrow.svg Executable file → Normal file
View File

@ -1,3 +1,5 @@
<svg x="0px" y="0px" width="6px" height="9px" viewBox="0 0 6 9" enable-background="new 0 0 6 9" xml:space="preserve">
<path d="m 0.9166972,1.1894593 3.310321,3.3105408 -3.3117417,3.3105408 c -0.157702,0.1577125 -0.157702,0.4134624 0,0.5711749 0.157702,0.1577123 0.4134349,0.1577123 0.5711369,0 l 3.5973102,-3.5961283 0,0 0,0 c 0.1577019,-0.1577124 0.1577019,-0.4134624 0,-0.5711748 L 1.4864134,0.61828437 c -0.157702,-0.1577124 -0.4134349,-0.1577124 -0.5711369,0 -0.1562813,0.1577125 -0.1562813,0.41346243 0.00142,0.57117493 z" fill="#31363B"/>
<svg width="60" height="90">
<g transform="scale(10)">
<path d="m 0.9166972,1.1894593 3.310321,3.3105408 -3.3117417,3.3105408 c -0.157702,0.1577125 -0.157702,0.4134624 0,0.5711749 0.157702,0.1577123 0.4134349,0.1577123 0.5711369,0 l 3.5973102,-3.5961283 0,0 0,0 c 0.1577019,-0.1577124 0.1577019,-0.4134624 0,-0.5711748 L 1.4864134,0.61828437 c -0.157702,-0.1577124 -0.4134349,-0.1577124 -0.5711369,0 -0.1562813,0.1577125 -0.1562813,0.41346243 0.00142,0.57117493 z" fill="#31363b"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 554 B

After

Width:  |  Height:  |  Size: 502 B

6
light/right_arrow_disabled.svg Executable file → Normal file
View File

@ -1,3 +1,5 @@
<svg width="6" height="9">
<path d="m 0.9166972,1.1894593 3.310321,3.3105408 -3.3117417,3.3105408 c -0.157702,0.1577125 -0.157702,0.4134624 0,0.5711749 0.157702,0.1577123 0.4134349,0.1577123 0.5711369,0 l 3.5973102,-3.5961283 0,0 0,0 c 0.1577019,-0.1577124 0.1577019,-0.4134624 0,-0.5711748 L 1.4864134,0.61828437 c -0.157702,-0.1577124 -0.4134349,-0.1577124 -0.5711369,0 -0.1562813,0.1577125 -0.1562813,0.41346243 0.00142,0.57117493 z" fill="#b0b0b0"/>
<svg width="60" height="90">
<g transform="scale(10)">
<path d="m 0.9166972,1.1894593 3.310321,3.3105408 -3.3117417,3.3105408 c -0.157702,0.1577125 -0.157702,0.4134624 0,0.5711749 0.157702,0.1577123 0.4134349,0.1577123 0.5711369,0 l 3.5973102,-3.5961283 0,0 0,0 c 0.1577019,-0.1577124 0.1577019,-0.4134624 0,-0.5711748 L 1.4864134,0.61828437 c -0.157702,-0.1577124 -0.4134349,-0.1577124 -0.5711369,0 -0.1562813,0.1577125 -0.1562813,0.41346243 0.00142,0.57117493 z" fill="#bab9b8"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 463 B

After

Width:  |  Height:  |  Size: 502 B

6
light/sizegrip.svg Executable file → Normal file
View File

@ -1,3 +1,5 @@
<svg width="1000" height="1000">
<path fill="#b0b0b0" d="M22.1,1022.1L-22.1,977.9l1000-1000L1022.1,22.1Zm220,30L197.9,1007.9l1000-1000L1242.1,52.1Zm250,0L447.9,1007.9l1000-1000L1492.1,52.1Zm250,0L697.9,1007.9l1030-1030L1772.1,22.1Z"/>
<svg width="100" height="100">
<g transform="scale(0.1)">
<path fill="#bab9b8" d="M22.1,1022.1L-22.1,977.9l1000-1000L1022.1,22.1Zm220,30L197.9,1007.9l1000-1000L1242.1,52.1Zm250,0L447.9,1007.9l1000-1000L1492.1,52.1Zm250,0L697.9,1007.9l1030-1030L1772.1,22.1Z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 244 B

After

Width:  |  Height:  |  Size: 280 B

View File

@ -1,3 +0,0 @@
<svg width="9" height="6">
<path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#b0b0b0"/>
</svg>

Before

Width:  |  Height:  |  Size: 455 B

View File

@ -1,4 +0,0 @@
<svg width="81" height="58">
<rect id="VLine" fill="#bcbfc2" x="36" width="2" height="14"/>
<rect id="HLine" fill="#bcbfc2" x="65" y="28" height="1" width="28"/>
</svg>

Before

Width:  |  Height:  |  Size: 173 B

View File

@ -1,4 +0,0 @@
<svg width="81" height="58">
<rect id="VLine" fill="#bcbfc2" x="36" width="2" height="14"/>
<rect id="HLine" fill="#bcbfc2" x="65" y="28" height="1" width="28"/>
</svg>

Before

Width:  |  Height:  |  Size: 173 B

View File

@ -1,4 +0,0 @@
<svg width="81" height="58">
<rect id="VLine" fill="#bcbfc2" x="36" width="2" height="28"/>
<rect id="HLine" fill="#bcbfc2" x="36" y="28" height="1" width="57"/>
</svg>

Before

Width:  |  Height:  |  Size: 173 B

View File

@ -1,4 +0,0 @@
<svg width="81" height="58">
<rect id="VLine" fill="#bcbfc2" x="36" width="2" height="58"/>
<rect id="HLine" fill="#bcbfc2" x="36" y="30" height="1" width="44"/>
</svg>

Before

Width:  |  Height:  |  Size: 173 B

View File

@ -1,3 +0,0 @@
<svg width="81" height="58">
<rect fill="#bcbfc2" x="36" width="2" height="58"/>
</svg>

Before

Width:  |  Height:  |  Size: 90 B

File diff suppressed because it is too large Load Diff

0
light/transparent.svg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 30 B

After

Width:  |  Height:  |  Size: 30 B

View File

@ -1,5 +0,0 @@
<svg width="1000" height="1000" >
<path id="BottomCircle" d="M100,500 a250,250, 0, 1,0, 800,0 M775,500 L500,775 L225,500 z" fill="#a2a2a2" />
<path id="TopCircle" d="M900,500 a250,250, 0, 1,0, -800,0 M225,500 L500,225 L775,500 z" fill="#a2a2a2" />
<path id="Inside" d="M275,500 L 500,725 L 725,500 L 500,275 z" fill="#a2a2a2" />
</svg>

Before

Width:  |  Height:  |  Size: 343 B

6
light/undock.svg Executable file → Normal file
View File

@ -1,3 +1,5 @@
<svg width="1000" height="1000" >
<path d="M250,500 L 500,750 L 750,500 L 500,250 z" fill="none" stroke="#a2a2a2" stroke-width="50" />
<svg width="150" height="150" >
<g>
<path d="M 34.446565,74.553562 74.946563,115.05356 115.44657,74.553562 74.946563,34.053565 Z" fill="none" stroke="#a2a2a2" stroke-width="8.1" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 144 B

After

Width:  |  Height:  |  Size: 201 B

5
light/undock_hover.svg Normal file
View File

@ -0,0 +1,5 @@
<svg width="150" height="150" >
<g>
<path d="m 74.838633,26.399968 a 48.6,48.6 0 0 0 -48.438633,48.6 48.6,48.6 0 0 0 97.2,0 48.6,48.6 0 0 0 -48.761367,-48.6 z m -0.648633,11.34 36.45,36.45 L 74.19,110.63997 37.74,74.189968 Z" fill="#a2a2a2" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 261 B

View File

@ -1,3 +0,0 @@
<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
<path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#3daee9"/>
</svg>

Before

Width:  |  Height:  |  Size: 546 B

6
light/up_arrow.svg Executable file → Normal file
View File

@ -1,3 +1,5 @@
<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
<path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#31363B"/>
<svg width="90" height="60">
<g transform="scale(10)">
<path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#31363b" fill-opacity="1.0"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 546 B

After

Width:  |  Height:  |  Size: 513 B

6
light/up_arrow_disabled.svg Executable file → Normal file
View File

@ -1,3 +1,5 @@
<svg x="0px" y="0px" width="9px" height="6px" viewBox="0 0 9 6" enable-background="new 0 0 9 6" xml:space="preserve">
<path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#b0b0b0"/>
<svg width="90" height="60">
<g transform="scale(10)">
<path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#bab9b8" fill-opacity="1.0"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 546 B

After

Width:  |  Height:  |  Size: 513 B

5
light/up_arrow_hover.svg Normal file
View File

@ -0,0 +1,5 @@
<svg width="90" height="60">
<g transform="scale(10)">
<path d="M 1.1894592,5.0833028 4.5,1.7729818 7.8105408,5.0847235 c 0.1577125,0.157702 0.4134624,0.157702 0.5711749,0 0.1577124,-0.157702 0.1577124,-0.4134349 0,-0.5711369 l -3.5961283,-3.59731019 0,0 0,0 c -0.1577124,-0.1577019 -0.4134624,-0.1577019 -0.5711748,0 L 0.6182843,4.5135866 c -0.1577124,0.157702 -0.1577124,0.4134349 0,0.5711369 0.1577125,0.1562813 0.4134624,0.1562813 0.5711749,-0.00142 z" fill="#33a4df" fill-opacity="0.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 513 B

5
light/vline.svg Normal file
View File

@ -0,0 +1,5 @@
<svg width="405" height="290">
<g transform="scale(5)">
<rect fill="#4b4b4b" x="36" width="3" height="58"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 128 B

10
light/vmovetoolbar.svg Executable file → Normal file
View File

@ -1,8 +1,4 @@
<svg x="0px" y="0px" width="54px" height="10px" viewBox="0 0 54 10" enable-background="new 0 0 54 10" xml:space="preserve">
<rect id="Dark1" data-name="Dark1" fill="#292c31" x="16" y="1" width="4" height="8"/>
<rect id="Light1" data-name="Light1" fill="#7f8795" x="16" y="1" width="3" height="7"/>
<rect id="Dark2" data-name="Dark2" fill="#292c31" x="25" y="1" width="4" height="8"/>
<rect id="Light2" data-name="Light2" fill="#7f8795" x="25" y="1" width="3" height="7"/>
<rect id="Dark3" data-name="Dark3" fill="#292c31" x="34" y="1" width="4" height="8"/>
<rect id="Light3" data-name="Light3" fill="#7f8795" x="34" y="1" width="3" height="7"/>
<svg width="32" height="16">
<rect fill="#bab9b8" x="4" y="6" width="24" height="1"/>
<rect fill="#bab9b8" x="4" y="14" width="24" height="1"/>
</svg>

Before

Width:  |  Height:  |  Size: 665 B

After

Width:  |  Height:  |  Size: 159 B

View File

@ -1,7 +0,0 @@
<svg x="0px" y="0px" width="63px" height="7px" viewBox="0 0 63 7" enable-background="new 0 0 63 7" xml:space="preserve">
<rect id="Dark1" data-name="Dark1" fill="#292c31" x="25" y="1" width="1" height="5"/>
<rect id="Dark2" data-name="Dark2" fill="#292c31" x="38" y="1" width="1" height="5"/>
<rect id="Light1" data-name="Light1" fill="#7f8795" x="23" y="1" width="2" height="5"/>
<rect id="Light2" data-name="Light2" fill="#7f8795" x="30" y="1" width="2" height="5"/>
<rect id="Light3" data-name="Light3" fill="#7f8795" x="36" y="1" width="2" height="5"/>
</svg>

Before

Width:  |  Height:  |  Size: 574 B

3
light/vseptoolbar.svg Normal file
View File

@ -0,0 +1,3 @@
<svg width="32" height="16">
<rect fill="#bab9b8" x="4" y="8" width="24" height="1"/>
</svg>

After

Width:  |  Height:  |  Size: 97 B

View File

@ -757,7 +757,7 @@ QPushButton:disabled
QPushButton:focus
{
color: white;
color: ^foreground^;
}
QPushButton:pressed
@ -765,6 +765,7 @@ QPushButton:pressed
background-color: ^button:background:pressed^;
padding-top: -0.65em;
padding-bottom: -0.74em;
color: ^foreground^;
}
QComboBox
@ -782,8 +783,9 @@ QComboBox:editable
QPushButton:checked
{
background-color: ^midtone:dark^;
background-color: ^button:checked^;
border: 0.04em solid ^button:border^;
color: ^foreground^;
}
QPushButton:hover
@ -795,7 +797,7 @@ QPushButton:hover
QPushButton:checked:hover
{
background-color: ^midtone:dark^;
background-color: ^button:checked^;
border: 0.04em solid ^highlight^;
color: ^foreground^;
}
@ -939,7 +941,7 @@ QAbstractSpinBox::down-arrow:off
border-image: url(:/^style^/down_arrow_disabled.svg);
}
QAbstractSpinBox::down-arrow:hover
QAbstractSpinBox::down-arrow:!off:!disabled:hover
{
border-image: url(:/^style^/down_arrow_hover.svg);
}

945
test.py
View File

@ -30,6 +30,7 @@
'''
import argparse
import gc
import os
import random
import sys
@ -42,7 +43,7 @@ import breeze_resources
parser = argparse.ArgumentParser(description='Configurations for the Qt5 application.')
parser.add_argument(
'--widget',
help='''widget to test'''
help='''widget to test. can provide `all` to test all'''
)
parser.add_argument(
'--stylesheet',
@ -147,15 +148,489 @@ def splash_timer(splash, window):
splash.finish(window)
window.show()
def main(argv=None):
'Application entry point'
def test_progressbar_horizontal(widget, *_):
child = []
bar1 = QtWidgets.QProgressBar(widget)
bar1.setProperty('value', 0)
child.append(bar1)
bar2 = QtWidgets.QProgressBar(widget)
bar2.setProperty('value', 24)
child.append(bar2)
bar3 = QtWidgets.QProgressBar(widget)
bar3.setProperty('value', 99)
child.append(bar3)
bar4 = QtWidgets.QProgressBar(widget)
bar4.setProperty('value', 100)
child.append(bar4)
args, unknown = parser.parse_known_args(argv)
os.environ['QT_SCALE_FACTOR'] = str(args.scale)
if args.style != 'native':
style = QtWidgets.QStyleFactory.create(args.style)
QtWidgets.QApplication.setStyle(style)
app = QtWidgets.QApplication(argv[:1] + unknown)
return child
def test_progressbar_vertical(widget, *_):
layout_type = 'horizontal'
child = []
bar1 = QtWidgets.QProgressBar(widget)
bar1.setOrientation(QtCore.Qt.Vertical)
bar1.setProperty('value', 0)
child.append(bar1)
bar2 = QtWidgets.QProgressBar(widget)
bar2.setOrientation(QtCore.Qt.Vertical)
bar2.setProperty('value', 24)
child.append(bar2)
bar3 = QtWidgets.QProgressBar(widget)
bar3.setOrientation(QtCore.Qt.Vertical)
bar3.setProperty('value', 99)
child.append(bar3)
bar4 = QtWidgets.QProgressBar(widget)
bar4.setOrientation(QtCore.Qt.Vertical)
bar4.setProperty('value', 100)
child.append(bar4)
return child, layout_type
def test_slider_horizontal(widget, *_):
child = QtWidgets.QSlider(widget)
child.setOrientation(QtCore.Qt.Horizontal)
return child
def test_slider_vertical(widget, *_):
layout_type = 'horizontal'
child = QtWidgets.QSlider(widget)
child.setOrientation(QtCore.Qt.Vertical)
return child, layout_type
def test_splitter_horizontal(widget, *_):
child = QtWidgets.QSplitter(widget)
child.addWidget(QtWidgets.QListWidget())
child.addWidget(QtWidgets.QTreeWidget())
child.addWidget(QtWidgets.QTextEdit())
return child
def test_splitter_vertical(widget, *_):
layout_type = 'horizontal'
child = QtWidgets.QSplitter(widget)
child.setOrientation(QtCore.Qt.Vertical)
child.addWidget(QtWidgets.QListWidget())
child.addWidget(QtWidgets.QTreeWidget())
child.addWidget(QtWidgets.QTextEdit())
return child, layout_type
def test_menu(widget, window, font, width, *_):
child = QtWidgets.QMenuBar(window)
child.setGeometry(QtCore.QRect(0, 0, width, int(1.5 * font.pointSize())))
menu = QtWidgets.QMenu('Main Menu', child)
menu.addAction(QtWidgets.QAction('&Action 1', window))
menu.addAction(QtWidgets.QAction('&Action 2', window))
submenu = QtWidgets.QMenu('Sub Menu', menu)
submenu.addAction(QtWidgets.QAction('&Action 3', window))
action1 = QtWidgets.QAction('&Action 4', window)
action1.setCheckable(True)
submenu.addAction(action1)
menu.addAction(submenu.menuAction())
action2 = QtWidgets.QAction('&Action 5', window)
action2.setCheckable(True)
action2.setChecked(True)
menu.addSeparator()
menu.addAction(action2)
action3 = QtWidgets.QAction('&Action 6', window)
action3.setCheckable(True)
menu.addAction(action3)
icon = QtGui.QIcon(':/dark/close.svg')
menu.addAction(QtWidgets.QAction(icon, '&Action 7', window))
menu.addAction(QtWidgets.QAction(icon, '&Action 8', window))
submenu.addAction(QtWidgets.QAction(icon, '&Action 9', window))
child.addAction(menu.menuAction())
window.setMenuBar(child)
return child
def test_statusbar(_, window, *__):
child = QtWidgets.QStatusBar(window)
window.setStatusBar(child)
return child
def test_spinbox(widget, *_):
layout_type = 'horizontal'
child = []
spin1 = QtWidgets.QSpinBox(widget)
spin1.setValue(10)
child.append(spin1)
spin2 = QtWidgets.QSpinBox(widget)
spin2.setValue(10)
spin2.setEnabled(False)
child.append(spin2)
return child, layout_type
def test_double_spinbox(widget, *_):
layout_type = 'horizontal'
child = []
spin1 = QtWidgets.QDoubleSpinBox(widget)
spin1.setValue(10.5)
child.append(spin1)
spin2 = QtWidgets.QDoubleSpinBox(widget)
spin2.setValue(10.5)
spin2.setEnabled(False)
child.append(spin2)
return child, layout_type
def test_combobox(widget, *_):
layout_type = 'horizontal'
child = []
combo1 = QtWidgets.QComboBox(widget)
combo1.addItem('Item 1')
combo1.addItem('Item 2')
child.append(combo1)
combo2 = QtWidgets.QComboBox(widget)
combo2.addItem('Very Very Long Item 1')
combo2.addItem('Very Very Long Item 2')
child.append(combo2)
combo3 = QtWidgets.QComboBox(widget)
combo3.setEditable(True)
combo3.addItem('Edit 1')
combo3.addItem('Edit 2')
child.append(combo3)
return child, layout_type
def _test_tabwidget(widget, position):
child = QtWidgets.QTabWidget(widget)
child.setTabPosition(position)
child.addTab(QtWidgets.QWidget(), 'Tab 1')
child.addTab(QtWidgets.QWidget(), 'Tab 2')
child.addTab(QtWidgets.QWidget(), 'Tab 3')
return child
def test_tabwidget_top(widget, *_):
return _test_tabwidget(widget, QtWidgets.QTabWidget.North)
def test_tabwidget_left(widget, *_):
return _test_tabwidget(widget, QtWidgets.QTabWidget.West)
def test_tabwidget_right(widget, *_):
return _test_tabwidget(widget, QtWidgets.QTabWidget.East)
def test_tabwidget_bottom(widget, *_):
return _test_tabwidget(widget, QtWidgets.QTabWidget.South)
def test_closable_tabwidget(widget, *_):
child = _test_tabwidget(widget, QtWidgets.QTabWidget.East)
child.setTabsClosable(True)
return child
def test_dock(_, window, *__):
dock1 = QtWidgets.QDockWidget('&Dock widget 1', window)
dock2 = QtWidgets.QDockWidget('&Dock widget 2', window)
window.addDockWidget(QtCore.Qt.DockWidgetArea(QtCore.Qt.LeftDockWidgetArea), dock1)
window.addDockWidget(QtCore.Qt.DockWidgetArea(QtCore.Qt.LeftDockWidgetArea), dock2)
window.tabifyDockWidget(dock1, dock2)
def test_radio(widget, *_):
child = []
widget_type = QtWidgets.QRadioButton
child.append(abstract_button(widget_type, widget))
child.append(abstract_button(widget_type, widget, checked=True))
child.append(abstract_button(widget_type, widget, enabled=False))
child.append(abstract_button(widget_type, widget, checked=True, enabled=False))
child.append(abstract_button(widget_type, widget, 'With Text'))
return child
def test_checkbox(widget, _, __, ___, ____, app):
child = []
widget_type = QtWidgets.QCheckBox
child.append(abstract_button(widget_type, widget))
child.append(abstract_button(widget_type, widget, checked=True))
child.append(abstract_button(widget_type, widget, checked=QtCore.Qt.PartiallyChecked))
child.append(abstract_button(widget_type, widget, enabled=False))
child.append(abstract_button(widget_type, widget, checked=True, enabled=False))
child.append(abstract_button(widget_type, widget, checked=QtCore.Qt.PartiallyChecked, enabled=False))
child.append(abstract_button(widget_type, widget, 'With Text'))
child.append(abstract_button(widget_type, widget, 'With Large Text'))
checkbox_font = app.font()
checkbox_font.setPointSizeF(50.0)
child[-1].setFont(checkbox_font)
return child
def test_table(widget, *_):
child = QtWidgets.QTableWidget(widget)
child.setColumnCount(2)
child.setRowCount(4)
item = QtWidgets.QTableWidgetItem('Row 1')
child.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem('Row 2')
child.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem('Row 3')
child.setVerticalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem('Row 4')
child.setVerticalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem('Column 1')
child.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem('Column 2')
child.setHorizontalHeaderItem(1, item)
return child
def test_sortable_table(widget, *_):
child = test_table(widget)
child.setSortingEnabled(True)
return child
def test_list(widget, *_):
alignments = [QtCore.Qt.AlignLeft, QtCore.Qt.AlignRight, QtCore.Qt.AlignHCenter]
child = QtWidgets.QListWidget(widget)
for index in range(10):
item = QtWidgets.QListWidgetItem(f'Item {index + 1}')
item.setTextAlignment(random.choice(alignments))
child.addItem(item)
icon = QtGui.QIcon(':/dark/close.svg')
for index in range(10):
item = QtWidgets.QListWidgetItem(icon, f'Item {index + 1}')
item.setTextAlignment(random.choice(alignments))
child.addItem(item)
return child
def test_scrollbar_vertical(widget, *_):
child = QtWidgets.QListWidget(widget)
for index in range(100):
child.addItem(QtWidgets.QListWidgetItem(f'Item {index + 1}'))
return child
def test_scrollbar_horizontal(widget, *_):
child = QtWidgets.QTableWidget(widget)
child.setColumnCount(100)
child.setRowCount(1)
item = QtWidgets.QTableWidgetItem(f'Row 1')
child.setVerticalHeaderItem(0, item)
for index in range(100):
item = QtWidgets.QTableWidgetItem(f'Column {index + 1}')
child.setHorizontalHeaderItem(index, item)
return child
def test_toolbar(_, window, *__):
toolbar1 = QtWidgets.QToolBar('Toolbar')
toolbar1.addAction('&Action 1')
toolbar1.addAction('&Action 2')
toolbar1.addSeparator()
toolbar1.addAction('&Action 3')
toolbar1.addAction('&Action 3 Really Long Name')
icon = QtGui.QIcon(':/dark/close.svg')
toolbar1.addAction(icon, '&Action 4')
window.addToolBar(QtCore.Qt.TopToolBarArea, toolbar1)
toolbar2 = QtWidgets.QToolBar('Toolbar')
toolbar2.setOrientation(QtCore.Qt.Vertical)
toolbar2.addAction('&Action 1')
toolbar2.addAction('&Action 2')
toolbar2.addSeparator()
toolbar2.addAction('&Action 3')
toolbar2.addAction('&Action 3 Really Long Name')
icon = QtGui.QIcon(':/dark/close.svg')
toolbar2.addAction(icon, '&Action 4')
window.addToolBar(QtCore.Qt.LeftToolBarArea, toolbar2)
return None, None
def test_toolbutton(widget, window, *_):
layout_type = 'horizontal'
child = [
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
]
window.setTabOrder(child[0], child[1])
window.setTabOrder(child[1], child[2])
window.setTabOrder(child[2], child[3])
window.setTabOrder(child[3], child[4])
window.setTabOrder(child[4], child[5])
window.setTabOrder(child[5], child[6])
window.setTabOrder(child[6], child[7])
child[0].setText('Simple ToolButton')
child[1].setText('Action Toolbutton')
child[2].setText('Menu Toolbutton')
child[3].setText('Instant Toolbutton')
child[1].addActions([
QtWidgets.QAction('&Action 5', window),
QtWidgets.QAction('&Action 6', window),
])
child[2].setPopupMode(QtWidgets.QToolButton.MenuButtonPopup)
child[2].addActions([
QtWidgets.QAction('&Action 9', window),
QtWidgets.QAction('&Action 10', window),
])
child[3].setPopupMode(QtWidgets.QToolButton.InstantPopup)
child[3].addActions([
QtWidgets.QAction('&Action 11', window),
QtWidgets.QAction('&Action 12', window),
])
child[4].setArrowType(QtCore.Qt.LeftArrow)
child[5].setArrowType(QtCore.Qt.RightArrow)
child[6].setArrowType(QtCore.Qt.UpArrow)
child[7].setArrowType(QtCore.Qt.DownArrow)
icon = QtGui.QIcon(':/dark/close.svg')
child[8].setIcon(icon)
return child, layout_type
def test_pushbutton(widget, *_):
layout_type = 'horizontal'
child = []
widget_type = QtWidgets.QPushButton
child.append(abstract_button(widget_type, widget, 'Button 1', checked=True))
child.append(abstract_button(widget_type, widget, 'Button 2', enabled=False))
child.append(abstract_button(widget_type, widget, 'Button 3', checkable=False))
icon = QtGui.QIcon(':/dark/close.svg')
child.append(abstract_button(widget_type, widget, icon, 'Button 4', checkable=False))
return child, layout_type
def test_tree(widget, *_):
child = []
tree1 = QtWidgets.QTreeWidget(widget)
tree1.setHeaderLabel('Tree 1')
item1 = QtWidgets.QTreeWidgetItem(tree1, ['Row 1'])
item2 = QtWidgets.QTreeWidgetItem(tree1, ['Row 2'])
item3 = QtWidgets.QTreeWidgetItem(item2, ['Row 2.1'])
item3.setFlags(item3.flags() | QtCore.Qt.ItemIsUserCheckable)
item3.setCheckState(0, QtCore.Qt.Unchecked)
item4 = QtWidgets.QTreeWidgetItem(item2, ['Row 2.2'])
item5 = QtWidgets.QTreeWidgetItem(item4, ['Row 2.2.1'])
item6 = QtWidgets.QTreeWidgetItem(item5, ['Row 2.2.1.1'])
item7 = QtWidgets.QTreeWidgetItem(item5, ['Row 2.2.1.2'])
item7.setFlags(item7.flags() | QtCore.Qt.ItemIsUserCheckable)
item7.setCheckState(0, QtCore.Qt.Checked)
item8 = QtWidgets.QTreeWidgetItem(item2, ['Row 2.3'])
item8.setFlags(item8.flags() | QtCore.Qt.ItemIsUserTristate)
item8.setCheckState(0, QtCore.Qt.PartiallyChecked)
item9 = QtWidgets.QTreeWidgetItem(tree1, ['Row 3'])
item10 = QtWidgets.QTreeWidgetItem(item9, ['Row 3.1'])
item11 = QtWidgets.QTreeWidgetItem(tree1, ['Row 4'])
child.append(tree1)
tree2 = QtWidgets.QTreeWidget(widget)
tree2.setHeaderLabel('Tree 2')
tree2.header().setSectionsClickable(True)
item12 = QtWidgets.QTreeWidgetItem(tree2, ['Row 1', 'Column 2', 'Column 3'])
child.append(tree2)
return child
def test_view_scrollarea(widget, *_):
# For us to have both scrollbars visible.
child = QtWidgets.QTableWidget(widget)
child.setColumnCount(100)
child.setRowCount(100)
for index in range(100):
row = QtWidgets.QTableWidgetItem(f'Row {index + 1}')
child.setVerticalHeaderItem(0, row)
column = QtWidgets.QTableWidgetItem(f'Column {index + 1}')
child.setHorizontalHeaderItem(index, column)
return child
def test_widget_scrollarea(widget, window, *_):
child = QtWidgets.QProgressBar(widget)
child.setProperty('value', 24)
window.resize(30, 30)
return child
def test_frame(widget, *_):
child = []
text = QtWidgets.QTextEdit()
text.setPlainText('Hello world\nTesting lines')
child.append(text)
table = QtWidgets.QTableWidget()
table.setColumnCount(5)
table.setRowCount(5)
child.append(table)
return child
def test_groupbox(widget, *_):
child = []
child.append(QtWidgets.QGroupBox('Groupbox 1', widget))
checkable = QtWidgets.QGroupBox('Groupbox 2', widget)
checkable.setCheckable(True)
child.append(checkable)
vbox = QtWidgets.QVBoxLayout(checkable)
vbox.setAlignment(QtCore.Qt.AlignHCenter)
vbox.addWidget(QtWidgets.QLineEdit('Sample Label'))
return child
def test_toolbox(widget, *_):
# Test alignment with another item, in a vertical layout.
child = []
child.append(QtWidgets.QGroupBox('Groupbox', widget))
child.append(QtWidgets.QGroupBox('Really, really long groupbox', widget))
toolbox = QtWidgets.QToolBox(widget)
child.append(toolbox)
page1 = QtWidgets.QWidget()
toolbox.addItem(page1, 'Page 1')
page2 = QtWidgets.QWidget()
vbox = QtWidgets.QVBoxLayout(page2)
vbox.addWidget(QtWidgets.QLabel('Sample Label'))
toolbox.addItem(page2, 'Page 2')
page3 = QtWidgets.QWidget()
toolbox.addItem(page3, 'Really, really long page 3')
return child
def test_menubutton(widget, window, *_):
child = QtWidgets.QToolButton(widget)
child.setText('Menu Toolbutton')
child.setPopupMode(QtWidgets.QToolButton.MenuButtonPopup)
child.addActions([
QtWidgets.QAction('&Action 9', window),
QtWidgets.QAction('&Action 10', window),
])
return child
def test_tooltip(widget, *_):
child = QtWidgets.QPushButton('Sample Label')
child.setToolTip('Sample Tooltip')
return child
def test_splashscreen(_, window, __, ___, ____, app):
pixmap = QtGui.QPixmap('assets/Yellowstone.jpg')
size = app.screens()[0].size()
scaled = pixmap.scaled(size, QtCore.Qt.KeepAspectRatio)
splash = QtWidgets.QSplashScreen(scaled)
splash.show()
QtCore.QTimer.singleShot(2000, lambda: splash_timer(splash, window))
return None, None, False
def test_calendar(widget, *_):
child = QtWidgets.QCalendarWidget(widget)
child.setGridVisible(True)
return child
def test(args, qtargv, test_widget):
'''Test a single widget.'''
app = QtWidgets.QApplication(qtargv)
# use the default font size
font = app.font()
@ -182,419 +657,29 @@ def main(argv=None):
scroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
scroll.setWidgetResizable(True)
# Load the correct widget.
# Get the correct parameters for our test widget.
try:
function = globals()[f'test_{test_widget}']
except KeyError:
raise NotImplementedError(f'test for {test_widget} not implemented')
result = function(widget, window, font, args.width, args.height, app)
child = []
layout_type = 'vertical'
if args.widget == 'progress_bar_horizontal':
child = []
bar1 = QtWidgets.QProgressBar(widget)
bar1.setProperty('value', 0)
child.append(bar1)
bar2 = QtWidgets.QProgressBar(widget)
bar2.setProperty('value', 24)
child.append(bar2)
bar3 = QtWidgets.QProgressBar(widget)
bar3.setProperty('value', 99)
child.append(bar3)
bar4 = QtWidgets.QProgressBar(widget)
bar4.setProperty('value', 100)
child.append(bar4)
elif args.widget == 'progress_bar_vertical':
layout_type = 'horizontal'
child = []
bar1 = QtWidgets.QProgressBar(widget)
bar1.setOrientation(QtCore.Qt.Vertical)
bar1.setProperty('value', 0)
child.append(bar1)
bar2 = QtWidgets.QProgressBar(widget)
bar2.setOrientation(QtCore.Qt.Vertical)
bar2.setProperty('value', 24)
child.append(bar2)
bar3 = QtWidgets.QProgressBar(widget)
bar3.setOrientation(QtCore.Qt.Vertical)
bar3.setProperty('value', 99)
child.append(bar3)
bar4 = QtWidgets.QProgressBar(widget)
bar4.setOrientation(QtCore.Qt.Vertical)
bar4.setProperty('value', 100)
child.append(bar4)
elif args.widget == 'slider_horizontal':
child = QtWidgets.QSlider(widget)
child.setOrientation(QtCore.Qt.Horizontal)
elif args.widget == 'slider_vertical':
layout_type = 'horizontal'
child = QtWidgets.QSlider(widget)
child.setOrientation(QtCore.Qt.Vertical)
elif args.widget == 'splitter_horizontal':
layout_type = 'vertical'
child = QtWidgets.QSplitter(widget)
child.addWidget(QtWidgets.QListWidget())
child.addWidget(QtWidgets.QTreeWidget())
child.addWidget(QtWidgets.QTextEdit())
elif args.widget == 'splitter_vertical':
layout_type = 'horizontal'
child = QtWidgets.QSplitter(widget)
child.setOrientation(QtCore.Qt.Vertical)
child.addWidget(QtWidgets.QListWidget())
child.addWidget(QtWidgets.QTreeWidget())
child.addWidget(QtWidgets.QTextEdit())
elif args.widget == 'menu':
child = QtWidgets.QMenuBar(window)
child.setGeometry(QtCore.QRect(0, 0, args.width, int(1.5 * font.pointSize())))
menu = QtWidgets.QMenu('Main Menu', child)
menu.addAction(QtWidgets.QAction('&Action 1', window))
menu.addAction(QtWidgets.QAction('&Action 2', window))
submenu = QtWidgets.QMenu('Sub Menu', menu)
submenu.addAction(QtWidgets.QAction('&Action 3', window))
action1 = QtWidgets.QAction('&Action 4', window)
action1.setCheckable(True)
submenu.addAction(action1)
menu.addAction(submenu.menuAction())
action2 = QtWidgets.QAction('&Action 5', window)
action2.setCheckable(True)
action2.setChecked(True)
menu.addSeparator()
menu.addAction(action2)
action3 = QtWidgets.QAction('&Action 6', window)
action3.setCheckable(True)
menu.addAction(action3)
icon = QtGui.QIcon(':/dark/close.svg')
menu.addAction(QtWidgets.QAction(icon, '&Action 7', window))
menu.addAction(QtWidgets.QAction(icon, '&Action 8', window))
submenu.addAction(QtWidgets.QAction(icon, '&Action 9', window))
child.addAction(menu.menuAction())
window.setMenuBar(child)
elif args.widget == 'status_bar':
child = QtWidgets.QStatusBar(window)
window.setStatusBar(child)
elif args.widget == 'spinbox':
layout_type = 'horizontal'
child = []
spin1 = QtWidgets.QSpinBox(window)
spin1.setValue(10)
child.append(spin1)
spin2 = QtWidgets.QSpinBox(window)
spin2.setValue(10)
spin2.setEnabled(False)
child.append(spin2)
elif args.widget == 'double_spinbox':
layout_type = 'horizontal'
child = []
spin1 = QtWidgets.QDoubleSpinBox(window)
spin1.setValue(10.5)
child.append(spin1)
spin2 = QtWidgets.QDoubleSpinBox(window)
spin2.setValue(10.5)
spin2.setEnabled(False)
child.append(spin2)
elif args.widget == 'combobox':
layout_type = 'horizontal'
child = []
combo1 = QtWidgets.QComboBox(widget)
combo1.addItem('Item 1')
combo1.addItem('Item 2')
child.append(combo1)
combo2 = QtWidgets.QComboBox(widget)
combo2.addItem('Very Very Long Item 1')
combo2.addItem('Very Very Long Item 2')
child.append(combo2)
combo3 = QtWidgets.QComboBox(widget)
combo3.setEditable(True)
combo3.addItem('Edit 1')
combo3.addItem('Edit 2')
child.append(combo3)
elif args.widget == 'tab_widget_top':
child = QtWidgets.QTabWidget(widget)
child.setTabPosition(QtWidgets.QTabWidget.North)
child.addTab(QtWidgets.QWidget(), 'Tab 1')
child.addTab(QtWidgets.QWidget(), 'Tab 2')
child.addTab(QtWidgets.QWidget(), 'Tab 3')
elif args.widget == 'tab_widget_left':
child = QtWidgets.QTabWidget(widget)
child.setTabPosition(QtWidgets.QTabWidget.West)
child.addTab(QtWidgets.QWidget(), 'Tab 1')
child.addTab(QtWidgets.QWidget(), 'Tab 2')
child.addTab(QtWidgets.QWidget(), 'Tab 3')
elif args.widget == 'tab_widget_right':
child = QtWidgets.QTabWidget(widget)
child.setTabPosition(QtWidgets.QTabWidget.East)
child.addTab(QtWidgets.QWidget(), 'Tab 1')
child.addTab(QtWidgets.QWidget(), 'Tab 2')
child.addTab(QtWidgets.QWidget(), 'Tab 3')
elif args.widget == 'tab_widget_bottom':
child = QtWidgets.QTabWidget(widget)
child.setTabPosition(QtWidgets.QTabWidget.South)
child.addTab(QtWidgets.QWidget(), 'Tab 1')
child.addTab(QtWidgets.QWidget(), 'Tab 2')
child.addTab(QtWidgets.QWidget(), 'Tab 3')
elif args.widget == 'closable_tab_widget':
child = QtWidgets.QTabWidget(widget)
child.setTabPosition(QtWidgets.QTabWidget.East)
child.setTabsClosable(True)
child.addTab(QtWidgets.QWidget(), 'Tab 1')
child.addTab(QtWidgets.QWidget(), 'Tab 2')
child.addTab(QtWidgets.QWidget(), 'Tab 3')
elif args.widget == 'dock':
child = []
dock1 = QtWidgets.QDockWidget('&Dock widget 1', window)
dock2 = QtWidgets.QDockWidget('&Dock widget 2', window)
window.addDockWidget(QtCore.Qt.DockWidgetArea(QtCore.Qt.LeftDockWidgetArea), dock1)
window.addDockWidget(QtCore.Qt.DockWidgetArea(QtCore.Qt.LeftDockWidgetArea), dock2)
window.tabifyDockWidget(dock1, dock2)
elif args.widget == 'radio':
child = []
child.append(abstract_button(QtWidgets.QRadioButton, widget))
child.append(abstract_button(QtWidgets.QRadioButton, widget, checked=True))
child.append(abstract_button(QtWidgets.QRadioButton, widget, enabled=False))
child.append(abstract_button(QtWidgets.QRadioButton, widget, checked=True, enabled=False))
child.append(abstract_button(QtWidgets.QRadioButton, widget, 'With Text'))
elif args.widget == 'checkbox':
child = []
child.append(abstract_button(QtWidgets.QCheckBox, widget))
child.append(abstract_button(QtWidgets.QCheckBox, widget, checked=True))
child.append(abstract_button(QtWidgets.QCheckBox, widget, checked=QtCore.Qt.PartiallyChecked))
child.append(abstract_button(QtWidgets.QCheckBox, widget, enabled=False))
child.append(abstract_button(QtWidgets.QCheckBox, widget, checked=True, enabled=False))
child.append(abstract_button(QtWidgets.QCheckBox, widget, checked=QtCore.Qt.PartiallyChecked, enabled=False))
child.append(abstract_button(QtWidgets.QCheckBox, widget, 'With Text'))
child.append(abstract_button(QtWidgets.QCheckBox, widget, 'With Large Text'))
checkbox_font = app.font()
checkbox_font.setPointSizeF(50.0)
child[-1].setFont(checkbox_font)
elif args.widget == 'table':
child = QtWidgets.QTableWidget(widget)
child.setColumnCount(2)
child.setRowCount(4)
item = QtWidgets.QTableWidgetItem('Row 1')
child.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem('Row 2')
child.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem('Row 3')
child.setVerticalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem('Row 4')
child.setVerticalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem('Column 1')
child.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem('Column 2')
child.setHorizontalHeaderItem(1, item)
elif args.widget == 'sortable_table':
child = QtWidgets.QTableWidget(widget)
child.setSortingEnabled(True)
child.setColumnCount(2)
child.setRowCount(4)
item = QtWidgets.QTableWidgetItem('Row 1')
child.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem('Row 2')
child.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem('Row 3')
child.setVerticalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem('Row 4')
child.setVerticalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem('Column 1')
child.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem('Column 2')
child.setHorizontalHeaderItem(1, item)
elif args.widget == 'list':
child = QtWidgets.QListWidget(widget)
for index in range(10):
item = QtWidgets.QListWidgetItem(f'Item {index + 1}')
item.setTextAlignment(random.choice([QtCore.Qt.AlignLeft, QtCore.Qt.AlignRight, QtCore.Qt.AlignHCenter]))
child.addItem(item)
icon = QtGui.QIcon(':/dark/close.svg')
for index in range(10):
item = QtWidgets.QListWidgetItem(icon, f'Item {index + 1}')
item.setTextAlignment(random.choice([QtCore.Qt.AlignLeft, QtCore.Qt.AlignRight, QtCore.Qt.AlignHCenter]))
child.addItem(item)
elif args.widget == 'scrollbar_vertical':
child = QtWidgets.QListWidget(widget)
for index in range(100):
child.addItem(QtWidgets.QListWidgetItem(f'Item {index + 1}'))
elif args.widget == 'scrollbar_horizontal':
child = QtWidgets.QTableWidget(widget)
child.setColumnCount(100)
child.setRowCount(1)
item = QtWidgets.QTableWidgetItem(f'Row 1')
child.setVerticalHeaderItem(0, item)
for index in range(100):
item = QtWidgets.QTableWidgetItem(f'Column {index + 1}')
child.setHorizontalHeaderItem(index, item)
elif args.widget == 'toolbar':
layout_type = None
child = []
toolbar1 = QtWidgets.QToolBar('Toolbar')
toolbar1.addAction('&Action 1')
toolbar1.addAction('&Action 2')
toolbar1.addSeparator()
toolbar1.addAction('&Action 3')
toolbar1.addAction('&Action 3 Really Long Name')
icon = QtGui.QIcon(':/dark/close.svg')
toolbar1.addAction(icon, '&Action 4')
window.addToolBar(QtCore.Qt.TopToolBarArea, toolbar1)
toolbar2 = QtWidgets.QToolBar('Toolbar')
toolbar2.setOrientation(QtCore.Qt.Vertical)
toolbar2.addAction('&Action 1')
toolbar2.addAction('&Action 2')
toolbar2.addSeparator()
toolbar2.addAction('&Action 3')
toolbar2.addAction('&Action 3 Really Long Name')
icon = QtGui.QIcon(':/dark/close.svg')
toolbar2.addAction(icon, '&Action 4')
window.addToolBar(QtCore.Qt.LeftToolBarArea, toolbar2)
elif args.widget == 'toolbutton':
layout_type = 'horizontal'
child = [
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
QtWidgets.QToolButton(widget),
]
window.setTabOrder(child[0], child[1])
window.setTabOrder(child[1], child[2])
window.setTabOrder(child[2], child[3])
window.setTabOrder(child[3], child[4])
window.setTabOrder(child[4], child[5])
window.setTabOrder(child[5], child[6])
window.setTabOrder(child[6], child[7])
child[0].setText('Simple ToolButton')
child[1].setText('Action Toolbutton')
child[2].setText('Menu Toolbutton')
child[3].setText('Instant Toolbutton')
child[1].addActions([
QtWidgets.QAction('&Action 5', window),
QtWidgets.QAction('&Action 6', window),
])
child[2].setPopupMode(QtWidgets.QToolButton.MenuButtonPopup)
child[2].addActions([
QtWidgets.QAction('&Action 9', window),
QtWidgets.QAction('&Action 10', window),
])
child[3].setPopupMode(QtWidgets.QToolButton.InstantPopup)
child[3].addActions([
QtWidgets.QAction('&Action 11', window),
QtWidgets.QAction('&Action 12', window),
])
child[4].setArrowType(QtCore.Qt.LeftArrow)
child[5].setArrowType(QtCore.Qt.RightArrow)
child[6].setArrowType(QtCore.Qt.UpArrow)
child[7].setArrowType(QtCore.Qt.DownArrow)
icon = QtGui.QIcon(':/dark/close.svg')
child[8].setIcon(icon)
elif args.widget == 'pushbutton':
layout_type = 'horizontal'
child = []
child.append(abstract_button(QtWidgets.QPushButton, widget, 'Button 1', checked=True))
child.append(abstract_button(QtWidgets.QPushButton, widget, 'Button 2', enabled=False))
child.append(abstract_button(QtWidgets.QPushButton, widget, 'Button 3', checkable=False))
icon = QtGui.QIcon(':/dark/close.svg')
child.append(abstract_button(QtWidgets.QPushButton, widget, icon, 'Button 4', checkable=False))
elif args.widget == 'tree':
child = []
tree1 = QtWidgets.QTreeWidget(widget)
tree1.setHeaderLabel('Tree 1')
item1 = QtWidgets.QTreeWidgetItem(tree1, ['Row 1'])
item2 = QtWidgets.QTreeWidgetItem(tree1, ['Row 2'])
item3 = QtWidgets.QTreeWidgetItem(item2, ['Row 2.1'])
item3.setFlags(item3.flags() | QtCore.Qt.ItemIsUserCheckable)
item3.setCheckState(0, QtCore.Qt.Unchecked)
item4 = QtWidgets.QTreeWidgetItem(item2, ['Row 2.2'])
item5 = QtWidgets.QTreeWidgetItem(item4, ['Row 2.2.1'])
item6 = QtWidgets.QTreeWidgetItem(item5, ['Row 2.2.1.1'])
item7 = QtWidgets.QTreeWidgetItem(item5, ['Row 2.2.1.2'])
item7.setFlags(item7.flags() | QtCore.Qt.ItemIsUserCheckable)
item7.setCheckState(0, QtCore.Qt.Checked)
item8 = QtWidgets.QTreeWidgetItem(item2, ['Row 2.3'])
item8.setFlags(item8.flags() | QtCore.Qt.ItemIsUserTristate)
item8.setCheckState(0, QtCore.Qt.PartiallyChecked)
item9 = QtWidgets.QTreeWidgetItem(tree1, ['Row 3'])
item10 = QtWidgets.QTreeWidgetItem(item9, ['Row 3.1'])
item11 = QtWidgets.QTreeWidgetItem(tree1, ['Row 4'])
child.append(tree1)
tree2 = QtWidgets.QTreeWidget(widget)
tree2.setHeaderLabel('Tree 2')
tree2.header().setSectionsClickable(True)
item12 = QtWidgets.QTreeWidgetItem(tree2, ['Row 1', 'Column 2', 'Column 3'])
child.append(tree2)
elif args.widget == 'view_scrollarea':
# For us to have both scrollbars visible.
child = QtWidgets.QTableWidget(widget)
child.setColumnCount(100)
child.setRowCount(100)
for index in range(100):
row = QtWidgets.QTableWidgetItem(f'Row {index + 1}')
child.setVerticalHeaderItem(0, row)
column = QtWidgets.QTableWidgetItem(f'Column {index + 1}')
child.setHorizontalHeaderItem(index, column)
elif args.widget == 'widget_scrollarea':
child = QtWidgets.QProgressBar(widget)
child.setProperty('value', 24)
window.resize(30, 30)
elif args.widget == 'frame':
child = []
text = QtWidgets.QTextEdit()
text.setPlainText('Hello world\nTesting lines')
child.append(text)
table = QtWidgets.QTableWidget()
table.setColumnCount(5)
table.setRowCount(5)
child.append(table)
elif args.widget == 'groupbox':
child = []
child.append(QtWidgets.QGroupBox('Groupbox 1', widget))
checkable = QtWidgets.QGroupBox('Groupbox 2', widget)
checkable.setCheckable(True)
child.append(checkable)
vbox = QtWidgets.QVBoxLayout(checkable)
vbox.setAlignment(QtCore.Qt.AlignHCenter)
vbox.addWidget(QtWidgets.QLineEdit('Sample Label'))
elif args.widget == 'toolbox':
# Test alignment with another item, in a vertical layout.
child = []
child.append(QtWidgets.QGroupBox('Groupbox', widget))
child.append(QtWidgets.QGroupBox('Really, really long groupbox', widget))
toolbox = QtWidgets.QToolBox(widget)
child.append(toolbox)
page1 = QtWidgets.QWidget()
toolbox.addItem(page1, 'Page 1')
page2 = QtWidgets.QWidget()
vbox = QtWidgets.QVBoxLayout(page2)
vbox.addWidget(QtWidgets.QLabel('Sample Label'))
toolbox.addItem(page2, 'Page 2')
page3 = QtWidgets.QWidget()
toolbox.addItem(page3, 'Really, really long page 3')
elif args.widget == 'menubutton':
child = QtWidgets.QToolButton(widget)
child.setText('Menu Toolbutton')
child.setPopupMode(QtWidgets.QToolButton.MenuButtonPopup)
child.addActions([
QtWidgets.QAction('&Action 9', window),
QtWidgets.QAction('&Action 10', window),
])
elif args.widget == 'tooltip':
child = QtWidgets.QPushButton('Sample Label')
child.setToolTip('Sample Tooltip')
elif args.widget == 'splashscreen':
# This doesn't work with a central widget.
# Handle the run here.
pixmap = QtGui.QPixmap('assets/Yellowstone.jpg')
size = app.screens()[0].size()
scaled = pixmap.scaled(size, QtCore.Qt.KeepAspectRatio)
splash = QtWidgets.QSplashScreen(scaled)
splash.show()
QtCore.QTimer.singleShot(2000, lambda: splash_timer(splash, window))
return app.exec()
elif args.widget == 'calendar':
child = QtWidgets.QCalendarWidget(widget)
child.setGridVisible(True)
show_window = True
if result and isinstance(result, list):
# Have a single value passed as a list
child = result
elif isinstance(result, tuple):
child = result[0]
else:
raise NotImplementedError
child = result
if isinstance(result, tuple) and len(result) >= 2:
layout_type = result[1]
if isinstance(result, tuple) and len(result) >= 3:
show_window = result[2]
# Add the widgets to the layout.
if layout_type is not None:
if layout_type is not None and child is not None:
widget_layout = layout[layout_type]()
if args.compress:
widget_layout.addStretch(1)
@ -609,8 +694,30 @@ def main(argv=None):
window.setCentralWidget(scroll)
# run
window.show()
if show_window:
window.show()
return app.exec_()
def main(argv=None):
'Application entry point'
# Disable garbage collection to avoid runtime errors.
gc.disable()
args, unknown = parser.parse_known_args(argv)
os.environ['QT_SCALE_FACTOR'] = str(args.scale)
if args.style != 'native':
style = QtWidgets.QStyleFactory.create(args.style)
QtWidgets.QApplication.setStyle(style)
if args.widget == 'all':
all_tests = [i for i in globals().keys() if i.startswith('test_')]
all_widgets = [i[len('test_'):] for i in all_tests]
for widget in all_widgets:
test(args, argv[:1] + unknown, widget)
gc.collect()
else:
test(args, argv[:1] + unknown, args.widget)
return 0
if __name__ == '__main__':
sys.exit(main(sys.argv))

View File

@ -35,6 +35,7 @@
"button:background": "#31363b",
"button:background:pressed": "#454a4f",
"button:border": "#76797c",
"button:checked": "#626568",
"button:disabled": "#454545",
"close:hover": "#b37979",
"close:pressed": "#b33e3e",

View File

@ -35,6 +35,7 @@
"button:background": "#31363b",
"button:background:pressed": "#454a4f",
"button:border": "#76797c",
"button:checked": "#626568",
"button:disabled": "#454545",
"close:hover": "#b37979",
"close:pressed": "#b33e3e",

View File

@ -35,6 +35,7 @@
"button:background": "#31363b",
"button:background:pressed": "#454a4f",
"button:border": "#76797c",
"button:checked": "#626568",
"button:disabled": "#454545",
"close:hover": "#b37979",
"close:pressed": "#b33e3e",

View File

@ -14,7 +14,6 @@
"midtone:hover": "#787876",
"view:checked": "#b9dae7",
"view:hover": "rgba(61, 173, 232, 0.2)",
"toolbar:horizontal:background": "#eff0f1",
"toolbar:vertical:background": "#eff0f1",
"view:corner": "#eff0f1",
@ -36,6 +35,7 @@
"button:background": "#eaebec",
"button:background:pressed": "#bedfec",
"button:border": "#bab9b8",
"button:checked": "#c7c7c6",
"button:disabled": "#b4b4b4",
"close:hover": "#dc7676",
"close:pressed": "#b33e3e",