Draft: add new viewprovider icons for specific objects

When there are many Draft objects in the tree view
the icon can be used to tell different objects apart quickly.
One icon is used for objects that are "straight lines",
whose Proxy is of type `Line`, `Wire` or `Polyline`; another icon
for "regular geometrical" shapes of type `Rectangle` or `Polygon`;
and another icon for "curved" objects of type `Circle`,
`Ellipse`, `BSpline`, `BezCurve`, or `Fillet`.

Other objects use the older default icon.
This commit is contained in:
vocx-fc
2020-02-15 22:54:34 -06:00
committed by Yorik van Havre
parent 8f2cd4526e
commit dce7f63c02
5 changed files with 482 additions and 1 deletions

View File

@@ -3283,7 +3283,15 @@ class _ViewProviderDraft:
return False
def getIcon(self):
return(":/icons/Draft_Draft.svg")
tp = self.Object.Proxy.Type
if tp in ('Line', 'Wire', 'Polyline'):
return ":/icons/Draft_N-Linear.svg"
elif tp in ('Rectangle', 'Polygon'):
return ":/icons/Draft_N-Polygon.svg"
elif tp in ('Circle', 'Ellipse', 'BSpline', 'BezCurve', 'Fillet'):
return ":/icons/Draft_N-Curve.svg"
else:
return ":/icons/Draft_Draft.svg"
def claimChildren(self):
objs = []

View File

@@ -48,6 +48,9 @@
<file>icons/Draft_Macro.svg</file>
<file>icons/Draft_Mirror.svg</file>
<file>icons/Draft_Move.svg</file>
<file>icons/Draft_N-Curve.svg</file>
<file>icons/Draft_N-Linear.svg</file>
<file>icons/Draft_N-Polygon.svg</file>
<file>icons/Draft_Offset.svg</file>
<file>icons/Draft_PathArray.svg</file>
<file>icons/Draft_PathLinkArray.svg</file>

View File

@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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"
version="1.1"
id="svg5821"
height="64px"
width="64px">
<title
id="title830">Draft_N-Curve</title>
<defs
id="defs5823">
<linearGradient
id="linearGradient6349">
<stop
id="stop6351"
offset="0"
style="stop-color:#000000;stop-opacity:1;" />
<stop
id="stop6353"
offset="1"
style="stop-color:#000000;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient3377">
<stop
id="stop3379"
offset="0"
style="stop-color:#0019a3;stop-opacity:1;" />
<stop
id="stop3381"
offset="1"
style="stop-color:#0069ff;stop-opacity:1;" />
</linearGradient>
<linearGradient
gradientTransform="matrix(-1,0,0,1,2199.356,0)"
gradientUnits="userSpaceOnUse"
y2="1190.875"
x2="1267.9062"
y1="1190.875"
x1="901.1875"
id="linearGradient3383"
xlink:href="#linearGradient3377" />
<radialGradient
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.4307499,-1.3605156e-7,-1.202713e-8,0.1264801,2674.7488,1244.2826)"
r="194.40614"
fy="1424.4465"
fx="1103.6399"
cy="1424.4465"
cx="1103.6399"
id="radialGradient6355"
xlink:href="#linearGradient6349" />
</defs>
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#0b1521;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="M 30,57 C 22,56 7.8581863,50.52621 9,42 11.16978,25.797708 55,41.346933 55,25 55,17 38,17 38,7"
id="rect3860" />
<metadata
id="metadata4153">
<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>Draft_N-Curve</dc:title>
<cc:license
rdf:resource="" />
<dc:date>Sat Feb 15 23:00:00 2020 +0000</dc:date>
<dc:creator>
<cc:Agent>
<dc:title>[vocx]</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title>FreeCAD LGPL2+</dc:title>
</cc:Agent>
</dc:rights>
<dc:publisher>
<cc:Agent>
<dc:title>FreeCAD</dc:title>
</cc:Agent>
</dc:publisher>
<dc:identifier>FreeCAD/src/Mod/Draft/Resources/icons/Draft_N-Curve.svg</dc:identifier>
<dc:relation>http://www.freecadweb.org/wiki/index.php?title=Artwork</dc:relation>
<dc:contributor>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:contributor>
<dc:subject>
<rdf:Bag>
<rdf:li>curve</rdf:li>
<rdf:li>spline</rdf:li>
<rdf:li>bezier</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:description>A curve going up, with a bend to the left, then to the right, and then again to the left</dc:description>
</cc:Work>
</rdf:RDF>
</metadata>
<path
id="path909"
d="M 30,57 C 22,56 7.8581863,50.52621 9,42 11.16978,25.797708 55,41.346933 55,25 55,17 38,17 38,7"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#729fcf;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,222 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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"
version="1.1"
id="svg5821"
height="64px"
width="64px">
<title
id="title830">Draft_N-Linear</title>
<defs
id="defs5823">
<linearGradient
id="linearGradient6349">
<stop
id="stop6351"
offset="0"
style="stop-color:#000000;stop-opacity:1;" />
<stop
id="stop6353"
offset="1"
style="stop-color:#000000;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient3377">
<stop
id="stop3379"
offset="0"
style="stop-color:#0019a3;stop-opacity:1;" />
<stop
id="stop3381"
offset="1"
style="stop-color:#0069ff;stop-opacity:1;" />
</linearGradient>
<linearGradient
gradientTransform="matrix(-1,0,0,1,2199.356,0)"
gradientUnits="userSpaceOnUse"
y2="1190.875"
x2="1267.9062"
y1="1190.875"
x1="901.1875"
id="linearGradient3383"
xlink:href="#linearGradient3377" />
<radialGradient
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.4307499,-1.3605156e-7,-1.202713e-8,0.1264801,2674.7488,1244.2826)"
r="194.40614"
fy="1424.4465"
fx="1103.6399"
cy="1424.4465"
cx="1103.6399"
id="radialGradient6355"
xlink:href="#linearGradient6349" />
<radialGradient
r="34.345188"
fy="672.79736"
fx="225.26402"
cy="672.79736"
cx="225.26402"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
gradientUnits="userSpaceOnUse"
id="radialGradient2210"
xlink:href="#linearGradient3144" />
<radialGradient
r="34.345188"
fy="672.79736"
fx="225.26402"
cy="672.79736"
cx="225.26402"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
gradientUnits="userSpaceOnUse"
id="radialGradient2202"
xlink:href="#linearGradient3144" />
<radialGradient
r="34.345188"
fy="672.79736"
fx="225.26402"
cy="672.79736"
cx="225.26402"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
gradientUnits="userSpaceOnUse"
id="radialGradient2194"
xlink:href="#linearGradient3144" />
<linearGradient
id="linearGradient3144">
<stop
id="stop3146"
offset="0"
style="stop-color:#ffffff;stop-opacity:1;" />
<stop
id="stop3148"
offset="1"
style="stop-color:#ffffff;stop-opacity:0;" />
</linearGradient>
<radialGradient
r="34.345188"
fy="672.79736"
fx="225.26402"
cy="672.79736"
cx="225.26402"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
gradientUnits="userSpaceOnUse"
id="radialGradient2192"
xlink:href="#linearGradient3144" />
<radialGradient
r="34.345188"
fy="672.79736"
fx="225.26402"
cy="672.79736"
cx="225.26402"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
gradientUnits="userSpaceOnUse"
id="radialGradient3263"
xlink:href="#linearGradient3144" />
<radialGradient
r="34.345188"
fy="672.79736"
fx="225.26402"
cy="672.79736"
cx="225.26402"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
gradientUnits="userSpaceOnUse"
id="radialGradient3265"
xlink:href="#linearGradient3144" />
<radialGradient
r="34.345188"
fy="672.79736"
fx="225.26402"
cy="672.79736"
cx="225.26402"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
gradientUnits="userSpaceOnUse"
id="radialGradient3267"
xlink:href="#linearGradient3144" />
<radialGradient
r="34.345188"
fy="672.79736"
fx="225.26402"
cy="672.79736"
cx="225.26402"
gradientTransform="matrix(1,0,0,0.6985294,0,202.82863)"
gradientUnits="userSpaceOnUse"
id="radialGradient3269"
xlink:href="#linearGradient3144" />
<linearGradient
y2="5"
x2="-22"
y1="18"
x1="-18"
gradientUnits="userSpaceOnUse"
id="linearGradient3801-1"
xlink:href="#linearGradient3836-0" />
<linearGradient
id="linearGradient3836-0">
<stop
id="stop3838-2"
offset="0"
style="stop-color:#c4a000;stop-opacity:1;" />
<stop
id="stop3840-5"
offset="1"
style="stop-color:#fce94f;stop-opacity:1;" />
</linearGradient>
</defs>
<metadata
id="metadata4153">
<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>Draft_N-Linear</dc:title>
<cc:license
rdf:resource="" />
<dc:date>Sat Feb 15 23:00:00 2020 +0000</dc:date>
<dc:creator>
<cc:Agent>
<dc:title>[vocx]</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title>FreeCAD LGPL2+</dc:title>
</cc:Agent>
</dc:rights>
<dc:publisher>
<cc:Agent>
<dc:title>FreeCAD</dc:title>
</cc:Agent>
</dc:publisher>
<dc:identifier>FreeCAD/src/Mod/Draft/Resources/icons/Draft_N-Linear.svg</dc:identifier>
<dc:relation>http://www.freecadweb.org/wiki/index.php?title=Artwork</dc:relation>
<dc:contributor>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:contributor>
<dc:subject>
<rdf:Bag>
<rdf:li>line</rdf:li>
<rdf:li>wire</rdf:li>
<rdf:li>polyline</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:description>A polygonal line moving to the right: one line segment going up, another going down, and up again</dc:description>
</cc:Work>
</rdf:RDF>
</metadata>
<path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#0b1521;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="M 6,44 H 18 L 28,22 41,56 58,8"
id="rect3860" />
<path
id="path1199"
d="M 6,44 H 18 L 28,22 41,56 58,8"
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#729fcf;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
</svg>

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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"
version="1.1"
id="svg5821"
height="64px"
width="64px">
<title
id="title830">Draft_N-Polygon</title>
<defs
id="defs5823">
<linearGradient
id="linearGradient6349">
<stop
id="stop6351"
offset="0"
style="stop-color:#000000;stop-opacity:1;" />
<stop
id="stop6353"
offset="1"
style="stop-color:#000000;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient3377">
<stop
id="stop3379"
offset="0"
style="stop-color:#0019a3;stop-opacity:1;" />
<stop
id="stop3381"
offset="1"
style="stop-color:#0069ff;stop-opacity:1;" />
</linearGradient>
<linearGradient
gradientTransform="matrix(-1,0,0,1,2199.356,0)"
gradientUnits="userSpaceOnUse"
y2="1190.875"
x2="1267.9062"
y1="1190.875"
x1="901.1875"
id="linearGradient3383"
xlink:href="#linearGradient3377" />
<radialGradient
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-1.4307499,-1.3605156e-7,-1.202713e-8,0.1264801,2674.7488,1244.2826)"
r="194.40614"
fy="1424.4465"
fx="1103.6399"
cy="1424.4465"
cx="1103.6399"
id="radialGradient6355"
xlink:href="#linearGradient6349" />
<radialGradient
xlink:href="#linearGradient6349"
id="radialGradient6355-6"
cx="1103.6399"
cy="1424.4465"
fx="1103.6399"
fy="1424.4465"
r="194.40614"
gradientTransform="matrix(-1.4307499,-1.3605156e-7,-1.202713e-8,0.1264801,2674.7488,1244.2826)"
gradientUnits="userSpaceOnUse" />
</defs>
<metadata
id="metadata4153">
<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>Draft_N-Polygon</dc:title>
<cc:license
rdf:resource="" />
<dc:date>Sat Feb 15 23:00:00 2020 +0000</dc:date>
<dc:creator>
<cc:Agent>
<dc:title>[vocx]</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title>FreeCAD LGPL2+</dc:title>
</cc:Agent>
</dc:rights>
<dc:publisher>
<cc:Agent>
<dc:title>FreeCAD</dc:title>
</cc:Agent>
</dc:publisher>
<dc:identifier>FreeCAD/src/Mod/Draft/Resources/icons/Draft_N-Polygon.svg</dc:identifier>
<dc:relation>http://www.freecadweb.org/wiki/index.php?title=Artwork</dc:relation>
<dc:contributor>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:contributor>
<dc:subject>
<rdf:Bag>
<rdf:li>rectangle</rdf:li>
<rdf:li>pentagon</rdf:li>
<rdf:li>polygon</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:description>The intersecting outlines of a rectangle and a pentagon</dc:description>
</cc:Work>
</rdf:RDF>
</metadata>
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#0b1521;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect3860-2"
width="34"
height="32"
x="6.0000095"
y="25.999998" />
<path
style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#0b1521;stroke-width:5.99999952;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path938"
d="M 58.267182,18.648878 50.470622,40.856415 25.648713,40.777885 18.104491,18.521814 38.263813,4.8453369 Z" />
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#729fcf;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="rect3860-3"
width="34"
height="32"
x="6.0000191"
y="25.999998" />
<path
d="M 58.267182,18.64891 50.470622,40.856415 25.648713,40.777884 18.104491,18.521847 38.263813,4.8453891 Z"
id="path833"
style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#729fcf;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 4.8 KiB