Add icons from ionicons

Sat, 05 Mar 2022 12:42:14 +0200

author
Teemu Piippo <teemu@hecknology.net>
date
Sat, 05 Mar 2022 12:42:14 +0200
changeset 158
5bd755eaa5a8
parent 157
869fe95c4e5e
child 159
1a04364d20b5

Add icons from ionicons

CMakeLists.txt file | annotate | diff | comparison | revisions
LICENSE-ionicons file | annotate | diff | comparison | revisions
icons/chatbubble-ellipses-outline.png file | annotate | diff | comparison | revisions
icons/close.png file | annotate | diff | comparison | revisions
icons/cube-outline.png file | annotate | diff | comparison | revisions
icons/document-outline.png file | annotate | diff | comparison | revisions
icons/folder-open-outline.png file | annotate | diff | comparison | revisions
icons/grid-outline.png file | annotate | diff | comparison | revisions
icons/linetype-conditionaledge.png file | annotate | diff | comparison | revisions
icons/linetype-edgeline.png file | annotate | diff | comparison | revisions
icons/linetype-errorline.png file | annotate | diff | comparison | revisions
icons/linetype-quadrilateral.png file | annotate | diff | comparison | revisions
icons/linetype-subfile.png file | annotate | diff | comparison | revisions
icons/linetype-triangle.png file | annotate | diff | comparison | revisions
icons/pencil-outline.png file | annotate | diff | comparison | revisions
icons/renderstyle-bfc.png file | annotate | diff | comparison | revisions
icons/renderstyle-normal.png file | annotate | diff | comparison | revisions
icons/renderstyle-randomcolors.png file | annotate | diff | comparison | revisions
icons/renderstyle-wireframe.png file | annotate | diff | comparison | revisions
icons/save-as-outline.png file | annotate | diff | comparison | revisions
icons/save-outline.png file | annotate | diff | comparison | revisions
icons/settings-outline.png file | annotate | diff | comparison | revisions
icons/stop-outline.png file | annotate | diff | comparison | revisions
icons/warning-outline.png file | annotate | diff | comparison | revisions
icons_svg/chatbubble-ellipses-outline.svg file | annotate | diff | comparison | revisions
icons_svg/close.svg file | annotate | diff | comparison | revisions
icons_svg/cube-outline.svg file | annotate | diff | comparison | revisions
icons_svg/document-outline.svg file | annotate | diff | comparison | revisions
icons_svg/folder-open-outline.svg file | annotate | diff | comparison | revisions
icons_svg/grid-outline.svg file | annotate | diff | comparison | revisions
icons_svg/linetype-conditionaledge.svg file | annotate | diff | comparison | revisions
icons_svg/linetype-edgeline.svg file | annotate | diff | comparison | revisions
icons_svg/linetype-errorline.svg file | annotate | diff | comparison | revisions
icons_svg/linetype-quadrilateral.svg file | annotate | diff | comparison | revisions
icons_svg/linetype-subfile.svg file | annotate | diff | comparison | revisions
icons_svg/linetype-triangle.svg file | annotate | diff | comparison | revisions
icons_svg/pencil-outline.svg file | annotate | diff | comparison | revisions
icons_svg/renderstyle-bfc.svg file | annotate | diff | comparison | revisions
icons_svg/renderstyle-normal.svg file | annotate | diff | comparison | revisions
icons_svg/renderstyle-randomcolors.svg file | annotate | diff | comparison | revisions
icons_svg/renderstyle-wireframe.svg file | annotate | diff | comparison | revisions
icons_svg/save-as-outline.svg file | annotate | diff | comparison | revisions
icons_svg/save-outline.svg file | annotate | diff | comparison | revisions
icons_svg/settings-outline.svg file | annotate | diff | comparison | revisions
icons_svg/stop-outline.svg file | annotate | diff | comparison | revisions
icons_svg/warning-outline.svg file | annotate | diff | comparison | revisions
ldforge.qrc file | annotate | diff | comparison | revisions
src/linetypes/conditionaledge.cpp file | annotate | diff | comparison | revisions
src/linetypes/conditionaledge.h file | annotate | diff | comparison | revisions
src/linetypes/edge.cpp file | annotate | diff | comparison | revisions
src/linetypes/edge.h file | annotate | diff | comparison | revisions
src/linetypes/errorline.cpp file | annotate | diff | comparison | revisions
src/linetypes/errorline.h file | annotate | diff | comparison | revisions
src/linetypes/metacommand.cpp file | annotate | diff | comparison | revisions
src/linetypes/metacommand.h file | annotate | diff | comparison | revisions
src/linetypes/object.cpp file | annotate | diff | comparison | revisions
src/linetypes/object.h file | annotate | diff | comparison | revisions
src/linetypes/quadrilateral.cpp file | annotate | diff | comparison | revisions
src/linetypes/quadrilateral.h file | annotate | diff | comparison | revisions
src/linetypes/subfilereference.cpp file | annotate | diff | comparison | revisions
src/linetypes/subfilereference.h file | annotate | diff | comparison | revisions
src/linetypes/triangle.cpp file | annotate | diff | comparison | revisions
src/linetypes/triangle.h file | annotate | diff | comparison | revisions
src/main.cpp file | annotate | diff | comparison | revisions
src/mainwindow.ui file | annotate | diff | comparison | revisions
src/model.cpp file | annotate | diff | comparison | revisions
svg-to-png.sh file | annotate | diff | comparison | revisions
--- a/CMakeLists.txt	Sat Mar 05 00:51:23 2022 +0200
+++ b/CMakeLists.txt	Sat Mar 05 12:42:14 2022 +0200
@@ -198,7 +198,7 @@
 	${LDFORGE_SOURCES}
 	${LDFORGE_HEADERS}
 	${LDFORGE_RESOURCES}
-	#${LDFORGE_QRC}
+	${LDFORGE_QRC}
 	#${LDFORGE_QM_RC_FILE}
 	${QM_FILES}
 	${LDFORGE_FORMS_HEADERS}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LICENSE-ionicons	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015-present Ionic (http://ionic.io/)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
Binary file icons/chatbubble-ellipses-outline.png has changed
Binary file icons/close.png has changed
Binary file icons/cube-outline.png has changed
Binary file icons/document-outline.png has changed
Binary file icons/folder-open-outline.png has changed
Binary file icons/grid-outline.png has changed
Binary file icons/linetype-conditionaledge.png has changed
Binary file icons/linetype-edgeline.png has changed
Binary file icons/linetype-errorline.png has changed
Binary file icons/linetype-quadrilateral.png has changed
Binary file icons/linetype-subfile.png has changed
Binary file icons/linetype-triangle.png has changed
Binary file icons/pencil-outline.png has changed
Binary file icons/renderstyle-bfc.png has changed
Binary file icons/renderstyle-normal.png has changed
Binary file icons/renderstyle-randomcolors.png has changed
Binary file icons/renderstyle-wireframe.png has changed
Binary file icons/save-as-outline.png has changed
Binary file icons/save-outline.png has changed
Binary file icons/settings-outline.png has changed
Binary file icons/stop-outline.png has changed
Binary file icons/warning-outline.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/chatbubble-ellipses-outline.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,71 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg12"
+   sodipodi:docname="chatbubble-ellipses-outline.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata18">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs16" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview14"
+     showgrid="false"
+     inkscape:zoom="0.7734375"
+     inkscape:cx="111.72444"
+     inkscape:cy="267.74481"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg12" />
+  <title
+     id="title2">ionicons-v5-s</title>
+  <path
+     d="M87.48,380c1.2-4.38-1.43-10.47-3.94-14.86A42.63,42.63,0,0,0,81,361.34a199.81,199.81,0,0,1-33-110C47.64,139.09,140.72,48,255.82,48,356.2,48,440,117.54,459.57,209.85A199,199,0,0,1,464,251.49c0,112.41-89.49,204.93-204.59,204.93-18.31,0-43-4.6-56.47-8.37s-26.92-8.77-30.39-10.11a31.14,31.14,0,0,0-11.13-2.07,30.7,30.7,0,0,0-12.08,2.43L81.5,462.78A15.92,15.92,0,0,1,76.84,464a9.61,9.61,0,0,1-9.58-9.74,15.85,15.85,0,0,1,.6-3.29Z"
+     style="fill:#ffffff;stroke:#000;stroke-linecap:round;stroke-miterlimit:10;stroke-width:32px;fill-opacity:1"
+     id="path4" />
+  <circle
+     cx="160"
+     cy="256"
+     r="32"
+     id="circle6" />
+  <circle
+     cx="256"
+     cy="256"
+     r="32"
+     id="circle8" />
+  <circle
+     cx="352"
+     cy="256"
+     r="32"
+     id="circle10" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/close.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><title>ionicons-v5-m</title><path d="M289.94,256l95-95A24,24,0,0,0,351,127l-95,95-95-95A24,24,0,0,0,127,161l95,95-95,95A24,24,0,1,0,161,385l95-95,95,95A24,24,0,0,0,385,351Z"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/cube-outline.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><title>ionicons-v5-h</title><path d="M448,341.37V170.61A32,32,0,0,0,432.11,143l-152-88.46a47.94,47.94,0,0,0-48.24,0L79.89,143A32,32,0,0,0,64,170.61V341.37A32,32,0,0,0,79.89,369l152,88.46a48,48,0,0,0,48.24,0l152-88.46A32,32,0,0,0,448,341.37Z" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><polyline points="69 153.99 256 263.99 443 153.99" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><line x1="256" y1="463.99" x2="256" y2="263.99" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/document-outline.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,72 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg3181"
+   sodipodi:docname="document-outline.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata3187">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs3185" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview3183"
+     showgrid="false"
+     inkscape:zoom="0.7734375"
+     inkscape:cx="93.094446"
+     inkscape:cy="124.7437"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg3181" />
+  <title
+     id="title3175">ionicons-v5-e</title>
+  <path
+     style="fill:#a0a0a0;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="M 275.8917,205.71668 255.20916,178.44693 256,56 406.47212,203.29632 275.8917,205.71668"
+     id="path3770" />
+  <path
+     style="fill:#ffffff;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="M 102.36249,80.597794 141.10129,48.84886 256,56 255.20916,178.44693 278.46666,200.7517 408,208 419.07134,428.0657 c 0,0 -34.28133,38.07007 -40.15858,38.73544 -5.87725,0.66536 -247.49309,-0.96623 -247.49309,-0.96623 L 95.120975,430.85006 Z"
+     id="path3766" />
+  <path
+     d="M416,221.25V416a48,48,0,0,1-48,48H144a48,48,0,0,1-48-48V96a48,48,0,0,1,48-48h98.75a32,32,0,0,1,22.62,9.37L406.63,198.63A32,32,0,0,1,416,221.25Z"
+     style="fill:none;stroke:#000;stroke-linejoin:round;stroke-width:32px;fill-opacity:1"
+     id="path3177" />
+  <path
+     d="M256,56V176a32,32,0,0,0,32,32H408"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="path3179" />
+  <path
+     style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+     d="M 256,56 408,208 275.8917,205.71668"
+     id="path3768" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/folder-open-outline.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,60 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg2502"
+   sodipodi:docname="folder-open-outline.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata2508">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs2506" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview2504"
+     showgrid="false"
+     inkscape:zoom="0.27345145"
+     inkscape:cx="473.12677"
+     inkscape:cy="226.03222"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2502" />
+  <title
+     id="title2496">ionicons-v5-n</title>
+  <path
+     d="M64,192V120a40,40,0,0,1,40-40h75.89a40,40,0,0,1,22.19,6.72l27.84,18.56A40,40,0,0,0,252.11,112H408a40,40,0,0,1,40,40v40"
+     style="fill:#a08040;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px;fill-opacity:1"
+     id="path2498" />
+  <path
+     d="M479.9,226.55,463.68,392a40,40,0,0,1-39.93,40H88.25a40,40,0,0,1-39.93-40L32.1,226.55A32,32,0,0,1,64,192h384.1A32,32,0,0,1,479.9,226.55Z"
+     style="fill:#ffffa0;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px;fill-opacity:1"
+     id="path2500" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/grid-outline.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><title>ionicons-v5-i</title><rect x="48" y="48" width="176" height="176" rx="20" ry="20" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><rect x="288" y="48" width="176" height="176" rx="20" ry="20" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><rect x="48" y="288" width="176" height="176" rx="20" ry="20" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><rect x="288" y="288" width="176" height="176" rx="20" ry="20" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/linetype-conditionaledge.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,79 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg5169"
+   sodipodi:docname="linetype-conditionalline.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata5175">
+    <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>ionicons-v5-d</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs5173" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview5171"
+     showgrid="false"
+     inkscape:zoom="0.19335938"
+     inkscape:cx="10.850565"
+     inkscape:cy="165.06869"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="text5779" />
+  <title
+     id="title5155">ionicons-v5-d</title>
+  <path
+     style="fill:#aa44ff;fill-opacity:1;stroke:#000000;stroke-width:16;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 128.49713,361.32331 237.11801,-251.87928 38.58103,42.71089 -235.69661,243.8765 z"
+     id="path5739"
+     sodipodi:nodetypes="ccccc" />
+  <circle
+     cx="128"
+     cy="416"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="circle5157"
+     r="48" />
+  <circle
+     cx="415.54843"
+     cy="96"
+     r="48"
+     style="fill:none;stroke:#000000;stroke-width:32px;stroke-linecap:round;stroke-linejoin:round"
+     id="circle5163" />
+  <g
+     aria-label="?"
+     id="text5779"
+     style="font-style:normal;font-weight:normal;font-size:400px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:32;stroke-miterlimit:4;stroke-dasharray:none">
+    <path
+       d="m 351.28137,444.69 h 39.64844 v 49.60938 h -39.64844 z m 38.47656,-28.71094 h -37.30468 v -30.07812 q 0,-19.72656 5.46875,-32.42188 5.46875,-12.69531 23.04687,-29.49218 L 398.547,306.60406 q 11.13281,-10.35156 16.01562,-19.53125 5.07813,-9.17968 5.07813,-18.75 0,-17.38281 -12.89063,-28.125 -12.69531,-10.74218 -33.78906,-10.74218 -15.42969,0 -33.00781,6.83593 -17.38282,6.83594 -36.32813,19.92188 v -36.71875 q 18.35938,-11.13281 37.10938,-16.60156 18.94531,-5.46875 39.0625,-5.46875 35.9375,0 57.61718,18.94531 21.875,18.94531 21.875,50 0,14.84375 -7.03125,28.32031 -7.03125,13.28125 -24.60937,30.07813 l -17.1875,16.79687 q -9.17969,9.17969 -13.08594,14.45313 -3.71094,5.07812 -5.27344,9.96093 -1.17187,4.10157 -1.75781,9.96094 -0.58594,5.85938 -0.58594,16.01563 z"
+       id="path5781"
+       style="fill:#000000;fill-opacity:1;stroke-width:8;stroke-miterlimit:4;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1;stroke-linecap:butt;stroke-linejoin:round" />
+  </g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/linetype-edgeline.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,70 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg5169"
+   sodipodi:docname="linetype-edgeline.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata5175">
+    <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>ionicons-v5-d</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs5173" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview5171"
+     showgrid="false"
+     inkscape:zoom="0.38671875"
+     inkscape:cx="427.92413"
+     inkscape:cy="241.73988"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg5169" />
+  <title
+     id="title5155">ionicons-v5-d</title>
+  <path
+     style="fill:#ff4444;fill-opacity:1;stroke:#000000;stroke-width:16;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     d="m 128.49713,361.32331 237.11801,-251.87928 38.58103,42.71089 -235.69661,243.8765 z"
+     id="path5739"
+     sodipodi:nodetypes="ccccc" />
+  <circle
+     cx="128"
+     cy="416"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="circle5157"
+     r="48" />
+  <circle
+     cx="415.54843"
+     cy="96"
+     r="48"
+     style="fill:none;stroke:#000000;stroke-width:32px;stroke-linecap:round;stroke-linejoin:round"
+     id="circle5163" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/linetype-errorline.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,64 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg10"
+   sodipodi:docname="linetype-errorline.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata16">
+    <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>ionicons-v5-r</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs14" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview12"
+     showgrid="false"
+     inkscape:zoom="0.19335938"
+     inkscape:cx="334.80543"
+     inkscape:cy="42.456584"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg10" />
+  <title
+     id="title2">ionicons-v5-r</title>
+  <path
+     d="M85.57,446.25H426.43a32,32,0,0,0,28.17-47.17L284.18,82.58c-12.09-22.44-44.27-22.44-56.36,0L57.4,399.08A32,32,0,0,0,85.57,446.25Z"
+     style="fill:#f0a040;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px;fill-opacity:1"
+     id="path4" />
+  <path
+     d="M250.26,195.39l5.74,122,5.73-121.95a5.74,5.74,0,0,0-5.79-6h0A5.74,5.74,0,0,0,250.26,195.39Z"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="path6" />
+  <path
+     d="M256,397.25a20,20,0,1,1,20-20A20,20,0,0,1,256,397.25Z"
+     id="path8" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/linetype-quadrilateral.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,58 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg1089"
+   sodipodi:docname="linetype-quadrilateral.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata1095">
+    <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>ionicons-v5-c</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs1093" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview1091"
+     showgrid="false"
+     inkscape:zoom="0.7734375"
+     inkscape:cx="125.57328"
+     inkscape:cy="172.57364"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg1089" />
+  <title
+     id="title1085">ionicons-v5-c</title>
+  <path
+     id="rect1087"
+     style="fill:#4488ff;stroke:#000000;stroke-width:32px;stroke-linejoin:round;fill-opacity:1"
+     d="m 180.12086,96 h 151.78357 c 13.296,0 21.13157,11.0171 24,24 L 416,392 c 2.86844,12.9829 -10.704,24 -24,24 H 120 c -13.296,0 -26.869587,-11.01735 -24,-24 l 60.12086,-272 c 2.86958,-12.98265 10.704,-24 24,-24 z"
+     sodipodi:nodetypes="sssssssss" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/linetype-subfile.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,68 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg10"
+   sodipodi:docname="linetype-subfile.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata16">
+    <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>ionicons-v5-h</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs14" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview12"
+     showgrid="false"
+     inkscape:zoom="0.7734375"
+     inkscape:cx="56.814353"
+     inkscape:cy="235.93483"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg10" />
+  <title
+     id="title2">ionicons-v5-h</title>
+  <path
+     d="M448,341.37V170.61A32,32,0,0,0,432.11,143l-152-88.46a47.94,47.94,0,0,0-48.24,0L79.89,143A32,32,0,0,0,64,170.61V341.37A32,32,0,0,0,79.89,369l152,88.46a48,48,0,0,0,48.24,0l152-88.46A32,32,0,0,0,448,341.37Z"
+     style="fill:#a080ff;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px;fill-opacity:1"
+     id="path4" />
+  <polyline
+     points="69 153.99 256 263.99 443 153.99"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="polyline6" />
+  <line
+     x1="256"
+     y1="463.99"
+     x2="256"
+     y2="263.99"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="line8" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/linetype-triangle.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,57 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg6"
+   sodipodi:docname="linetype-triangle.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata12">
+    <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>ionicons-v5-q</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs10" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview8"
+     showgrid="false"
+     inkscape:zoom="0.5469029"
+     inkscape:cx="241.92619"
+     inkscape:cy="87.931788"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg6" />
+  <title
+     id="title2">ionicons-v5-q</title>
+  <polygon
+     points="48 448 256 64 464 448 48 448"
+     style="fill:#80ff80;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px;fill-opacity:1"
+     id="polygon4" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/pencil-outline.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><title>ionicons-v5-k</title><polygon points="364.13 125.25 87 403 64 448 108.99 425 386.75 147.87 364.13 125.25" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><path d="M420.69,68.69,398.07,91.31l22.62,22.63,22.62-22.63a16,16,0,0,0,0-22.62h0A16,16,0,0,0,420.69,68.69Z" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/renderstyle-bfc.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,80 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg142"
+   sodipodi:docname="renderstyle-bfc.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata148">
+    <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>ionicons-v5-h</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs146" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview144"
+     showgrid="false"
+     inkscape:zoom="0.72167969"
+     inkscape:cx="40.002012"
+     inkscape:cy="28.165605"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg142" />
+  <title
+     id="title134">ionicons-v5-h</title>
+  <path
+     style="fill:#44ff44;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="M 69,153.99 235.44981,52.159232 266.07231,50.156067 443,153.99 256,263.98999 v 200 L 79.199578,370.98132 62.894918,346.16429 Z"
+     id="path979" />
+  <path
+     style="fill:#f04040;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="M 256,263.98999 443,153.99 447.98385,360.395 256,463.98999 V 263.99"
+     id="path977" />
+  <path
+     d="M448,341.37V170.61A32,32,0,0,0,432.11,143l-152-88.46a47.94,47.94,0,0,0-48.24,0L79.89,143A32,32,0,0,0,64,170.61V341.37A32,32,0,0,0,79.89,369l152,88.46a48,48,0,0,0,48.24,0l152-88.46A32,32,0,0,0,448,341.37Z"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="path136" />
+  <polyline
+     points="69 153.99 256 263.99 443 153.99"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="polyline138" />
+  <line
+     x1="256"
+     y1="463.99"
+     x2="256"
+     y2="263.99"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="line140" />
+  <path
+     style="fill:none;stroke:#000000;stroke-width:32;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+     d="M 256,263.98999 447.98385,360.395"
+     id="path150" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/renderstyle-normal.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,68 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg10"
+   sodipodi:docname="renderstyle-normal.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata16">
+    <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>ionicons-v5-h</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs14" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview12"
+     showgrid="false"
+     inkscape:zoom="0.7734375"
+     inkscape:cx="245.40208"
+     inkscape:cy="277.21206"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg10" />
+  <title
+     id="title2">ionicons-v5-h</title>
+  <path
+     d="M448,341.37V170.61A32,32,0,0,0,432.11,143l-152-88.46a47.94,47.94,0,0,0-48.24,0L79.89,143A32,32,0,0,0,64,170.61V341.37A32,32,0,0,0,79.89,369l152,88.46a48,48,0,0,0,48.24,0l152-88.46A32,32,0,0,0,448,341.37Z"
+     style="fill:#ffffa0;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px;fill-opacity:1"
+     id="path4" />
+  <polyline
+     points="69 153.99 256 263.99 443 153.99"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="polyline6" />
+  <line
+     x1="256"
+     y1="463.99"
+     x2="256"
+     y2="263.99"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="line8" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/renderstyle-randomcolors.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,130 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg22"
+   sodipodi:docname="renderstyle-randomcolors.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata28">
+    <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></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs26" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview24"
+     showgrid="false"
+     inkscape:zoom="0.5469029"
+     inkscape:cx="300.3555"
+     inkscape:cy="72.382402"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg22" />
+  <path
+     style="fill:#80ff80;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="M 256,263.98999 443,153.99 443.48098,354.94764 256,463.98999 V 263.99"
+     id="path857" />
+  <path
+     style="fill:#ffff40;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="m 69,153.99 187,110 V 463.98999 L 75.234572,364.48702 63.051018,324.06147 69,153.99"
+     id="path855" />
+  <path
+     style="fill:#80a0ff;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
+     d="M 69,153.99 247.09884,42.697167 269.2517,47.173927 443,153.99 l -187,110 z"
+     id="path30" />
+  <path
+     fill="none"
+     stroke="#000"
+     stroke-linecap="round"
+     stroke-linejoin="round"
+     stroke-width="32"
+     d="M448,341.37V170.61A32,32,0,0,0,432.11,143l-152-88.46a47.94,47.94,0,0,0-48.24,0L79.89,143A32,32,0,0,0,64,170.61V341.37A32,32,0,0,0,79.89,369l152,88.46a48,48,0,0,0,48.24,0l152-88.46A32,32,0,0,0,448,341.37Z"
+     id="path2" />
+  <polyline
+     fill="none"
+     stroke="#000"
+     stroke-linecap="round"
+     stroke-linejoin="round"
+     stroke-width="32"
+     points="69 153.99 256 263.99 443 153.99"
+     id="polyline4" />
+  <line
+     fill="none"
+     stroke="#000"
+     stroke-linecap="round"
+     stroke-linejoin="round"
+     stroke-width="32"
+     x1="256"
+     y1="463.99"
+     x2="256"
+     y2="263.99"
+     id="line6" />
+  <ellipse
+     cx="256"
+     cy="152"
+     rx="24"
+     ry="16"
+     id="ellipse8" />
+  <ellipse
+     cx="208"
+     cy="296"
+     rx="16"
+     ry="24"
+     id="ellipse10" />
+  <ellipse
+     cx="112"
+     cy="328"
+     rx="16"
+     ry="24"
+     id="ellipse12" />
+  <ellipse
+     cx="304"
+     cy="296"
+     rx="16"
+     ry="24"
+     id="ellipse14" />
+  <ellipse
+     cx="400"
+     cy="240"
+     rx="16"
+     ry="24"
+     id="ellipse16" />
+  <ellipse
+     cx="304"
+     cy="384"
+     rx="16"
+     ry="24"
+     id="ellipse18" />
+  <ellipse
+     cx="400"
+     cy="328"
+     rx="16"
+     ry="24"
+     id="ellipse20" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/renderstyle-wireframe.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,80 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg1829"
+   sodipodi:docname="renderstyle-wireframe.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata1835">
+    <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>ionicons-v5-h</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs1833" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview1831"
+     showgrid="false"
+     inkscape:zoom="0.38671875"
+     inkscape:cx="23.761988"
+     inkscape:cy="169.69677"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg1829" />
+  <title
+     id="title1821">ionicons-v5-h</title>
+  <path
+     d="M448,341.37V170.61A32,32,0,0,0,432.11,143l-152-88.46a47.94,47.94,0,0,0-48.24,0L79.89,143A32,32,0,0,0,64,170.61V341.37A32,32,0,0,0,79.89,369l152,88.46a48,48,0,0,0,48.24,0l152-88.46A32,32,0,0,0,448,341.37Z"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="path1823" />
+  <polyline
+     points="69 153.99 256 263.99 443 153.99"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="polyline1825" />
+  <line
+     x1="256"
+     y1="463.99"
+     x2="256"
+     y2="263.99"
+     style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"
+     id="line1827" />
+  <polyline
+     points="69 153.99 256 263.99 443 153.99"
+     style="fill:none;stroke:#000000;stroke-width:32px;stroke-linecap:round;stroke-linejoin:round"
+     id="polyline1825-3"
+     transform="matrix(1,0,0,-1,0.78343484,513.16109)" />
+  <line
+     x1="256.78345"
+     y1="49.171093"
+     x2="256.78345"
+     y2="249.17108"
+     style="fill:none;stroke:#000000;stroke-width:32px;stroke-linecap:round;stroke-linejoin:round"
+     id="line1827-6" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/save-as-outline.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,57 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg3862"
+   sodipodi:docname="save-as-outline.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata3868">
+    <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>ionicons-v5-p</dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs3866" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview3864"
+     showgrid="false"
+     inkscape:zoom="0.27345145"
+     inkscape:cx="-30.25538"
+     inkscape:cy="-228.93654"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg3862" />
+  <title
+     id="title3858">ionicons-v5-p</title>
+  <path
+     d="M380.93,57.37A32,32,0,0,0,358.3,48H94.22A46.21,46.21,0,0,0,48,94.22V417.78A46.21,46.21,0,0,0,94.22,464H417.78A46.36,46.36,0,0,0,464,417.78V153.7a32,32,0,0,0-9.37-22.63ZM256,416a64,64,0,1,1,64-64A63.92,63.92,0,0,1,256,416Zm48-224H112a16,16,0,0,1-16-16V112a16,16,0,0,1,16-16H304a16,16,0,0,1,16,16v64A16,16,0,0,1,304,192Z"
+     style="fill:#ffa0a0;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px;fill-opacity:1"
+     id="path3860" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/save-outline.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,56 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg3862"
+   sodipodi:docname="save-outline.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata3868">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs3866" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview3864"
+     showgrid="false"
+     inkscape:zoom="0.27345145"
+     inkscape:cx="-30.25538"
+     inkscape:cy="-228.93654"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg3862" />
+  <title
+     id="title3858">ionicons-v5-p</title>
+  <path
+     d="M380.93,57.37A32,32,0,0,0,358.3,48H94.22A46.21,46.21,0,0,0,48,94.22V417.78A46.21,46.21,0,0,0,94.22,464H417.78A46.36,46.36,0,0,0,464,417.78V153.7a32,32,0,0,0-9.37-22.63ZM256,416a64,64,0,1,1,64-64A63.92,63.92,0,0,1,256,416Zm48-224H112a16,16,0,0,1-16-16V112a16,16,0,0,1,16-16H304a16,16,0,0,1,16,16v64A16,16,0,0,1,304,192Z"
+     style="fill:#40a0ff;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px;fill-opacity:1"
+     id="path3860" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/settings-outline.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,56 @@
+<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="512"
+   viewBox="0 0 512 512"
+   version="1.1"
+   id="svg4519"
+   sodipodi:docname="settings-outline.svg"
+   inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
+  <metadata
+     id="metadata4525">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs4523" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="970"
+     id="namedview4521"
+     showgrid="false"
+     inkscape:zoom="0.27345145"
+     inkscape:cx="505.58871"
+     inkscape:cy="152.12648"
+     inkscape:window-x="0"
+     inkscape:window-y="29"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg4519" />
+  <title
+     id="title4515">ionicons-v5-q</title>
+  <path
+     d="M262.29,192.31a64,64,0,1,0,57.4,57.4A64.13,64.13,0,0,0,262.29,192.31ZM416.39,256a154.34,154.34,0,0,1-1.53,20.79l45.21,35.46A10.81,10.81,0,0,1,462.52,326l-42.77,74a10.81,10.81,0,0,1-13.14,4.59l-44.9-18.08a16.11,16.11,0,0,0-15.17,1.75A164.48,164.48,0,0,1,325,400.8a15.94,15.94,0,0,0-8.82,12.14l-6.73,47.89A11.08,11.08,0,0,1,298.77,470H213.23a11.11,11.11,0,0,1-10.69-8.87l-6.72-47.82a16.07,16.07,0,0,0-9-12.22,155.3,155.3,0,0,1-21.46-12.57,16,16,0,0,0-15.11-1.71l-44.89,18.07a10.81,10.81,0,0,1-13.14-4.58l-42.77-74a10.8,10.8,0,0,1,2.45-13.75l38.21-30a16.05,16.05,0,0,0,6-14.08c-.36-4.17-.58-8.33-.58-12.5s.21-8.27.58-12.35a16,16,0,0,0-6.07-13.94l-38.19-30A10.81,10.81,0,0,1,49.48,186l42.77-74a10.81,10.81,0,0,1,13.14-4.59l44.9,18.08a16.11,16.11,0,0,0,15.17-1.75A164.48,164.48,0,0,1,187,111.2a15.94,15.94,0,0,0,8.82-12.14l6.73-47.89A11.08,11.08,0,0,1,213.23,42h85.54a11.11,11.11,0,0,1,10.69,8.87l6.72,47.82a16.07,16.07,0,0,0,9,12.22,155.3,155.3,0,0,1,21.46,12.57,16,16,0,0,0,15.11,1.71l44.89-18.07a10.81,10.81,0,0,1,13.14,4.58l42.77,74a10.8,10.8,0,0,1-2.45,13.75l-38.21,30a16.05,16.05,0,0,0-6.05,14.08C416.17,247.67,416.39,251.83,416.39,256Z"
+     style="fill:#a0a0a0;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px;fill-opacity:1"
+     id="path4517" />
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/stop-outline.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><title>ionicons-v5-c</title><rect x="96" y="96" width="320" height="320" rx="24" ry="24" style="fill:none;stroke:#000;stroke-linejoin:round;stroke-width:32px"/></svg>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/icons_svg/warning-outline.svg	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"><title>ionicons-v5-r</title><path d="M85.57,446.25H426.43a32,32,0,0,0,28.17-47.17L284.18,82.58c-12.09-22.44-44.27-22.44-56.36,0L57.4,399.08A32,32,0,0,0,85.57,446.25Z" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><path d="M250.26,195.39l5.74,122,5.73-121.95a5.74,5.74,0,0,0-5.79-6h0A5.74,5.74,0,0,0,250.26,195.39Z" style="fill:none;stroke:#000;stroke-linecap:round;stroke-linejoin:round;stroke-width:32px"/><path d="M256,397.25a20,20,0,1,1,20-20A20,20,0,0,1,256,397.25Z"/></svg>
\ No newline at end of file
--- a/ldforge.qrc	Sat Mar 05 00:51:23 2022 +0200
+++ b/ldforge.qrc	Sat Mar 05 12:42:14 2022 +0200
@@ -3,5 +3,27 @@
         <file>flags/en.png</file>
         <file>flags/fi.png</file>
         <file>flags/sv.png</file>
+        <file>icons/renderstyle-bfc.png</file>
+        <file>icons/renderstyle-randomcolors.png</file>
+        <file>icons/chatbubble-ellipses-outline.png</file>
+        <file>icons/close.png</file>
+        <file>icons/cube-outline.png</file>
+        <file>icons/document-outline.png</file>
+        <file>icons/folder-open-outline.png</file>
+        <file>icons/linetype-quadrilateral.png</file>
+        <file>icons/linetype-subfile.png</file>
+        <file>icons/linetype-triangle.png</file>
+        <file>icons/save-outline.png</file>
+        <file>icons/settings-outline.png</file>
+        <file>icons/stop-outline.png</file>
+        <file>icons/renderstyle-normal.png</file>
+        <file>icons/renderstyle-wireframe.png</file>
+        <file>icons/save-as-outline.png</file>
+        <file>icons/grid-outline.png</file>
+        <file>icons/linetype-edgeline.png</file>
+        <file>icons/linetype-errorline.png</file>
+        <file>icons/pencil-outline.png</file>
+        <file>icons/warning-outline.png</file>
+        <file>icons/linetype-conditionaledge.png</file>
     </qresource>
 </RCC>
--- a/src/linetypes/conditionaledge.cpp	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/conditionaledge.cpp	Sat Mar 05 12:42:14 2022 +0200
@@ -22,5 +22,10 @@
 		utility::vertexToString(this->points[0]),
 		utility::vertexToString(this->points[1]),
 		utility::vertexToString(this->points[2]),
-		utility::vertexToString(this->points[3]));
+			utility::vertexToString(this->points[3]));
 }
+
+QString ldraw::ConditionalEdge::iconName() const
+{
+	return ":/icons/linetype-conditionaledge.png";
+}
--- a/src/linetypes/conditionaledge.h	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/conditionaledge.h	Sat Mar 05 12:42:14 2022 +0200
@@ -13,4 +13,5 @@
 	QString textRepresentation() const override;
 	Type typeIdentifier() const override;
 	QString toLDrawCode() const override;
+	QString iconName() const override;
 };
--- a/src/linetypes/edge.cpp	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/edge.cpp	Sat Mar 05 12:42:14 2022 +0200
@@ -27,5 +27,10 @@
 		"2 %1 %2 %3",
 		this->colorIndex.index,
 		utility::vertexToString(this->points[0]),
-		utility::vertexToString(this->points[1]));
+			utility::vertexToString(this->points[1]));
 }
+
+QString ldraw::Edge::iconName() const
+{
+	return ":/icons/linetype-edgeline.png";
+}
--- a/src/linetypes/edge.h	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/edge.h	Sat Mar 05 12:42:14 2022 +0200
@@ -14,4 +14,5 @@
 	void getPolygons(std::vector<gl::Polygon>& polygons, GetPolygonsContext* context) const override;
 	Type typeIdentifier() const override;
 	QString toLDrawCode() const override;
+	QString iconName() const override;
 };
--- a/src/linetypes/errorline.cpp	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/errorline.cpp	Sat Mar 05 12:42:14 2022 +0200
@@ -61,3 +61,8 @@
 {
 	return this->text;
 }
+
+QString ldraw::ErrorLine::iconName() const
+{
+	return ":/icons/linetype-errorline.png";
+}
--- a/src/linetypes/errorline.h	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/errorline.h	Sat Mar 05 12:42:14 2022 +0200
@@ -19,6 +19,7 @@
 	QDataStream& serialize(QDataStream& stream) const override;
 	QDataStream& deserialize(QDataStream& stream) override;
 	QString toLDrawCode() const override;
+	QString iconName() const override;
 	QString text;
 	QString message;
 protected:
--- a/src/linetypes/metacommand.cpp	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/metacommand.cpp	Sat Mar 05 12:42:14 2022 +0200
@@ -56,3 +56,8 @@
 	return "0 " + this->storedText;
 }
 
+QString ldraw::MetaCommand::iconName() const
+{
+	return ":/icons/chatbubble-ellipses-outline.png";
+}
+
--- a/src/linetypes/metacommand.h	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/metacommand.h	Sat Mar 05 12:42:14 2022 +0200
@@ -18,6 +18,7 @@
 	QDataStream& serialize(QDataStream& stream) const override;
 	QDataStream& deserialize(QDataStream& stream) override;
 	QString toLDrawCode() const override;
+	QString iconName() const override;
 protected:
 	void setProperty(SetPropertyResult* result, const PropertyKeyValue& pair) override;
 };
--- a/src/linetypes/object.cpp	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/object.cpp	Sat Mar 05 12:42:14 2022 +0200
@@ -95,6 +95,11 @@
 	return stream;
 }
 
+QString ldraw::Object::iconName() const
+{
+	return "";
+}
+
 ldraw::ColoredObject::ColoredObject(const Color color_index) :
 	colorIndex{color_index}
 {
--- a/src/linetypes/object.h	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/object.h	Sat Mar 05 12:42:14 2022 +0200
@@ -79,6 +79,7 @@
 	virtual QDataStream& deserialize(QDataStream& stream);
 	virtual Type typeIdentifier() const = 0;
 	virtual QString toLDrawCode() const = 0;
+	virtual QString iconName() const;
 
 protected:
 	template<Property property, typename Function>
--- a/src/linetypes/quadrilateral.cpp	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/quadrilateral.cpp	Sat Mar 05 12:42:14 2022 +0200
@@ -43,5 +43,10 @@
 		utility::vertexToString(this->points[0]),
 		utility::vertexToString(this->points[1]),
 		utility::vertexToString(this->points[2]),
-		utility::vertexToString(this->points[3]));
+			utility::vertexToString(this->points[3]));
 }
+
+QString ldraw::Quadrilateral::iconName() const
+{
+	return ":/icons/linetype-quadrilateral.png";
+}
--- a/src/linetypes/quadrilateral.h	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/quadrilateral.h	Sat Mar 05 12:42:14 2022 +0200
@@ -15,4 +15,5 @@
 	void invert() override;
 	Type typeIdentifier() const override;
 	QString toLDrawCode() const override;
+	QString iconName() const override;
 };
--- a/src/linetypes/subfilereference.cpp	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/subfilereference.cpp	Sat Mar 05 12:42:14 2022 +0200
@@ -138,3 +138,8 @@
 		this->referenceName);
 	return result;
 }
+
+QString ldraw::SubfileReference::iconName() const
+{
+	return ":/icons/linetype-subfile.png";
+}
--- a/src/linetypes/subfilereference.h	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/subfilereference.h	Sat Mar 05 12:42:14 2022 +0200
@@ -26,6 +26,7 @@
 	QDataStream& serialize(QDataStream& stream) const override;
 	QDataStream& deserialize(QDataStream& stream) override;
 	QString toLDrawCode() const override;
+	QString iconName() const override;
 	glm::mat4 transformation;
 	QString referenceName;
 	bool isInverted = false;
--- a/src/linetypes/triangle.cpp	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/triangle.cpp	Sat Mar 05 12:42:14 2022 +0200
@@ -40,5 +40,10 @@
 		this->colorIndex.index,
 		utility::vertexToString(this->points[0]),
 		utility::vertexToString(this->points[1]),
-		utility::vertexToString(this->points[2]));
+			utility::vertexToString(this->points[2]));
 }
+
+QString ldraw::Triangle::iconName() const
+{
+	return ":/icons/linetype-triangle.png";
+}
--- a/src/linetypes/triangle.h	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/linetypes/triangle.h	Sat Mar 05 12:42:14 2022 +0200
@@ -15,5 +15,6 @@
 	void invert() override;
 	Type typeIdentifier() const override;
 	QString toLDrawCode() const override;
+	QString iconName() const override;
 };
 
--- a/src/main.cpp	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/main.cpp	Sat Mar 05 12:42:14 2022 +0200
@@ -21,6 +21,9 @@
 #include "version.h"
 #include <iostream>
 #include <QMessageBox>
+#include <QLabel>
+#include <QImageReader>
+#include <QPushButton>
 
 int main(int argc, char *argv[])
 {
--- a/src/mainwindow.ui	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/mainwindow.ui	Sat Mar 05 12:42:14 2022 +0200
@@ -26,7 +26,7 @@
      <x>0</x>
      <y>0</y>
      <width>800</width>
-     <height>32</height>
+     <height>35</height>
     </rect>
    </property>
    <widget class="QMenu" name="menuFile">
@@ -63,12 +63,49 @@
    <addaction name="menuView"/>
   </widget>
   <widget class="QStatusBar" name="statusbar"/>
+  <widget class="QToolBar" name="fileToolBar">
+   <property name="windowTitle">
+    <string>toolBar</string>
+   </property>
+   <attribute name="toolBarArea">
+    <enum>TopToolBarArea</enum>
+   </attribute>
+   <attribute name="toolBarBreak">
+    <bool>false</bool>
+   </attribute>
+   <addaction name="actionNew"/>
+   <addaction name="actionOpen"/>
+   <addaction name="actionSave"/>
+   <addaction name="actionSaveAs"/>
+  </widget>
+  <widget class="QToolBar" name="toolBar">
+   <property name="windowTitle">
+    <string>toolBar</string>
+   </property>
+   <attribute name="toolBarArea">
+    <enum>TopToolBarArea</enum>
+   </attribute>
+   <attribute name="toolBarBreak">
+    <bool>false</bool>
+   </attribute>
+   <addaction name="actionRenderStyleNormal"/>
+   <addaction name="actionRenderStyleBfc"/>
+   <addaction name="actionRenderStyleRandom"/>
+  </widget>
   <action name="actionQuit">
+   <property name="icon">
+    <iconset resource="../ldforge.qrc">
+     <normaloff>:/icons/close.png</normaloff>:/icons/close.png</iconset>
+   </property>
    <property name="text">
     <string>Quit</string>
    </property>
   </action>
   <action name="actionOpen">
+   <property name="icon">
+    <iconset resource="../ldforge.qrc">
+     <normaloff>:/icons/folder-open-outline.png</normaloff>:/icons/folder-open-outline.png</iconset>
+   </property>
    <property name="text">
     <string>Open…</string>
    </property>
@@ -77,6 +114,10 @@
    </property>
   </action>
   <action name="actionNew">
+   <property name="icon">
+    <iconset resource="../ldforge.qrc">
+     <normaloff>:/icons/document-outline.png</normaloff>:/icons/document-outline.png</iconset>
+   </property>
    <property name="text">
     <string>New</string>
    </property>
@@ -85,6 +126,10 @@
    </property>
   </action>
   <action name="actionSettingsEditor">
+   <property name="icon">
+    <iconset resource="../ldforge.qrc">
+     <normaloff>:/icons/settings-outline.png</normaloff>:/icons/settings-outline.png</iconset>
+   </property>
    <property name="text">
     <string>Preferences…</string>
    </property>
@@ -93,6 +138,10 @@
    <property name="checkable">
     <bool>true</bool>
    </property>
+   <property name="icon">
+    <iconset resource="../ldforge.qrc">
+     <normaloff>:/icons/renderstyle-normal.png</normaloff>:/icons/renderstyle-normal.png</iconset>
+   </property>
    <property name="text">
     <string>Normal colours</string>
    </property>
@@ -101,6 +150,10 @@
    <property name="checkable">
     <bool>true</bool>
    </property>
+   <property name="icon">
+    <iconset resource="../ldforge.qrc">
+     <normaloff>:/icons/renderstyle-bfc.png</normaloff>:/icons/renderstyle-bfc.png</iconset>
+   </property>
    <property name="text">
     <string>BFC color coding</string>
    </property>
@@ -109,6 +162,10 @@
    <property name="checkable">
     <bool>true</bool>
    </property>
+   <property name="icon">
+    <iconset resource="../ldforge.qrc">
+     <normaloff>:/icons/renderstyle-randomcolors.png</normaloff>:/icons/renderstyle-randomcolors.png</iconset>
+   </property>
    <property name="text">
     <string>Random colours</string>
    </property>
@@ -130,6 +187,10 @@
    </property>
   </action>
   <action name="actionSave">
+   <property name="icon">
+    <iconset resource="../ldforge.qrc">
+     <normaloff>:/icons/save-outline.png</normaloff>:/icons/save-outline.png</iconset>
+   </property>
    <property name="text">
     <string>Save</string>
    </property>
@@ -138,6 +199,10 @@
    </property>
   </action>
   <action name="actionSaveAs">
+   <property name="icon">
+    <iconset resource="../ldforge.qrc">
+     <normaloff>:/icons/save-as-outline.png</normaloff>:/icons/save-as-outline.png</iconset>
+   </property>
    <property name="text">
     <string>Save as…</string>
    </property>
@@ -146,6 +211,8 @@
    </property>
   </action>
  </widget>
- <resources/>
+ <resources>
+  <include location="../ldforge.qrc"/>
+ </resources>
  <connections/>
 </ui>
--- a/src/model.cpp	Sat Mar 05 00:51:23 2022 +0200
+++ b/src/model.cpp	Sat Mar 05 12:42:14 2022 +0200
@@ -79,6 +79,8 @@
 	const ldraw::Object* object = (*this)[index.row()];
 	switch(role)
 	{
+	case Qt::DecorationRole:
+		return QPixmap{object->iconName()}.scaledToHeight(24);
 	case Qt::DisplayRole:
 		return object->textRepresentation();
 	case Qt::ForegroundRole:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/svg-to-png.sh	Sat Mar 05 12:42:14 2022 +0200
@@ -0,0 +1,8 @@
+#!/bin/bash
+mkdir --parents icons
+for svgfile in $(find icons_svg -name '*.svg')
+do
+	pngfile="icons/$(basename ${svgfile%.svg}.png)"
+	echo "$svgfile => $pngfile"
+	convert -background none "${svgfile}" "${pngfile}"
+done

mercurial