[Amarok] rtl awareness, bg gradient, prev/next watermarks +

Leo Franchi lfranchi at kde.org
Mon Feb 8 20:03:15 CET 2010


I'm really not a fan of this gradient.

1) Amarok does not use gradients anywhere else. We specifically
removed them from the CV to keep things consistent.
2) Oxygen does not use gradients. The toolbar  looks out of place.
3) the edge between the toolbar and the rest of amarok looks really terrible.

http://pwsp.cleinias.com/amarok_toolbar_gradient.png

unless this is greatly improved in some way that I don't foresee I
really think the gradient should go away.

leo

On Mon, Feb 8, 2010 at 1:06 PM, Thomas Lübking <thomas.luebking at web.de> wrote:
> commit 0be52cc154583b79b0660cd6d03762b5ed766928
> Author:     Thomas Lübking <thomas.luebking at web.de>
> AuthorDate: Mon Feb 8 17:59:55 2010 +0100
> Commit:     Thomas Lübking <thomas.luebking at web.de>
> CommitDate: Mon Feb 8 18:03:09 2010 +0100
>
>    rtl awareness, bg gradient, prev/next watermarks + hints while not playing
>
> diff --git a/src/images/default-theme-clean.svg b/src/images/default-theme-clean.svg
> index f52f6fb..7116380 100644
> --- a/src/images/default-theme-clean.svg
> +++ b/src/images/default-theme-clean.svg
> @@ -16,7 +16,7 @@
>    height="1380.9272"
>    id="svg6830"
>    sodipodi:version="0.32"
> -   inkscape:version="0.47pre4 r22446"
> +   inkscape:version="0.47 r22583"
>    version="1.0"
>    sodipodi:docname="default-theme-clean.svg"
>    inkscape:output_extension="org.inkscape.output.svg.inkscape">
> @@ -30,21 +30,25 @@
>      objecttolerance="10"
>      inkscape:pageopacity="0.0"
>      inkscape:pageshadow="2"
> -     inkscape:zoom="0.70710678"
> -     inkscape:cx="2162.6032"
> -     inkscape:cy="308.0704"
> +     inkscape:zoom="1.4142136"
> +     inkscape:cx="2241.6034"
> +     inkscape:cy="675.51124"
>      inkscape:document-units="px"
>      inkscape:current-layer="layer1"
>      showgrid="true"
> -     inkscape:window-width="1579"
> -     inkscape:window-height="990"
> -     inkscape:window-x="0"
> -     inkscape:window-y="210"
> -     inkscape:window-maximized="1"
> +     inkscape:window-width="1204"
> +     inkscape:window-height="922"
> +     inkscape:window-x="150"
> +     inkscape:window-y="100"
> +     inkscape:window-maximized="0"
>      inkscape:snap-global="true">
>     <inkscape:grid
>        type="xygrid"
> -       id="grid11130" />
> +       id="grid11130"
> +       empspacing="5"
> +       visible="true"
> +       enabled="true"
> +       snapvisiblegridlinesonly="true" />
>   </sodipodi:namedview>
>   <defs
>      id="defs6832">
> @@ -6062,6 +6066,34 @@
>        y1="937.82581"
>        x2="1633.0101"
>        y2="1012.8258" />
> +    <inkscape:perspective
> +       id="perspective6361"
> +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> +       inkscape:vp_z="1 : 0.5 : 1"
> +       inkscape:vp_y="0 : 1000 : 0"
> +       inkscape:vp_x="0 : 0.5 : 1"
> +       sodipodi:type="inkscape:persp3d" />
> +    <inkscape:perspective
> +       id="perspective11425"
> +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> +       inkscape:vp_z="1 : 0.5 : 1"
> +       inkscape:vp_y="0 : 1000 : 0"
> +       inkscape:vp_x="0 : 0.5 : 1"
> +       sodipodi:type="inkscape:persp3d" />
> +    <inkscape:perspective
> +       id="perspective7348"
> +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> +       inkscape:vp_z="1 : 0.5 : 1"
> +       inkscape:vp_y="0 : 1000 : 0"
> +       inkscape:vp_x="0 : 0.5 : 1"
> +       sodipodi:type="inkscape:persp3d" />
> +    <inkscape:perspective
> +       id="perspective7348-6"
> +       inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> +       inkscape:vp_z="1 : 0.5 : 1"
> +       inkscape:vp_y="0 : 1000 : 0"
> +       inkscape:vp_x="0 : 0.5 : 1"
> +       sodipodi:type="inkscape:persp3d" />
>   </defs>
>   <metadata
>      id="metadata6835">
> @@ -6071,6 +6103,7 @@
>         <dc:format>image/svg+xml</dc:format>
>         <dc:type
>            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
> +        <dc:title />
>       </cc:Work>
>     </rdf:RDF>
>   </metadata>
> @@ -6080,6 +6113,16 @@
>      id="layer1"
>      transform="translate(846.98988,218.10144)">
>     <g
> +       id="leftArrow"
> +       inkscape:label="#leftArrow"
> +       transform="matrix(-1,0,0,1,2505.0297,-35.000004)">
> +      <path
> +         style="opacity:0.1;fill:#101010;fill-opacity:1;stroke:none"
> +         d="m 1202.0304,411.15914 c -0.079,10.46007 -0.1589,20.92014 -0.2383,31.38021 20.0758,11.76215 40.1517,23.52431 60.2275,35.28646 -7.4479,11.11111 -14.8959,22.22222 -22.3438,33.33333 9.9629,0 19.9259,0 29.8888,0 20.0758,-16.66667 40.1517,-33.33333 60.2275,-50 -42.5872,-16.66667 -85.1745,-33.33333 -127.7617,-50 z"
> +         id="path6560-3"
> +         sodipodi:nodetypes="ccccccc" />
> +    </g>
> +    <g
>        id="album_overlay"
>        transform="translate(-1249.8764,393.3356)">
>       <path
> @@ -11311,11 +11354,11 @@
>          sodipodi:cy="197.97386"
>          sodipodi:rx="77.579712"
>          sodipodi:ry="79.100883"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          transform="matrix(0.8185128,0,0,0.8027723,1491.8435,818.61708)" />
>       <path
>          transform="matrix(0.6638333,0,0,0.6510673,1483.8435,848.65071)"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          sodipodi:ry="79.100883"
>          sodipodi:rx="77.579712"
>          sodipodi:cy="197.97386"
> @@ -11347,11 +11390,11 @@
>          sodipodi:cy="197.97386"
>          sodipodi:rx="77.579712"
>          sodipodi:ry="79.100883"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          transform="matrix(0.8185128,0,0,0.8027723,1491.8435,818.61708)" />
>       <path
>          transform="matrix(0.6638333,0,0,0.6510673,1483.8435,848.65071)"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          sodipodi:ry="79.100883"
>          sodipodi:rx="77.579712"
>          sodipodi:cy="197.97386"
> @@ -11373,7 +11416,7 @@
>        id="Volume">
>       <path
>          transform="matrix(0.8185128,0,0,0.8027723,1491.8435,818.61708)"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          sodipodi:ry="79.100883"
>          sodipodi:rx="77.579712"
>          sodipodi:cy="197.97386"
> @@ -11389,7 +11432,7 @@
>          sodipodi:cy="197.97386"
>          sodipodi:rx="77.579712"
>          sodipodi:ry="79.100883"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          transform="matrix(0.6638333,0,0,0.6510673,1483.8435,848.65071)" />
>       <path
>          style="fill:url(#linearGradient4347);fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:0.62745098"
> @@ -11419,11 +11462,11 @@
>          sodipodi:cy="197.97386"
>          sodipodi:rx="77.579712"
>          sodipodi:ry="79.100883"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          transform="matrix(0.8185128,0,0,0.8027723,-1292.6911,-838.23595)" />
>       <path
>          transform="matrix(0.6638333,0,0,0.6510673,-1300.6911,-808.20233)"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          sodipodi:ry="79.100883"
>          sodipodi:rx="77.579712"
>          sodipodi:cy="197.97386"
> @@ -11459,7 +11502,7 @@
>        id="PLAYpause">
>       <path
>          transform="matrix(0.8185128,0,0,0.8027723,1183.8434,823.89785)"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          sodipodi:ry="79.100883"
>          sodipodi:rx="77.579712"
>          sodipodi:cy="197.97386"
> @@ -11475,7 +11518,7 @@
>          sodipodi:cy="197.97386"
>          sodipodi:rx="77.579712"
>          sodipodi:ry="79.100883"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          transform="matrix(0.6638333,0,0,0.6510673,1175.8434,853.93147)" />
>       <path
>          sodipodi:type="star"
> @@ -11491,7 +11534,7 @@
>          inkscape:flatsided="true"
>          inkscape:rounded="0.09"
>          inkscape:randomized="0"
> -         d="M 96.439818,7.2857141 C 96.439818,21.428425 -27.400534,92.927686 -39.64848,85.85633 C -51.896427,78.784975 -51.896427,-64.213546 -39.64848,-71.284902 C -27.400534,-78.356257 96.439818,-6.8569967 96.439818,7.2857141 z"
> +         d="m 96.439818,7.2857141 c 0,14.1427109 -123.840352,85.6419719 -136.088298,78.5706159 -12.247947,-7.071355 -12.247947,-150.069876 0,-157.141232 12.247946,-7.071355 136.088298,64.4279053 136.088298,78.5706161 z"
>          transform="matrix(0.3983641,0,0,0.398426,1138.0279,979.92296)" />
>     </g>
>     <g
> @@ -11499,7 +11542,7 @@
>        id="playPAUSE_active">
>       <path
>          transform="matrix(0.8185128,0,0,0.8027723,1039.8434,815.39789)"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          sodipodi:ry="79.100883"
>          sodipodi:rx="77.579712"
>          sodipodi:cy="197.97386"
> @@ -11512,7 +11555,7 @@
>          transform="translate(1.0000075,-108.49996)">
>         <path
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            sodipodi:ry="79.100883"
>            sodipodi:rx="77.579712"
>            sodipodi:cy="197.97386"
> @@ -11528,11 +11571,11 @@
>            sodipodi:cy="197.97386"
>            sodipodi:rx="77.579712"
>            sodipodi:ry="79.100883"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)" />
>         <path
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            sodipodi:ry="79.100883"
>            sodipodi:rx="77.579712"
>            sodipodi:cy="197.97386"
> @@ -11548,11 +11591,11 @@
>            sodipodi:cy="197.97386"
>            sodipodi:rx="77.579712"
>            sodipodi:ry="79.100883"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)" />
>         <path
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            sodipodi:ry="79.100883"
>            sodipodi:rx="77.579712"
>            sodipodi:cy="197.97386"
> @@ -11568,11 +11611,11 @@
>            sodipodi:cy="197.97386"
>            sodipodi:rx="77.579712"
>            sodipodi:ry="79.100883"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)" />
>         <path
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            sodipodi:ry="79.100883"
>            sodipodi:rx="77.579712"
>            sodipodi:cy="197.97386"
> @@ -11588,11 +11631,11 @@
>            sodipodi:cy="197.97386"
>            sodipodi:rx="77.579712"
>            sodipodi:ry="79.100883"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)" />
>         <path
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            sodipodi:ry="79.100883"
>            sodipodi:rx="77.579712"
>            sodipodi:cy="197.97386"
> @@ -11609,7 +11652,7 @@
>          sodipodi:cy="197.97386"
>          sodipodi:rx="77.579712"
>          sodipodi:ry="79.100883"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          transform="matrix(0.6638333,0,0,0.6510673,1031.8434,845.43151)" />
>       <g
>          id="g4295">
> @@ -11644,7 +11687,7 @@
>          sodipodi:cy="197.97386"
>          sodipodi:rx="77.579712"
>          sodipodi:ry="79.100883"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          transform="matrix(0.8185128,0,0,0.8027723,1343.8434,823.89785)" />
>       <g
>          id="g4305"
> @@ -11657,11 +11700,11 @@
>            sodipodi:cy="197.97386"
>            sodipodi:rx="77.579712"
>            sodipodi:ry="79.100883"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)" />
>         <path
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            sodipodi:ry="79.100883"
>            sodipodi:rx="77.579712"
>            sodipodi:cy="197.97386"
> @@ -11677,11 +11720,11 @@
>            sodipodi:cy="197.97386"
>            sodipodi:rx="77.579712"
>            sodipodi:ry="79.100883"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)" />
>         <path
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            sodipodi:ry="79.100883"
>            sodipodi:rx="77.579712"
>            sodipodi:cy="197.97386"
> @@ -11697,11 +11740,11 @@
>            sodipodi:cy="197.97386"
>            sodipodi:rx="77.579712"
>            sodipodi:ry="79.100883"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)" />
>         <path
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            sodipodi:ry="79.100883"
>            sodipodi:rx="77.579712"
>            sodipodi:cy="197.97386"
> @@ -11717,11 +11760,11 @@
>            sodipodi:cy="197.97386"
>            sodipodi:rx="77.579712"
>            sodipodi:ry="79.100883"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)" />
>         <path
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            sodipodi:ry="79.100883"
>            sodipodi:rx="77.579712"
>            sodipodi:cy="197.97386"
> @@ -11737,12 +11780,12 @@
>            sodipodi:cy="197.97386"
>            sodipodi:rx="77.579712"
>            sodipodi:ry="79.100883"
> -           d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +           d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>            transform="matrix(0.8185128,0,0,0.8027723,1038.8434,923.89785)" />
>       </g>
>       <path
>          transform="matrix(0.6638333,0,0,0.6510673,1335.8434,853.93147)"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          sodipodi:ry="79.100883"
>          sodipodi:rx="77.579712"
>          sodipodi:cy="197.97386"
> @@ -11752,7 +11795,7 @@
>          sodipodi:type="arc" />
>       <path
>          transform="matrix(0.3983641,0,0,0.398426,1298.0279,979.92296)"
> -         d="M 96.439818,7.2857141 C 96.439818,21.428425 -27.400534,92.927686 -39.64848,85.85633 C -51.896427,78.784975 -51.896427,-64.213546 -39.64848,-71.284902 C -27.400534,-78.356257 96.439818,-6.8569967 96.439818,7.2857141 z"
> +         d="m 96.439818,7.2857141 c 0,14.1427109 -123.840352,85.6419719 -136.088298,78.5706159 -12.247947,-7.071355 -12.247947,-150.069876 0,-157.141232 12.247946,-7.071355 136.088298,64.4279053 136.088298,78.5706161 z"
>          inkscape:randomized="0"
>          inkscape:rounded="0.09"
>          inkscape:flatsided="true"
> @@ -11778,11 +11821,11 @@
>          sodipodi:cy="197.97386"
>          sodipodi:rx="77.579712"
>          sodipodi:ry="79.100883"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          transform="matrix(0.8185128,0,0,0.8027723,1655.3435,815.39787)" />
>       <path
>          transform="matrix(0.6638333,0,0,0.6510673,1647.3435,845.4315)"
> -         d="M 25.859901,197.97386 A 77.579712,79.100883 0 1 1 -129.29952,197.97386 A 77.579712,79.100883 0 1 1 25.859901,197.97386 z"
> +         d="m 25.859901,197.97386 c 0,43.68621 -34.7336197,79.10089 -77.579711,79.10089 -42.846092,0 -77.57971,-35.41468 -77.57971,-79.10089 0,-43.68621 34.733618,-79.10088 77.57971,-79.10088 42.8460913,0 77.579711,35.41467 77.579711,79.10088 z"
>          sodipodi:ry="79.100883"
>          sodipodi:rx="77.579712"
>          sodipodi:cy="197.97386"
> @@ -11804,5 +11847,14 @@
>          y="950.32581"
>          ry="5" />
>     </g>
> +    <g
> +       id="rightArrow"
> +       transform="translate(2e-5,4.9999961)">
> +      <path
> +         style="opacity:0.1;fill:#101010;fill-opacity:1;stroke:none"
> +         d="m 1343.0209,371.15914 c -0.079,10.46007 -0.1589,20.92014 -0.2383,31.38021 20.0758,11.76215 40.1517,23.52431 60.2275,35.28646 -7.4479,11.11111 -14.8959,22.22222 -22.3438,33.33333 9.9629,0 19.9259,0 29.8888,0 20.0758,-16.66667 40.1517,-33.33333 60.2275,-50 -42.5872,-16.66667 -85.1745,-33.33333 -127.7617,-50 z"
> +         id="path6560"
> +         sodipodi:nodetypes="ccccccc" />
> +    </g>
>   </g>
>  </svg>
> diff --git a/src/toolbar/MainToolbar.cpp b/src/toolbar/MainToolbar.cpp
> index c0a6234..3edeb15 100644
> --- a/src/toolbar/MainToolbar.cpp
> +++ b/src/toolbar/MainToolbar.cpp
> @@ -23,6 +23,7 @@
>  #include "Amarok.h"
>  #include "EngineController.h"
>  #include "GlobalCurrentTrackActions.h"
> +#include "SvgHandler.h"
>
>  #include "amarokurls/AmarokUrl.h"
>  #include "amarokurls/AmarokUrlHandler.h"
> @@ -65,11 +66,8 @@ MainToolbar::MainToolbar( QWidget *parent )
>     : QToolBar( i18n( "Main Toolbar" ), parent )
>     , EngineObserver( The::engineController() )
>     , m_lastTime( -1 )
> -    , m_bgGradientMode( 0 )
>  {
>     setObjectName( "MainToolbar" );
> -    // prevents local from triggering updates on the parent, needs to be false in case of no m_bgGradient
> -    setAttribute( Qt::WA_OpaquePaintEvent, true );
>
>     EngineController *engine = The::engineController();
>     m_currentEngineState = The::engineController()->state();
> @@ -87,7 +85,8 @@ MainToolbar::MainToolbar( QWidget *parent )
>
>     QWidget *info = new QWidget(this);
>     QVBoxLayout *vl = new QVBoxLayout( info );
> -
> +
> +    m_prev.key = 0;
>     m_prev.label = new AnimatedLabelStack(QStringList(), info);
>     m_prev.label->setAnimated( false );
>     m_prev.label->setOpacity( prevOpacity );
> @@ -100,6 +99,7 @@ MainToolbar::MainToolbar( QWidget *parent )
>     m_current.label->installEventFilter( this );
>     connect ( m_current.label, SIGNAL( clicked(const QString&) ), this, SLOT( filter(const QString&) ) );
>
> +    m_next.key = 0;
>     m_next.label = new AnimatedLabelStack(QStringList(), info);
>     m_next.label->setAnimated( false );
>     m_next.label->setOpacity( nextOpacity );
> @@ -170,7 +170,13 @@ MainToolbar::animateTrackLabels()
>  {
>     bool done = true;
>     int x = m_trackBarSpacer->geometry().x();
> -    const int dx = m_trackBarSpacer->geometry().width() / 3;
> +    int dx = m_trackBarSpacer->geometry().width() / 3;
> +    if ( layoutDirection() == Qt::RightToLeft )
> +    {
> +        x = m_trackBarSpacer->geometry().right() - dx;
> +        dx = -dx;
> +    }
> +
>     adjustLabelPos( m_prev.label, x );
>     m_prev.label->setOpacity( prevOpacity );
>     if (done)
> @@ -289,13 +295,22 @@ MainToolbar::layoutProgressBar()
>     QRect pb = r.adjusted( w, 0, -w, 0 );
>     m_slider->setGeometry( pb );
>
> -    QRect lr( 0, 0, tlW, r.height() );
> -    lr.moveTopRight( pb.topLeft() - QPoint( timeLabelMargin, 0 ) );
> -    m_timeLabel->setGeometry( lr );
> +    QRect tlR( 0, 0, tlW, r.height() );
> +    QRect rtlR( 0, 0, rtlW, r.height() );
> +
> +    if ( layoutDirection() == Qt::LeftToRight )
> +    {
> +        tlR.moveTopRight( pb.topLeft() - QPoint( timeLabelMargin, 0 ) );
> +        rtlR.moveTopLeft( pb.topRight() + QPoint( timeLabelMargin, 0 )  );
> +    }
> +    else
> +    {
> +        rtlR.moveTopRight( pb.topLeft() - QPoint( timeLabelMargin, 0 ) );
> +        tlR.moveTopLeft( pb.topRight() + QPoint( timeLabelMargin, 0 )  );
> +    }
>
> -    lr = QRect( 0, 0, rtlW, r.height() );
> -    lr.moveTopLeft( pb.topRight() + QPoint( timeLabelMargin, 0 )  );
> -    m_remainingTimeLabel->setGeometry( lr );
> +    m_timeLabel->setGeometry( tlR );
> +    m_remainingTimeLabel->setGeometry( rtlR );
>  }
>
>  void
> @@ -304,11 +319,21 @@ MainToolbar::layoutTrackBar()
>     m_dummy.label->hide();
>     QRect r = m_trackBarSpacer->geometry();
>     r.setWidth( r.width() / 3);
> +    int d = r.width();
> +
> +    if ( layoutDirection() == Qt::RightToLeft )
> +    {
> +        d = -d;
> +        r.moveRight( m_trackBarSpacer->geometry().right() );
> +    }
> +
>     m_prev.label->setGeometry( r );
>     m_prev.label->setOpacity( prevOpacity );
> -    r.moveLeft( r.right() + 1 );
> +
> +    r.translate( d, 0 );
>     m_current.label->setGeometry( r );
> -    r.moveLeft( r.right() + 1 );
> +
> +    r.translate( d, 0 );
>     m_next.label->setGeometry( r );
>     m_next.label->setOpacity( nextOpacity );
>  }
> @@ -320,7 +345,6 @@ MainToolbar::layoutTrackBar()
>  static QStringList metadata( Meta::TrackPtr track )
>  {
>     QStringList list;
> -    QRegExp rx("(\\s+-\\s+|\\s*;\\s*|\\s*:\\s*)"); // this will split "all-in-one" filename tags
>     if ( track )
>     {
>         if ( !track->name().isEmpty() )
> @@ -332,7 +356,20 @@ static QStringList metadata( Meta::TrackPtr track )
>                  (HAS_TAG(composer) && title.CONTAINS_TAG(composer)) ||
>                  (HAS_TAG(album) && title.CONTAINS_TAG(album)) )
>             {
> +                // this will split "all-in-one" filename tags
> +                QRegExp rx("(\\s+-\\s+|\\s*;\\s*|\\s*:\\s*)");
>                 list << title.split( rx, QString::SkipEmptyParts );
> +                QList<QString>::iterator i = list.begin();
> +                bool ok;
> +                while ( i != list.end() )
> +                {
> +                    // check whether this entry is only a number, i.e. probably year or track #
> +                    i->toInt( &ok );
> +                    if ( ok )
> +                        i = list.erase( i );
> +                    else
> +                        ++i;
> +                }
>             }
>             else
>             {
> @@ -346,12 +383,10 @@ static QStringList metadata( Meta::TrackPtr track )
>             list << TAG(composer);
>         if ( HAS_TAG(album) && !list.CONTAINS_TAG(album) )
>             list << TAG(album);
> -        if ( HAS_TAG(year) && TAG(year) != "0" ) // "0" years be empty?!
> -            list << TAG(year);
> -        if ( HAS_TAG(genre) && !list.CONTAINS_TAG(genre) )
> -            list << TAG(genre);
>
>         /* other tags
> +        string year
> +        string genre
>         double score
>         int rating
>         qint64 length // ms
> @@ -377,8 +412,8 @@ MainToolbar::updatePrevAndNext()
>  {
>     if ( !The::engineController()->currentTrack() )
>     {
> -        m_prev.label->setData( QStringList() );
> -        m_next.label->setData( QStringList() );
> +        m_prev.label->setData( QStringList() << "[" + i18n("Previous") + "]" );
> +        m_next.label->setData( QStringList() << "[" + i18n("Next") + "]"  );
>         m_current.label->setUpdatesEnabled( true );
>         return;
>     }
> @@ -390,20 +425,30 @@ MainToolbar::updatePrevAndNext()
>     // if we'd query the previous track first, we'd get a track that's actually no more present after
>     // the next track query. by this order we'll get a 0L track, what's also the navigators opinion
>     // about its queue :-\ //
> +    bool needUpdate = false;
> +    bool hadKey = bool(m_next.key);
>     Meta::TrackPtr track = The::playlistActions()->likelyNextTrack();
>     m_next.key = track ? track.data() : 0L;
>     m_next.label->setData( metadata( track ) );
>     m_next.label->setCursor( track ? Qt::PointingHandCursor : Qt::ArrowCursor );
> +    if ( hadKey != bool(m_next.key) )
> +        needUpdate = true;
>
> +    hadKey = bool(m_prev.key);
>     track = The::playlistActions()->likelyPrevTrack();
>     m_prev.key = track ? track.data() : 0L;
>     m_prev.label->setData( metadata( track ) );
>     m_prev.label->setCursor( track ? Qt::PointingHandCursor : Qt::ArrowCursor );
> +    if ( hadKey != bool(m_prev.key) )
> +        needUpdate = true;
>
>     // we may have disbaled it as otherwise the current label gets updated one eventcycle before prev & next
>     // see ::engineTrackChanged()
>     m_current.label->setUpdatesEnabled( true );
>
> +    if ( needUpdate )
> +        update();
> +
>     // unanimated change, probably by sliding the bar - fix label positions
>     if ( !m_trackBarAnimationTimer )
>         layoutTrackBar();
> @@ -458,21 +503,31 @@ MainToolbar::engineTrackChanged( Meta::TrackPtr track )
>         // on the other two labels, i.e. e.g. move the prev to current label position and current
>         // to the next and the animate the move into their target positions
>         QRect r = m_trackBarSpacer->geometry();
> -        r.setWidth( r.width() / 3);
> -        if ( isVisible() &&  m_current.label->geometry().x() == r.x() + r.width() )
> +        r.setWidth( r.width() / 3 );
> +        int d = r.width();
> +
> +        if ( layoutDirection() == Qt::RightToLeft )
> +        {
> +            d = -d;
> +            r.moveRight( m_trackBarSpacer->geometry().right() );
> +        }
> +
> +        if ( isVisible() &&  m_current.label->geometry().x() == r.x() + d )
>         {
>             if ( m_current.key == m_next.key && m_current.key != m_prev.key )
>             {
>                 // left
> -                m_dummy.targetX = r.x() - r.width()/2;
> +                m_dummy.targetX = r.x() - d/2;
> +//                 if ( d < 0 ) // rtl
> +//                     m_dummy.targetX -= d;
>                 m_dummy.label->setGeometry( r );
>                 m_dummy.label->setData( m_prev.label->data() );
>                 m_dummy.label->show();
>                 // center
> -                r.moveLeft( r.right() + 1 );
> +                r.translate( d, 0 );
>                 m_prev.label->setGeometry( r );
>                 // right
> -                r.moveLeft( r.right() + 1 );
> +                r.translate( d, 0 );
>                 m_current.label->setGeometry( r );
>                 m_next.label->setGeometry( r );
>
> @@ -488,12 +543,12 @@ MainToolbar::engineTrackChanged( Meta::TrackPtr track )
>                 m_prev.label->setGeometry( r );
>                 m_current.label->setGeometry( r );
>                 // center
> -                r.moveLeft( r.right() + 1 );
> +                r.translate( d, 0 );
>                 m_next.label->setGeometry( r );
>
>                 // right
> -                r.moveLeft( r.right() + 1 );
> -                m_dummy.targetX = r.x() + r.width()/2;
> +                r.translate( d, 0 );
> +                m_dummy.targetX = r.x() + d/2;
>                 m_dummy.label->setGeometry( r );
>                 m_dummy.label->setData( m_next.label->data() );
>                 m_dummy.label->show();
> @@ -559,30 +614,35 @@ MainToolbar::hideEvent( QHideEvent *ev )
>  }
>
>  void
> -MainToolbar::mousePressEvent( QMouseEvent *mev )
> -{
> -    if ( mev->button() == Qt::MidButton )
> -    {
> -        ++m_bgGradientMode;
> -        m_bgGradientMode %= 4;
> -        updateBgGradient();
> -        update();
> -        return;
> -    }
> -    QToolBar::mousePressEvent( mev );
> -}
> -
> -void
>  MainToolbar::paintEvent( QPaintEvent *ev )
>  {
> -    if ( m_bgGradientMode )
> -    {
> -        QPainter p( this );
> +
> +    QPainter p;
> +    if ( !testAttribute( Qt::WA_OpaquePaintEvent ) ) // this hints that the UI style will overpaint
> +    {                                                // entire area anyway.
> +        p.begin( this );
> +        p.setClipRegion( ev->region() );
>         p.drawTiledPixmap( rect(), m_bgGradient );
>         p.end();
>     }
> +
>     // by keeping this below, the style will have the last word on the toolbar look
> +    // this is at least important to paint the draghandle
>     QToolBar::paintEvent( ev );
> +
> +    // but we force the arrows above
> +    if ( m_prev.key || m_next.key )
> +    {
> +        p.begin( this );
> +        p.setClipRegion( ev->region() );
> +        const int dx = width() / 6;
> +        const int dp = m_arrowLeft.width() / 2;
> +        if ( m_prev.key )
> +            p.drawPixmap( dx - dp, 6, m_arrowLeft );
> +        if ( m_next.key )
> +            p.drawPixmap( width() - (dx + dp),  6, m_arrowRight );
> +        p.end();
> +    }
>  }
>
>
> @@ -590,7 +650,13 @@ void
>  MainToolbar::resizeEvent( QResizeEvent *ev )
>  {
>     if ( ev->size().height() != ev->oldSize().height() )
> +    {
>         updateBgGradient();
> +        const int h = height() - 12;
> +        const int w = h*128/100; // original ratio from default theme
> +        m_arrowLeft = The::svgHandler()->renderSvg( "leftArrow", w, h, "leftArrow" );
> +        m_arrowRight = The::svgHandler()->renderSvg( "rightArrow", w, h, "rightArrow" );
> +    }
>     if ( ev->size().width() > 0 && ev->size().width() != ev->oldSize().width() )
>     {
>         layoutProgressBar();
> @@ -697,112 +763,22 @@ MainToolbar::timerEvent( QTimerEvent *ev )
>         QToolBar::timerEvent( ev );
>  }
>
> -// magic gradient functions, taken from some UI style ;-P
> -static inline QLinearGradient
> -silkenGradient(const QColor &c, const QPoint &start, const QPoint &stop)
> -{
> -    int h,s,v,a, inc = 15, dec = 6;
> -    c.getHsv( &h, &s, &v, &a );
> -
> -    // calc difference
> -    if ( v+inc > 255 )
> -    {
> -        inc = 255-v;
> -        dec += ( 15-inc );
> -    }
> -
> -    QLinearGradient lg( start, stop );
> -    QColor ic;
> -    ic.setHsv( h, s, v+inc, a );
> -    lg.setColorAt( 0, ic );
> -    ic.setHsv( h, s, v-dec, a );
> -    lg.setColorAt( 0.75, ic );
> -    // this triggers a rebend (like on latest iTunes)
> -    lg.setColorAt( 1.0, c );
> -    return lg;
> -}
> -
> -static inline QLinearGradient
> -glassGradient(const QColor &c, const QPoint &start, const QPoint &stop)
> -{
> -    QColor bb,dd; // b = d = c;
> -
> -    int h,s,v,a;
> -    c.getHsv( &h, &s, &v, &a );
> -
> -    // calculate the variation
> -    int add = (180 - v ) / 1;
> -    if ( add < 0 )
> -        add = -add/2;
> -    add /= 48;
> -
> -    // the brightest color (top)
> -    int cv = v + 27 + add, ch = h, cs = s;
> -
> -    if ( cv > 255 )
> -    {
> -        int delta = cv - 255;
> -        cv = 255;
> -        cs = s - 6*delta;
> -        if ( cs < 0 )
> -            cs = 0;
> -        ch = h - 3*delta/2;
> -        while ( ch < 0 )
> -            ch += 360;
> -    }
> -    bb.setHsv( ch, cs, cv, a);
> -
> -    // the darkest color (lower center)
> -    cv = v - 14 - add;
> -    if ( cv < 0 )
> -        cv = 0;
> -    cs = s*13/7;
> -    if ( cs > 255 )
> -        cs = 255;
> -    dd.setHsv( h, cs, cv, a);
> -
> -    QLinearGradient lg( start, stop );
> -    lg.setColorAt( 0, bb );
> -    lg.setColorAt( .35, c );
> -    lg.setColorAt( .42, dd );
> -    lg.setColorAt( 1, bb );
> -    return lg;
> -}
> -
>  void
>  MainToolbar::updateBgGradient()
>  {
> -    if ( !m_bgGradientMode )
> -    {
> -        setAttribute( Qt::WA_OpaquePaintEvent, false );
> -        m_bgGradient = QPixmap();
> -        return;
> -    }
> -
> -    setAttribute( Qt::WA_OpaquePaintEvent, false );
>     // please keep the 32px width
>     // X11/XRender is optimized to this and e.g. 1px would cause a tremendous slowdown on painting
>     m_bgGradient = QPixmap( 32, height() );
> +    m_bgGradient.fill( Qt::transparent );
>     const QColor c = palette().color( QPalette::Active, QPalette::Window );
> +    QLinearGradient lg( 0, 0, 0, height()-1 );
> +//     lg.setColorAt( 0.25, c.lighter( 106 ) );
> +//     lg.setColorAt( 0.75, c.lighter( 103 ) );
> +    lg.setColorAt( 0, QColor(255,255,255,0) );
> +    lg.setColorAt( 1, QColor(0,0,0,48) );
> +
>     QPainter p( &m_bgGradient );
> -    switch ( m_bgGradientMode )
> -    {
> -    case 1:
> -    default:
> -        p.fillRect( m_bgGradient.rect(), silkenGradient( c, m_bgGradient.rect().topLeft(), m_bgGradient.rect().bottomLeft() ) );
> -        break;
> -    case 2:
> -        p.fillRect( m_bgGradient.rect(), glassGradient( c, m_bgGradient.rect().topLeft(), m_bgGradient.rect().bottomLeft() ) );
> -        break;
> -    case 3:
> -    {
> -        QLinearGradient lg( m_bgGradient.rect().topLeft(), m_bgGradient.rect().bottomLeft() );
> -        lg.setColorAt( 0, c.darker( 115 ) );
> -        lg.setColorAt( 1, c.lighter( 117 ) );
> -        p.fillRect( m_bgGradient.rect(), lg );
> -        break;
> -    }
> -    }
> +    p.fillRect( m_bgGradient.rect(), lg );
>     p.end();
>  }
>
> diff --git a/src/toolbar/MainToolbar.h b/src/toolbar/MainToolbar.h
> index ee0ed71..b27e6ec 100644
> --- a/src/toolbar/MainToolbar.h
> +++ b/src/toolbar/MainToolbar.h
> @@ -47,7 +47,6 @@ public:
>  protected:
>     bool eventFilter( QObject *o, QEvent *ev );
>     void hideEvent( QHideEvent *ev );
> -    void mousePressEvent( QMouseEvent * );
>     void paintEvent( QPaintEvent *ev );
>     void resizeEvent( QResizeEvent *ev );
>     void showEvent( QShowEvent *ev );
> @@ -74,7 +73,7 @@ private:
>
>     QSpacerItem *m_trackBarSpacer;
>     QSpacerItem *m_progressBarSpacer;
> -    QPixmap m_bgGradient;
> +    QPixmap m_bgGradient, m_arrowLeft, m_arrowRight;
>
>     struct
>     {
> @@ -115,7 +114,6 @@ private:
>         int max;
>     } m_drag;
>     int m_trackBarAnimationTimer;
> -    int m_bgGradientMode;
>
>     Phonon::State m_currentEngineState;
>
>
>
>



-- 
_____________________________________________________________________
leonardo.franchi at tufts.edu         Tufts  University 2010
leo at kdab.com                                 KDAB (USA), LLC
lfranchi at kde.org                             The KDE Project


More information about the Amarok-devel mailing list