fix(qt): the Source column draws the real Qobuz and Plex marks
Owner: "si es de qobuz, icono de qobuz, si es de local (folder o plex) cada uno tiene sus svg; Slint y Tauri los tenían bien." They did. The port did not, and the reason was an asset gap rather than a styling choice: `qobuz-logo-filled.svg` and `plex-logo.svg` were never carried over from the Slint tree, so `SourceIcon` substituted `cloud-download` for every Qobuz kind and a tinted `hard-drive` for Plex — drawing "downloaded" and "local file" where the design calls for two brand marks. Both assets now live in `qml/assets/brand/`, beside the Discogs / Last.fm / MusicBrainz marks that are there for exactly the same reason. The rule this restores is one `SourceGlyph.slint:4-8` calls load-bearing: the full-colour logos render UNTINTED and only the monochrome local glyph is tinted, to MUTED text and never accent. Slint spells out why — routing a logo through a tinting primitive "would turn the logos into a flat accent silhouette, the bug this primitive replaces". `QbzIcon` floods every pixel with its tint, so the two logo arms deliberately do not go through it. `qobuz_purchase` is the one arm that must tint a multi-colour asset (the same mark in #eab308 — the colour is what says "purchased"), so it is the one arm that uses an effect, and it degrades on a software renderer to the untinted mark rather than to nothing. The two ROW call sites now pass SourceGlyph's own numbers (15px, muted) instead of inheriting the version picker's (14px, secondary) — the two Slint components this file stands in for disagree on both, which is why they are properties. Verified by driving the app: the Qobuz rows show the Qobuz mark and the Plex rows the gold Plex chevron, in their own colours, with zero "Cannot open" in the log. cc
This commit is contained in:
5 files changed
+832
-57
No files matched your search
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
aria-label="Plex" role="img"
|
||||
viewBox="0 0 512 512"><rect
|
||||
width="512" height="512"
|
||||
rx="15%"
|
||||
fill="#282a2d"/><path d="m256 70h-108l108 186-108 186h108l108-186z" fill="#e5a00d"/></svg>
|
||||
|
After Width: | Height: | Size: 340 B |
@@ -0,0 +1,723 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.2" baseProfile="tiny" viewBox="0.00 0.00 1001.00 1006.00" width="1001.00" height="1006.00">
|
||||
<g stroke-width="0.70" fill="none" stroke-linecap="butt">
|
||||
<path stroke="#808080" vector-effect="non-scaling-stroke" d="
|
||||
M 557.55 950.97
|
||||
L 581.17 947.23"
|
||||
/>
|
||||
<path stroke="#6d6d6d" vector-effect="non-scaling-stroke" d="
|
||||
M 581.17 947.23
|
||||
Q 609.98 941.99 638.44 932.84"
|
||||
/>
|
||||
<path stroke="#535353" vector-effect="non-scaling-stroke" d="
|
||||
M 638.44 932.84
|
||||
Q 659.85 926.00 680.82 916.82"
|
||||
/>
|
||||
<path stroke="#474747" vector-effect="non-scaling-stroke" d="
|
||||
M 680.82 916.82
|
||||
L 697.13 909.33"
|
||||
/>
|
||||
<path stroke="#3c3c3c" vector-effect="non-scaling-stroke" d="
|
||||
M 697.13 909.33
|
||||
L 717.64 898.75"
|
||||
/>
|
||||
<path stroke="#292929" vector-effect="non-scaling-stroke" d="
|
||||
M 717.64 898.75
|
||||
L 730.04 891.73"
|
||||
/>
|
||||
<path stroke="#212121" vector-effect="non-scaling-stroke" d="
|
||||
M 730.04 891.73
|
||||
L 744.08 883.08"
|
||||
/>
|
||||
<path stroke="#191919" vector-effect="non-scaling-stroke" d="
|
||||
M 744.08 883.08
|
||||
L 757.43 874.20"
|
||||
/>
|
||||
<path stroke="#101010" vector-effect="non-scaling-stroke" d="
|
||||
M 757.43 874.20
|
||||
L 780.82 856.92
|
||||
A 0.35 0.35 0.0 0 0 780.90 856.44
|
||||
L 742.51 802.46"
|
||||
/>
|
||||
<path stroke="#808080" vector-effect="non-scaling-stroke" d="
|
||||
M 742.51 802.46
|
||||
L 892.52 952.45
|
||||
A 0.66 0.66 0.0 0 0 893.44 952.45
|
||||
L 948.52 897.37
|
||||
A 0.69 0.69 0.0 0 0 948.52 896.41
|
||||
L 846.49 794.39
|
||||
A 0.63 0.62 -47.5 0 1 846.46 793.55
|
||||
C 886.70 745.35 917.83 689.41 935.93 628.80
|
||||
Q 965.50 529.79 949.45 427.27
|
||||
C 935.07 335.44 893.56 249.75 829.14 182.43
|
||||
C 765.53 115.95 683.65 70.07 594.25 50.69
|
||||
C 469.95 23.75 339.47 50.27 235.76 122.68
|
||||
C 184.69 158.33 141.36 204.55 108.85 257.30
|
||||
C 47.98 356.05 26.76 474.17 49.94 588.07
|
||||
C 73.77 705.16 141.86 809.09 241.04 875.95
|
||||
Q 344.22 945.51 468.99 954.01
|
||||
Q 511.07 956.88 557.55 950.97"
|
||||
/>
|
||||
<path stroke="#8f8f8f" vector-effect="non-scaling-stroke" d="
|
||||
M 742.51 802.46
|
||||
L 727.79 787.70"
|
||||
/>
|
||||
<path stroke="#808080" vector-effect="non-scaling-stroke" d="
|
||||
M 727.79 787.70
|
||||
Q 688.45 748.30 649.12 709.04
|
||||
Q 640.04 699.97 637.83 696.22
|
||||
C 627.05 677.88 632.20 654.66 649.80 642.74
|
||||
C 662.25 634.31 678.43 633.99 691.56 641.27
|
||||
Q 696.37 643.93 703.01 650.84
|
||||
Q 706.19 654.15 783.29 731.16
|
||||
A 0.33 0.31 -47.4 0 0 783.76 731.13
|
||||
C 835.35 668.17 864.96 589.13 867.08 507.73
|
||||
C 868.43 455.92 858.41 402.11 838.22 354.52
|
||||
Q 792.68 247.17 693.44 184.61
|
||||
C 637.52 149.36 571.14 129.28 503.67 128.46
|
||||
C 429.03 127.55 357.26 148.19 295.83 188.39
|
||||
C 198.63 252.01 137.36 357.58 129.54 473.00
|
||||
C 122.38 578.71 162.21 684.08 236.05 757.97
|
||||
Q 278.72 800.68 332.89 827.93
|
||||
Q 410.44 866.94 500.95 867.06"
|
||||
/>
|
||||
<path stroke="#ffffff" vector-effect="non-scaling-stroke" d="
|
||||
M 500.95 867.06
|
||||
Q 506.74 878.08 510.46 883.34
|
||||
Q 527.12 906.90 543.76 930.47
|
||||
Q 550.86 940.53 557.55 950.97"
|
||||
/>
|
||||
<path stroke="#282828" vector-effect="non-scaling-stroke" d="
|
||||
M 757.43 874.20
|
||||
L 706.67 802.14"
|
||||
/>
|
||||
<path stroke="#101010" vector-effect="non-scaling-stroke" d="
|
||||
M 727.79 787.70
|
||||
Q 726.29 788.06 723.34 790.07
|
||||
Q 720.70 791.88 716.07 795.56
|
||||
Q 712.58 798.33 706.67 802.14"
|
||||
/>
|
||||
<path stroke="#191919" vector-effect="non-scaling-stroke" d="
|
||||
M 706.67 802.14
|
||||
L 693.03 811.18"
|
||||
/>
|
||||
<path stroke="#212121" vector-effect="non-scaling-stroke" d="
|
||||
M 693.03 811.18
|
||||
L 679.65 819.22"
|
||||
/>
|
||||
<path stroke="#292929" vector-effect="non-scaling-stroke" d="
|
||||
M 679.65 819.22
|
||||
L 666.59 826.26"
|
||||
/>
|
||||
<path stroke="#3c3c3c" vector-effect="non-scaling-stroke" d="
|
||||
M 666.59 826.26
|
||||
L 645.78 836.14"
|
||||
/>
|
||||
<path stroke="#474747" vector-effect="non-scaling-stroke" d="
|
||||
M 645.78 836.14
|
||||
L 629.16 842.94"
|
||||
/>
|
||||
<path stroke="#535353" vector-effect="non-scaling-stroke" d="
|
||||
M 629.16 842.94
|
||||
Q 622.56 845.28 615.87 847.55
|
||||
Q 600.28 852.83 584.59 856.64"
|
||||
/>
|
||||
<path stroke="#6d6d6d" vector-effect="non-scaling-stroke" d="
|
||||
M 584.59 856.64
|
||||
Q 555.26 863.64 525.44 865.91"
|
||||
/>
|
||||
<path stroke="#808080" vector-effect="non-scaling-stroke" d="
|
||||
M 525.44 865.91
|
||||
L 500.95 867.06"
|
||||
/>
|
||||
<path stroke="#393939" vector-effect="non-scaling-stroke" d="
|
||||
M 744.08 883.08
|
||||
L 693.03 811.18"
|
||||
/>
|
||||
<path stroke="#646464" vector-effect="non-scaling-stroke" d="
|
||||
M 717.64 898.75
|
||||
L 666.59 826.26"
|
||||
/>
|
||||
<path stroke="#ededed" vector-effect="non-scaling-stroke" d="
|
||||
M 581.17 947.23
|
||||
Q 558.13 913.89 534.83 881.04
|
||||
Q 530.83 875.40 525.44 865.91"
|
||||
/>
|
||||
<path stroke="#494949" vector-effect="non-scaling-stroke" d="
|
||||
M 730.04 891.73
|
||||
L 679.65 819.22"
|
||||
/>
|
||||
<path stroke="#9a9a9a" vector-effect="non-scaling-stroke" d="
|
||||
M 680.82 916.82
|
||||
L 629.16 842.94"
|
||||
/>
|
||||
<path stroke="#c0c0c0" vector-effect="non-scaling-stroke" d="
|
||||
M 638.44 932.84
|
||||
Q 612.13 894.05 584.59 856.64"
|
||||
/>
|
||||
<path stroke="#838383" vector-effect="non-scaling-stroke" d="
|
||||
M 697.13 909.33
|
||||
Q 691.04 899.88 684.80 890.95
|
||||
Q 665.57 863.44 645.78 836.14"
|
||||
/>
|
||||
<path stroke="#474747" vector-effect="non-scaling-stroke" d="
|
||||
M 451.95 162.31
|
||||
Q 435.68 164.53 419.71 168.29"
|
||||
/>
|
||||
<path stroke="#3c3c3c" vector-effect="non-scaling-stroke" d="
|
||||
M 419.71 168.29
|
||||
Q 394.74 174.23 370.96 183.82"
|
||||
/>
|
||||
<path stroke="#292929" vector-effect="non-scaling-stroke" d="
|
||||
M 370.96 183.82
|
||||
Q 356.17 189.79 341.77 197.29"
|
||||
/>
|
||||
<path stroke="#212121" vector-effect="non-scaling-stroke" d="
|
||||
M 341.77 197.29
|
||||
L 320.67 209.22"
|
||||
/>
|
||||
<path stroke="#191919" vector-effect="non-scaling-stroke" d="
|
||||
M 320.67 209.22
|
||||
L 298.03 224.42"
|
||||
/>
|
||||
<path stroke="#101010" vector-effect="non-scaling-stroke" d="
|
||||
M 298.03 224.42
|
||||
Q 283.58 234.97 270.44 246.96
|
||||
A 0.60 0.60 0.0 0 0 270.39 247.79
|
||||
Q 313.72 299.08 358.88 351.85
|
||||
Q 365.32 359.38 376.67 371.78
|
||||
A 0.50 0.50 0.0 0 0 377.37 371.82
|
||||
L 391.21 360.01"
|
||||
/>
|
||||
<path stroke="#191919" vector-effect="non-scaling-stroke" d="
|
||||
M 391.21 360.01
|
||||
L 402.60 351.90"
|
||||
/>
|
||||
<path stroke="#212121" vector-effect="non-scaling-stroke" d="
|
||||
M 402.60 351.90
|
||||
L 413.29 345.47"
|
||||
/>
|
||||
<path stroke="#292929" vector-effect="non-scaling-stroke" d="
|
||||
M 413.29 345.47
|
||||
L 428.78 337.87"
|
||||
/>
|
||||
<path stroke="#3c3c3c" vector-effect="non-scaling-stroke" d="
|
||||
M 428.78 337.87
|
||||
Q 440.89 332.67 453.85 329.25"
|
||||
/>
|
||||
<path stroke="#474747" vector-effect="non-scaling-stroke" d="
|
||||
M 453.85 329.25
|
||||
L 471.98 325.54"
|
||||
/>
|
||||
<path stroke="#535353" vector-effect="non-scaling-stroke" d="
|
||||
M 471.98 325.54
|
||||
Q 496.60 322.02 521.28 325.21"
|
||||
/>
|
||||
<path stroke="#474747" vector-effect="non-scaling-stroke" d="
|
||||
M 521.28 325.21
|
||||
L 541.82 329.28"
|
||||
/>
|
||||
<path stroke="#3c3c3c" vector-effect="non-scaling-stroke" d="
|
||||
M 541.82 329.28
|
||||
L 562.39 336.11"
|
||||
/>
|
||||
<path stroke="#292929" vector-effect="non-scaling-stroke" d="
|
||||
M 562.39 336.11
|
||||
L 582.19 345.47"
|
||||
/>
|
||||
<path stroke="#212121" vector-effect="non-scaling-stroke" d="
|
||||
M 582.19 345.47
|
||||
L 592.75 351.80"
|
||||
/>
|
||||
<path stroke="#191919" vector-effect="non-scaling-stroke" d="
|
||||
M 592.75 351.80
|
||||
L 605.25 360.64"
|
||||
/>
|
||||
<path stroke="#101010" vector-effect="non-scaling-stroke" d="
|
||||
M 605.25 360.64
|
||||
L 618.68 372.25
|
||||
A 0.34 0.34 0.0 0 0 619.16 372.21
|
||||
Q 644.65 342.33 670.35 312.36
|
||||
C 692.62 286.40 708.15 268.67 724.35 246.79
|
||||
A 0.57 0.56 -50.9 0 0 724.28 246.03
|
||||
Q 712.00 234.89 698.78 225.28"
|
||||
/>
|
||||
<path stroke="#191919" vector-effect="non-scaling-stroke" d="
|
||||
M 698.78 225.28
|
||||
L 675.59 209.66"
|
||||
/>
|
||||
<path stroke="#212121" vector-effect="non-scaling-stroke" d="
|
||||
M 675.59 209.66
|
||||
L 654.50 197.70"
|
||||
/>
|
||||
<path stroke="#292929" vector-effect="non-scaling-stroke" d="
|
||||
M 654.50 197.70
|
||||
Q 636.00 188.05 616.48 180.75"
|
||||
/>
|
||||
<path stroke="#3c3c3c" vector-effect="non-scaling-stroke" d="
|
||||
M 616.48 180.75
|
||||
Q 597.04 173.41 576.63 168.50"
|
||||
/>
|
||||
<path stroke="#474747" vector-effect="non-scaling-stroke" d="
|
||||
M 576.63 168.50
|
||||
Q 557.47 163.90 537.73 161.53"
|
||||
/>
|
||||
<path stroke="#535353" vector-effect="non-scaling-stroke" d="
|
||||
M 537.73 161.53
|
||||
Q 494.77 156.50 451.95 162.31"
|
||||
/>
|
||||
<path stroke="#9a9a9a" vector-effect="non-scaling-stroke" d="
|
||||
M 537.73 161.53
|
||||
L 521.28 325.21"
|
||||
/>
|
||||
<path stroke="#9a9a9a" vector-effect="non-scaling-stroke" d="
|
||||
M 471.98 325.54
|
||||
Q 469.33 309.05 466.65 286.55
|
||||
Q 459.42 225.76 455.01 184.26
|
||||
Q 454.40 178.48 451.95 162.31"
|
||||
/>
|
||||
<path stroke="#838383" vector-effect="non-scaling-stroke" d="
|
||||
M 453.85 329.25
|
||||
Q 438.95 259.78 424.03 190.41
|
||||
Q 422.35 182.63 419.71 168.29"
|
||||
/>
|
||||
<path stroke="#838383" vector-effect="non-scaling-stroke" d="
|
||||
M 576.63 168.50
|
||||
L 541.82 329.28"
|
||||
/>
|
||||
<path stroke="#646464" vector-effect="non-scaling-stroke" d="
|
||||
M 428.78 337.87
|
||||
L 370.96 183.82"
|
||||
/>
|
||||
<path stroke="#646464" vector-effect="non-scaling-stroke" d="
|
||||
M 616.48 180.75
|
||||
L 562.39 336.11"
|
||||
/>
|
||||
<path stroke="#494949" vector-effect="non-scaling-stroke" d="
|
||||
M 413.29 345.47
|
||||
Q 406.77 331.03 402.58 322.44
|
||||
Q 372.14 259.96 341.77 197.29"
|
||||
/>
|
||||
<path stroke="#494949" vector-effect="non-scaling-stroke" d="
|
||||
M 654.50 197.70
|
||||
Q 649.89 206.51 648.26 209.80
|
||||
Q 614.87 277.42 582.19 345.47"
|
||||
/>
|
||||
<path stroke="#393939" vector-effect="non-scaling-stroke" d="
|
||||
M 402.60 351.90
|
||||
L 320.67 209.22"
|
||||
/>
|
||||
<path stroke="#393939" vector-effect="non-scaling-stroke" d="
|
||||
M 675.59 209.66
|
||||
L 592.75 351.80"
|
||||
/>
|
||||
<path stroke="#282828" vector-effect="non-scaling-stroke" d="
|
||||
M 391.21 360.01
|
||||
L 298.03 224.42"
|
||||
/>
|
||||
<path stroke="#282828" vector-effect="non-scaling-stroke" d="
|
||||
M 698.78 225.28
|
||||
L 605.25 360.64"
|
||||
/>
|
||||
<path stroke="#808080" vector-effect="non-scaling-stroke" d="
|
||||
M 640.22 497.61
|
||||
A 142.40 142.40 0.0 0 0 497.82 355.21
|
||||
A 142.40 142.40 0.0 0 0 355.42 497.61
|
||||
A 142.40 142.40 0.0 0 0 497.82 640.01
|
||||
A 142.40 142.40 0.0 0 0 640.22 497.61"
|
||||
/>
|
||||
<path stroke="#808080" vector-effect="non-scaling-stroke" d="
|
||||
M 531.73 497.64
|
||||
A 33.88 33.88 0.0 0 0 497.85 463.76
|
||||
A 33.88 33.88 0.0 0 0 463.97 497.64
|
||||
A 33.88 33.88 0.0 0 0 497.85 531.52
|
||||
A 33.88 33.88 0.0 0 0 531.73 497.64"
|
||||
/>
|
||||
</g>
|
||||
<path fill="#000000" d="
|
||||
M 1001.00 894.06
|
||||
L 1001.00 899.88
|
||||
L 894.89 1006.00
|
||||
L 890.94 1006.00
|
||||
L 786.61 901.68
|
||||
A 0.67 0.67 0.0 0 0 785.75 901.61
|
||||
Q 692.31 967.36 581.53 986.49
|
||||
C 480.05 1004.01 375.68 989.59 283.23 945.27
|
||||
C 183.95 897.69 102.71 818.43 53.75 719.63
|
||||
Q 5.29 621.86 1.62 512.99
|
||||
C -3.07 374.00 51.60 238.98 151.52 141.59
|
||||
C 216.34 78.41 297.18 34.41 385.36 14.17
|
||||
C 521.35 -17.05 664.42 10.07 779.15 89.43
|
||||
Q 853.16 140.62 903.94 213.54
|
||||
Q 954.47 286.10 977.21 373.17
|
||||
C 1014.81 517.13 985.41 670.55 897.80 790.36
|
||||
A 0.45 0.43 40.7 0 0 897.85 790.93
|
||||
L 1001.00 894.06
|
||||
Z
|
||||
M 557.55 950.97
|
||||
L 581.17 947.23
|
||||
Q 609.98 941.99 638.44 932.84
|
||||
Q 659.85 926.00 680.82 916.82
|
||||
L 697.13 909.33
|
||||
L 717.64 898.75
|
||||
L 730.04 891.73
|
||||
L 744.08 883.08
|
||||
L 757.43 874.20
|
||||
L 780.82 856.92
|
||||
A 0.35 0.35 0.0 0 0 780.90 856.44
|
||||
L 742.51 802.46
|
||||
L 892.52 952.45
|
||||
A 0.66 0.66 0.0 0 0 893.44 952.45
|
||||
L 948.52 897.37
|
||||
A 0.69 0.69 0.0 0 0 948.52 896.41
|
||||
L 846.49 794.39
|
||||
A 0.63 0.62 -47.5 0 1 846.46 793.55
|
||||
C 886.70 745.35 917.83 689.41 935.93 628.80
|
||||
Q 965.50 529.79 949.45 427.27
|
||||
C 935.07 335.44 893.56 249.75 829.14 182.43
|
||||
C 765.53 115.95 683.65 70.07 594.25 50.69
|
||||
C 469.95 23.75 339.47 50.27 235.76 122.68
|
||||
C 184.69 158.33 141.36 204.55 108.85 257.30
|
||||
C 47.98 356.05 26.76 474.17 49.94 588.07
|
||||
C 73.77 705.16 141.86 809.09 241.04 875.95
|
||||
Q 344.22 945.51 468.99 954.01
|
||||
Q 511.07 956.88 557.55 950.97
|
||||
Z"
|
||||
/>
|
||||
<g>
|
||||
<path fill="#ffffff" d="
|
||||
M 742.51 802.46
|
||||
L 727.79 787.70
|
||||
Q 688.45 748.30 649.12 709.04
|
||||
Q 640.04 699.97 637.83 696.22
|
||||
C 627.05 677.88 632.20 654.66 649.80 642.74
|
||||
C 662.25 634.31 678.43 633.99 691.56 641.27
|
||||
Q 696.37 643.93 703.01 650.84
|
||||
Q 706.19 654.15 783.29 731.16
|
||||
A 0.33 0.31 -47.4 0 0 783.76 731.13
|
||||
C 835.35 668.17 864.96 589.13 867.08 507.73
|
||||
C 868.43 455.92 858.41 402.11 838.22 354.52
|
||||
Q 792.68 247.17 693.44 184.61
|
||||
C 637.52 149.36 571.14 129.28 503.67 128.46
|
||||
C 429.03 127.55 357.26 148.19 295.83 188.39
|
||||
C 198.63 252.01 137.36 357.58 129.54 473.00
|
||||
C 122.38 578.71 162.21 684.08 236.05 757.97
|
||||
Q 278.72 800.68 332.89 827.93
|
||||
Q 410.44 866.94 500.95 867.06
|
||||
Q 506.74 878.08 510.46 883.34
|
||||
Q 527.12 906.90 543.76 930.47
|
||||
Q 550.86 940.53 557.55 950.97
|
||||
Q 511.07 956.88 468.99 954.01
|
||||
Q 344.22 945.51 241.04 875.95
|
||||
C 141.86 809.09 73.77 705.16 49.94 588.07
|
||||
C 26.76 474.17 47.98 356.05 108.85 257.30
|
||||
C 141.36 204.55 184.69 158.33 235.76 122.68
|
||||
C 339.47 50.27 469.95 23.75 594.25 50.69
|
||||
C 683.65 70.07 765.53 115.95 829.14 182.43
|
||||
C 893.56 249.75 935.07 335.44 949.45 427.27
|
||||
Q 965.50 529.79 935.93 628.80
|
||||
C 917.83 689.41 886.70 745.35 846.46 793.55
|
||||
A 0.63 0.62 -47.5 0 0 846.49 794.39
|
||||
L 948.52 896.41
|
||||
A 0.69 0.69 0.0 0 1 948.52 897.37
|
||||
L 893.44 952.45
|
||||
A 0.66 0.66 0.0 0 1 892.52 952.45
|
||||
L 742.51 802.46
|
||||
Z"
|
||||
/>
|
||||
<path fill="#000000" d="
|
||||
M 727.79 787.70
|
||||
Q 726.29 788.06 723.34 790.07
|
||||
Q 720.70 791.88 716.07 795.56
|
||||
Q 712.58 798.33 706.67 802.14
|
||||
L 693.03 811.18
|
||||
L 679.65 819.22
|
||||
L 666.59 826.26
|
||||
L 645.78 836.14
|
||||
L 629.16 842.94
|
||||
Q 622.56 845.28 615.87 847.55
|
||||
Q 600.28 852.83 584.59 856.64
|
||||
Q 555.26 863.64 525.44 865.91
|
||||
L 500.95 867.06
|
||||
Q 410.44 866.94 332.89 827.93
|
||||
Q 278.72 800.68 236.05 757.97
|
||||
C 162.21 684.08 122.38 578.71 129.54 473.00
|
||||
C 137.36 357.58 198.63 252.01 295.83 188.39
|
||||
C 357.26 148.19 429.03 127.55 503.67 128.46
|
||||
C 571.14 129.28 637.52 149.36 693.44 184.61
|
||||
Q 792.68 247.17 838.22 354.52
|
||||
C 858.41 402.11 868.43 455.92 867.08 507.73
|
||||
C 864.96 589.13 835.35 668.17 783.76 731.13
|
||||
A 0.33 0.31 -47.4 0 1 783.29 731.16
|
||||
Q 706.19 654.15 703.01 650.84
|
||||
Q 696.37 643.93 691.56 641.27
|
||||
C 678.43 633.99 662.25 634.31 649.80 642.74
|
||||
C 632.20 654.66 627.05 677.88 637.83 696.22
|
||||
Q 640.04 699.97 649.12 709.04
|
||||
Q 688.45 748.30 727.79 787.70
|
||||
Z
|
||||
M 451.95 162.31
|
||||
Q 435.68 164.53 419.71 168.29
|
||||
Q 394.74 174.23 370.96 183.82
|
||||
Q 356.17 189.79 341.77 197.29
|
||||
L 320.67 209.22
|
||||
L 298.03 224.42
|
||||
Q 283.58 234.97 270.44 246.96
|
||||
A 0.60 0.60 0.0 0 0 270.39 247.79
|
||||
Q 313.72 299.08 358.88 351.85
|
||||
Q 365.32 359.38 376.67 371.78
|
||||
A 0.50 0.50 0.0 0 0 377.37 371.82
|
||||
L 391.21 360.01
|
||||
L 402.60 351.90
|
||||
L 413.29 345.47
|
||||
L 428.78 337.87
|
||||
Q 440.89 332.67 453.85 329.25
|
||||
L 471.98 325.54
|
||||
Q 496.60 322.02 521.28 325.21
|
||||
L 541.82 329.28
|
||||
L 562.39 336.11
|
||||
L 582.19 345.47
|
||||
L 592.75 351.80
|
||||
L 605.25 360.64
|
||||
L 618.68 372.25
|
||||
A 0.34 0.34 0.0 0 0 619.16 372.21
|
||||
Q 644.65 342.33 670.35 312.36
|
||||
C 692.62 286.40 708.15 268.67 724.35 246.79
|
||||
A 0.57 0.56 -50.9 0 0 724.28 246.03
|
||||
Q 712.00 234.89 698.78 225.28
|
||||
L 675.59 209.66
|
||||
L 654.50 197.70
|
||||
Q 636.00 188.05 616.48 180.75
|
||||
Q 597.04 173.41 576.63 168.50
|
||||
Q 557.47 163.90 537.73 161.53
|
||||
Q 494.77 156.50 451.95 162.31
|
||||
Z
|
||||
M 640.22 497.61
|
||||
A 142.40 142.40 0.0 0 0 497.82 355.21
|
||||
A 142.40 142.40 0.0 0 0 355.42 497.61
|
||||
A 142.40 142.40 0.0 0 0 497.82 640.01
|
||||
A 142.40 142.40 0.0 0 0 640.22 497.61
|
||||
Z"
|
||||
/>
|
||||
<path fill="#1f1f1f" d="
|
||||
M 727.79 787.70
|
||||
L 742.51 802.46
|
||||
L 780.90 856.44
|
||||
A 0.35 0.35 0.0 0 1 780.82 856.92
|
||||
L 757.43 874.20
|
||||
L 706.67 802.14
|
||||
Q 712.58 798.33 716.07 795.56
|
||||
Q 720.70 791.88 723.34 790.07
|
||||
Q 726.29 788.06 727.79 787.70
|
||||
Z"
|
||||
/>
|
||||
<path fill="#313131" d="
|
||||
M 706.67 802.14
|
||||
L 757.43 874.20
|
||||
L 744.08 883.08
|
||||
L 693.03 811.18
|
||||
L 706.67 802.14
|
||||
Z"
|
||||
/>
|
||||
<path fill="#414141" d="
|
||||
M 693.03 811.18
|
||||
L 744.08 883.08
|
||||
L 730.04 891.73
|
||||
L 679.65 819.22
|
||||
L 693.03 811.18
|
||||
Z"
|
||||
/>
|
||||
<path fill="#515151" d="
|
||||
M 679.65 819.22
|
||||
L 730.04 891.73
|
||||
L 717.64 898.75
|
||||
L 666.59 826.26
|
||||
L 679.65 819.22
|
||||
Z"
|
||||
/>
|
||||
<path fill="#777777" d="
|
||||
M 666.59 826.26
|
||||
L 717.64 898.75
|
||||
L 697.13 909.33
|
||||
Q 691.04 899.88 684.80 890.95
|
||||
Q 665.57 863.44 645.78 836.14
|
||||
L 666.59 826.26
|
||||
Z"
|
||||
/>
|
||||
<path fill="#8e8e8e" d="
|
||||
M 645.78 836.14
|
||||
Q 665.57 863.44 684.80 890.95
|
||||
Q 691.04 899.88 697.13 909.33
|
||||
L 680.82 916.82
|
||||
L 629.16 842.94
|
||||
L 645.78 836.14
|
||||
Z"
|
||||
/>
|
||||
<path fill="#a6a6a6" d="
|
||||
M 629.16 842.94
|
||||
L 680.82 916.82
|
||||
Q 659.85 926.00 638.44 932.84
|
||||
Q 612.13 894.05 584.59 856.64
|
||||
Q 600.28 852.83 615.87 847.55
|
||||
Q 622.56 845.28 629.16 842.94
|
||||
Z"
|
||||
/>
|
||||
<path fill="#dadada" d="
|
||||
M 584.59 856.64
|
||||
Q 612.13 894.05 638.44 932.84
|
||||
Q 609.98 941.99 581.17 947.23
|
||||
Q 558.13 913.89 534.83 881.04
|
||||
Q 530.83 875.40 525.44 865.91
|
||||
Q 555.26 863.64 584.59 856.64
|
||||
Z"
|
||||
/>
|
||||
<path fill="#ffffff" d="
|
||||
M 525.44 865.91
|
||||
Q 530.83 875.40 534.83 881.04
|
||||
Q 558.13 913.89 581.17 947.23
|
||||
L 557.55 950.97
|
||||
Q 550.86 940.53 543.76 930.47
|
||||
Q 527.12 906.90 510.46 883.34
|
||||
Q 506.74 878.08 500.95 867.06
|
||||
L 525.44 865.91
|
||||
Z"
|
||||
/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#a6a6a6" d="
|
||||
M 537.73 161.53
|
||||
L 521.28 325.21
|
||||
Q 496.60 322.02 471.98 325.54
|
||||
Q 469.33 309.05 466.65 286.55
|
||||
Q 459.42 225.76 455.01 184.26
|
||||
Q 454.40 178.48 451.95 162.31
|
||||
Q 494.77 156.50 537.73 161.53
|
||||
Z"
|
||||
/>
|
||||
<path fill="#8e8e8e" d="
|
||||
M 576.63 168.50
|
||||
L 541.82 329.28
|
||||
L 521.28 325.21
|
||||
L 537.73 161.53
|
||||
Q 557.47 163.90 576.63 168.50
|
||||
Z"
|
||||
/>
|
||||
<path fill="#8e8e8e" d="
|
||||
M 451.95 162.31
|
||||
Q 454.40 178.48 455.01 184.26
|
||||
Q 459.42 225.76 466.65 286.55
|
||||
Q 469.33 309.05 471.98 325.54
|
||||
L 453.85 329.25
|
||||
Q 438.95 259.78 424.03 190.41
|
||||
Q 422.35 182.63 419.71 168.29
|
||||
Q 435.68 164.53 451.95 162.31
|
||||
Z"
|
||||
/>
|
||||
<path fill="#777777" d="
|
||||
M 419.71 168.29
|
||||
Q 422.35 182.63 424.03 190.41
|
||||
Q 438.95 259.78 453.85 329.25
|
||||
Q 440.89 332.67 428.78 337.87
|
||||
L 370.96 183.82
|
||||
Q 394.74 174.23 419.71 168.29
|
||||
Z"
|
||||
/>
|
||||
<path fill="#777777" d="
|
||||
M 616.48 180.75
|
||||
L 562.39 336.11
|
||||
L 541.82 329.28
|
||||
L 576.63 168.50
|
||||
Q 597.04 173.41 616.48 180.75
|
||||
Z"
|
||||
/>
|
||||
<path fill="#515151" d="
|
||||
M 654.50 197.70
|
||||
Q 649.89 206.51 648.26 209.80
|
||||
Q 614.87 277.42 582.19 345.47
|
||||
L 562.39 336.11
|
||||
L 616.48 180.75
|
||||
Q 636.00 188.05 654.50 197.70
|
||||
Z"
|
||||
/>
|
||||
<path fill="#515151" d="
|
||||
M 370.96 183.82
|
||||
L 428.78 337.87
|
||||
L 413.29 345.47
|
||||
Q 406.77 331.03 402.58 322.44
|
||||
Q 372.14 259.96 341.77 197.29
|
||||
Q 356.17 189.79 370.96 183.82
|
||||
Z"
|
||||
/>
|
||||
<path fill="#414141" d="
|
||||
M 341.77 197.29
|
||||
Q 372.14 259.96 402.58 322.44
|
||||
Q 406.77 331.03 413.29 345.47
|
||||
L 402.60 351.90
|
||||
L 320.67 209.22
|
||||
L 341.77 197.29
|
||||
Z"
|
||||
/>
|
||||
<path fill="#414141" d="
|
||||
M 675.59 209.66
|
||||
L 592.75 351.80
|
||||
L 582.19 345.47
|
||||
Q 614.87 277.42 648.26 209.80
|
||||
Q 649.89 206.51 654.50 197.70
|
||||
L 675.59 209.66
|
||||
Z"
|
||||
/>
|
||||
<path fill="#313131" d="
|
||||
M 320.67 209.22
|
||||
L 402.60 351.90
|
||||
L 391.21 360.01
|
||||
L 298.03 224.42
|
||||
L 320.67 209.22
|
||||
Z"
|
||||
/>
|
||||
<path fill="#313131" d="
|
||||
M 698.78 225.28
|
||||
L 605.25 360.64
|
||||
L 592.75 351.80
|
||||
L 675.59 209.66
|
||||
L 698.78 225.28
|
||||
Z"
|
||||
/>
|
||||
<path fill="#1f1f1f" d="
|
||||
M 298.03 224.42
|
||||
L 391.21 360.01
|
||||
L 377.37 371.82
|
||||
A 0.50 0.50 0.0 0 1 376.67 371.78
|
||||
Q 365.32 359.38 358.88 351.85
|
||||
Q 313.72 299.08 270.39 247.79
|
||||
A 0.60 0.60 0.0 0 1 270.44 246.96
|
||||
Q 283.58 234.97 298.03 224.42
|
||||
Z"
|
||||
/>
|
||||
<path fill="#1f1f1f" d="
|
||||
M 605.25 360.64
|
||||
L 698.78 225.28
|
||||
Q 712.00 234.89 724.28 246.03
|
||||
A 0.57 0.56 -50.9 0 1 724.35 246.79
|
||||
C 708.15 268.67 692.62 286.40 670.35 312.36
|
||||
Q 644.65 342.33 619.16 372.21
|
||||
A 0.34 0.34 0.0 0 1 618.68 372.25
|
||||
L 605.25 360.64
|
||||
Z"
|
||||
/>
|
||||
<path fill="#ffffff" d="
|
||||
M 640.22 497.61
|
||||
A 142.40 142.40 0.0 0 1 497.82 640.01
|
||||
A 142.40 142.40 0.0 0 1 355.42 497.61
|
||||
A 142.40 142.40 0.0 0 1 497.82 355.21
|
||||
A 142.40 142.40 0.0 0 1 640.22 497.61
|
||||
Z
|
||||
M 531.73 497.64
|
||||
A 33.88 33.88 0.0 0 0 497.85 463.76
|
||||
A 33.88 33.88 0.0 0 0 463.97 497.64
|
||||
A 33.88 33.88 0.0 0 0 497.85 531.52
|
||||
A 33.88 33.88 0.0 0 0 531.73 497.64
|
||||
Z"
|
||||
/>
|
||||
</g>
|
||||
<circle fill="#000000" cx="497.85" cy="497.64" r="33.88"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 19 KiB |
@@ -1,73 +1,111 @@
|
||||
// Per-version / per-row source glyph: hard-drive for a local file, the Qobuz
|
||||
// mark for an offline/purchased copy (gold when purchased), the Plex mark for
|
||||
// Plex.
|
||||
// Per-source glyph — the QML port of `primitives/SourceGlyph.slint`, used by
|
||||
// the version picker, the MyQBZ collection-detail rows and the Discography
|
||||
// Builder rows.
|
||||
//
|
||||
// ── IT STANDS IN FOR TWO SLINT COMPONENTS, WHICH DISAGREE ──────────────────
|
||||
// `album/LocalAlbumView.slint:22-37` (`SourceIcon`) — the VERSION PICKER's
|
||||
// glyph: 14px, and the monochrome local glyph tinted `Theme.text-SECONDARY`.
|
||||
// `primitives/SourceGlyph.slint:15-32` — the shared row glyph used by the MyQBZ
|
||||
// collection-detail rows (`MixtapeDetailView.slint:370`), the Discography
|
||||
// Builder rows (`DiscographyBuilderView.slint:54`), FavoritesView and TrackRow:
|
||||
// 15px, and the local glyph tinted `Theme.text-MUTED`, never accent.
|
||||
// (They also disagree on plain `"qobuz"`: LocalAlbumView lets it fall through to
|
||||
// hard-drive, SourceGlyph gives it the Qobuz mark. This file follows SourceGlyph
|
||||
// there — see `kind` below.)
|
||||
// ── THE LOAD-BEARING RULE (SourceGlyph.slint:4-8) ─────────────────────────
|
||||
// The full-colour Qobuz and Plex logos render **UNTINTED**; only the
|
||||
// monochrome local hard-drive glyph is tinted, and to MUTED text, never
|
||||
// accent. Slint states the reason out loud: routing the logos through a
|
||||
// tinting primitive "would turn the logos into a flat accent silhouette — the
|
||||
// bug this primitive replaces". `QbzIcon` floods every pixel with its tint, so
|
||||
// the logo arms deliberately do NOT go through it — they are plain `Image`s.
|
||||
//
|
||||
// So the two numbers that differ are PROPERTIES, and the DEFAULTS are the
|
||||
// version-picker set, which is what `views/local/VersionPicker.qml` (the only
|
||||
// two call sites that set neither) needs. A row that stands for SourceGlyph
|
||||
// passes `glyphSize: 15` and `localTint: "muted"`.
|
||||
// ── WHY THIS FILE USED TO LIE ─────────────────────────────────────────────
|
||||
// The port shipped with neither logo: `qobuz-logo-filled.svg` and
|
||||
// `plex-logo.svg` were never carried over from the Slint tree, so this
|
||||
// component substituted `cloud-download` for every Qobuz kind and a tinted
|
||||
// `hard-drive` for Plex — i.e. it drew "downloaded" and "local file" where the
|
||||
// design calls for two brand marks. Both assets now live in
|
||||
// `qml/assets/brand/`, which is where the untinted marks belong (the Discogs /
|
||||
// Last.fm / MusicBrainz marks are already there for the same reason).
|
||||
//
|
||||
// SourceGlyph's other size rule — 16px for the three qobuz kinds
|
||||
// (`SourceGlyph.slint:29`) — is deliberately NOT reproduced: it exists to
|
||||
// compensate the Qobuz WORDMARK's proportions, and this port does not draw that
|
||||
// glyph (see the asset gap). Widening a `cloud-download` substitute to 16 would
|
||||
// be a number with no reference behind it.
|
||||
//
|
||||
// ASSET GAP: the Qt icon set has NO `qobuz-logo-filled.svg` and NO
|
||||
// `plex-logo.svg` — neither an untinted master nor any tint directory
|
||||
// (`qml/assets/icons/{accent,amber,black,favorite,muted,primary,secondary,warning}/`
|
||||
// and `qml/assets/brand/` all verified). Both are present in the Slint tree
|
||||
// (`crates/qbz-ui/ui/assets/icons/`). Until they are ported the offline/purchased
|
||||
// copy reuses `cloud-download` and Plex reuses `hard-drive` in the accent tint —
|
||||
// the same substitution the Local Library cards already ship — and the "logos
|
||||
// render UNTINTED" rule those two arms exist for cannot be honoured at all,
|
||||
// because a substitute monochrome glyph has to be tinted to read.
|
||||
// `qobuz_purchase` reuses the Qobuz mark GOLD (#eab308) — same glyph as a
|
||||
// download, the colour is what says "purchased". That is the ONE arm that
|
||||
// needs a tint on a multi-colour asset, so it is the one arm that uses an
|
||||
// effect; on a software renderer it degrades to the untinted mark rather than
|
||||
// to nothing.
|
||||
|
||||
import QtQuick
|
||||
import QtQuick.Effects
|
||||
import com.blitzfc.qbz
|
||||
import "../../theme"
|
||||
|
||||
QbzIcon {
|
||||
Item {
|
||||
id: root
|
||||
|
||||
/// "local" | "qobuz" | "qobuz_download" | "qobuz_purchase" | "offline" | "plex"
|
||||
///
|
||||
/// Plain "qobuz" is what the MyQBZ collection items carry (a streamed Qobuz
|
||||
/// album/track, not a download or a purchase). Without its own arm it fell
|
||||
/// through to "hard-drive", i.e. every Qobuz row in a collection claimed to
|
||||
/// be a local file. `SourceGlyph.slint:23` groups it with the downloads for
|
||||
/// the same reason.
|
||||
/// (anything else = local). Plain "qobuz" is what the MyQBZ collection
|
||||
/// items carry; `SourceGlyph.slint:23` groups it with the downloads.
|
||||
property string kind: "local"
|
||||
|
||||
/// 14 = album/LocalAlbumView.slint:24 (the version picker).
|
||||
/// 15 = primitives/SourceGlyph.slint:29-30 (every row glyph).
|
||||
/// 14 = `album/LocalAlbumView.slint:24` (the version picker, the default
|
||||
/// here because those are the call sites that set nothing).
|
||||
/// 15 = `primitives/SourceGlyph.slint:29-30` (every row glyph).
|
||||
/// SourceGlyph gives the three Qobuz kinds 16px to compensate the
|
||||
/// wordmark's proportions (`:29`) — now reproducible, because the wordmark
|
||||
/// is finally the asset being drawn.
|
||||
property int glyphSize: 14
|
||||
/// Tint of the MONOCHROME local hard-drive glyph. "secondary" =
|
||||
/// LocalAlbumView.slint:36; "muted" = SourceGlyph.slint:28, whose header
|
||||
/// calls the muted-never-accent rule load-bearing.
|
||||
/// Tint of the MONOCHROME local glyph. "secondary" = LocalAlbumView.slint:36;
|
||||
/// "muted" = SourceGlyph.slint:28, whose header calls the
|
||||
/// muted-never-accent rule load-bearing.
|
||||
property string localTint: "secondary"
|
||||
|
||||
width: root.glyphSize
|
||||
height: root.glyphSize
|
||||
name: (kind === "qobuz" || kind === "qobuz_download"
|
||||
|| kind === "qobuz_purchase" || kind === "offline")
|
||||
? "cloud-download" : "hard-drive"
|
||||
// `warning` for the purchase gold (#eab308 in both Slint components) and
|
||||
// `accent` to keep the Plex substitute distinguishable from a local file;
|
||||
// everything else is the monochrome local glyph.
|
||||
tintName: kind === "qobuz_purchase" ? "warning"
|
||||
: kind === "plex" ? "accent"
|
||||
: (kind === "qobuz" || kind === "qobuz_download" || kind === "offline")
|
||||
? "secondary"
|
||||
: root.localTint
|
||||
readonly property bool isQobuz: kind === "qobuz" || kind === "qobuz_download"
|
||||
|| kind === "qobuz_purchase" || kind === "offline"
|
||||
readonly property bool isPlex: kind === "plex"
|
||||
readonly property bool isPurchase: kind === "qobuz_purchase"
|
||||
|
||||
// SourceGlyph.slint:31 — the Qobuz marks run one pixel larger.
|
||||
width: root.isQobuz ? root.glyphSize + 2 : root.glyphSize
|
||||
height: width
|
||||
|
||||
readonly property string brandDir: "qrc:/qt/qml/com/blitzfc/qbz/qml/assets/brand/"
|
||||
|
||||
// --- The brand marks: UNTINTED, by rule -------------------------------
|
||||
Image {
|
||||
id: mark
|
||||
anchors.fill: parent
|
||||
visible: (root.isQobuz && !root.isPurchase) || root.isPlex
|
||||
source: root.isPlex ? root.brandDir + "plex-logo.svg"
|
||||
: root.brandDir + "qobuz-logo-filled.svg"
|
||||
fillMode: Image.PreserveAspectFit // SourceGlyph's `image-fit: contain`
|
||||
// Decode at the size actually drawn: these are a 512x512 and a
|
||||
// ~1000x1006 source rendered into 15-16px.
|
||||
sourceSize.width: root.width
|
||||
sourceSize.height: root.height
|
||||
smooth: true
|
||||
asynchronous: true
|
||||
}
|
||||
|
||||
// --- Purchased: the same mark, gold ------------------------------------
|
||||
// The only arm that tints a multi-colour asset, so the only one that needs
|
||||
// an effect. `_noShaders` degrades to the plain mark — the source is still
|
||||
// legible, it just loses the "purchased" colour, which beats an empty cell.
|
||||
readonly property bool _noShaders: GraphicsInfo.api === GraphicsInfo.Software
|
||||
|| GraphicsInfo.api === GraphicsInfo.Null
|
||||
Image {
|
||||
id: purchaseMark
|
||||
anchors.fill: parent
|
||||
visible: root.isPurchase
|
||||
source: root.brandDir + "qobuz-logo-filled.svg"
|
||||
fillMode: Image.PreserveAspectFit
|
||||
sourceSize.width: root.width
|
||||
sourceSize.height: root.height
|
||||
smooth: true
|
||||
asynchronous: true
|
||||
layer.enabled: root.isPurchase && !root._noShaders
|
||||
layer.effect: MultiEffect {
|
||||
colorization: 1.0
|
||||
// SourceGlyph.slint:27 — the §8.7 purchase gold.
|
||||
colorizationColor: "#eab308"
|
||||
}
|
||||
}
|
||||
|
||||
// --- Local / anything else: the monochrome glyph, tinted ---------------
|
||||
QbzIcon {
|
||||
anchors.fill: parent
|
||||
visible: !root.isQobuz && !root.isPlex
|
||||
name: "hard-drive"
|
||||
tintName: root.localTint
|
||||
}
|
||||
}
|
||||
@@ -430,6 +430,9 @@ Rectangle {
|
||||
SourceIcon {
|
||||
anchors.centerIn: parent
|
||||
kind: root.candidate.source || ""
|
||||
// Row glyph — SourceGlyph.slint:29-30.
|
||||
glyphSize: 15
|
||||
localTint: "muted"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -354,6 +354,10 @@ Rectangle {
|
||||
x: 0
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
kind: root.sourceKind
|
||||
// Row glyph, so SourceGlyph.slint's numbers (15px, muted),
|
||||
// not the version picker's defaults.
|
||||
glyphSize: 15
|
||||
localTint: "muted"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user