Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--icons/tango/actions/format-text-bold.svg327
-rw-r--r--icons/tango/actions/format-text-italic.svg334
-rw-r--r--icons/tango/actions/format-text-underline.svg434
-rw-r--r--icons/tango/mimetypes/image-x-generic.svg581
-rw-r--r--icons/tango/mimetypes/text-html.svg1432
-rw-r--r--src/mumble/ACLEditor.cpp8
-rw-r--r--src/mumble/ACLEditor.ui28
-rw-r--r--src/mumble/MainWindow.cpp94
-rw-r--r--src/mumble/MainWindow.h1
-rw-r--r--src/mumble/RichTextEditor.cpp251
-rw-r--r--src/mumble/RichTextEditor.h20
-rw-r--r--src/mumble/RichTextEditor.ui42
-rw-r--r--src/mumble/RichTextEditorLink.ui95
-rw-r--r--src/mumble/Settings.cpp4
-rw-r--r--src/mumble/Settings.h2
-rw-r--r--src/mumble/TextMessage.cpp26
-rw-r--r--src/mumble/TextMessage.h3
-rw-r--r--src/mumble/TextMessage.ui69
-rw-r--r--src/mumble/mumble.pro2
-rw-r--r--src/mumble/mumble_tango.qrc5
20 files changed, 3601 insertions, 157 deletions
diff --git a/icons/tango/actions/format-text-bold.svg b/icons/tango/actions/format-text-bold.svg
new file mode 100644
index 000000000..9268d4ea6
--- /dev/null
+++ b/icons/tango/actions/format-text-bold.svg
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="48"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+ sodipodi:docname="format-text-bold.svg"
+ version="1.0"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs1308">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective46" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2288">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop2290" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop2292" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2243">
+ <stop
+ id="stop2245"
+ offset="0"
+ style="stop-color:#2a5387;stop-opacity:1" />
+ <stop
+ id="stop2247"
+ offset="1"
+ style="stop-color:#3465a4;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2233">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2235" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2237" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3682">
+ <stop
+ style="stop-color:#497fc6;stop-opacity:1;"
+ offset="0"
+ id="stop3684" />
+ <stop
+ style="stop-color:#90b3d9;stop-opacity:1;"
+ offset="1"
+ id="stop3686" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2834">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2836" />
+ <stop
+ style="stop-color:#b3b3b3;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2838" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8662">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop8664" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop8666" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3682"
+ id="linearGradient2475"
+ gradientUnits="userSpaceOnUse"
+ x1="29.122221"
+ y1="33.438889"
+ x2="14.296363"
+ y2="6.3463993" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2243"
+ id="linearGradient2477"
+ gradientUnits="userSpaceOnUse"
+ x1="19.988434"
+ y1="34.98325"
+ x2="19.988434"
+ y2="6.4341555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2834"
+ id="linearGradient2479"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,-3)"
+ x1="19.891792"
+ y1="16.114628"
+ x2="31.856716"
+ y2="72.780548" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2233"
+ id="linearGradient2481"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1,-4)"
+ x1="25"
+ y1="27.5"
+ x2="26.673967"
+ y2="10" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8662"
+ id="radialGradient2490"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.536723,3.750475e-14,16.87306)"
+ cx="24.837126"
+ cy="36.421127"
+ fx="24.837126"
+ fy="36.421127"
+ r="15.644737" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8662"
+ id="radialGradient2494"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.536723,6.419148e-15,16.87306)"
+ cx="24.837126"
+ cy="36.421127"
+ fx="24.837126"
+ fy="36.421127"
+ r="15.644737" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2288"
+ id="linearGradient2294"
+ x1="24"
+ y1="42.25"
+ x2="24"
+ y2="36.615528"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.97619,0,0,0.406377,0.571429,24.97647)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="0.18039216"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="-116.87002"
+ inkscape:cy="47.121576"
+ inkscape:current-layer="layer5"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ showguides="false"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1044"
+ inkscape:window-height="818"
+ inkscape:window-x="390"
+ inkscape:window-y="30"
+ inkscape:grid-points="true"
+ stroke="#204a87"
+ fill="#2e3436"
+ showborder="true"
+ inkscape:showpageshadow="false">
+ <sodipodi:guide
+ orientation="vertical"
+ position="14.406922"
+ id="guide2257" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="41.565351"
+ id="guide2259" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="29.03324"
+ id="guide2261" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="19.964923"
+ id="guide2265" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="31.739108"
+ id="guide2267" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="28.59445"
+ id="guide2269" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="24.133423"
+ id="guide2271" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="14.56111"
+ id="guide2266" />
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="0.5px"
+ spacingy="0.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.2"
+ empopacity="0.4"
+ empspacing="2" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>Bold</dc:title>
+ <dc:date>2006-01-04</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Lapo Calamandrei</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://tango-project.org</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>text</rdf:li>
+ <rdf:li>a</rdf:li>
+ <rdf:li>bold</rdf:li>
+ <rdf:li>write</rdf:li>
+ <rdf:li>letter</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>Andreas Nilsson</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/publicdomain/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="Shadow"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.2;color:#000000;fill:url(#radialGradient2494);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path2492"
+ sodipodi:cx="24.837126"
+ sodipodi:cy="36.421127"
+ sodipodi:rx="15.644737"
+ sodipodi:ry="8.3968935"
+ d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1 9.1923885,36.421127 A 15.644737 8.3968935 0 1 1 40.481863 36.421127 z"
+ transform="matrix(1.470144,0,0,0.535474,-12.76416,20.91534)"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer4"
+ inkscape:label="A"
+ style="display:inline">
+ <g
+ id="g2464"
+ transform="translate(0,4)">
+ <path
+ id="path2277"
+ d="M 18,0.5 L 3,37.5 L 13,37.5 L 15.224112,31.5 L 32.731694,31.5 L 35,37.5 L 45,37.5 L 30,0.5 L 27,0.5 L 21,0.5 L 18,0.5 z M 24,9 L 29.59375,23.5 L 18.40625,23.5 L 24,9 z "
+ style="fill:url(#linearGradient2475);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2477);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1"
+ sodipodi:nodetypes="ccccccccccccccc" />
+ <path
+ style="font-size:54.8693924px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:0.7;fill:none;fill-opacity:1;stroke:url(#linearGradient2479);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans"
+ d="M 4.4634342,36.5 L 18.698561,1.5 L 29.345564,1.5 L 43.563927,36.5 L 35.676777,36.5 L 33.5,30.5 L 14.5,30.5 L 12.265165,36.5 L 4.4634342,36.5 z "
+ id="path2304"
+ sodipodi:nodetypes="ccccccccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path2306"
+ d="M 16.881282,24.5 L 31.118718,24.5 L 24,6.5 L 16.881282,24.5 z "
+ style="opacity:0.7;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2481);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
+ </g>
+ </g>
+</svg>
diff --git a/icons/tango/actions/format-text-italic.svg b/icons/tango/actions/format-text-italic.svg
new file mode 100644
index 000000000..3a4bc363a
--- /dev/null
+++ b/icons/tango/actions/format-text-italic.svg
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="48"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+ sodipodi:docname="format-text-italic.svg"
+ version="1.0"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs1308">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective46" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8662"
+ id="radialGradient2494"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.536723,6.419148e-15,16.87306)"
+ cx="24.837126"
+ cy="36.421127"
+ fx="24.837126"
+ fy="36.421127"
+ r="15.644737" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3118">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3120" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3122" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2243">
+ <stop
+ id="stop2245"
+ offset="0"
+ style="stop-color:#2a5387;stop-opacity:1" />
+ <stop
+ id="stop2247"
+ offset="1"
+ style="stop-color:#3465a4;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2233">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2235" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2237" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3682">
+ <stop
+ style="stop-color:#497fc6;stop-opacity:1;"
+ offset="0"
+ id="stop3684" />
+ <stop
+ style="stop-color:#90b3d9;stop-opacity:1;"
+ offset="1"
+ id="stop3686" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2834">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2836" />
+ <stop
+ style="stop-color:#b3b3b3;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2838" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8662">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop8664" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop8666" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2233"
+ id="linearGradient2327"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.000006,1)"
+ x1="30.123499"
+ y1="28.5"
+ x2="30.916004"
+ y2="5.3994164" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2834"
+ id="linearGradient2330"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.000004,1)"
+ x1="20.846664"
+ y1="15.432576"
+ x2="21.077463"
+ y2="61.926037" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3682"
+ id="linearGradient2333"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.000004,1)"
+ x1="29.033241"
+ y1="36.44521"
+ x2="14.33379"
+ y2="9.4596548" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2243"
+ id="linearGradient2335"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(6.000004,4)"
+ x1="22.125"
+ y1="34.962811"
+ x2="22.125"
+ y2="6.25" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8662"
+ id="radialGradient2499"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.536723,1.528049e-13,16.87306)"
+ cx="24.837126"
+ cy="36.421127"
+ fx="24.837126"
+ fy="36.421127"
+ r="15.644737" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8662"
+ id="radialGradient2503"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.536723,-2.399233e-14,16.87306)"
+ cx="24.837126"
+ cy="36.421127"
+ fx="24.837126"
+ fy="36.421127"
+ r="15.644737" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3118"
+ id="linearGradient3124"
+ x1="27.0625"
+ y1="42.001186"
+ x2="27.0625"
+ y2="37.981052"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.555556,0,18.66667)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="0.20784314"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4"
+ inkscape:cx="11.321773"
+ inkscape:cy="-4.1247834"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ showguides="false"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1041"
+ inkscape:window-height="818"
+ inkscape:window-x="393"
+ inkscape:window-y="30"
+ inkscape:grid-points="true"
+ stroke="#204a87"
+ fill="#2e3436"
+ showborder="true"
+ inkscape:showpageshadow="false">
+ <sodipodi:guide
+ orientation="vertical"
+ position="14.406922"
+ id="guide2257" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="41.565351"
+ id="guide2259" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="29.03324"
+ id="guide2261" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="19.964923"
+ id="guide2265" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="31.739108"
+ id="guide2267" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="28.59445"
+ id="guide2269" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="24.133423"
+ id="guide2271" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="6.0450673"
+ id="guide2266" />
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="0.5px"
+ spacingy="0.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.2"
+ empopacity="0.4"
+ empspacing="2"
+ visible="true"
+ enabled="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>Italic</dc:title>
+ <dc:date>2006-01-04</dc:date>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Lapo Calamandrei</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://tango-project.org</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>text</rdf:li>
+ <rdf:li>a</rdf:li>
+ <rdf:li>italic</rdf:li>
+ <rdf:li>cursive</rdf:li>
+ <rdf:li>write</rdf:li>
+ <rdf:li>letter</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/publicdomain/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="Shadow"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.15;color:#000000;fill:url(#radialGradient2494);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path2492"
+ sodipodi:cx="24.837126"
+ sodipodi:cy="36.421127"
+ sodipodi:rx="15.644737"
+ sodipodi:ry="8.3968935"
+ d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1 9.1923885,36.421127 A 15.644737 8.3968935 0 1 1 40.481863 36.421127 z"
+ transform="matrix(1.470144,0,0,0.535474,-12.76416,20.91534)"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="A"
+ style="display:inline">
+ <path
+ sodipodi:nodetypes="ccccccccccccc"
+ style="fill:url(#linearGradient2333);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2335);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 34,4.5 L 4,41.5 L 10.500004,41.5 L 16.990516,33.5 L 36.5,33.5 L 36.500004,41.5 L 41.5,41.5 L 41.5,4.5 L 34,4.5 z M 36.5,9.5 L 36.5,28.5 L 21.047086,28.5 L 36.5,9.5 z "
+ id="path2211" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path2237"
+ d="M 6.1325825,40.5 L 34.5,5.5 L 40.5,5.5 L 40.5,40.5 L 37.388273,40.48699 L 37.388273,32.490985 L 16.793787,32.490985 L 9.8994954,40.5 L 6.1325825,40.5 z "
+ style="font-size:54.8693924px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:0.7;fill:none;fill-opacity:1;stroke:url(#linearGradient2330);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans" />
+ <path
+ style="opacity:0.38461538;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2327);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 18.976888,29.411612 L 37.47949,29.5 L 37.388273,6.8994165 L 18.976888,29.411612 z "
+ id="path2239"
+ sodipodi:nodetypes="cccc" />
+ </g>
+</svg>
diff --git a/icons/tango/actions/format-text-underline.svg b/icons/tango/actions/format-text-underline.svg
new file mode 100644
index 000000000..22131f6c2
--- /dev/null
+++ b/icons/tango/actions/format-text-underline.svg
@@ -0,0 +1,434 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="48"
+ id="svg1306"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/actions"
+ sodipodi:docname="format-text-underline.svg"
+ version="1.0"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs1308">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective61" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8662"
+ id="radialGradient2494"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.536723,6.419148e-15,16.87306)"
+ cx="24.837126"
+ cy="36.421127"
+ fx="24.837126"
+ fy="36.421127"
+ r="15.644737" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3135">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3137" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop3139" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2521">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop2523" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop2525" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2249">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2251" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2253" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2243">
+ <stop
+ id="stop2245"
+ offset="0"
+ style="stop-color:#2a5387;stop-opacity:1" />
+ <stop
+ id="stop2247"
+ offset="1"
+ style="stop-color:#3465a4;stop-opacity:1;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient2233">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2235" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2237" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3682">
+ <stop
+ style="stop-color:#497fc6;stop-opacity:1;"
+ offset="0"
+ id="stop3684" />
+ <stop
+ style="stop-color:#90b3d9;stop-opacity:1;"
+ offset="1"
+ id="stop3686" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient2834">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2836" />
+ <stop
+ style="stop-color:#b3b3b3;stop-opacity:0.0000000;"
+ offset="1.0000000"
+ id="stop2838" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient8662">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop8664" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop8666" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient1467">
+ <stop
+ style="stop-color:#2a5387;stop-opacity:1"
+ offset="0"
+ id="stop1469" />
+ <stop
+ style="stop-color:#3465a4;stop-opacity:1;"
+ offset="1"
+ id="stop1471" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2233"
+ id="linearGradient1621"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1,-1)"
+ x1="24.911612"
+ y1="22.13604"
+ x2="24.911612"
+ y2="6.4029131" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2834"
+ id="linearGradient1624"
+ gradientUnits="userSpaceOnUse"
+ x1="19.891792"
+ y1="16.114628"
+ x2="21.506844"
+ y2="85.696808"
+ gradientTransform="translate(0,-1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2249"
+ id="linearGradient1633"
+ gradientUnits="userSpaceOnUse"
+ x1="39.421204"
+ y1="41.459263"
+ x2="-24.130018"
+ y2="41.5"
+ gradientTransform="translate(0,1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3682"
+ id="linearGradient1635"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,-2)"
+ x1="27.675018"
+ y1="45.398964"
+ x2="16.0744"
+ y2="27.920008" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2521"
+ id="linearGradient2527"
+ x1="16.841536"
+ y1="24"
+ x2="16.841536"
+ y2="25.010555"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,21)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient1467"
+ id="linearGradient2535"
+ x1="5.0271654"
+ y1="27.761904"
+ x2="5.0271654"
+ y2="20.416153"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,21)" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8662"
+ id="radialGradient2559"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.536723,4.470566e-14,16.87306)"
+ cx="24.837126"
+ cy="36.421127"
+ fx="24.837126"
+ fy="36.421127"
+ r="15.644737" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8662"
+ id="radialGradient2561"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.536723,-1.811862e-13,16.87306)"
+ cx="24.837126"
+ cy="36.421127"
+ fx="24.837126"
+ fy="36.421127"
+ r="15.644737" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3682"
+ id="linearGradient1364"
+ gradientUnits="userSpaceOnUse"
+ x1="29.033241"
+ y1="36.44521"
+ x2="14.33379"
+ y2="9.4596548"
+ gradientTransform="translate(0,-1)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2243"
+ id="linearGradient1366"
+ gradientUnits="userSpaceOnUse"
+ x1="22.125"
+ y1="34.962811"
+ x2="22.125"
+ y2="6.25"
+ gradientTransform="translate(0,2)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3135"
+ id="linearGradient3141"
+ x1="24.0625"
+ y1="41.9375"
+ x2="24"
+ y2="37.937214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1,0,0,0.555556,0,18.66667)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="0.1372549"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="4"
+ inkscape:cx="-18.480348"
+ inkscape:cy="26.019267"
+ inkscape:current-layer="layer2"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ showguides="false"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1041"
+ inkscape:window-height="818"
+ inkscape:window-x="393"
+ inkscape:window-y="30"
+ inkscape:grid-points="true"
+ stroke="#204a87"
+ fill="#2e3436"
+ showborder="true"
+ inkscape:showpageshadow="false">
+ <sodipodi:guide
+ orientation="vertical"
+ position="14.406922"
+ id="guide2257" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="41.565351"
+ id="guide2259" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="29.03324"
+ id="guide2261" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="19.964923"
+ id="guide2265" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="31.739108"
+ id="guide2267" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="28.59445"
+ id="guide2269" />
+ <sodipodi:guide
+ orientation="vertical"
+ position="24.133423"
+ id="guide2271" />
+ <sodipodi:guide
+ orientation="horizontal"
+ position="6.0450673"
+ id="guide2266" />
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="0.5px"
+ spacingy="0.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.2"
+ empopacity="0.4"
+ empspacing="2" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata1311">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>Format Text - Underlined</dc:title>
+ <dc:date />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Lapo Calamandrei</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://tango-project.org</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>text</rdf:li>
+ <rdf:li>a</rdf:li>
+ <rdf:li>strikeout</rdf:li>
+ <rdf:li>strike-out</rdf:li>
+ <rdf:li>write</rdf:li>
+ <rdf:li>letter</rdf:li>
+ <rdf:li>strike-though</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+ <dc:contributor>
+ <cc:Agent>
+ <dc:title>jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:contributor>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/publicdomain/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:groupmode="layer"
+ id="layer5"
+ inkscape:label="Shadow"
+ style="display:inline">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.15;color:#000000;fill:url(#radialGradient2494);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="path2492"
+ sodipodi:cx="24.837126"
+ sodipodi:cy="36.421127"
+ sodipodi:rx="15.644737"
+ sodipodi:ry="8.3968935"
+ d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1 9.1923885,36.421127 A 15.644737 8.3968935 0 1 1 40.481863 36.421127 z"
+ transform="matrix(1.470144,0,0,0.535474,-12.76416,20.91534)"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="A"
+ style="display:inline">
+ <path
+ style="fill:url(#linearGradient1364);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1366);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 20,2.5 L 5,39.5 L 11,39.5 L 14.25,31.5 L 33.75,31.5 L 37,39.5 L 43,39.5 L 28,2.5 L 20,2.5 z M 24,7.5 L 31.71875,26.5 L 16.28125,26.5 L 24,7.5 z "
+ id="path2211"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ sodipodi:nodetypes="ccccccccc"
+ id="path2237"
+ d="M 10.5,38.5 L 6.6462632,38.5 L 20.682829,3.5 L 27.353737,3.5 L 41.682829,38.5 L 37.865658,38.5 L 34.403563,30.469062 L 13.523417,30.368272 C 13.523417,30.368272 10.5,38.5 10.5,38.5 z "
+ style="font-size:54.8693924px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;opacity:0.6;fill:none;fill-opacity:1;stroke:url(#linearGradient1624);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline;font-family:Bitstream Vera Sans"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ style="opacity:0.47802198;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1621);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 14.43934,27.5 L 33.383883,27.5 L 24.041631,4.8110299 L 14.43934,27.5 z "
+ id="path2239"
+ sodipodi:nodetypes="cc"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <rect
+ style="color:#000000;fill:url(#linearGradient1635);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient2535);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="rect2331"
+ width="39"
+ height="3"
+ x="4.5"
+ y="41.5"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ <path
+ style="opacity:0.8;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1633);stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
+ d="M 5.5,42.5 L 42.5,42.5"
+ id="path2353"
+ sodipodi:nodetypes="cc"
+ inkscape:r_cx="true"
+ inkscape:r_cy="true" />
+ </g>
+</svg>
diff --git a/icons/tango/mimetypes/image-x-generic.svg b/icons/tango/mimetypes/image-x-generic.svg
new file mode 100644
index 000000000..45dd641ae
--- /dev/null
+++ b/icons/tango/mimetypes/image-x-generic.svg
@@ -0,0 +1,581 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48.000000px"
+ height="48.000000px"
+ xml:space="preserve"
+ id="svg16168"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="image-x-generic.svg"
+ sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/mimetypes"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
+ id="metadata16236">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+
+
+
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+
+
+
+ <dc:title>Genric Image</dc:title>
+<dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+</dc:creator>
+<dc:subject>
+ <rdf:Bag><rdf:li>image</rdf:li><rdf:li>picture</rdf:li><rdf:li>snapshot</rdf:li><rdf:li>photo</rdf:li></rdf:Bag>
+</dc:subject>
+<cc:license
+ rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+</cc:Work>
+
+
+
+
+<cc:License
+ rdf:about="http://creativecommons.org/licenses/publicdomain/"><cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" /><cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" /><cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /></cc:License></rdf:RDF>
+
+
+
+</metadata>
+
+
+
+<defs
+ id="defs16234"><inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective80" /><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient6719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" /><linearGradient
+ inkscape:collect="always"
+ id="linearGradient5060"><stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop5062" /><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5064" /></linearGradient><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient6717"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" /><linearGradient
+ id="linearGradient5048"><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="0"
+ id="stop5050" /><stop
+ id="stop5056"
+ offset="0.5"
+ style="stop-color:black;stop-opacity:1;" /><stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5052" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient6715"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" /><linearGradient
+ id="linearGradient8171"><stop
+ style="stop-color:#bbbdba;stop-opacity:1;"
+ offset="0"
+ id="stop8173" /><stop
+ style="stop-color:#70746e;stop-opacity:1;"
+ offset="1"
+ id="stop8175" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ id="linearGradient8155"><stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop8157" /><stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop8159" /></linearGradient><linearGradient
+ id="linearGradient2224"><stop
+ style="stop-color:#7c7c7c;stop-opacity:1;"
+ offset="0"
+ id="stop2226" /><stop
+ style="stop-color:#b8b8b8;stop-opacity:1;"
+ offset="1"
+ id="stop2228" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ id="linearGradient2251"><stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop2253" /><stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop2255" /></linearGradient><linearGradient
+ id="linearGradient7648"
+ gradientUnits="userSpaceOnUse"
+ x1="21.9326"
+ y1="24.6274"
+ x2="21.9326"
+ y2="7.1091"
+ style="stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-width:1.2166667">
+ <stop
+ offset="0"
+ style="stop-color:#8595bc;stop-opacity:1;"
+ id="stop7650" />
+
+
+
+
+ <stop
+ offset="1"
+ style="stop-color:#041a3b;stop-opacity:1;"
+ id="stop7652" />
+
+
+
+
+ </linearGradient><linearGradient
+ id="linearGradient2392"><stop
+ id="stop2394"
+ offset="0.0000000"
+ style="stop-color:#715b26;stop-opacity:1.0000000;" /><stop
+ id="stop2396"
+ offset="1.0000000"
+ style="stop-color:#312710;stop-opacity:1.0000000;" /></linearGradient><linearGradient
+ inkscape:collect="always"
+ id="linearGradient12129"><stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop12131" /><stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop12133" /></linearGradient>
+
+ <linearGradient
+ style="stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-width:1.2166667"
+ y2="36.0328"
+ x2="31.0813"
+ y1="3.7319"
+ x1="12.4873"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd1">
+ <stop
+ id="stop16177"
+ style="stop-color:#D2D2D2;stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-width:1.2166667"
+ offset="0" />
+
+
+
+
+ <stop
+ id="stop16179"
+ style="stop-color:#EDEDED;stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-width:1.2166667"
+ offset="1" />
+
+
+
+
+ </linearGradient>
+
+
+
+
+
+ <linearGradient
+ style="stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-width:1.2166667"
+ y2="22.5769"
+ x2="21.9168"
+ y1="30.3413"
+ x1="21.877"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd2">
+ <stop
+ id="stop16184"
+ style="stop-color:#5e4f07;stop-opacity:1.0000000;"
+ offset="0.0000000" />
+
+
+
+
+ <stop
+ id="stop16186"
+ style="stop-color:#348a31;stop-opacity:1.0000000;"
+ offset="1.0000000" />
+
+
+
+
+ </linearGradient>
+
+
+
+
+
+
+
+
+
+ <linearGradient
+ style="stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-width:1.2166667"
+ y2="7.1091"
+ x2="21.9326"
+ y1="24.6274"
+ x1="21.9326"
+ gradientUnits="userSpaceOnUse"
+ id="aigrd3">
+ <stop
+ id="stop16199"
+ style="stop-color:#D0D6E5;stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-width:1.2166667"
+ offset="0" />
+
+
+
+
+ <stop
+ id="stop16201"
+ style="stop-color:#093A80;stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-width:1.2166667"
+ offset="1" />
+
+
+
+
+ </linearGradient>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12129"
+ id="radialGradient12135"
+ cx="24.218407"
+ cy="41.636040"
+ fx="24.218407"
+ fy="41.636040"
+ r="22.097088"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.184000,0.000000,33.97501)"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7648"
+ id="linearGradient7671"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.098989,0.000000,0.000000,-0.797757,-1.953865,37.32400)"
+ x1="21.9326"
+ y1="24.627399"
+ x2="21.9326"
+ y2="7.1090999" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd3"
+ id="linearGradient7673"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.098989,0.000000,0.000000,1.106697,-1.953865,-4.922453)"
+ x1="21.9326"
+ y1="24.6274"
+ x2="21.9326"
+ y2="7.1091" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd1"
+ id="linearGradient8148"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.434003,0.000000,0.000000,0.990087,52.32167,2.838918)"
+ x1="12.4873"
+ y1="3.7319"
+ x2="31.0813"
+ y2="36.0328" /><radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8155"
+ id="radialGradient8161"
+ cx="12.700491"
+ cy="10.404876"
+ fx="12.700491"
+ fy="10.404876"
+ r="19.96875"
+ gradientTransform="matrix(1.710531,-5.396358e-24,2.470345e-24,1.124849,-11.56833,1.802582)"
+ gradientUnits="userSpaceOnUse" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2251"
+ id="linearGradient8166"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.147570,-3.409792)"
+ x1="33.396004"
+ y1="36.921333"
+ x2="34.170048"
+ y2="38.070381" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2224"
+ id="linearGradient8169"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(5.147570,-3.034792)"
+ x1="35.996582"
+ y1="40.458221"
+ x2="33.664921"
+ y2="37.770721" /><linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient8171"
+ id="linearGradient8177"
+ x1="42.1875"
+ y1="31"
+ x2="45"
+ y2="39.984692"
+ gradientUnits="userSpaceOnUse" /></defs>
+
+
+
+<sodipodi:namedview
+ inkscape:window-height="818"
+ inkscape:window-width="1238"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ borderopacity="0.07058824"
+ bordercolor="#666666"
+ pagecolor="#ffffff"
+ id="base"
+ inkscape:zoom="1"
+ inkscape:cx="49.378608"
+ inkscape:cy="-24.095483"
+ inkscape:window-x="0"
+ inkscape:window-y="30"
+ inkscape:current-layer="svg16168"
+ showgrid="false"
+ inkscape:showpageshadow="false" />
+
+
+
+
+
+ <g
+ style="display:inline"
+ transform="matrix(2.175112e-2,0,0,2.493263e-2,42.41049,33.81117)"
+ id="g6707"><rect
+ style="opacity:0.40206185;color:black;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="rect6709"
+ width="1339.6335"
+ height="478.35718"
+ x="-1559.2523"
+ y="-150.69685" /><path
+ style="opacity:0.40206185;color:black;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+ id="path6711"
+ sodipodi:nodetypes="cccc" /><path
+ sodipodi:nodetypes="cccc"
+ id="path6713"
+ d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+ style="opacity:0.40206185;color:black;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /></g><path
+ style="color:#000000;fill:url(#linearGradient8148);fill-opacity:1;fill-rule:nonzero;stroke:#bbbfbb;stroke-width:0.99999994;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 2.7177715,6.4547749 L 43.379544,6.4547749 C 44.002793,6.4547749 44.504543,6.9565247 44.504543,7.5797745 L 44.504543,31.480581 C 44.504543,32.103831 36.047842,39.499872 35.424593,39.499872 L 2.7177715,39.499872 C 2.0945221,39.499872 1.5927727,38.998122 1.5927727,38.374872 L 1.5927727,7.5797745 C 1.5927727,6.9565247 2.0945221,6.4547749 2.7177715,6.4547749 z "
+ id="rect7603"
+ sodipodi:nodetypes="ccccccccc" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<g
+ id="g7654"
+ transform="matrix(1.054774,0.000000,0.000000,1.049989,-0.814647,4.485012)"><path
+ id="path7644"
+ d="M 5.512695,30 L 39.643234,30 L 39.643234,19.627375 L 5.512695,19.627375 L 5.512695,30 z "
+ style="fill:url(#linearGradient7671);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.2166667;stroke-miterlimit:4" /><path
+ style="fill:url(#linearGradient7673);fill-rule:nonzero;stroke:none;stroke-width:1.2166667;stroke-miterlimit:4"
+ d="M 5.512695,5.237844 L 39.643234,5.237844 L 39.643234,19.627375 L 5.512695,19.627375 L 5.512695,5.237844 z "
+ id="path16203" /><g
+ id="g16205"
+ style="fill-rule:nonzero;stroke:#000000;stroke-width:1.15611064;stroke-miterlimit:4"
+ transform="matrix(1.189217,0.000000,0.000000,1.189217,-3.525355,-6.535408)">
+ <g
+ id="g16207">
+ <path
+ style="opacity:0.04999994;fill:#e8f52f;stroke:none"
+ d="M 18.4,15.4 C 18.4,17.6 16.6,19.5 14.3,19.5 C 12.1,19.5 10.2,17.7 10.2,15.4 C 10.2,13.2 12,11.3 14.3,11.3 C 16.5,11.3 18.4,13.1 18.4,15.4 z "
+ id="path16209" />
+
+
+
+
+ <path
+ style="opacity:0.20829994;fill:#ecf751;stroke:none"
+ d="M 18,15.4 C 18,17.4 16.4,19.1 14.3,19.1 C 12.3,19.1 10.6,17.5 10.6,15.4 C 10.6,13.4 12.2,11.7 14.3,11.7 C 16.3,11.7 18,13.3 18,15.4 L 18,15.4 z "
+ id="path16211" />
+
+
+
+
+ <path
+ style="opacity:0.36669994;fill:#f0f972;stroke:none"
+ d="M 17.6,15.4 C 17.6,17.2 16.1,18.7 14.3,18.7 C 12.5,18.7 11,17.2 11,15.4 C 11,13.6 12.5,12.1 14.3,12.1 C 16.1,12.1 17.6,13.6 17.6,15.4 L 17.6,15.4 z "
+ id="path16213" />
+
+
+
+
+ <path
+ style="opacity:0.525;fill:#f4fa95;stroke:none"
+ d="M 17.2,15.4 C 17.2,17 15.9,18.3 14.3,18.3 C 12.7,18.3 11.4,17 11.4,15.4 C 11.4,13.8 12.7,12.5 14.3,12.5 C 15.9,12.5 17.2,13.8 17.2,15.4 z "
+ id="path16215" />
+
+
+
+
+ <path
+ style="opacity:0.6833;fill:#f7fcb7;stroke:none"
+ d="M 16.8,15.4 C 16.8,16.8 15.7,17.9 14.3,17.9 C 12.9,17.9 11.8,16.8 11.8,15.4 C 11.8,14 12.9,12.9 14.3,12.9 C 15.7,12.9 16.8,14 16.8,15.4 L 16.8,15.4 z "
+ id="path16217" />
+
+
+
+
+ <path
+ style="opacity:0.8417;fill:#fbfddb;stroke:none"
+ d="M 16.4,15.4 C 16.4,16.6 15.4,17.5 14.3,17.5 C 13.2,17.5 12.2,16.5 12.2,15.4 C 12.2,14.3 13.2,13.3 14.3,13.3 C 15.4,13.3 16.4,14.3 16.4,15.4 z "
+ id="path16219" />
+
+
+
+
+ <path
+ style="fill:#ffffff;stroke:none"
+ d="M 16,15.4 C 16,16.4 15.2,17.2 14.2,17.2 C 13.2,17.2 12.4,16.4 12.4,15.4 C 12.4,14.4 13.2,13.6 14.2,13.6 C 15.2,13.6 16,14.4 16,15.4 L 16,15.4 z "
+ id="path16221" />
+
+
+
+
+ </g>
+
+
+
+
+ </g><path
+ style="opacity:0.3;fill-rule:nonzero;stroke:none;stroke-width:1.2166667;stroke-miterlimit:4"
+ d="M 25.015859,21.649044 L 33.697148,21.649044 L 35.362052,22.124732 L 32.507931,22.124732 C 32.507931,22.124732 35.362052,22.362574 36.789115,24.146401 C 38.216174,25.811305 35.12421,27.832976 35.12421,27.832976 C 35.12421,27.832976 35.12421,27.832976 35.12421,27.832976 C 35.005288,27.47621 34.291756,24.622087 32.864696,23.43287 C 31.794399,22.481496 30.605182,22.243652 30.605182,22.243652 L 25.015859,22.243652 L 25.015859,21.767966 L 25.015859,21.649044 z "
+ id="path16223" /><path
+ style="opacity:0.3;fill-rule:nonzero;stroke:none;stroke-width:1.2166667;stroke-miterlimit:4"
+ d="M 30.724106,22.362574 L 25.729391,22.362574 L 35.005288,27.595131 L 30.724106,22.362574 L 30.724106,22.362574 z "
+ id="path16225" /><path
+ style="fill:#515151;fill-rule:nonzero;stroke:none;stroke-width:1.2166667;stroke-miterlimit:4"
+ d="M 25.015859,21.767966 L 33.697148,21.767966 L 35.005288,20.935513 L 32.151167,20.935513 C 32.151167,20.935513 34.767443,20.459827 35.12421,17.486782 C 35.480973,14.513739 31.080869,11.183931 31.080869,11.183931 C 31.080869,11.183931 31.080869,11.183931 31.080869,11.302853 C 31.19979,12.016383 32.389007,17.011096 31.556557,18.913846 C 31.19979,20.578747 30.129495,20.935513 30.129495,20.935513 L 24.659094,20.935513 L 24.896938,21.767966 L 25.015859,21.767966 z "
+ id="path16227" /><path
+ style="fill:#515151;fill-rule:nonzero;stroke:none;stroke-width:1.2166667;stroke-miterlimit:4"
+ d="M 30.248418,20.459827 L 25.253704,20.459827 L 31.19979,11.421773 L 30.248418,20.459827 z "
+ id="path16229" /></g><path
+ style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.99999976;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 2.8042317,7.4528585 L 43.233985,7.4528585 C 43.384366,7.4528585 43.505431,7.5739234 43.505431,7.7243045 L 43.505431,31.422651 C 43.505431,32.368527 36.401687,38.5 36.251306,38.5 L 2.8042317,38.5 C 2.6538507,38.5 2.5327858,38.378935 2.5327858,38.228554 L 2.5327858,7.7243045 C 2.5327858,7.5739234 2.6538507,7.4528585 2.8042317,7.4528585 z "
+ id="rect7675"
+ sodipodi:nodetypes="ccccccccc" /><rect
+ style="opacity:0.84659095;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#4f4f4f;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="rect8163"
+ width="35.0625"
+ height="25.0625"
+ x="5.5"
+ y="10.5" /><path
+ style="color:#000000;fill:url(#linearGradient8169);fill-opacity:1.0;fill-rule:evenodd;stroke:url(#linearGradient8177);stroke-width:1.00000024;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 35.206652,39.468763 C 37.23707,39.798661 44.795445,34.938834 44.491063,30.970919 C 42.927801,33.394016 39.732541,32.257657 35.623783,32.416667 C 35.623783,32.416667 36.019152,38.968763 35.206652,39.468763 z "
+ id="path2210"
+ sodipodi:nodetypes="cccc" /><path
+ sodipodi:nodetypes="cccc"
+ id="path2247"
+ d="M 36.657089,37.277261 C 38.026868,36.593432 41.085338,35.130796 42.384719,33.249792 C 40.788625,33.929847 39.436909,33.459288 36.682385,33.440197 C 36.682385,33.440197 36.844707,36.502291 36.657089,37.277261 z "
+ style="opacity:0.36931817;color:#000000;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient8166);stroke-width:0.99999982;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /><path
+ style="opacity:0.30113636;color:#000000;fill:url(#radialGradient8161);fill-opacity:1.0;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M 3.0625,8 L 3.0625,30.0625 C 25.388579,30.950861 27.884634,17 43,17 L 43,8 L 3.0625,8 z "
+ id="rect8150"
+ sodipodi:nodetypes="ccccc" /></svg> \ No newline at end of file
diff --git a/icons/tango/mimetypes/text-html.svg b/icons/tango/mimetypes/text-html.svg
new file mode 100644
index 000000000..330c3906d
--- /dev/null
+++ b/icons/tango/mimetypes/text-html.svg
@@ -0,0 +1,1432 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48.000000px"
+ height="48.000000px"
+ id="svg249"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docbase="/home/jimmac/src/cvs/tango-icon-theme/scalable/mimetypes"
+ sodipodi:docname="text-html.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs3">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 24 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective228" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient6719"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-2.774389,0,0,1.969706,112.7623,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient5060">
+ <stop
+ style="stop-color:black;stop-opacity:1;"
+ offset="0"
+ id="stop5062" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5064" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5060"
+ id="radialGradient6717"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1891.633,-872.8854)"
+ cx="605.71429"
+ cy="486.64789"
+ fx="605.71429"
+ fy="486.64789"
+ r="117.14286" />
+ <linearGradient
+ id="linearGradient5048">
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="0"
+ id="stop5050" />
+ <stop
+ id="stop5056"
+ offset="0.5"
+ style="stop-color:black;stop-opacity:1;" />
+ <stop
+ style="stop-color:black;stop-opacity:0;"
+ offset="1"
+ id="stop5052" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5048"
+ id="linearGradient6715"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.774389,0,0,1.969706,-1892.179,-872.8854)"
+ x1="302.85715"
+ y1="366.64789"
+ x2="302.85715"
+ y2="609.50507" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4542">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop4544" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop4546" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4542"
+ id="radialGradient4548"
+ cx="24.306795"
+ cy="42.07798"
+ fx="24.306795"
+ fy="42.07798"
+ r="15.821514"
+ gradientTransform="matrix(1.000000,0.000000,0.000000,0.284916,-7.702171e-16,30.08928)"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient4126">
+ <stop
+ id="stop4128"
+ offset="0.0000000"
+ style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop4130"
+ offset="1.0000000"
+ style="stop-color:#ffffff;stop-opacity:0.16494845;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4750">
+ <stop
+ id="stop4752"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop4758"
+ offset="0.37931034"
+ style="stop-color:#fefefe;stop-opacity:1.0000000;" />
+ <stop
+ id="stop4754"
+ offset="1.0000000"
+ style="stop-color:#1d1d1d;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4350"
+ inkscape:collect="always">
+ <stop
+ id="stop4352"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop4354"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3962">
+ <stop
+ id="stop3964"
+ offset="0.0000000"
+ style="stop-color:#d3e9ff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop4134"
+ offset="0.15517241"
+ style="stop-color:#d3e9ff;stop-opacity:1.0000000;" />
+ <stop
+ id="stop4346"
+ offset="0.75000000"
+ style="stop-color:#4074ae;stop-opacity:1.0000000;" />
+ <stop
+ id="stop3966"
+ offset="1.0000000"
+ style="stop-color:#36486c;stop-opacity:1.0000000;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4114"
+ inkscape:collect="always">
+ <stop
+ id="stop4116"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop4118"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient15662">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop15664" />
+ <stop
+ style="stop-color:#f8f8f8;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop15666" />
+ </linearGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ fy="64.5679"
+ fx="20.8921"
+ r="5.257"
+ cy="64.5679"
+ cx="20.8921"
+ id="aigrd3">
+ <stop
+ id="stop15573"
+ style="stop-color:#F0F0F0"
+ offset="0" />
+ <stop
+ id="stop15575"
+ style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+ offset="1.0000000" />
+ </radialGradient>
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ fy="114.5684"
+ fx="20.8921"
+ r="5.256"
+ cy="114.5684"
+ cx="20.8921"
+ id="aigrd2">
+ <stop
+ id="stop15566"
+ style="stop-color:#F0F0F0"
+ offset="0" />
+ <stop
+ id="stop15568"
+ style="stop-color:#9a9a9a;stop-opacity:1.0000000;"
+ offset="1.0000000" />
+ </radialGradient>
+ <linearGradient
+ id="linearGradient269">
+ <stop
+ style="stop-color:#a3a3a3;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop270" />
+ <stop
+ style="stop-color:#4c4c4c;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop271" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient259">
+ <stop
+ style="stop-color:#fafafa;stop-opacity:1.0000000;"
+ offset="0.0000000"
+ id="stop260" />
+ <stop
+ style="stop-color:#bbbbbb;stop-opacity:1.0000000;"
+ offset="1.0000000"
+ id="stop261" />
+ </linearGradient>
+ <radialGradient
+ r="37.751713"
+ fy="3.7561285"
+ fx="8.8244190"
+ cy="3.7561285"
+ cx="8.8244190"
+ gradientTransform="matrix(0.968273,0.000000,0.000000,1.032767,3.353553,0.646447)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient15656"
+ xlink:href="#linearGradient269"
+ inkscape:collect="always" />
+ <radialGradient
+ r="86.708450"
+ fy="35.736916"
+ fx="33.966679"
+ cy="35.736916"
+ cx="33.966679"
+ gradientTransform="scale(0.960493,1.041132)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient15658"
+ xlink:href="#linearGradient259"
+ inkscape:collect="always" />
+ <radialGradient
+ r="38.158695"
+ fy="7.2678967"
+ fx="8.1435566"
+ cy="7.2678967"
+ cx="8.1435566"
+ gradientTransform="matrix(0.968273,0.000000,0.000000,1.032767,3.353553,0.646447)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient15668"
+ xlink:href="#linearGradient15662"
+ inkscape:collect="always" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd2"
+ id="radialGradient2283"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
+ cx="20.8921"
+ cy="114.5684"
+ fx="20.8921"
+ fy="114.5684"
+ r="5.256" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#aigrd3"
+ id="radialGradient2285"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.229703,0.000000,0.000000,0.229703,4.613529,3.979808)"
+ cx="20.8921"
+ cy="64.5679"
+ fx="20.8921"
+ fy="64.5679"
+ r="5.257" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7214"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7216"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7220"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7224"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7228"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7232"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7236"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7240"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7244"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7248"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7252"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7256"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7260"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7264"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7268"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7272"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7276"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7280"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7282"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7286"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7290"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7292"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7296"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7300"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7304"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7308"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7312"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4114"
+ id="radialGradient7422"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.643990,0.608276)"
+ cx="15.115514"
+ cy="63.965388"
+ fx="15.115514"
+ fy="63.965388"
+ r="12.289036" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3962"
+ id="radialGradient7424"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.587130,0.000000,0.000000,0.587142,11.29919,10.42967)"
+ cx="18.247644"
+ cy="15.716079"
+ fx="18.247644"
+ fy="15.716079"
+ r="29.993349" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4350"
+ id="radialGradient7426"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.179536,0.847791)"
+ cx="11.826907"
+ cy="10.476453"
+ fx="11.826907"
+ fy="10.476453"
+ r="32.664848" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7428"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7430"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7432"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7434"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7436"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7438"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7440"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7442"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7444"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7446"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7448"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7450"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7452"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4750"
+ id="radialGradient7454"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="scale(1.036822,0.964486)"
+ cx="18.633780"
+ cy="17.486208"
+ fx="18.934305"
+ fy="17.810213"
+ r="40.692665" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4126"
+ id="radialGradient7456"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.587130,0.000000,0.000000,0.587142,11.29919,10.42967)"
+ cx="15.601279"
+ cy="12.142302"
+ fx="15.601279"
+ fy="12.142302"
+ r="43.526714" />
+ </defs>
+ <sodipodi:namedview
+ inkscape:showpageshadow="false"
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="35.072186"
+ inkscape:cy="21.843109"
+ inkscape:current-layer="layer6"
+ showgrid="false"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="872"
+ inkscape:window-height="688"
+ inkscape:window-x="188"
+ inkscape:window-y="122" />
+ <metadata
+ id="metadata4">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title>HTML Document</dc:title>
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Jakub Steiner</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ <dc:source>http://jimmac.musichall.cz</dc:source>
+ <dc:subject>
+ <rdf:Bag>
+ <rdf:li>HTML</rdf:li>
+ <rdf:li>hypertext</rdf:li>
+ <rdf:li>web</rdf:li>
+ </rdf:Bag>
+ </dc:subject>
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/publicdomain/">
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Reproduction" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#Distribution" />
+ <cc:permits
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Shadow"
+ id="layer6"
+ inkscape:groupmode="layer">
+ <g
+ style="display:inline"
+ transform="matrix(2.105461e-2,0,0,2.086758e-2,42.85172,41.1536)"
+ id="g6707">
+ <rect
+ style="opacity:0.40206185;color:black;fill:url(#linearGradient6715);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ id="rect6709"
+ width="1339.6335"
+ height="478.35718"
+ x="-1559.2523"
+ y="-150.69685" />
+ <path
+ style="opacity:0.40206185;color:black;fill:url(#radialGradient6717);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+ d="M -219.61876,-150.68038 C -219.61876,-150.68038 -219.61876,327.65041 -219.61876,327.65041 C -76.744594,328.55086 125.78146,220.48075 125.78138,88.454235 C 125.78138,-43.572302 -33.655436,-150.68036 -219.61876,-150.68038 z "
+ id="path6711"
+ sodipodi:nodetypes="cccc" />
+ <path
+ sodipodi:nodetypes="cccc"
+ id="path6713"
+ d="M -1559.2523,-150.68038 C -1559.2523,-150.68038 -1559.2523,327.65041 -1559.2523,327.65041 C -1702.1265,328.55086 -1904.6525,220.48075 -1904.6525,88.454235 C -1904.6525,-43.572302 -1745.2157,-150.68036 -1559.2523,-150.68038 z "
+ style="opacity:0.40206185;color:black;fill:url(#radialGradient6719);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ id="layer1"
+ inkscape:label="Base"
+ inkscape:groupmode="layer"
+ style="display:inline">
+ <rect
+ ry="1.1490486"
+ y="3.6464462"
+ x="6.6035528"
+ height="40.920494"
+ width="34.875000"
+ id="rect15391"
+ style="color:#000000;fill:url(#radialGradient15658);fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15656);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ rx="0.14904857"
+ ry="0.14904857"
+ y="4.5839462"
+ x="7.6660538"
+ height="38.946384"
+ width="32.775887"
+ id="rect15660"
+ style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient15668);stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <g
+ id="g2270"
+ transform="translate(0.646447,-3.798933e-2)">
+ <g
+ transform="matrix(0.229703,0.000000,0.000000,0.229703,4.967081,4.244972)"
+ style="fill:#ffffff;fill-opacity:1.0000000;fill-rule:nonzero;stroke:#000000;stroke-miterlimit:4.0000000"
+ id="g1440">
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ fy="114.56840"
+ fx="20.892099"
+ r="5.2560000"
+ cy="114.56840"
+ cx="20.892099"
+ id="radialGradient1442">
+ <stop
+ id="stop1444"
+ style="stop-color:#F0F0F0"
+ offset="0" />
+ <stop
+ id="stop1446"
+ style="stop-color:#474747"
+ offset="1" />
+ </radialGradient>
+ <path
+ id="path1448"
+ d="M 23.428000,113.07000 C 23.428000,115.04300 21.828000,116.64200 19.855000,116.64200 C 17.881000,116.64200 16.282000,115.04200 16.282000,113.07000 C 16.282000,111.09600 17.882000,109.49700 19.855000,109.49700 C 21.828000,109.49700 23.428000,111.09700 23.428000,113.07000 z "
+ style="stroke:none" />
+ <radialGradient
+ gradientUnits="userSpaceOnUse"
+ fy="64.567902"
+ fx="20.892099"
+ r="5.2570000"
+ cy="64.567902"
+ cx="20.892099"
+ id="radialGradient1450">
+ <stop
+ id="stop1452"
+ style="stop-color:#F0F0F0"
+ offset="0" />
+ <stop
+ id="stop1454"
+ style="stop-color:#474747"
+ offset="1" />
+ </radialGradient>
+ <path
+ id="path1456"
+ d="M 23.428000,63.070000 C 23.428000,65.043000 21.828000,66.643000 19.855000,66.643000 C 17.881000,66.643000 16.282000,65.043000 16.282000,63.070000 C 16.282000,61.096000 17.882000,59.497000 19.855000,59.497000 C 21.828000,59.497000 23.428000,61.097000 23.428000,63.070000 z "
+ style="stroke:none" />
+ </g>
+ <path
+ id="path15570"
+ d="M 9.9950109,29.952326 C 9.9950109,30.405530 9.6274861,30.772825 9.1742821,30.772825 C 8.7208483,30.772825 8.3535532,30.405301 8.3535532,29.952326 C 8.3535532,29.498892 8.7210780,29.131597 9.1742821,29.131597 C 9.6274861,29.131597 9.9950109,29.499122 9.9950109,29.952326 z "
+ style="fill:url(#radialGradient2283);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+ <path
+ id="path15577"
+ d="M 9.9950109,18.467176 C 9.9950109,18.920380 9.6274861,19.287905 9.1742821,19.287905 C 8.7208483,19.287905 8.3535532,18.920380 8.3535532,18.467176 C 8.3535532,18.013742 8.7210780,17.646447 9.1742821,17.646447 C 9.6274861,17.646447 9.9950109,18.013972 9.9950109,18.467176 z "
+ style="fill:url(#radialGradient2285);fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000" />
+ </g>
+ <path
+ sodipodi:nodetypes="cc"
+ id="path15672"
+ d="M 11.505723,5.4942766 L 11.505723,43.400869"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.98855311;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.017543854" />
+ <path
+ sodipodi:nodetypes="cc"
+ id="path15674"
+ d="M 12.500000,5.0205154 L 12.500000,43.038228"
+ style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.20467831" />
+ </g>
+ <g
+ style="display:inline"
+ inkscape:label="Text"
+ id="layer5"
+ inkscape:groupmode="layer">
+ <g
+ id="g2253"
+ transform="matrix(0.909091,0.000000,0.000000,1.000000,2.363628,0.000000)">
+ <rect
+ ry="0.065390877"
+ rx="0.15156493"
+ y="9.0000000"
+ x="15.000002"
+ height="1.0000000"
+ width="22.000004"
+ id="rect15686"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.15156493"
+ y="11.000000"
+ x="15.000002"
+ height="1.0000000"
+ width="22.000004"
+ id="rect15688"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.15156493"
+ y="13.000000"
+ x="15.000002"
+ height="1.0000000"
+ width="22.000004"
+ id="rect15690"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.15156493"
+ y="15.000000"
+ x="15.000002"
+ height="1.0000000"
+ width="22.000004"
+ id="rect15692"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.15156493"
+ y="17.000000"
+ x="15.000002"
+ height="1.0000000"
+ width="22.000004"
+ id="rect15694"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.15156493"
+ y="19.000000"
+ x="15.000002"
+ height="1.0000000"
+ width="22.000004"
+ id="rect15696"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.15156493"
+ y="21.000000"
+ x="15.000002"
+ height="1.0000000"
+ width="22.000004"
+ id="rect15698"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.15156493"
+ y="23.000000"
+ x="15.000002"
+ height="1.0000000"
+ width="22.000004"
+ id="rect15700"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.068204239"
+ y="25.000000"
+ x="14.999992"
+ height="1.0000000"
+ width="9.9000053"
+ id="rect15732"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.15156493"
+ y="29.000000"
+ x="14.999992"
+ height="1.0000000"
+ width="22.000004"
+ id="rect15736"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.15156493"
+ y="31.000000"
+ x="14.999992"
+ height="1.0000000"
+ width="22.000004"
+ id="rect15738"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.15156493"
+ y="33.000000"
+ x="14.999992"
+ height="1.0000000"
+ width="22.000004"
+ id="rect15740"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.15156493"
+ y="35.000000"
+ x="14.999992"
+ height="1.0000000"
+ width="22.000004"
+ id="rect15742"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ <rect
+ ry="0.065390877"
+ rx="0.10609552"
+ y="37.000000"
+ x="14.999992"
+ height="1.0000000"
+ width="15.400014"
+ id="rect15744"
+ style="color:#000000;fill:#9b9b9b;fill-opacity:0.54970759;fill-rule:nonzero;stroke:none;stroke-width:1.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.081871338;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;overflow:visible" />
+ </g>
+ <g
+ id="g7314"
+ transform="matrix(1.160511,0.000000,0.000000,1.160511,1.847713,3.119486)">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#radialGradient7422);fill-opacity:1.0000000;stroke:none;stroke-opacity:1.0000000"
+ id="path4112"
+ sodipodi:cx="24.849752"
+ sodipodi:cy="38.908627"
+ sodipodi:rx="20.203051"
+ sodipodi:ry="7.4751287"
+ d="M 45.052803 38.908627 A 20.203051 7.4751287 0 1 1 4.6467018,38.908627 A 20.203051 7.4751287 0 1 1 45.052803 38.908627 z"
+ transform="matrix(0.587136,0.000000,0.000000,0.729954,11.29919,4.398359)" />
+ <path
+ style="stroke-width:1.7233788;stroke-dasharray:none;stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke:#39396c;fill-rule:nonzero;fill-opacity:1.0000000;fill:url(#radialGradient7424)"
+ d="M 37.109606,24.218856 C 37.109606,30.506919 32.012029,35.604438 25.724831,35.604438 C 19.437057,35.604438 14.339767,30.506861 14.339767,24.218856 C 14.339767,17.931081 19.437057,12.834081 25.724831,12.834081 C 32.012029,12.834081 37.109606,17.931081 37.109606,24.218856 L 37.109606,24.218856 z "
+ id="path3214" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.42159382;fill:url(#radialGradient7426);fill-opacity:1.0000000;stroke:none;stroke-opacity:1.0000000"
+ id="path4348"
+ sodipodi:cx="17.778685"
+ sodipodi:cy="15.271057"
+ sodipodi:rx="12.929953"
+ sodipodi:ry="9.2934036"
+ d="M 30.708637 15.271057 A 12.929953 9.2934036 0 1 1 4.8487320,15.271057 A 12.929953 9.2934036 0 1 1 30.708637 15.271057 z"
+ transform="matrix(0.490809,0.000000,0.000000,0.587136,17.10413,10.42967)" />
+ <g
+ id="g4136"
+ style="fill:#000000;fill-opacity:0.71345031;fill-rule:nonzero;stroke:none;stroke-miterlimit:4.0000000"
+ transform="matrix(0.576786,0.000000,0.000000,0.576786,11.37028,10.56642)">
+ <g
+ id="g4138">
+ <g
+ id="g4142">
+ <path
+ d="M 44.071300,20.714400 C 44.071300,20.977100 44.071300,20.714400 44.071300,20.714400 L 43.526400,21.331600 C 43.192400,20.938000 42.817400,20.607000 42.436600,20.261300 L 41.600700,20.384300 L 40.837000,19.521000 L 40.837000,20.589400 L 41.491300,21.084500 L 41.926800,21.577700 L 42.508800,20.919500 C 42.655300,21.193900 42.799800,21.468300 42.945300,21.742700 L 42.945300,22.565000 L 42.290000,23.305200 L 41.090800,24.128400 L 40.182600,25.034700 L 39.600600,24.374500 L 39.891600,23.634300 L 39.310500,22.976100 L 38.329100,20.878400 L 37.493200,19.933100 L 37.274400,20.179200 L 37.602500,21.372600 L 38.219700,22.071800 C 38.572200,23.089400 38.920900,24.062000 39.383800,25.034700 C 40.101600,25.034700 40.778300,24.958500 41.491200,24.868700 L 41.491200,25.444900 L 40.619100,27.584100 L 39.819300,28.488400 L 39.165000,29.888800 C 39.165000,30.656400 39.165000,31.424000 39.165000,32.191500 L 39.383800,33.097800 L 39.020500,33.508000 L 38.219700,34.002100 L 37.383800,34.701300 L 38.075200,35.482600 L 37.129900,36.306800 L 37.311500,36.840000 L 35.893500,38.445500 L 34.949200,38.445500 L 34.149400,38.939600 L 33.639600,38.939600 L 33.639600,38.281400 L 33.422800,36.963000 C 33.141500,36.136800 32.848600,35.316500 32.550700,34.496200 C 32.550700,33.890700 32.586800,33.291100 32.623000,32.685700 L 32.987300,31.863400 L 32.477500,30.875100 L 32.514600,29.517700 L 31.823200,28.736400 L 32.168900,27.605500 L 31.606400,26.967300 L 30.624000,26.967300 L 30.296900,26.597200 L 29.315500,27.214900 L 28.916100,26.761300 L 28.006900,27.543000 C 27.389700,26.843300 26.771500,26.144100 26.153400,25.444900 L 25.426800,23.716400 L 26.081100,22.730100 L 25.717800,22.319000 L 26.516600,20.425400 C 27.172900,19.609000 27.858400,18.825800 28.551800,18.039700 L 29.788100,17.710600 L 31.169000,17.546500 L 32.114300,17.793600 L 33.459000,19.150000 L 33.931700,18.615800 L 34.585000,18.533800 L 35.821300,18.944900 L 36.766600,18.944900 L 37.420900,18.368700 L 37.711900,17.957600 L 37.056600,17.546500 L 35.965800,17.464500 C 35.663100,17.044600 35.381800,16.603200 35.022400,16.230100 L 34.658100,16.394200 L 34.512600,17.464500 L 33.858300,16.724300 L 33.713800,15.900100 L 32.987200,15.325900 L 32.695200,15.325900 L 33.422700,16.148200 L 33.131700,16.888400 L 32.550600,17.052500 L 32.913900,16.312300 L 32.258600,15.984200 L 31.678500,15.326000 L 30.586700,15.572100 L 30.442200,15.900200 L 29.787900,16.312300 L 29.424600,17.217600 L 28.516400,17.669700 L 28.116000,17.217600 L 27.680500,17.217600 L 27.680500,15.736200 L 28.625800,15.242100 L 29.352400,15.242100 L 29.205900,14.666900 L 28.625800,14.090700 L 29.606300,13.884600 L 30.151200,13.268400 L 30.586700,12.527200 L 31.387500,12.527200 L 31.168700,11.952000 L 31.678500,11.622900 L 31.678500,12.281100 L 32.768300,12.527200 L 33.858100,11.622900 L 33.931300,11.210800 L 34.875600,10.553100 C 34.533800,10.595600 34.192000,10.626800 33.858000,10.717700 L 33.858000,9.9766000 L 34.221300,9.1538000 L 33.858000,9.1538000 L 33.059600,9.8940000 L 32.840800,10.305600 L 33.059600,10.882300 L 32.695300,11.868600 L 32.114200,11.539500 L 31.606400,10.964300 L 30.805600,11.539500 L 30.514600,10.223600 L 31.895500,9.3188000 L 31.895500,8.8247000 L 32.768500,8.2490000 L 34.149400,7.9194000 L 35.094700,8.2490000 L 36.838800,8.5781000 L 36.403300,9.0713000 L 35.458000,9.0713000 L 36.403300,10.058600 L 37.129900,9.2363000 L 37.350600,8.8745000 C 37.350600,8.8745000 40.137700,11.372500 41.730500,14.105000 C 43.323300,16.838400 44.071300,20.060100 44.071300,20.714400 z "
+ id="path4144" />
+ </g>
+ </g>
+ <g
+ id="g4146">
+ <g
+ id="g4150">
+ <path
+ d="M 26.070300,9.2363000 L 25.997100,9.7295000 L 26.506900,10.058600 L 27.378000,9.4829000 L 26.942500,8.9892000 L 26.360500,9.3188000 L 26.070500,9.2363000"
+ id="path4152" />
+ </g>
+ </g>
+ <g
+ id="g4154">
+ <g
+ id="g4158">
+ <path
+ d="M 26.870100,5.8633000 L 24.979500,5.1226000 L 22.799800,5.3692000 L 20.109400,6.1094000 L 19.600600,6.6035000 L 21.272500,7.7549000 L 21.272500,8.4131000 L 20.618200,9.0713000 L 21.491200,10.800300 L 22.071300,10.470200 L 22.799800,9.3188000 C 23.922800,8.9716000 24.929700,8.5781000 25.997100,8.0844000 L 26.870100,5.8632000"
+ id="path4160" />
+ </g>
+ </g>
+ <g
+ id="g4162">
+ <g
+ id="g4166">
+ <path
+ d="M 28.833000,12.774900 L 28.542000,12.033700 L 28.032200,12.198700 L 28.178700,13.103000 L 28.833000,12.774900"
+ id="path4168" />
+ </g>
+ </g>
+ <g
+ id="g4170">
+ <g
+ id="g4174">
+ <path
+ d="M 29.123000,12.608900 L 28.977500,13.597200 L 29.777300,13.432200 L 30.358400,12.857000 L 29.849600,12.362900 C 29.678700,11.907800 29.482400,11.483000 29.268500,11.046500 L 28.833000,11.046500 L 28.833000,11.539700 L 29.123000,11.868800 L 29.123000,12.609000"
+ id="path4176" />
+ </g>
+ </g>
+ <g
+ id="g4178">
+ <g
+ id="g4182">
+ <path
+ d="M 18.365200,28.242200 L 17.783200,27.089900 L 16.692900,26.843300 L 16.111400,25.280800 L 14.657800,25.444900 L 13.422400,24.540600 L 12.113300,25.692000 L 12.113300,25.873600 C 11.717300,25.759300 11.230500,25.743700 10.877900,25.526900 L 10.586900,24.704600 L 10.586900,23.799300 L 9.7148000,23.881300 C 9.7876000,23.305100 9.8598000,22.729900 9.9331000,22.153800 L 9.4238000,22.153800 L 8.9155000,22.812000 L 8.4062000,23.058100 L 7.6791000,22.647900 L 7.6063000,21.742600 L 7.7518000,20.755300 L 8.8426000,19.933000 L 9.7147000,19.933000 L 9.8597000,19.438900 L 10.950000,19.685000 L 11.749800,20.673300 L 11.895300,19.026800 L 13.276600,17.875400 L 13.785400,16.641000 L 14.803000,16.229900 L 15.384500,15.407600 L 16.692600,15.159600 L 17.347400,14.173300 C 16.693100,14.173300 16.038800,14.173300 15.384500,14.173300 L 16.620300,13.597100 L 17.491900,13.597100 L 18.728200,13.185000 L 18.873700,12.692800 L 18.437200,12.280700 L 17.928400,12.115700 L 18.073900,11.622500 L 17.710600,10.882300 L 16.838000,11.210400 L 16.983500,10.552700 L 15.965900,9.9765000 L 15.166600,11.374400 L 15.238900,11.868500 L 14.439600,12.198600 L 13.930300,13.267900 L 13.712500,12.280600 L 12.331200,11.704400 L 12.112900,10.964200 L 13.930300,9.8939000 L 14.730100,9.1537000 L 14.802900,8.2489000 L 14.366900,8.0018000 L 13.785400,7.9193000 L 13.422100,8.8246000 C 13.422100,8.8246000 12.814200,8.9437000 12.657900,8.9823000 C 10.661800,10.821700 6.6286000,14.792400 5.6916000,22.288500 C 5.7287000,22.462300 6.3708000,23.470100 6.3708000,23.470100 L 7.8972000,24.374400 L 9.4236000,24.786500 L 10.078400,25.609700 L 11.095500,26.349900 L 11.677000,26.267900 L 12.113000,26.464200 L 12.113000,26.597000 L 11.531900,28.160000 L 11.095400,28.818200 L 11.240900,29.148300 L 10.877600,30.380700 L 12.186200,32.767400 L 13.494300,33.919700 L 14.076300,34.742000 L 14.003100,36.470500 L 14.439600,37.456800 L 14.003100,39.349400 C 14.003100,39.349400 13.968900,39.337700 14.024600,39.527100 C 14.080800,39.716600 16.353700,40.978300 16.498200,40.870900 C 16.642200,40.761500 16.765300,40.665800 16.765300,40.665800 L 16.620300,40.255600 L 17.201400,39.679400 L 17.419700,39.103200 L 18.365000,38.773100 L 19.091600,36.962600 L 18.873800,36.470400 L 19.381600,35.730200 L 20.472400,35.482200 L 21.054400,34.165800 L 20.908900,32.521300 L 21.781000,31.286900 L 21.926500,30.052500 C 20.733100,29.460700 19.549500,28.851300 18.365000,28.242000"
+ id="path4184" />
+ </g>
+ </g>
+ <g
+ id="g4186">
+ <g
+ id="g4190">
+ <path
+ d="M 16.765600,9.5649000 L 17.492200,10.058600 L 18.074200,10.058600 L 18.074200,9.4829000 L 17.347600,9.1538000 L 16.765600,9.5649000"
+ id="path4192" />
+ </g>
+ </g>
+ <g
+ id="g4194">
+ <g
+ id="g4198">
+ <path
+ d="M 14.876000,8.9072000 L 14.512200,9.8120000 L 15.239300,9.8120000 L 15.603100,8.9892000 C 15.916600,8.7675000 16.228600,8.5444000 16.547900,8.3310000 L 17.275000,8.5781000 C 17.759400,8.9072000 18.243800,9.2363000 18.728600,9.5649000 L 19.456100,8.9072000 L 18.655800,8.5781000 L 18.292000,7.8374000 L 16.911100,7.6728000 L 16.838300,7.2612000 L 16.184000,7.4262000 L 15.893600,8.0020000 L 15.529800,7.2613000 L 15.384800,7.5904000 L 15.457600,8.4132000 L 14.876000,8.9072000"
+ id="path4200" />
+ </g>
+ </g>
+ <g
+ id="g4202">
+ <g
+ style="opacity:0.75000000"
+ id="g4204">
+ <path
+ id="path4206"
+ d="" />
+ </g>
+ <g
+ id="g4208">
+ <path
+ id="path4210"
+ d="" />
+ </g>
+ </g>
+ <g
+ id="g4212">
+ <g
+ style="opacity:0.75000000"
+ id="g4214">
+ <path
+ id="path4216"
+ d="" />
+ </g>
+ <g
+ id="g4218">
+ <path
+ id="path4220"
+ d="" />
+ </g>
+ </g>
+ <g
+ id="g4222">
+ <g
+ id="g4226">
+ <path
+ d="M 17.492200,6.8496000 L 17.856000,6.5210000 L 18.583100,6.3564000 C 19.081100,6.1142000 19.581100,5.9511000 20.109500,5.7802000 L 19.819500,5.2865000 L 18.881000,5.4213000 L 18.437600,5.8632000 L 17.706600,5.9692000 L 17.056700,6.2744000 L 16.740800,6.4272000 L 16.547900,6.6855000 L 17.492200,6.8496000"
+ id="path4228" />
+ </g>
+ </g>
+ <g
+ id="g4230">
+ <g
+ id="g4234">
+ <path
+ d="M 18.728500,14.666500 L 19.165000,14.008300 L 18.510200,13.515100 L 18.728500,14.666500"
+ id="path4236" />
+ </g>
+ </g>
+ </g>
+ <g
+ id="g3216"
+ style="color:#000000;fill:url(#radialGradient7214);fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:1.0179454;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible"
+ transform="matrix(0.576786,0.000000,0.000000,0.576786,11.25166,10.44780)">
+ <g
+ id="g3218"
+ style="color:#000000;fill:url(#radialGradient7216);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <g
+ id="g3222"
+ style="color:#000000;fill:url(#radialGradient7220);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <path
+ d="M 44.071300,20.714400 C 44.071300,20.977100 44.071300,20.714400 44.071300,20.714400 L 43.526400,21.331600 C 43.192400,20.938000 42.817400,20.607000 42.436600,20.261300 L 41.600700,20.384300 L 40.837000,19.521000 L 40.837000,20.589400 L 41.491300,21.084500 L 41.926800,21.577700 L 42.508800,20.919500 C 42.655300,21.193900 42.799800,21.468300 42.945300,21.742700 L 42.945300,22.565000 L 42.290000,23.305200 L 41.090800,24.128400 L 40.182600,25.034700 L 39.600600,24.374500 L 39.891600,23.634300 L 39.310500,22.976100 L 38.329100,20.878400 L 37.493200,19.933100 L 37.274400,20.179200 L 37.602500,21.372600 L 38.219700,22.071800 C 38.572200,23.089400 38.920900,24.062000 39.383800,25.034700 C 40.101600,25.034700 40.778300,24.958500 41.491200,24.868700 L 41.491200,25.444900 L 40.619100,27.584100 L 39.819300,28.488400 L 39.165000,29.888800 C 39.165000,30.656400 39.165000,31.424000 39.165000,32.191500 L 39.383800,33.097800 L 39.020500,33.508000 L 38.219700,34.002100 L 37.383800,34.701300 L 38.075200,35.482600 L 37.129900,36.306800 L 37.311500,36.840000 L 35.893500,38.445500 L 34.949200,38.445500 L 34.149400,38.939600 L 33.639600,38.939600 L 33.639600,38.281400 L 33.422800,36.963000 C 33.141500,36.136800 32.848600,35.316500 32.550700,34.496200 C 32.550700,33.890700 32.586800,33.291100 32.623000,32.685700 L 32.987300,31.863400 L 32.477500,30.875100 L 32.514600,29.517700 L 31.823200,28.736400 L 32.168900,27.605500 L 31.606400,26.967300 L 30.624000,26.967300 L 30.296900,26.597200 L 29.315500,27.214900 L 28.916100,26.761300 L 28.006900,27.543000 C 27.389700,26.843300 26.771500,26.144100 26.153400,25.444900 L 25.426800,23.716400 L 26.081100,22.730100 L 25.717800,22.319000 L 26.516600,20.425400 C 27.172900,19.609000 27.858400,18.825800 28.551800,18.039700 L 29.788100,17.710600 L 31.169000,17.546500 L 32.114300,17.793600 L 33.459000,19.150000 L 33.931700,18.615800 L 34.585000,18.533800 L 35.821300,18.944900 L 36.766600,18.944900 L 37.420900,18.368700 L 37.711900,17.957600 L 37.056600,17.546500 L 35.965800,17.464500 C 35.663100,17.044600 35.381800,16.603200 35.022400,16.230100 L 34.658100,16.394200 L 34.512600,17.464500 L 33.858300,16.724300 L 33.713800,15.900100 L 32.987200,15.325900 L 32.695200,15.325900 L 33.422700,16.148200 L 33.131700,16.888400 L 32.550600,17.052500 L 32.913900,16.312300 L 32.258600,15.984200 L 31.678500,15.326000 L 30.586700,15.572100 L 30.442200,15.900200 L 29.787900,16.312300 L 29.424600,17.217600 L 28.516400,17.669700 L 28.116000,17.217600 L 27.680500,17.217600 L 27.680500,15.736200 L 28.625800,15.242100 L 29.352400,15.242100 L 29.205900,14.666900 L 28.625800,14.090700 L 29.606300,13.884600 L 30.151200,13.268400 L 30.586700,12.527200 L 31.387500,12.527200 L 31.168700,11.952000 L 31.678500,11.622900 L 31.678500,12.281100 L 32.768300,12.527200 L 33.858100,11.622900 L 33.931300,11.210800 L 34.875600,10.553100 C 34.533800,10.595600 34.192000,10.626800 33.858000,10.717700 L 33.858000,9.9766000 L 34.221300,9.1538000 L 33.858000,9.1538000 L 33.059600,9.8940000 L 32.840800,10.305600 L 33.059600,10.882300 L 32.695300,11.868600 L 32.114200,11.539500 L 31.606400,10.964300 L 30.805600,11.539500 L 30.514600,10.223600 L 31.895500,9.3188000 L 31.895500,8.8247000 L 32.768500,8.2490000 L 34.149400,7.9194000 L 35.094700,8.2490000 L 36.838800,8.5781000 L 36.403300,9.0713000 L 35.458000,9.0713000 L 36.403300,10.058600 L 37.129900,9.2363000 L 37.350600,8.8745000 C 37.350600,8.8745000 40.137700,11.372500 41.730500,14.105000 C 43.323300,16.838400 44.071300,20.060100 44.071300,20.714400 z "
+ id="path3224"
+ style="color:#000000;fill:url(#radialGradient7428);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ id="g3226"
+ style="color:#000000;fill:url(#radialGradient7224);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <g
+ id="g3230"
+ style="color:#000000;fill:url(#radialGradient7228);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <path
+ d="M 26.070300,9.2363000 L 25.997100,9.7295000 L 26.506900,10.058600 L 27.378000,9.4829000 L 26.942500,8.9892000 L 26.360500,9.3188000 L 26.070500,9.2363000"
+ id="path3232"
+ style="color:#000000;fill:url(#radialGradient7430);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ id="g3234"
+ style="color:#000000;fill:url(#radialGradient7232);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <g
+ id="g3238"
+ style="color:#000000;fill:url(#radialGradient7236);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <path
+ d="M 26.870100,5.8633000 L 24.979500,5.1226000 L 22.799800,5.3692000 L 20.109400,6.1094000 L 19.600600,6.6035000 L 21.272500,7.7549000 L 21.272500,8.4131000 L 20.618200,9.0713000 L 21.491200,10.800300 L 22.071300,10.470200 L 22.799800,9.3188000 C 23.922800,8.9716000 24.929700,8.5781000 25.997100,8.0844000 L 26.870100,5.8632000"
+ id="path3240"
+ style="color:#000000;fill:url(#radialGradient7432);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ id="g3242"
+ style="color:#000000;fill:url(#radialGradient7240);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <g
+ id="g3246"
+ style="color:#000000;fill:url(#radialGradient7244);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <path
+ d="M 28.833000,12.774900 L 28.542000,12.033700 L 28.032200,12.198700 L 28.178700,13.103000 L 28.833000,12.774900"
+ id="path3248"
+ style="color:#000000;fill:url(#radialGradient7434);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ id="g3250"
+ style="color:#000000;fill:url(#radialGradient7248);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <g
+ id="g3254"
+ style="color:#000000;fill:url(#radialGradient7252);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <path
+ d="M 29.123000,12.608900 L 28.977500,13.597200 L 29.777300,13.432200 L 30.358400,12.857000 L 29.849600,12.362900 C 29.678700,11.907800 29.482400,11.483000 29.268500,11.046500 L 28.833000,11.046500 L 28.833000,11.539700 L 29.123000,11.868800 L 29.123000,12.609000"
+ id="path3256"
+ style="color:#000000;fill:url(#radialGradient7436);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ id="g3258"
+ style="color:#000000;fill:url(#radialGradient7256);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <g
+ id="g3262"
+ style="color:#000000;fill:url(#radialGradient7260);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <path
+ d="M 18.365200,28.242200 L 17.783200,27.089900 L 16.692900,26.843300 L 16.111400,25.280800 L 14.657800,25.444900 L 13.422400,24.540600 L 12.113300,25.692000 L 12.113300,25.873600 C 11.717300,25.759300 11.230500,25.743700 10.877900,25.526900 L 10.586900,24.704600 L 10.586900,23.799300 L 9.7148000,23.881300 C 9.7876000,23.305100 9.8598000,22.729900 9.9331000,22.153800 L 9.4238000,22.153800 L 8.9155000,22.812000 L 8.4062000,23.058100 L 7.6791000,22.647900 L 7.6063000,21.742600 L 7.7518000,20.755300 L 8.8426000,19.933000 L 9.7147000,19.933000 L 9.8597000,19.438900 L 10.950000,19.685000 L 11.749800,20.673300 L 11.895300,19.026800 L 13.276600,17.875400 L 13.785400,16.641000 L 14.803000,16.229900 L 15.384500,15.407600 L 16.692600,15.159600 L 17.347400,14.173300 C 16.693100,14.173300 16.038800,14.173300 15.384500,14.173300 L 16.620300,13.597100 L 17.491900,13.597100 L 18.728200,13.185000 L 18.873700,12.692800 L 18.437200,12.280700 L 17.928400,12.115700 L 18.073900,11.622500 L 17.710600,10.882300 L 16.838000,11.210400 L 16.983500,10.552700 L 15.965900,9.9765000 L 15.166600,11.374400 L 15.238900,11.868500 L 14.439600,12.198600 L 13.930300,13.267900 L 13.712500,12.280600 L 12.331200,11.704400 L 12.112900,10.964200 L 13.930300,9.8939000 L 14.730100,9.1537000 L 14.802900,8.2489000 L 14.366900,8.0018000 L 13.785400,7.9193000 L 13.422100,8.8246000 C 13.422100,8.8246000 12.814200,8.9437000 12.657900,8.9823000 C 10.661800,10.821700 6.6286000,14.792400 5.6916000,22.288500 C 5.7287000,22.462300 6.3708000,23.470100 6.3708000,23.470100 L 7.8972000,24.374400 L 9.4236000,24.786500 L 10.078400,25.609700 L 11.095500,26.349900 L 11.677000,26.267900 L 12.113000,26.464200 L 12.113000,26.597000 L 11.531900,28.160000 L 11.095400,28.818200 L 11.240900,29.148300 L 10.877600,30.380700 L 12.186200,32.767400 L 13.494300,33.919700 L 14.076300,34.742000 L 14.003100,36.470500 L 14.439600,37.456800 L 14.003100,39.349400 C 14.003100,39.349400 13.968900,39.337700 14.024600,39.527100 C 14.080800,39.716600 16.353700,40.978300 16.498200,40.870900 C 16.642200,40.761500 16.765300,40.665800 16.765300,40.665800 L 16.620300,40.255600 L 17.201400,39.679400 L 17.419700,39.103200 L 18.365000,38.773100 L 19.091600,36.962600 L 18.873800,36.470400 L 19.381600,35.730200 L 20.472400,35.482200 L 21.054400,34.165800 L 20.908900,32.521300 L 21.781000,31.286900 L 21.926500,30.052500 C 20.733100,29.460700 19.549500,28.851300 18.365000,28.242000"
+ id="path3264"
+ style="color:#000000;fill:url(#radialGradient7438);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ id="g3266"
+ style="color:#000000;fill:url(#radialGradient7264);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <g
+ id="g3270"
+ style="color:#000000;fill:url(#radialGradient7268);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <path
+ d="M 16.765600,9.5649000 L 17.492200,10.058600 L 18.074200,10.058600 L 18.074200,9.4829000 L 17.347600,9.1538000 L 16.765600,9.5649000"
+ id="path3272"
+ style="color:#000000;fill:url(#radialGradient7440);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ id="g3274"
+ style="color:#000000;fill:url(#radialGradient7272);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <g
+ id="g3278"
+ style="color:#000000;fill:url(#radialGradient7276);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <path
+ d="M 14.876000,8.9072000 L 14.512200,9.8120000 L 15.239300,9.8120000 L 15.603100,8.9892000 C 15.916600,8.7675000 16.228600,8.5444000 16.547900,8.3310000 L 17.275000,8.5781000 C 17.759400,8.9072000 18.243800,9.2363000 18.728600,9.5649000 L 19.456100,8.9072000 L 18.655800,8.5781000 L 18.292000,7.8374000 L 16.911100,7.6728000 L 16.838300,7.2612000 L 16.184000,7.4262000 L 15.893600,8.0020000 L 15.529800,7.2613000 L 15.384800,7.5904000 L 15.457600,8.4132000 L 14.876000,8.9072000"
+ id="path3280"
+ style="color:#000000;fill:url(#radialGradient7442);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ id="g3282"
+ style="color:#000000;fill:url(#radialGradient7280);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <g
+ style="opacity:0.75000000;color:#000000;fill:url(#radialGradient7282);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible"
+ id="g3284">
+ <path
+ d=""
+ style="color:#000000;fill:url(#radialGradient7444);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible"
+ id="path3286" />
+ </g>
+ <g
+ id="g3288"
+ style="color:#000000;fill:url(#radialGradient7286);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <path
+ d=""
+ id="path3290"
+ style="color:#000000;fill:url(#radialGradient7446);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ id="g3292"
+ style="color:#000000;fill:url(#radialGradient7290);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <g
+ style="opacity:0.75000000;color:#000000;fill:url(#radialGradient7292);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible"
+ id="g3294">
+ <path
+ d=""
+ style="color:#000000;fill:url(#radialGradient7448);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible"
+ id="path3296" />
+ </g>
+ <g
+ id="g3298"
+ style="color:#000000;fill:url(#radialGradient7296);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <path
+ d=""
+ id="path3300"
+ style="color:#000000;fill:url(#radialGradient7450);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ id="g3302"
+ style="color:#000000;fill:url(#radialGradient7300);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <g
+ id="g3306"
+ style="color:#000000;fill:url(#radialGradient7304);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <path
+ d="M 17.492200,6.8496000 L 17.856000,6.5210000 L 18.583100,6.3564000 C 19.081100,6.1142000 19.581100,5.9511000 20.109500,5.7802000 L 19.819500,5.2865000 L 18.881000,5.4213000 L 18.437600,5.8632000 L 17.706600,5.9692000 L 17.056700,6.2744000 L 16.740800,6.4272000 L 16.547900,6.6855000 L 17.492200,6.8496000"
+ id="path3308"
+ style="color:#000000;fill:url(#radialGradient7452);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ <g
+ id="g3310"
+ style="color:#000000;fill:url(#radialGradient7308);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <g
+ id="g3314"
+ style="color:#000000;fill:url(#radialGradient7312);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible">
+ <path
+ d="M 18.728500,14.666500 L 19.165000,14.008300 L 18.510200,13.515100 L 18.728500,14.666500"
+ id="path3316"
+ style="color:#000000;fill:url(#radialGradient7454);stroke-dashoffset:0.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:inline;overflow:visible" />
+ </g>
+ </g>
+ </g>
+ <path
+ style="fill:none;fill-opacity:1.0000000;fill-rule:nonzero;stroke:url(#radialGradient7456);stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"
+ d="M 36.531418,24.218876 C 36.531418,30.187597 31.692724,35.026237 25.724824,35.026237 C 19.756377,35.026237 14.917956,30.187543 14.917956,24.218876 C 14.917956,18.250429 19.756377,13.412282 25.724824,13.412282 C 31.692724,13.412282 36.531418,18.250429 36.531418,24.218876 L 36.531418,24.218876 z "
+ id="path4122" />
+ </g>
+ </g>
+</svg>
diff --git a/src/mumble/ACLEditor.cpp b/src/mumble/ACLEditor.cpp
index 8ca298a29..f9a7599de 100644
--- a/src/mumble/ACLEditor.cpp
+++ b/src/mumble/ACLEditor.cpp
@@ -100,7 +100,7 @@ ACLEditor::ACLEditor(int channelid, const MumbleProto::ACL &mea, QWidget *p) : Q
qleChannelName->setText(pChannel->qsName);
if (channelid == 0) qleChannelName->setEnabled(false);
- qteChannelDescription->setPlainText(pChannel->qsDesc);
+ rteChannelDescription->setText(pChannel->qsDesc);
qsbChannelPosition->setRange(INT_MIN, INT_MAX);
qsbChannelPosition->setValue(pChannel->iPosition);
@@ -253,7 +253,7 @@ void ACLEditor::accept() {
if (bAddChannelMode) {
MumbleProto::ChannelState mpcs;
mpcs.set_name(u8(qleChannelName->text()));
- mpcs.set_description(u8(qteChannelDescription->toPlainText()));
+ mpcs.set_description(u8(rteChannelDescription->text()));
mpcs.set_parent(iChannel);
mpcs.set_position(qsbChannelPosition->value());
mpcs.set_temporary(qcbChannelTemporary->isChecked());
@@ -269,8 +269,8 @@ void ACLEditor::accept() {
mpcs.set_name(u8(qleChannelName->text()));
b = true;
}
- if (pChannel->qsDesc != qteChannelDescription->toPlainText()) {
- mpcs.set_description(u8(qteChannelDescription->toPlainText()));
+ if (rteChannelDescription->isModified() && (pChannel->qsDesc != rteChannelDescription->text())) {
+ mpcs.set_description(u8(rteChannelDescription->text()));
b = true;
}
if (pChannel->iPosition != qsbChannelPosition->value()) {
diff --git a/src/mumble/ACLEditor.ui b/src/mumble/ACLEditor.ui
index 64a5e6aa4..e6f9df05c 100644
--- a/src/mumble/ACLEditor.ui
+++ b/src/mumble/ACLEditor.ui
@@ -51,23 +51,6 @@
</property>
</widget>
</item>
- <item row="1" column="1">
- <widget class="QTextEdit" name="qteChannelDescription">
- <property name="toolTip">
- <string>Enter the channel description here.</string>
- </property>
- <property name="whatsThis">
- <string>&lt;b&gt;Description&lt;/b&gt;&lt;br&gt;
-Use this field to set and update channel descriptions. This field supports a restricted set of html tags for formatting, e.g.
-&lt;ul&gt;
-&lt;li&gt;&amp;lt;b&amp;gt;text&amp;lt;/b&amp;gt; for &lt;b&gt;bold&lt;/b&gt; text&lt;/li&gt;
-&lt;li&gt;&amp;lt;i&amp;gt;text&amp;lt;/i&amp;gt; for &lt;i&gt;italic&lt;/i&gt; text&lt;/li&gt;
-&lt;li&gt;&amp;lt;u&amp;gt;text&amp;lt;/u&amp;gt; for &lt;u&gt;underlined&lt;/u&gt; text&lt;/li&gt;
-&lt;/ul&gt;
-and so on. Visit &lt;a href=&quot;http://doc.trolltech.com/richtext-html-subset.html&quot;&gt;http://doc.trolltech.com/richtext-html-subset.html&lt;/a&gt; for a full list.</string>
- </property>
- </widget>
- </item>
<item row="2" column="0">
<widget class="QLabel" name="qlChannelPassword">
<property name="text">
@@ -127,6 +110,9 @@ This value enables you to interfere in the way mumble arranges the channels in t
</property>
</widget>
</item>
+ <item row="1" column="1">
+ <widget class="RichTextEditor" name="rteChannelDescription" native="true"/>
+ </item>
</layout>
</widget>
<widget class="QWidget" name="qwGroups">
@@ -651,6 +637,14 @@ Contains the list of members inherited by the current channel. Uncheck &lt;i&gt;
</item>
</layout>
</widget>
+ <customwidgets>
+ <customwidget>
+ <class>RichTextEditor</class>
+ <extends>QWidget</extends>
+ <header>RichTextEditor.h</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
<tabstops>
<tabstop>qtwTab</tabstop>
<tabstop>qcbGroupList</tabstop>
diff --git a/src/mumble/MainWindow.cpp b/src/mumble/MainWindow.cpp
index a80d95c61..e6cb6ea99 100644
--- a/src/mumble/MainWindow.cpp
+++ b/src/mumble/MainWindow.cpp
@@ -726,31 +726,28 @@ void MainWindow::on_qaServerInformation_triggered() {
}
void MainWindow::on_qaServerTexture_triggered() {
- QString fname = QFileDialog::getOpenFileName(this, tr("Choose image file to use as texture"), QString(), tr("Images (*.png *.jpg)"));
- if (! fname.isEmpty()) {
- QImage img(fname);
- if (! img.isNull()) {
- img = img.convertToFormat(QImage::Format_ARGB32);
- if ((img.height() != 60) || (img.width() != 600)) {
- QImage final(600, 60, QImage::Format_ARGB32);
- img = img.scaled(600, 60, Qt::KeepAspectRatio, Qt::SmoothTransformation);
- qWarning() << img.width() << img.height();
- final.fill(0);
- {
- QPainter p(&final);
- p.drawImage(0, 0, img);
- }
- img = final;
- }
- QByteArray qba(reinterpret_cast<const char *>(img.bits()), img.numBytes());
- qba = qCompress(qba);
- MumbleProto::UserState mpus;
- mpus.set_texture(qba.constData(), qba.length());
- g.sh->sendMessage(mpus);
- } else {
- QMessageBox::warning(this, tr("Could not open file."), tr("Failed to open image file."));
+ QPair<QByteArray, QImage> choice = openImageFile();
+ if (choice.first.isEmpty())
+ return;
+
+ QImage &img = choice.second;
+ img = img.convertToFormat(QImage::Format_ARGB32);
+ if ((img.height() != 60) || (img.width() != 600)) {
+ QImage final(600, 60, QImage::Format_ARGB32);
+ img = img.scaled(600, 60, Qt::KeepAspectRatio, Qt::SmoothTransformation);
+ qWarning() << img.width() << img.height();
+ final.fill(0);
+ {
+ QPainter p(&final);
+ p.drawImage(0, 0, img);
}
+ img = final;
}
+ QByteArray qba(reinterpret_cast<const char *>(img.bits()), img.numBytes());
+ qba = qCompress(qba);
+ MumbleProto::UserState mpus;
+ mpus.set_texture(qba.constData(), qba.length());
+ g.sh->sendMessage(mpus);
}
void MainWindow::on_qaServerTokens_triggered() {
@@ -980,11 +977,15 @@ void MainWindow::on_qaUserTextMessage_triggered() {
p = ClientUser::get(session);
if (p && (res==QDialog::Accepted)) {
- MumbleProto::TextMessage mptm;
- mptm.add_session(p->uiSession);
- mptm.set_message(u8(texm->message()));
- g.sh->sendMessage(mptm);
- g.l->log(Log::TextMessage, tr("To %1: %2").arg(p->qsName).arg(texm->message()), tr("Message to %1").arg(p->qsName));
+ QString msg = texm->message();
+
+ if (! msg.isEmpty()) {
+ MumbleProto::TextMessage mptm;
+ mptm.add_session(p->uiSession);
+ mptm.set_message(u8(msg));
+ g.sh->sendMessage(mptm);
+ g.l->log(Log::TextMessage, tr("To %1: %2").arg(p->qsName).arg(texm->message()), tr("Message to %1").arg(p->qsName));
+ }
}
delete texm;
}
@@ -1000,9 +1001,7 @@ void MainWindow::on_qaUserComment_triggered() {
::TextMessage *texm = new ::TextMessage(this);
texm->setWindowTitle(tr("Change comment on user %1").arg(p->qsName));
- const QString html = QTextDocumentFragment::fromPlainText(p->qsComment).toHtml();
-
- texm->qteEdit->setText(html);
+ texm->rteMessage->setText(p->qsComment);
int res = texm->exec();
p = ClientUser::get(session);
@@ -1016,7 +1015,6 @@ void MainWindow::on_qaUserComment_triggered() {
delete texm;
}
-
void MainWindow::on_qaQuit_triggered() {
bSuppressAskOnQuit = true;
this->close();
@@ -1894,3 +1892,35 @@ void MainWindow::context_triggered() {
mpca.set_channel_id(c->iId);
g.sh->sendMessage(mpca);
}
+
+QPair<QByteArray, QImage> MainWindow::openImageFile() {
+ QPair<QByteArray, QImage> retval;
+
+ QString fname = QFileDialog::getOpenFileName(this, tr("Choose image file"), g.s.qsImagePath, tr("Images (*.png *.jpg)"));
+
+ if (fname.isNull())
+ return retval;
+
+ QFile f(fname);
+ if (! f.open(QIODevice::ReadOnly)) {
+ QMessageBox::warning(this, tr("Failed to load image"), tr("Could not open file for reading."));
+ return retval;
+ }
+
+ QFileInfo fi(f);
+ g.s.qsImagePath = fi.absolutePath();
+
+ QByteArray qba = f.readAll();
+ f.close();
+
+ QImage img;
+ if (! img.loadFromData(qba)) {
+ QMessageBox::warning(this, tr("Failed to load image"), tr("Image format not recognized."));
+ return retval;
+ }
+
+ retval.first = qba;
+ retval.second = img;
+
+ return retval;
+}
diff --git a/src/mumble/MainWindow.h b/src/mumble/MainWindow.h
index dec9bb3af..48d5bfcbb 100644
--- a/src/mumble/MainWindow.h
+++ b/src/mumble/MainWindow.h
@@ -107,6 +107,7 @@ class MainWindow : public QMainWindow, public MessageHandler, public Ui::MainWin
void msgBox(QString msg);
void setOnTop(bool top);
void updateTrayIcon();
+ QPair<QByteArray, QImage> openImageFile();
#ifdef Q_OS_WIN
bool winEvent(MSG *, long *);
unsigned int uiNewHardware;
diff --git a/src/mumble/RichTextEditor.cpp b/src/mumble/RichTextEditor.cpp
index de687aaa9..743787c3e 100644
--- a/src/mumble/RichTextEditor.cpp
+++ b/src/mumble/RichTextEditor.cpp
@@ -29,17 +29,50 @@
*/
#include "RichTextEditor.h"
+#include "Global.h"
+#include "MainWindow.h"
+
+RichTextEditorLink::RichTextEditorLink(const QString &txt, QWidget *p) : QDialog(p) {
+ setupUi(this);
+
+ if (! txt.isEmpty()) {
+ qleText->setText(txt);
+ }
+}
+
+QString RichTextEditorLink::text() const {
+ QUrl url(qleUrl->text(), QUrl::StrictMode);
+ QString text = qleText->text();
+
+ if (url.isValid() && ! url.isRelative() && ! text.isEmpty()) {
+ return QString::fromLatin1("<a href=\"%1\">%2</a>").arg(QLatin1String(url.toEncoded()), Qt::escape(text));
+ }
+
+ return QString();
+}
RichTextEditor::RichTextEditor(QWidget *p) : QTabWidget(p) {
bChanged = false;
+ bModified = false;
setupUi(this);
qtbToolBar->addAction(qaBold);
qtbToolBar->addAction(qaItalic);
qtbToolBar->addAction(qaUnderline);
+ qtbToolBar->addAction(qaColor);
+ qtbToolBar->addSeparator();
+ qtbToolBar->addAction(qaLink);
+ qtbToolBar->addAction(qaImage);
connect(this, SIGNAL(currentChanged(int)), this, SLOT(onCurrentChanged(int)));
+ updateActions();
+
+ qteRichText->setFocus();
+}
+
+bool RichTextEditor::isModified() const {
+ return bModified;
}
void RichTextEditor::on_qaBold_triggered(bool on) {
@@ -54,6 +87,64 @@ void RichTextEditor::on_qaUnderline_triggered(bool on) {
qteRichText->setFontUnderline(on);
}
+void RichTextEditor::on_qaColor_triggered() {
+ QColor c = QColorDialog::getColor();
+ if (c.isValid())
+ qteRichText->setTextColor(c);
+}
+
+void RichTextEditor::on_qaLink_triggered() {
+ QTextCursor qtc = qteRichText->textCursor();
+ RichTextEditorLink *rtel = new RichTextEditorLink(qtc.selectedText(), this);
+ if (rtel->exec() == QDialog::Accepted) {
+ QString html = rtel->text();
+ if (! html.isEmpty())
+ qteRichText->insertHtml(html);
+ }
+ delete rtel;
+}
+
+void RichTextEditor::on_qaImage_triggered() {
+ QPair<QByteArray, QImage> choice = g.mw->openImageFile();
+
+ QByteArray &qba = choice.first;
+
+ if (qba.isEmpty())
+ return;
+
+ if (qba.length() > 65536) {
+ QMessageBox::warning(this, tr("Failed to load image"), tr("Image file to large to embed in document. Please use images smaller than %1 kB.").arg(65536/1024));
+ return;
+ }
+
+ QBuffer qb(&qba);
+ qb.open(QIODevice::ReadOnly);
+
+ QString format = QLatin1String(QImageReader::imageFormat(&qb));
+ qb.close();
+
+ if (format.isEmpty())
+ format = QLatin1String("qt");
+
+ QByteArray rawbase = qba.toBase64();
+ QByteArray encoded;
+ int i = 0;
+ int begin = 0, end = 0;
+ do {
+ begin = i*72;
+ end = begin+72;
+
+ encoded.append(QUrl::toPercentEncoding(QLatin1String(rawbase.mid(begin,72))));
+ if (end < rawbase.length())
+ encoded.append('\n');
+
+ ++i;
+ } while (end < rawbase.length());
+
+ QString link = QString::fromLatin1("<img src=\"data:image/%1;base64,%2\" />").arg(format).arg(QLatin1String(encoded));
+ qteRichText->insertHtml(link);
+}
+
void RichTextEditor::onCurrentChanged(int index) {
if (! bChanged)
return;
@@ -67,11 +158,45 @@ void RichTextEditor::onCurrentChanged(int index) {
}
void RichTextEditor::on_qptePlainText_textChanged() {
+ bModified = true;
bChanged = true;
}
void RichTextEditor::on_qteRichText_textChanged() {
+ bModified = true;
bChanged = true;
+ updateActions();
+}
+
+void RichTextEditor::on_qteRichText_cursorPositionChanged() {
+ updateActions();
+}
+
+void RichTextEditor::on_qteRichText_currentCharFormatChanged() {
+ updateActions();
+}
+
+void RichTextEditor::updateColor(const QColor &col) {
+ if (col == qcColor)
+ return;
+ qcColor = col;
+
+ QRect r(0,0,24,24);
+
+ QPixmap qpm(r.size());
+ QPainter qp(&qpm);
+ qp.fillRect(r, col);
+ qp.setPen(col.darker());
+ qp.drawRect(r.adjusted(0, 0, -1, -1));
+
+ qaColor->setIcon(qpm);
+}
+
+void RichTextEditor::updateActions() {
+ qaBold->setChecked(qteRichText->fontWeight() == QFont::Bold);
+ qaItalic->setChecked(qteRichText->fontItalic());
+ qaUnderline->setChecked(qteRichText->fontUnderline());
+ updateColor(qteRichText->textColor());
}
/* Recursively parse and output XHTML.
@@ -79,7 +204,7 @@ void RichTextEditor::on_qteRichText_textChanged() {
* It will also change <span style=""> into matching <b>, <i> or <u>.
*/
-static void recurseParse(QXmlStreamReader &reader, QXmlStreamWriter &writer, int &paragraphs, const QMap<QString, QString> &opstyle = QMap<QString, QString>(), int close = 0, bool ignore = true) {
+static void recurseParse(QXmlStreamReader &reader, QXmlStreamWriter &writer, int &paragraphs, const QMap<QString, QString> &opstyle = QMap<QString, QString>(), const int close = 0, bool ignore = true) {
while(! reader.atEnd()) {
QXmlStreamReader::TokenType tt = reader.readNext();
@@ -107,28 +232,31 @@ static void recurseParse(QXmlStreamReader &reader, QXmlStreamWriter &writer, int
case QXmlStreamReader::StartElement:
{
QString name = reader.name().toString();
+ int rclose = 1;
if (name == QLatin1String("body")) {
- close = 0;
+ rclose = 0;
ignore = false;
} else if (name == QLatin1String("span")) {
- close = 0;
+ // Substitute style with <b>, <i> and <u>
+
+ rclose = 0;
if (style.value(QLatin1String("font-weight")) == QLatin1String("600")) {
writer.writeStartElement(QLatin1String("b"));
- close++;
+ rclose++;
style.remove(QLatin1String("font-weight"));
}
if (style.value(QLatin1String("font-style")) == QLatin1String("italic")) {
writer.writeStartElement(QLatin1String("i"));
- close++;
+ rclose++;
style.remove(QLatin1String("font-style"));
}
if (style.value(QLatin1String("text-decoration")) == QLatin1String("underline")) {
writer.writeStartElement(QLatin1String("u"));
- close++;
+ rclose++;
style.remove(QLatin1String("text-decoration"));
}
if (! style.isEmpty()) {
- close++;
+ rclose++;
writer.writeStartElement(name);
QStringList qsl;
@@ -143,9 +271,11 @@ static void recurseParse(QXmlStreamReader &reader, QXmlStreamWriter &writer, int
writer.writeAttribute(QLatin1String("style"), qsl.join(QLatin1String("; ")));
}
} else if (name == QLatin1String("p")) {
+ // Ignore first paragraph.
+
paragraphs++;
if (paragraphs > 1) {
- close = 1;
+ rclose = 1;
writer.writeStartElement(name);
if (! style.isEmpty()) {
@@ -161,16 +291,20 @@ static void recurseParse(QXmlStreamReader &reader, QXmlStreamWriter &writer, int
writer.writeAttribute(QLatin1String("style"), qsl.join(QLatin1String("; ")));
}
} else {
- close = 0;
+ rclose = 0;
}
+ } else if (name == QLatin1String("a")) {
+ // Set pstyle to include implicit blue underline.
+ rclose = 1;
+ writer.writeCurrentToken(reader);
+ pstyle.insert(QLatin1String("text-decoration"), QLatin1String("underline"));
+ pstyle.insert(QLatin1String("color"), QLatin1String("#0000ff"));
} else if (! ignore) {
- close = 1;
- writer.writeStartElement(name);
- writer.writeAttributes(reader.attributes());
+ rclose = 1;
+ writer.writeCurrentToken(reader);
}
- qWarning() << reader.name();
- recurseParse(reader, writer, paragraphs, pstyle, close, ignore);
+ recurseParse(reader, writer, paragraphs, pstyle, rclose, ignore);
break;
}
case QXmlStreamReader::EndElement:
@@ -186,9 +320,82 @@ static void recurseParse(QXmlStreamReader &reader, QXmlStreamWriter &writer, int
}
}
-void RichTextEditor::richToPlain() {
- qWarning() << qteRichText->toHtml();
+/* Iterate XML and remove close-followed-by-open.
+ * For example, make "<b>bold with </b><b><i>italic</i></b>" into
+ * "<b>bold with <i>italic</i></b>"
+ */
+
+static bool unduplicateTags(QXmlStreamReader &reader, QXmlStreamWriter &writer) {
+ bool changed = false;
+ bool needclose = false;
+
+ QStringList qslConcat;
+ qslConcat << QLatin1String("b");
+ qslConcat << QLatin1String("i");
+ qslConcat << QLatin1String("u");
+ qslConcat << QLatin1String("a");
+ QList<QString> qlNames;
+ QList<QXmlStreamAttributes> qlAttributes;
+
+ while(! reader.atEnd()) {
+ QXmlStreamReader::TokenType tt = reader.readNext();
+ QString name = reader.name().toString();
+ switch (tt) {
+ case QXmlStreamReader::StartDocument:
+ case QXmlStreamReader::EndDocument:
+ break;
+ case QXmlStreamReader::StartElement:
+ {
+ QXmlStreamAttributes a = reader.attributes();
+
+ if (name == QLatin1String("unduplicate"))
+ break;
+
+ if (needclose) {
+ needclose = false;
+
+ if ((a == qlAttributes.last()) && (name == qlNames.last()) && (qslConcat.contains(name))) {
+ changed = true;
+ break;
+ }
+ qlNames.takeLast();
+ qlAttributes.takeLast();
+ writer.writeEndElement();
+ }
+ writer.writeCurrentToken(reader);
+ qlNames.append(name);
+ qlAttributes.append(a);
+ }
+ break;
+ case QXmlStreamReader::EndElement:
+ {
+ if (name == QLatin1String("unduplicate"))
+ break;
+ if (needclose) {
+ qlNames.takeLast();
+ qlAttributes.takeLast();
+ writer.writeCurrentToken(reader);
+ } else {
+ needclose = true;
+ }
+ needclose = true;
+ }
+ break;
+ default:
+ if (needclose) {
+ writer.writeEndElement();
+ needclose = false;
+ }
+ writer.writeCurrentToken(reader);
+ }
+ }
+ if (needclose)
+ writer.writeEndElement();
+ return changed;
+}
+
+void RichTextEditor::richToPlain() {
QXmlStreamReader reader(qteRichText->toHtml());
QString qsOutput;
@@ -209,8 +416,17 @@ void RichTextEditor::richToPlain() {
qsOutput = qsOutput.trimmed();
- qWarning() << qsOutput;
+ bool changed;
+ do {
+ qsOutput = QString::fromLatin1("<unduplicate>%1</unduplicate>").arg(qsOutput);
+ QXmlStreamReader r(qsOutput);
+ qsOutput = QString();
+ QXmlStreamWriter w(&qsOutput);
+ changed = unduplicateTags(r, w);
+ qsOutput = qsOutput.trimmed();
+ } while (changed);
+
qptePlainText->setPlainText(qsOutput);
}
@@ -223,6 +439,7 @@ void RichTextEditor::setText(const QString &txt) {
qteRichText->setPlainText(txt);
bChanged = false;
+ bModified = false;
}
QString RichTextEditor::text() {
diff --git a/src/mumble/RichTextEditor.h b/src/mumble/RichTextEditor.h
index 4d0989955..35d58db41 100644
--- a/src/mumble/RichTextEditor.h
+++ b/src/mumble/RichTextEditor.h
@@ -33,26 +33,46 @@
#include "mumble_pch.hpp"
#include "ui_RichTextEditor.h"
+#include "ui_RichTextEditorLink.h"
+
+class RichTextEditorLink : public QDialog, Ui::RichTextEditorLink {
+ private:
+ Q_OBJECT
+ Q_DISABLE_COPY(RichTextEditorLink)
+ public:
+ RichTextEditorLink(const QString &text = QString(), QWidget *p = NULL);
+ QString text() const;
+};
class RichTextEditor : public QTabWidget, Ui::RichTextEditor {
private:
Q_OBJECT
Q_DISABLE_COPY(RichTextEditor)
protected:
+ bool bModified;
bool bChanged;
void richToPlain();
+ QColor qcColor;
public:
RichTextEditor(QWidget *p = NULL);
QString text();
+ bool isModified() const;
public slots:
void setText(const QString &text);
+ void updateColor(const QColor &);
+ void updateActions();
protected slots:
void on_qaBold_triggered(bool);
void on_qaItalic_triggered(bool);
void on_qaUnderline_triggered(bool);
+ void on_qaColor_triggered();
+ void on_qaLink_triggered();
+ void on_qaImage_triggered();
void on_qptePlainText_textChanged();
void on_qteRichText_textChanged();
+ void on_qteRichText_cursorPositionChanged();
+ void on_qteRichText_currentCharFormatChanged();
void onCurrentChanged(int);
};
diff --git a/src/mumble/RichTextEditor.ui b/src/mumble/RichTextEditor.ui
index eec228a7b..e9485edb6 100644
--- a/src/mumble/RichTextEditor.ui
+++ b/src/mumble/RichTextEditor.ui
@@ -50,6 +50,10 @@
<property name="checkable">
<bool>true</bool>
</property>
+ <property name="icon">
+ <iconset resource="mumble_tango.qrc">
+ <normaloff>:/actions/format-text-bold.svg</normaloff>:/actions/format-text-bold.svg</iconset>
+ </property>
<property name="text">
<string>&amp;Bold</string>
</property>
@@ -61,6 +65,10 @@
<property name="checkable">
<bool>true</bool>
</property>
+ <property name="icon">
+ <iconset resource="mumble_tango.qrc">
+ <normaloff>:/actions/format-text-italic.svg</normaloff>:/actions/format-text-italic.svg</iconset>
+ </property>
<property name="text">
<string>&amp;Italic</string>
</property>
@@ -75,6 +83,10 @@
<property name="checkable">
<bool>true</bool>
</property>
+ <property name="icon">
+ <iconset resource="mumble_tango.qrc">
+ <normaloff>:/actions/format-text-underline.svg</normaloff>:/actions/format-text-underline.svg</iconset>
+ </property>
<property name="text">
<string>Underline</string>
</property>
@@ -82,7 +94,35 @@
<string>Ctrl+U</string>
</property>
</action>
+ <action name="qaColor">
+ <property name="text">
+ <string>Color</string>
+ </property>
+ </action>
+ <action name="qaLink">
+ <property name="icon">
+ <iconset resource="mumble_tango.qrc">
+ <normaloff>:/mimetypes/text-html.svg</normaloff>:/mimetypes/text-html.svg</iconset>
+ </property>
+ <property name="text">
+ <string>Insert Link</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+L</string>
+ </property>
+ </action>
+ <action name="qaImage">
+ <property name="icon">
+ <iconset resource="mumble_tango.qrc">
+ <normaloff>:/mimetypes/image-x-generic.svg</normaloff>:/mimetypes/image-x-generic.svg</iconset>
+ </property>
+ <property name="text">
+ <string>Insert Image</string>
+ </property>
+ </action>
</widget>
- <resources/>
+ <resources>
+ <include location="mumble_tango.qrc"/>
+ </resources>
<connections/>
</ui>
diff --git a/src/mumble/RichTextEditorLink.ui b/src/mumble/RichTextEditorLink.ui
new file mode 100644
index 000000000..c7b21dc88
--- /dev/null
+++ b/src/mumble/RichTextEditorLink.ui
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>RichTextEditorLink</class>
+ <widget class="QDialog" name="RichTextEditorLink">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>295</width>
+ <height>95</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Add Link</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="qlUrl">
+ <property name="text">
+ <string>URL</string>
+ </property>
+ <property name="buddy">
+ <cstring>qleUrl</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QLineEdit" name="qleUrl"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="qlText">
+ <property name="text">
+ <string>Text</string>
+ </property>
+ <property name="buddy">
+ <cstring>qleText</cstring>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QLineEdit" name="qleText"/>
+ </item>
+ <item row="2" column="0" colspan="2">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <tabstops>
+ <tabstop>qleUrl</tabstop>
+ <tabstop>qleText</tabstop>
+ <tabstop>buttonBox</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>RichTextEditorLink</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>227</x>
+ <y>228</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>RichTextEditorLink</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>295</x>
+ <y>234</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/mumble/Settings.cpp b/src/mumble/Settings.cpp
index f97dbe36b..c0e31e54c 100644
--- a/src/mumble/Settings.cpp
+++ b/src/mumble/Settings.cpp
@@ -156,6 +156,8 @@ Settings::Settings() {
bPluginCheck = true;
#endif
+ qsImagePath = QDesktopServices::storageLocation(QDesktopServices::PicturesLocation);
+
bFirstTime = true;
ceExpand = ChannelsWithUsers;
ceChannelDrag = Ask;
@@ -403,6 +405,7 @@ void Settings::load() {
SAVELOAD(bHideTray, "ui/hidetray");
SAVELOAD(bUsage, "ui/usage");
SAVELOAD(bAdvancedACLCfg, "ui/advancedaclcfg");
+ SAVELOAD(qsImagePath, "ui/imagepath");
SAVELOAD(iLCDUserViewMinColWidth, "lcd/userview/mincolwidth");
SAVELOAD(iLCDUserViewSplitterWidth, "lcd/userview/splitterwidth");
@@ -571,6 +574,7 @@ void Settings::save() {
SAVELOAD(bHideTray, "ui/hidetray");
SAVELOAD(bUsage, "ui/usage");
SAVELOAD(bAdvancedACLCfg, "ui/advancedaclcfg");
+ SAVELOAD(qsImagePath, "ui/imagepath");
SAVELOAD(iLCDUserViewMinColWidth, "lcd/userview/mincolwidth");
SAVELOAD(iLCDUserViewSplitterWidth, "lcd/userview/splitterwidth");
diff --git a/src/mumble/Settings.h b/src/mumble/Settings.h
index 81e9017d4..d2c0132d5 100644
--- a/src/mumble/Settings.h
+++ b/src/mumble/Settings.h
@@ -175,6 +175,8 @@ struct Settings {
QString qsUsername;
QString qsLastServer;
ServerShow ssFilter;
+
+ QString qsImagePath;
bool bUpdateCheck;
bool bPluginCheck;
diff --git a/src/mumble/TextMessage.cpp b/src/mumble/TextMessage.cpp
index adfd279d7..1c6c17523 100644
--- a/src/mumble/TextMessage.cpp
+++ b/src/mumble/TextMessage.cpp
@@ -32,13 +32,8 @@
TextMessage::TextMessage(QWidget *p) : QDialog(p) {
setupUi(this);
- qtbPreview->document()->setDefaultStyleSheet(qApp->styleSheet());
- qteEdit->installEventFilter(this);
- qteEdit->setFocus();
-}
-
-void TextMessage::on_qcbRawMessage_stateChanged(int) {
- on_qteEdit_textChanged();
+ rteMessage->installEventFilter(this);
+// rteMessage->setFocus();
}
QString TextMessage::autoFormat(QString qsPlain) {
@@ -77,26 +72,13 @@ QString TextMessage::autoFormat(QString qsPlain) {
} while (idx >= 0);
return qsPlain;
}
-void TextMessage::on_qteEdit_textChanged() {
- qsRep = qteEdit->toPlainText();
-
- if (qcbRawMessage->isChecked()) {
- qsRep = Qt::convertFromPlainText(qsRep);
- }
-
- if (! Qt::mightBeRichText(qsRep) && !qcbRawMessage->isChecked()) {
- qsRep = autoFormat(qsRep);
- }
-
- qtbPreview->setHtml(qsRep);
-}
QString TextMessage::message() {
- return qsRep;
+ return rteMessage->text();
}
bool TextMessage::eventFilter(QObject *obj, QEvent *evt) {
- if (obj != qteEdit)
+ if (obj != rteMessage)
return false;
if (evt->type() == QEvent::KeyPress) {
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(evt);
diff --git a/src/mumble/TextMessage.h b/src/mumble/TextMessage.h
index de4a000e8..0225c2ecc 100644
--- a/src/mumble/TextMessage.h
+++ b/src/mumble/TextMessage.h
@@ -45,9 +45,6 @@ class TextMessage : public QDialog, public Ui::TextMessage {
QString message();
bool eventFilter(QObject *obj, QEvent *event);
static QString autoFormat(QString qsPlain);
- public slots:
- void on_qteEdit_textChanged();
- void on_qcbRawMessage_stateChanged(int);
};
#endif
diff --git a/src/mumble/TextMessage.ui b/src/mumble/TextMessage.ui
index 48eeebd73..c92b48046 100644
--- a/src/mumble/TextMessage.ui
+++ b/src/mumble/TextMessage.ui
@@ -12,66 +12,7 @@
</property>
<layout class="QVBoxLayout">
<item>
- <widget class="QCheckBox" name="qcbRawMessage">
- <property name="toolTip">
- <string>Disables html formatting</string>
- </property>
- <property name="text">
- <string>Disable text formatting</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="qgbEdit">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>2</verstretch>
- </sizepolicy>
- </property>
- <property name="title">
- <string>Message to send</string>
- </property>
- <layout class="QVBoxLayout">
- <item>
- <widget class="QTextEdit" name="qteEdit"/>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="qgbPreview">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>1</verstretch>
- </sizepolicy>
- </property>
- <property name="title">
- <string>Preview</string>
- </property>
- <layout class="QVBoxLayout">
- <item>
- <widget class="QTextBrowser" name="qtbPreview">
- <property name="toolTip">
- <string>This field reflects how the message will look like in the chat.</string>
- </property>
- <property name="whatsThis">
- <string>&lt;b&gt;Preview&lt;/b&gt;&lt;br /&gt;This field takes the raw string entered above and renders it like it will look like in the log. For example &amp;lt;b&amp;gt;Test&amp;lt;/b&amp;gt; will display as: &lt;b&gt;Test&lt;b&gt;.</string>
- </property>
- <property name="frameShape">
- <enum>QFrame::NoFrame</enum>
- </property>
- <property name="frameShadow">
- <enum>QFrame::Plain</enum>
- </property>
- <property name="openLinks">
- <bool>false</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
+ <widget class="RichTextEditor" name="rteMessage" native="true"/>
</item>
<item>
<widget class="QDialogButtonBox" name="qbbButtons">
@@ -85,6 +26,14 @@
</item>
</layout>
</widget>
+ <customwidgets>
+ <customwidget>
+ <class>RichTextEditor</class>
+ <extends>QWidget</extends>
+ <header>RichTextEditor.h</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
<resources/>
<connections>
<connection>
diff --git a/src/mumble/mumble.pro b/src/mumble/mumble.pro
index d49810a01..0d6aa5120 100644
--- a/src/mumble/mumble.pro
+++ b/src/mumble/mumble.pro
@@ -9,7 +9,7 @@ SOURCES *= BanEditor.cpp ACLEditor.cpp ConfigWidget.cpp Log.cpp AudioConfigDial
SOURCES *= smallft.cpp
DIST *= ../../icons/mumble.ico licenses.h smallft.h ../../icons/mumble.xpm murmur_pch.h mumble.plist
RESOURCES *= mumble.qrc mumble_flags.qrc
-FORMS *= ConfigDialog.ui MainWindow.ui ConnectDialog.ui ConnectDialogEdit.ui BanEditor.ui ACLEditor.ui Plugins.ui Overlay.ui LookConfig.ui AudioInput.ui AudioOutput.ui Log.ui TextMessage.ui AudioStats.ui NetworkConfig.ui LCD.ui GlobalShortcut.ui GlobalShortcutTarget.ui Cert.ui UserEdit.ui AudioWizard.ui Tokens.ui RichTextEditor.ui
+FORMS *= ConfigDialog.ui MainWindow.ui ConnectDialog.ui ConnectDialogEdit.ui BanEditor.ui ACLEditor.ui Plugins.ui Overlay.ui LookConfig.ui AudioInput.ui AudioOutput.ui Log.ui TextMessage.ui AudioStats.ui NetworkConfig.ui LCD.ui GlobalShortcut.ui GlobalShortcutTarget.ui Cert.ui UserEdit.ui AudioWizard.ui Tokens.ui RichTextEditor.ui RichTextEditorLink.ui
TRANSLATIONS = mumble_en.ts mumble_es.ts mumble_de.ts mumble_fr.ts mumble_pl.ts mumble_ru.ts mumble_cs.ts mumble_it.ts mumble_ja.ts mumble_zh_CN.ts mumble_zh_TW.ts
PRECOMPILED_HEADER = mumble_pch.hpp
INCLUDEPATH *= ../bonjour
diff --git a/src/mumble/mumble_tango.qrc b/src/mumble/mumble_tango.qrc
index c2558a54d..0cc94140f 100644
--- a/src/mumble/mumble_tango.qrc
+++ b/src/mumble/mumble_tango.qrc
@@ -3,7 +3,12 @@
<file alias="actions/document-new.svg" >../../icons/tango/actions/document-new.svg</file>
<file alias="actions/document-open.svg" >../../icons/tango/actions/document-open.svg</file>
<file alias="actions/document-save-as.svg" >../../icons/tango/actions/document-save-as.svg</file>
+ <file alias="actions/format-text-bold.svg" >../../icons/tango/actions/format-text-bold.svg</file>
+ <file alias="actions/format-text-italic.svg" >../../icons/tango/actions/format-text-italic.svg</file>
+ <file alias="actions/format-text-underline.svg" >../../icons/tango/actions/format-text-underline.svg</file>
<file alias="emblems/emblem-favorite.svg" >../../icons/tango/emblems/emblem-favorite.svg</file>
<file alias="places/network-workgroup.svg" >../../icons/tango/places/network-workgroup.svg</file>
+ <file alias="mimetypes/image-x-generic.svg" >../../icons/tango/mimetypes/image-x-generic.svg</file>
+ <file alias="mimetypes/text-html.svg" >../../icons/tango/mimetypes/text-html.svg</file>
</qresource>
</RCC>