kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #18817
[PATCH] Allow HTML files in KiCad project manager to be opened in browser
For your consideration a patch that extends the KiCad project manager to
recognise HTML files in the project browser and open them in the default
browser when clicked on.
I use this feature quite a bit as I generate my various BOM and other
reports through python scripts and in both HTML and CSV formats.
I find the HTML versions quicker to open and browse than the CSV
equivalents (and easier on the eye) and it is also very easy to include
click-able links. For example one of my reports shows all URL references
to supplier website links that I then can easily click on to get to the
supplier website for that part.
For the HTML icon I used an existing lightbulb icon as I have not been
able to find an otherwise suitable HTML icon. I copied it into its own
html icon files, so it can be updated easily if need be.
Regards,
Marco
fafeecd0941c211e402580c376fe2164d437f68f
bitmaps_png/CMakeLists.txt | 1 +
bitmaps_png/cpp_26/html.cpp | 79 ++++
bitmaps_png/sources/html.svg | 859 +++++++++++++++++++++++++++++++++++++
common/wildcards_and_files_ext.cpp | 2 +
include/bitmaps.h | 1 +
include/wildcards_and_files_ext.h | 2 +
kicad/class_treeproject_item.cpp | 5 +-
kicad/class_treeprojectfiles.cpp | 1 +
kicad/kicad.h | 1 +
kicad/tree_project_frame.cpp | 8 +
10 files changed, 958 insertions(+), 1 deletion(-)
diff --git a/bitmaps_png/CMakeLists.txt b/bitmaps_png/CMakeLists.txt
index 8cc642a..7067585 100644
--- a/bitmaps_png/CMakeLists.txt
+++ b/bitmaps_png/CMakeLists.txt
@@ -286,6 +286,7 @@ set( BMAPS_MID
hierarchy_cursor
hierarchy_nav
hotkeys
+ html
icon_cvpcb_small
icon_gerbview_small
icon_txt
diff --git a/bitmaps_png/cpp_26/html.cpp b/bitmaps_png/cpp_26/html.cpp
new file mode 100644
index 0000000..18eb432
--- /dev/null
+++ b/bitmaps_png/cpp_26/html.cpp
@@ -0,0 +1,79 @@
+
+/* Do not modify this file, it was automatically generated by the
+ * PNG2cpp CMake script, using a *.png file as input.
+ */
+
+#include <bitmaps.h>
+
+static const unsigned char png[] = {
+0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
+ 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
+ 0xce, 0x00, 0x00, 0x03, 0xe3, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x96, 0x4d, 0x6c, 0x54,
+ 0x55, 0x14, 0xc7, 0x7f, 0x77, 0x66, 0xde, 0xcc, 0xf4, 0x23, 0x43, 0x5b, 0x3a, 0x2d, 0x05, 0xda,
+ 0x18, 0x6a, 0x95, 0x94, 0x50, 0xa2, 0xd4, 0x18, 0x17, 0x26, 0x9a, 0xa8, 0x41, 0x05, 0x45, 0x16,
+ 0xdd, 0x10, 0xa3, 0x1b, 0x24, 0x02, 0xd1, 0x04, 0x23, 0x36, 0xba, 0x68, 0xaa, 0x89, 0x92, 0x90,
+ 0x00, 0x2b, 0x95, 0xc4, 0x40, 0xdc, 0x18, 0x0d, 0xb8, 0x90, 0x8d, 0x81, 0xc4, 0x8f, 0x85, 0x68,
+ 0xc4, 0x08, 0x9a, 0xd4, 0xb6, 0xf6, 0x51, 0x8a, 0x65, 0x6c, 0x4b, 0x67, 0xa6, 0x9d, 0xe9, 0xbc,
+ 0x99, 0x79, 0x5f, 0xf7, 0x1d, 0x17, 0x1d, 0x8c, 0x9a, 0x60, 0x3b, 0x40, 0xb8, 0xc9, 0x59, 0xdc,
+ 0xdc, 0x73, 0xee, 0xef, 0xfe, 0x4f, 0xce, 0xb9, 0xf7, 0x2a, 0x11, 0xe1, 0x4e, 0x8c, 0x48, 0x35,
+ 0xce, 0x2f, 0xbc, 0xbc, 0x7f, 0x4d, 0x32, 0x51, 0x78, 0xa8, 0x58, 0x8a, 0x4f, 0x07, 0xae, 0x7b,
+ 0xf1, 0xd8, 0xb1, 0x63, 0xa5, 0xe5, 0xc6, 0xaa, 0xa5, 0x14, 0xf5, 0xf5, 0xf5, 0x85, 0xbb, 0x37,
+ 0xd4, 0x1c, 0xec, 0xd9, 0xb8, 0x72, 0xc7, 0xda, 0xb5, 0xd2, 0xb4, 0xaa, 0xb5, 0xd0, 0x50, 0x2a,
+ 0xd7, 0xfa, 0xb3, 0xe9, 0x96, 0x9c, 0x69, 0xe6, 0xa7, 0x46, 0x4d, 0xeb, 0xd5, 0x43, 0xef, 0x7d,
+ 0xf0, 0xed, 0x2d, 0x81, 0xf6, 0xec, 0xdf, 0xb3, 0xae, 0x67, 0xbd, 0x3e, 0xb9, 0xed, 0xa9, 0xc2,
+ 0xa6, 0xa6, 0x86, 0x4c, 0x58, 0xa9, 0x0e, 0x94, 0x6a, 0x43, 0x28, 0x11, 0xe8, 0x49, 0x74, 0x90,
+ 0x60, 0x7c, 0xa2, 0xbb, 0x70, 0xe6, 0xac, 0xf9, 0xe9, 0x1b, 0x07, 0x3e, 0x7c, 0xe9, 0xa6, 0x40,
+ 0x83, 0x83, 0x83, 0xa1, 0xe6, 0xe4, 0xd4, 0xf7, 0x2f, 0x3e, 0x3f, 0xfe, 0xa0, 0x11, 0xd9, 0x8c,
+ 0x0a, 0x6d, 0x04, 0x34, 0x82, 0x06, 0xd1, 0x08, 0x3e, 0x12, 0x64, 0xf0, 0x9c, 0x53, 0xcc, 0x2d,
+ 0xec, 0x72, 0x3f, 0x3a, 0x7e, 0xa1, 0xff, 0x9d, 0xc1, 0xe3, 0x47, 0x6e, 0x04, 0x0a, 0xdd, 0xf0,
+ 0x04, 0xe1, 0x2b, 0x07, 0x9f, 0xd9, 0x96, 0xee, 0x35, 0x8c, 0xfb, 0x21, 0xb4, 0x1e, 0xc1, 0x41,
+ 0xc4, 0x45, 0xc4, 0x43, 0x70, 0x01, 0x0f, 0x15, 0xaa, 0x45, 0x85, 0x57, 0xd1, 0xb8, 0xe2, 0x64,
+ 0xf4, 0x89, 0xc7, 0x7b, 0xdf, 0xdc, 0xbb, 0x77, 0x6f, 0x7b, 0xd5, 0xa0, 0xce, 0xce, 0xda, 0x2d,
+ 0xcd, 0x4d, 0xb3, 0x61, 0xe8, 0x02, 0xf1, 0x2a, 0x80, 0xeb, 0xe6, 0x2f, 0xce, 0xc5, 0x07, 0x55,
+ 0x0f, 0x32, 0x45, 0xf7, 0x7a, 0xa7, 0x39, 0x99, 0x74, 0xf6, 0x55, 0x05, 0xda, 0xbd, 0xbb, 0x7f,
+ 0x45, 0xf3, 0x4a, 0x9d, 0x44, 0x1a, 0x17, 0x95, 0xe0, 0x20, 0x2c, 0xaa, 0xf9, 0x17, 0x54, 0x3c,
+ 0x82, 0x60, 0x1e, 0x51, 0x06, 0x86, 0x71, 0x89, 0xf6, 0x8e, 0x96, 0x07, 0xaa, 0x02, 0xb9, 0x62,
+ 0xdf, 0xd3, 0xda, 0x92, 0x6b, 0x0c, 0x82, 0x3c, 0xc8, 0x3f, 0x00, 0x7f, 0xab, 0xd1, 0x88, 0x68,
+ 0x74, 0x70, 0x8d, 0x40, 0x0a, 0x80, 0x81, 0x70, 0x89, 0x55, 0xab, 0xdb, 0xda, 0xaa, 0x4b, 0x9d,
+ 0xa7, 0xcc, 0xd9, 0x74, 0x73, 0x5e, 0xeb, 0x14, 0x81, 0xcc, 0x2e, 0xaa, 0x61, 0x31, 0x55, 0x01,
+ 0x3e, 0x82, 0x8f, 0x96, 0x0c, 0x9e, 0x1e, 0xae, 0x40, 0x0c, 0x60, 0x0d, 0xf9, 0xf9, 0x85, 0x4c,
+ 0x55, 0xa0, 0x13, 0x27, 0x8e, 0xe4, 0xb2, 0xd9, 0xda, 0x39, 0xa8, 0xc7, 0xf3, 0xbe, 0x46, 0xeb,
+ 0x09, 0x22, 0x91, 0x27, 0x11, 0x9a, 0xf0, 0xdc, 0x59, 0x1c, 0x77, 0x04, 0xdb, 0x4e, 0x62, 0x97,
+ 0xf6, 0x23, 0x2a, 0x02, 0x44, 0xd0, 0xc1, 0x06, 0x26, 0xae, 0x4c, 0x9b, 0x55, 0x17, 0xc3, 0xe8,
+ 0x58, 0xee, 0xfd, 0xa9, 0x99, 0x47, 0x6c, 0x91, 0x12, 0xbe, 0xff, 0x33, 0x5a, 0xff, 0x84, 0xd6,
+ 0x93, 0x84, 0xc3, 0x9b, 0x51, 0x6c, 0x47, 0x29, 0x83, 0x44, 0xc3, 0xef, 0x80, 0x01, 0xac, 0xe4,
+ 0xd2, 0xe5, 0x8e, 0xf9, 0xd4, 0xa4, 0xf1, 0xf6, 0x4d, 0x35, 0xec, 0xe1, 0xa3, 0xaf, 0x7d, 0xb1,
+ 0x63, 0xbb, 0xb7, 0xb5, 0xa1, 0xe1, 0xc7, 0x50, 0xc4, 0x78, 0x14, 0x5f, 0x0f, 0x13, 0x08, 0x08,
+ 0x06, 0x46, 0xa4, 0x1b, 0xad, 0xc7, 0x41, 0x2c, 0xb2, 0xd9, 0x5d, 0xe5, 0x53, 0x9f, 0x7f, 0xf3,
+ 0x56, 0xff, 0xeb, 0x87, 0xab, 0xef, 0x23, 0x80, 0x42, 0x3e, 0xf1, 0xdc, 0x77, 0x3f, 0xb4, 0x0e,
+ 0x43, 0x0b, 0xae, 0x37, 0x4c, 0xb1, 0xd8, 0x80, 0x10, 0x01, 0x65, 0x90, 0xcb, 0xbb, 0x88, 0x94,
+ 0xf1, 0xfc, 0xc7, 0x38, 0x7d, 0xfa, 0xfc, 0xe9, 0xff, 0x83, 0x2c, 0x09, 0x1a, 0x18, 0x18, 0x08,
+ 0xc6, 0xc6, 0xae, 0x7d, 0x66, 0x95, 0xba, 0x51, 0xca, 0x62, 0x66, 0xc6, 0x06, 0x14, 0x05, 0x2b,
+ 0x82, 0x65, 0xa5, 0x11, 0x14, 0x73, 0xd9, 0x36, 0xe7, 0xd7, 0xdf, 0x0a, 0xef, 0x2e, 0x75, 0xd7,
+ 0x85, 0x96, 0x72, 0xf8, 0x73, 0xb2, 0xe6, 0xf8, 0xd0, 0x50, 0x73, 0x1a, 0x5a, 0xb0, 0xac, 0x2c,
+ 0xb6, 0xed, 0x33, 0x3e, 0x36, 0x47, 0x22, 0x61, 0xa1, 0x54, 0x27, 0x57, 0xfe, 0x70, 0xb3, 0xf1,
+ 0x50, 0x79, 0xe4, 0x96, 0x6f, 0x6f, 0x80, 0x7d, 0xaf, 0x3c, 0xfb, 0xe5, 0xd6, 0xa7, 0x1f, 0xde,
+ 0xb2, 0xe9, 0x3e, 0x45, 0x3c, 0xae, 0x11, 0x89, 0xe2, 0x38, 0x8d, 0x5c, 0xbc, 0xe0, 0x70, 0xf6,
+ 0xab, 0x73, 0x3b, 0x8f, 0x1e, 0xfa, 0xf8, 0x93, 0xdb, 0xf2, 0x1e, 0x95, 0x8b, 0xd3, 0xe5, 0x68,
+ 0xb4, 0x14, 0x9c, 0x3f, 0x5f, 0x1f, 0x72, 0x9d, 0x00, 0xdb, 0x59, 0xc0, 0x2e, 0xcf, 0x32, 0x6e,
+ 0x8e, 0xc8, 0xc4, 0xd8, 0xc8, 0xd0, 0x6d, 0x7b, 0xf8, 0x62, 0xf1, 0xe8, 0xea, 0x75, 0x9d, 0x3d,
+ 0xa1, 0xd6, 0xd6, 0xbb, 0xf1, 0xfd, 0x1c, 0xa9, 0x54, 0x8a, 0x91, 0xa1, 0x21, 0x86, 0xca, 0xa5,
+ 0x20, 0x08, 0x24, 0xbb, 0x9c, 0x3d, 0x42, 0xcb, 0x71, 0x9a, 0xcb, 0x5a, 0xbf, 0x14, 0xad, 0x9c,
+ 0x04, 0xe2, 0xe0, 0x6b, 0x4d, 0x24, 0xa2, 0xa8, 0xab, 0xaf, 0xa1, 0xbe, 0xae, 0x8e, 0x20, 0x50,
+ 0x6d, 0xb7, 0x0c, 0x52, 0x8b, 0xc3, 0x48, 0x24, 0xe2, 0x77, 0x39, 0xce, 0x02, 0x81, 0x76, 0x00,
+ 0xc1, 0xb6, 0x3d, 0xec, 0xb2, 0x87, 0xe3, 0x3a, 0x14, 0x8b, 0x6e, 0x8d, 0x52, 0x2a, 0xa6, 0x94,
+ 0x0a, 0x57, 0x5d, 0x0c, 0x4a, 0x29, 0x05, 0xc4, 0x81, 0x18, 0x10, 0x8b, 0xc5, 0xa8, 0xef, 0xed,
+ 0xed, 0xd8, 0xd9, 0xd9, 0xd9, 0x7d, 0xa0, 0xbd, 0x3d, 0x59, 0x97, 0x4e, 0xe7, 0x49, 0xa5, 0x66,
+ 0x4c, 0xd3, 0xbc, 0x3c, 0x60, 0x9a, 0x99, 0x8b, 0x80, 0x05, 0x38, 0x15, 0x2b, 0x8b, 0x88, 0xb7,
+ 0x5c, 0x45, 0xaa, 0xb2, 0x16, 0x06, 0xc2, 0x8e, 0x83, 0x71, 0xee, 0xdc, 0xe4, 0x99, 0x7c, 0x3e,
+ 0x76, 0xb6, 0xa6, 0xe6, 0xde, 0x39, 0xad, 0x93, 0xd3, 0xa3, 0xa3, 0x99, 0xa3, 0xa6, 0x99, 0x99,
+ 0x01, 0x6a, 0x81, 0x68, 0xc5, 0xf7, 0x7a, 0xcc, 0xf2, 0xcb, 0xbb, 0xa2, 0x2a, 0x5a, 0x51, 0x65,
+ 0x54, 0x2c, 0xdc, 0xd5, 0xd5, 0x95, 0xbc, 0x7a, 0xf5, 0xea, 0x82, 0x6d, 0xdb, 0x1e, 0xa0, 0x01,
+ 0x1f, 0xf0, 0x00, 0x17, 0x70, 0x44, 0xc4, 0xbf, 0xe9, 0x3e, 0xfa, 0x0f, 0x5c, 0x55, 0xa6, 0x22,
+ 0x55, 0x04, 0xab, 0x3b, 0xf5, 0x81, 0xfc, 0x0b, 0x80, 0xf8, 0x1d, 0x65, 0x6b, 0xc6, 0x6e, 0x3d,
+ 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
+};
+
+const BITMAP_OPAQUE html_xpm[1] = {{ png, sizeof( png ), "html_xpm" }};
+
+//EOF
diff --git a/bitmaps_png/sources/html.svg b/bitmaps_png/sources/html.svg
new file mode 100644
index 0000000..4d9d959
--- /dev/null
+++ b/bitmaps_png/sources/html.svg
@@ -0,0 +1,859 @@
+<?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"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ height="48"
+ width="48"
+ version="1.0"
+ id="svg2"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="info.svg">
+ <metadata
+ id="metadata318">
+ <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>
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="879"
+ inkscape:window-height="699"
+ id="namedview316"
+ showgrid="false"
+ inkscape:zoom="6.1283168"
+ inkscape:cx="24.556468"
+ inkscape:cy="23.762921"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg2" />
+ <defs
+ id="defs4">
+ <linearGradient
+ id="ai"
+ y2="37.227"
+ gradientUnits="userSpaceOnUse"
+ x2="30.17"
+ y1="37.227"
+ x1="18.995">
+ <stop
+ stop-color="#a3a349"
+ offset=".005618"
+ id="stop7" />
+ <stop
+ stop-color="#acac54"
+ offset=".020787"
+ id="stop9" />
+ <stop
+ stop-color="#c1c172"
+ offset=".066001"
+ id="stop11" />
+ <stop
+ stop-color="#d4d68e"
+ offset=".1148"
+ id="stop13" />
+ <stop
+ stop-color="#e2e4a6"
+ offset=".16770"
+ id="stop15" />
+ <stop
+ stop-color="#edf0b8"
+ offset=".2265"
+ id="stop17" />
+ <stop
+ stop-color="#f3f6c3"
+ offset=".29630"
+ id="stop19" />
+ <stop
+ stop-color="#f5f8c7"
+ offset=".40450"
+ id="stop21" />
+ <stop
+ stop-color="#eef0be"
+ offset=".52390"
+ id="stop23" />
+ <stop
+ stop-color="#dbdda9"
+ offset=".66660"
+ id="stop25" />
+ <stop
+ stop-color="#bebd88"
+ offset=".8211"
+ id="stop27" />
+ <stop
+ stop-color="#989564"
+ offset=".98320"
+ id="stop29" />
+ <stop
+ stop-color="#949160"
+ offset="1"
+ id="stop31" />
+ </linearGradient>
+ <linearGradient
+ id="aj">
+ <stop
+ stop-color="#929470"
+ offset="0"
+ id="stop34" />
+ <stop
+ stop-color="#fcffc1"
+ offset=".26471"
+ id="stop36" />
+ <stop
+ stop-color="#f3f5ba"
+ offset=".63235"
+ id="stop38" />
+ <stop
+ stop-color="#929470"
+ offset="1"
+ id="stop40" />
+ </linearGradient>
+ <linearGradient
+ id="ak">
+ <stop
+ stop-color="#fff"
+ offset="0"
+ id="stop43" />
+ <stop
+ stop-color="#fff"
+ stop-opacity=".44118"
+ offset=".41176"
+ id="stop45" />
+ <stop
+ stop-opacity=".48039"
+ offset="1"
+ id="stop47" />
+ </linearGradient>
+ <radialGradient
+ id="an"
+ gradientUnits="userSpaceOnUse"
+ cy="74.21"
+ cx="14.772"
+ gradientTransform="scale(1.7643 .5668)"
+ r="7.829">
+ <stop
+ stop-opacity=".51546"
+ offset="0"
+ id="stop50" />
+ <stop
+ stop-opacity=".14433"
+ offset=".55172"
+ id="stop52" />
+ <stop
+ stop-opacity="0"
+ offset="1"
+ id="stop54" />
+ </radialGradient>
+ <linearGradient
+ id="ba"
+ y2="43.165"
+ gradientUnits="userSpaceOnUse"
+ x2="26.478"
+ gradientTransform="matrix(1.6391,0,0,1.6391,-15.97,-29.794)"
+ y1="43.165"
+ x1="23.124">
+ <stop
+ stop-color="#686868"
+ offset=".005618"
+ id="stop57" />
+ <stop
+ stop-color="#777"
+ offset=".030121"
+ id="stop59" />
+ <stop
+ stop-color="#929292"
+ offset=".083666"
+ id="stop61" />
+ <stop
+ stop-color="#a7a7a7"
+ offset=".14220"
+ id="stop63" />
+ <stop
+ stop-color="#b6b6b6"
+ offset=".20740"
+ id="stop65" />
+ <stop
+ stop-color="#bebebe"
+ offset=".28460"
+ id="stop67" />
+ <stop
+ stop-color="#c1c1c1"
+ offset=".40450"
+ id="stop69" />
+ <stop
+ stop-color="#bcbcbc"
+ offset=".4962"
+ id="stop71" />
+ <stop
+ stop-color="#adadad"
+ offset=".60570"
+ id="stop73" />
+ <stop
+ stop-color="#959595"
+ offset=".7245"
+ id="stop75" />
+ <stop
+ stop-color="#747474"
+ offset=".84970"
+ id="stop77" />
+ <stop
+ stop-color="#494949"
+ offset=".97890"
+ id="stop79" />
+ <stop
+ stop-color="#414141"
+ offset="1"
+ id="stop81" />
+ </linearGradient>
+ <linearGradient
+ id="bb"
+ y2="26.74"
+ gradientUnits="userSpaceOnUse"
+ x2="24.613"
+ gradientTransform="scale(1.0027 .99735)"
+ y1="31.146"
+ x1="24.613">
+ <stop
+ stop-color="#4c4c28"
+ offset="0"
+ id="stop84" />
+ <stop
+ stop-color="#4c4c28"
+ stop-opacity="0"
+ offset="1"
+ id="stop86" />
+ </linearGradient>
+ <linearGradient
+ id="bc"
+ y2="38.676"
+ xlink:href="#ai"
+ gradientUnits="userSpaceOnUse"
+ x2="-4.3908"
+ gradientTransform="matrix(.56662 .02989 -.11856 .65654 36.185 20.083)"
+ y1="38.676"
+ x1="-22.874" />
+ <linearGradient
+ id="bd"
+ y2="39.143"
+ xlink:href="#aj"
+ gradientUnits="userSpaceOnUse"
+ x2="-23.851"
+ gradientTransform="matrix(.56662 .02989 -.11856 .65654 36.185 20.083)"
+ y1="39.034"
+ x1="-10.481" />
+ <linearGradient
+ id="al"
+ y2="38.676"
+ xlink:href="#ai"
+ gradientUnits="userSpaceOnUse"
+ x2="-4.3908"
+ gradientTransform="scale(1.0264 .97423)"
+ y1="38.676"
+ x1="-22.874" />
+ <linearGradient
+ id="am"
+ y2="39.143"
+ xlink:href="#aj"
+ gradientUnits="userSpaceOnUse"
+ x2="-23.851"
+ gradientTransform="scale(1.0264 .97423)"
+ y1="39.034"
+ x1="-10.481" />
+ <linearGradient
+ id="be"
+ y2="38.676"
+ xlink:href="#ai"
+ gradientUnits="userSpaceOnUse"
+ x2="-4.3908"
+ gradientTransform="matrix(.61868 -.13203 .062627 .74118 31.12 8.3004)"
+ y1="38.676"
+ x1="-22.874" />
+ <linearGradient
+ id="bf"
+ y2="39.143"
+ xlink:href="#aj"
+ gradientUnits="userSpaceOnUse"
+ x2="-23.851"
+ gradientTransform="matrix(.61868 -.13203 .062627 .74118 31.12 8.3004)"
+ y1="39.034"
+ x1="-10.481" />
+ <linearGradient
+ id="bg"
+ y2="54.863"
+ gradientUnits="userSpaceOnUse"
+ x2="11.906"
+ gradientTransform="matrix(1.6034 0 0 .5494 .61417 .024498)"
+ y1="55.363"
+ x1="17.88">
+ <stop
+ stop-color="#d6d7a5"
+ offset="0"
+ id="stop95" />
+ <stop
+ stop-color="#8e8f6d"
+ offset="1"
+ id="stop97" />
+ </linearGradient>
+ <linearGradient
+ id="bh"
+ y2="-29.598"
+ gradientUnits="userSpaceOnUse"
+ x2="-37.641"
+ gradientTransform="matrix(-.90573 -.043862 .18951 -.96344 .61417 .024498)"
+ y1="-29.799"
+ x1="-29.007">
+ <stop
+ stop-color="#929470"
+ offset="0"
+ id="stop100" />
+ <stop
+ stop-color="#60614a"
+ offset=".26471"
+ id="stop102" />
+ <stop
+ stop-color="#f3f5ba"
+ offset=".63235"
+ id="stop104" />
+ <stop
+ stop-color="#929470"
+ offset="1"
+ id="stop106" />
+ </linearGradient>
+ <radialGradient
+ id="ay"
+ gradientUnits="userSpaceOnUse"
+ cy="29.869"
+ cx="68.138"
+ gradientTransform="matrix(.55129 0 0 .76603 -10.487 3.5143)"
+ r="33.934">
+ <stop
+ stop-color="#fff"
+ stop-opacity=".17526"
+ offset="0"
+ id="stop109" />
+ <stop
+ stop-color="#709ac8"
+ offset="0.882"
+ id="stop111" />
+ <stop
+ stop-color="#6f96dd"
+ offset="1"
+ id="stop113" />
+ </radialGradient>
+ <linearGradient
+ id="bi"
+ y2="3.8557"
+ gradientUnits="userSpaceOnUse"
+ x2="-5.2517"
+ gradientTransform="matrix(.89413 0 0 .98523 1.516 .024498)"
+ y1="16.652"
+ x1="37.94">
+ <stop
+ stop-color="#f1f3ff"
+ offset="0"
+ id="stop116" />
+ <stop
+ stop-color="#f1f3ff"
+ stop-opacity="0"
+ offset="1"
+ id="stop118" />
+ </linearGradient>
+ <linearGradient
+ id="bj"
+ y2="18.163"
+ xlink:href="#ak"
+ gradientUnits="userSpaceOnUse"
+ x2="32.166"
+ gradientTransform="matrix(-.6293 0 0 1.5891 50.688 3.8044)"
+ y1="10.314"
+ x1="30.62" />
+ <linearGradient
+ id="bk"
+ y2="18.163"
+ xlink:href="#ak"
+ gradientUnits="userSpaceOnUse"
+ x2="32.166"
+ gradientTransform="matrix(.6293 0 0 1.5891 1.4116 3.9294)"
+ y1="10.314"
+ x1="30.62" />
+ <linearGradient
+ id="bl"
+ y2="32.251"
+ gradientUnits="userSpaceOnUse"
+ x2="9.3648"
+ gradientTransform="matrix(1.9851 0 0 .50376 1.7866 4.5544)"
+ y1="31.504"
+ x1="14.637">
+ <stop
+ stop-color="#a3a3a3"
+ offset="0"
+ id="stop123" />
+ <stop
+ stop-color="#b5b5b5"
+ stop-opacity="0"
+ offset="1"
+ id="stop125" />
+ </linearGradient>
+ <linearGradient
+ id="bm"
+ y2="36.726"
+ gradientUnits="userSpaceOnUse"
+ x2="32.097"
+ gradientTransform="matrix(1.1405 0 0 .926 .27233 -3.2472)"
+ y1="10.061"
+ x1="16.999">
+ <stop
+ stop-color="#fff"
+ offset="0"
+ id="stop128" />
+ <stop
+ stop-color="#fff"
+ stop-opacity="0"
+ offset="1"
+ id="stop130" />
+ </linearGradient>
+ <linearGradient
+ id="bn"
+ y2="43.165"
+ gradientUnits="userSpaceOnUse"
+ x2="26.478"
+ gradientTransform="matrix(1.5715,0,0,1.3608,-102.46,-17.647)"
+ y1="43.165"
+ x1="23.124">
+ <stop
+ stop-color="#686868"
+ offset=".005618"
+ id="stop133" />
+ <stop
+ stop-color="#777"
+ offset=".030121"
+ id="stop135" />
+ <stop
+ stop-color="#929292"
+ offset=".083666"
+ id="stop137" />
+ <stop
+ stop-color="#a7a7a7"
+ offset=".14220"
+ id="stop139" />
+ <stop
+ stop-color="#b6b6b6"
+ offset=".20740"
+ id="stop141" />
+ <stop
+ stop-color="#bebebe"
+ offset=".28460"
+ id="stop143" />
+ <stop
+ stop-color="#c1c1c1"
+ offset=".40450"
+ id="stop145" />
+ <stop
+ stop-color="#bcbcbc"
+ offset=".4962"
+ id="stop147" />
+ <stop
+ stop-color="#adadad"
+ offset=".60570"
+ id="stop149" />
+ <stop
+ stop-color="#959595"
+ offset=".7245"
+ id="stop151" />
+ <stop
+ stop-color="#747474"
+ offset=".84970"
+ id="stop153" />
+ <stop
+ stop-color="#494949"
+ offset=".97890"
+ id="stop155" />
+ <stop
+ stop-color="#414141"
+ offset="1"
+ id="stop157" />
+ </linearGradient>
+ <linearGradient
+ id="bo"
+ y2="26.74"
+ gradientUnits="userSpaceOnUse"
+ x2="24.613"
+ gradientTransform="matrix(.88375 0 0 .87752 -85.239 4.3964)"
+ y1="31.146"
+ x1="24.613">
+ <stop
+ stop-color="#4c4c28"
+ offset="0"
+ id="stop160" />
+ <stop
+ stop-color="#4c4c28"
+ stop-opacity="0"
+ offset="1"
+ id="stop162" />
+ </linearGradient>
+ <linearGradient
+ id="bp"
+ y2="38.676"
+ xlink:href="#ai"
+ gradientUnits="userSpaceOnUse"
+ x2="-4.3908"
+ gradientTransform="matrix(.49943 .026299 -.1045 .57766 -53.345 22.067)"
+ y1="38.676"
+ x1="-22.874" />
+ <linearGradient
+ id="ao"
+ y2="39.143"
+ xlink:href="#aj"
+ gradientUnits="userSpaceOnUse"
+ x2="-23.851"
+ gradientTransform="matrix(.49943 .026299 -.1045 .57766 -53.345 22.067)"
+ y1="39.034"
+ x1="-10.481" />
+ <linearGradient
+ id="ap"
+ y2="38.676"
+ xlink:href="#ai"
+ gradientUnits="userSpaceOnUse"
+ x2="-4.3908"
+ gradientTransform="matrix(.54531 -.11616 .0552 .65213 -57.809 11.7)"
+ y1="38.676"
+ x1="-22.874" />
+ <linearGradient
+ id="aq"
+ y2="39.143"
+ xlink:href="#aj"
+ gradientUnits="userSpaceOnUse"
+ x2="-23.851"
+ gradientTransform="matrix(.54531 -.11616 .0552 .65213 -57.809 11.7)"
+ y1="39.034"
+ x1="-10.481" />
+ <linearGradient
+ id="ar"
+ y2="54.863"
+ gradientUnits="userSpaceOnUse"
+ x2="11.906"
+ gradientTransform="matrix(1.3638 0 0 .48159 -83.956 4.9775)"
+ y1="55.363"
+ x1="17.88">
+ <stop
+ stop-color="#d6d7a5"
+ offset="0"
+ id="stop169" />
+ <stop
+ stop-color="#8e8f6d"
+ offset="1"
+ id="stop171" />
+ </linearGradient>
+ <linearGradient
+ id="as"
+ y2="37.227"
+ gradientUnits="userSpaceOnUse"
+ x2="30.17"
+ gradientTransform="matrix(.85055 0 0 .87659 -84.479 4.956)"
+ y1="37.227"
+ x1="18.995">
+ <stop
+ stop-color="#a3a349"
+ offset=".005618"
+ id="stop174" />
+ <stop
+ stop-color="#acac54"
+ offset=".020787"
+ id="stop176" />
+ <stop
+ stop-color="#c1c172"
+ offset=".066001"
+ id="stop178" />
+ <stop
+ stop-color="#d4d68e"
+ offset=".1148"
+ id="stop180" />
+ <stop
+ stop-color="#e2e4a6"
+ offset=".16770"
+ id="stop182" />
+ <stop
+ stop-color="#edf0b8"
+ offset=".2265"
+ id="stop184" />
+ <stop
+ stop-color="#f3f6c3"
+ offset=".29630"
+ id="stop186" />
+ <stop
+ stop-color="#f5f8c7"
+ offset=".40450"
+ id="stop188" />
+ <stop
+ stop-color="#eef0be"
+ offset=".52390"
+ id="stop190" />
+ <stop
+ stop-color="#dbdda9"
+ offset=".66660"
+ id="stop192" />
+ <stop
+ stop-color="#bebd88"
+ offset=".8211"
+ id="stop194" />
+ <stop
+ stop-color="#989564"
+ offset=".98320"
+ id="stop196" />
+ <stop
+ stop-color="#949160"
+ offset="1"
+ id="stop198" />
+ </linearGradient>
+ <radialGradient
+ id="az"
+ gradientUnits="userSpaceOnUse"
+ cy="29.869"
+ cx="68.138"
+ gradientTransform="matrix(.4689 0 0 .6715 -93.398 8.0366)"
+ r="33.934">
+ <stop
+ stop-color="#ebf15f"
+ offset="0"
+ id="stop201" />
+ <stop
+ stop-color="#f2ee19"
+ offset="0.882"
+ id="stop203" />
+ <stop
+ stop-color="#f7f50d"
+ offset="1"
+ id="stop205" />
+ </radialGradient>
+ <linearGradient
+ id="at"
+ y2="3.8557"
+ gradientUnits="userSpaceOnUse"
+ x2="-5.2517"
+ gradientTransform="matrix(.7605 0 0 .86364 -83.189 4.9775)"
+ y1="16.652"
+ x1="37.94">
+ <stop
+ stop-color="#f1f3ff"
+ offset="0"
+ id="stop208" />
+ <stop
+ stop-color="#f1f3ff"
+ stop-opacity="0"
+ offset="1"
+ id="stop210" />
+ </linearGradient>
+ <linearGradient
+ id="au"
+ y2="18.163"
+ xlink:href="#ak"
+ gradientUnits="userSpaceOnUse"
+ x2="32.166"
+ gradientTransform="matrix(-.52575 0 0 1.3044 -42.901 7.7352)"
+ y1="10.314"
+ x1="30.62" />
+ <linearGradient
+ id="av"
+ y2="18.163"
+ xlink:href="#ak"
+ gradientUnits="userSpaceOnUse"
+ x2="32.166"
+ gradientTransform="matrix(.52575 0 0 1.3044 -84.069 7.8378)"
+ y1="10.314"
+ x1="30.62" />
+ <linearGradient
+ id="aw"
+ y2="32.251"
+ gradientUnits="userSpaceOnUse"
+ x2="9.3648"
+ gradientTransform="matrix(1.6584 0 0 .41351 -83.756 8.3508)"
+ y1="31.504"
+ x1="14.637">
+ <stop
+ stop-color="#a3a3a3"
+ offset="0"
+ id="stop215" />
+ <stop
+ stop-color="#b5b5b5"
+ stop-opacity="0"
+ offset="1"
+ id="stop217" />
+ </linearGradient>
+ <linearGradient
+ id="ax"
+ y2="36.726"
+ gradientUnits="userSpaceOnUse"
+ x2="32.097"
+ gradientTransform="matrix(.97004 0 0 .81172 -84.247 2.1096)"
+ y1="10.061"
+ x1="16.999">
+ <stop
+ stop-color="#fff"
+ offset="0"
+ id="stop220" />
+ <stop
+ stop-color="#fff"
+ stop-opacity="0"
+ offset="1"
+ id="stop222" />
+ </linearGradient>
+ </defs>
+ <g
+ transform="matrix(1.0407,0,0,1.0443,89.699,-2.4836)"
+ id="g276">
+ <path
+ opacity=".8"
+ style="color:#000000"
+ d="m39.875 42.062a13.812 4.4381 0 1 1 -27.625 0 13.812 4.4381 0 1 1 27.625 0z"
+ transform="matrix(1.0669 0 0 .97287 -90.401 .66159)"
+ fill="url(#an)"
+ id="path278" />
+ <path
+ d="m-66.159 39.371v1.2247c0 1.2247 1.2572 2.3134 2.6715 2.3134s2.6715-1.0887 2.6715-2.3134v-1.225h-5.343z"
+ stroke="#565656"
+ stroke-width=".89215"
+ fill="url(#bn)"
+ id="path280" />
+ <path
+ stroke-linejoin="round"
+ style="color:#000000"
+ d="m-63.634 28.741c-2.9112-0.007-6.2126 0.84746-4.4236 2.4628-0.44355 0.17861-1.0776 0.57752-1.0028 1.511 0.04127 0.48749 0.55888 0.78674 1.2668 1.0065-0.80248 0.56188-1.3131 1.1556-1.2668 1.7032 0.04078 0.48181 0.5475 0.81176 1.2409 1.0323-0.78226 0.55542-1.2866 1.1631-1.2409 1.7032 0.06987 0.82542 1.8532 1.75 5.7148 1.6435 2.7803-0.07566 5.2338-0.57312 5.4274-1.6435 0.07603-0.42031-0.26856-0.81247-0.80142-1.1613 0.3989-0.40136 0.67836-0.80844 0.6463-1.1871-0.04098-0.48408-0.54173-0.81206-1.2409-1.0323 0.78226-0.55542 1.2866-1.1631 1.2409-1.7032-0.04098-0.48408-0.54173-0.78626-1.2409-1.0065 0.79159-0.55842 1.2869-1.1597 1.2409-1.7032-0.05114-0.6042-2.8246-1.6187-5.5607-1.6253z"
+ stroke="url(#bo)"
+ stroke-linecap="round"
+ stroke-width="1.7767"
+ fill="#aeae57"
+ id="path282" />
+ <path
+ stroke-linejoin="round"
+ style="color:#000000"
+ d="m-57.986 38.121c-0.19363 1.0704-2.934 1.6744-7.3202 1.4552-2.7779-0.13886-2.9368-0.91471-2.7432-1.9851 0.19363-1.0704 2.605-1.8204 5.3825-1.6742 2.7775 0.14626 4.8745 1.1337 4.6809 2.2041z"
+ stroke="url(#ao)"
+ stroke-linecap="round"
+ stroke-width=".078431"
+ fill="url(#bp)"
+ id="path284" />
+ <path
+ stroke-linejoin="round"
+ style="color:#000000"
+ d="m-3.5355 27.229a10.342 3.2706 0 1 1 -20.683 0 10.342 3.2706 0 1 1 20.683 0z"
+ transform="matrix(.53126 -.11317 .05666 .66938 -57.809 17.147)"
+ stroke="url(#am)"
+ stroke-linecap="round"
+ stroke-width=".13035"
+ fill="url(#al)"
+ id="path286" />
+ <path
+ stroke-linejoin="round"
+ style="color:#000000"
+ d="m-3.5355 27.229a10.342 3.2706 0 1 1 -20.683 0 10.342 3.2706 0 1 1 20.683 0z"
+ transform="matrix(.53126 -.11317 .05666 .66938 -57.809 14.423)"
+ stroke="url(#am)"
+ stroke-linecap="round"
+ stroke-width=".13035"
+ fill="url(#al)"
+ id="path288" />
+ <path
+ stroke-linejoin="round"
+ style="color:#000000"
+ d="m-58.181 30.472c0 1.2127-2.2395 2.5675-5.2721 3.2135-3.0327 0.64603-5.577 0.18962-5.6793-1.0188-0.10228-1.2084 1.9713-2.6179 5.0057-2.7821 3.0585-0.16551 5.9457-0.03865 5.9457 0.58735z"
+ stroke="url(#aq)"
+ stroke-linecap="round"
+ stroke-width=".078432"
+ fill="url(#ap)"
+ id="path290" />
+ <path
+ style="color:#000000"
+ fill="#fff"
+ d="m31 22.375a3.25 3.25 0 1 1 -6.5 0 3.25 3.25 0 1 1 6.5 0z"
+ transform="matrix(.29568 0 0 .29516 -74.885 28.351)"
+ id="path292" />
+ <path
+ fill-opacity=".23392"
+ fill-rule="evenodd"
+ d="m-68.191 33.765c2.9919 0.44403 6.1512-0.02875 8.7014-1.6788 0.71506-0.46267 0.82261-0.99147 1.1517-1.4051-1.2552 0.99147-4.4299 3.6618-9.853 3.0839z"
+ id="path294" />
+ <path
+ style="color:#000000"
+ fill="#fff"
+ d="m31 22.375a3.25 3.25 0 1 1 -6.5 0 3.25 3.25 0 1 1 6.5 0z"
+ transform="matrix(.29568 0 0 .29516 -74.885 30.998)"
+ id="path296" />
+ <path
+ fill-opacity=".23392"
+ fill-rule="evenodd"
+ d="m-68.081 39.166c2.9919 0.44403 6.1512-0.02875 8.7014-1.6788 0.71506-0.46267 0.82261-0.99147 1.1517-1.4051-1.2552 0.99147-4.4299 3.6618-9.853 3.0839z"
+ id="path298" />
+ <path
+ fill-opacity=".23392"
+ fill-rule="evenodd"
+ d="m-68.063 36.429c2.9919 0.44403 6.1512-0.02875 8.7014-1.6788 0.71506-0.46267 0.82261-0.99147 1.1517-1.4051-1.2552 0.99147-4.4299 3.6618-9.853 3.0839z"
+ id="path300" />
+ <path
+ stroke-linejoin="round"
+ style="color:#000000"
+ d="m-68.428 30.928c0-0.69376 1.3388-1.5236 4.719-1.4772 3.1316 0.04303 5.1946 0.78515 5.1946 1.8956 0 1.0869-2.7382 1.8137-5.6578 1.668-2.9196-0.14571-4.2558-0.99947-4.2558-2.0863z"
+ stroke="url(#as)"
+ stroke-linecap="round"
+ stroke-width=".078431"
+ fill="url(#ar)"
+ id="path302" />
+ <path
+ stroke-linejoin="round"
+ style="color:#000000"
+ d="m-63.487 5.7119c-6.653 0-12.055 5.2376-12.055 11.688 0 6.6117 4.8835 7.344 4.8835 9.7807 0 2.863 2.8632 6.1095 7.5711 5.9924 5.0062-0.12462 7.0722-2.9483 7.0722-5.9924 0-2.6025 4.5841-2.6719 4.5841-9.7807 0-6.45-5.4024-11.688-12.055-11.688z"
+ stroke="#616471"
+ stroke-linecap="round"
+ stroke-width=".87724"
+ fill="url(#az)"
+ id="path304" />
+ <path
+ stroke-linejoin="round"
+ style="color:#000000"
+ d="m-63.487 6.6458c-6.2005 0-11.236 4.8814-11.236 10.893 0 6.162 4.5513 6.8445 4.5513 9.1155 0 2.6683 2.6684 5.694 7.0562 5.5848 4.6657-0.11614 6.5912-2.7477 6.5912-5.5848 0-2.4255 4.2723-2.4902 4.2723-9.1155 0-6.0113-5.035-10.893-11.236-10.893z"
+ stroke="url(#at)"
+ stroke-linecap="round"
+ stroke-width=".81758"
+ fill="none"
+ id="path306" />
+ <path
+ fill="url(#au)"
+ d="m-58.558 20.391c0.26128 0.08557 0.43547 0.34229 0.34837 0.59901l-3.2225 9.4985c-0.08709 0.25672-0.34837 0.42786-0.60965 0.34229s-0.43547-0.34229-0.34837-0.59901l3.2225-9.4985c0.08709-0.25672 0.34837-0.42786 0.60965-0.34229z"
+ id="path308" />
+ <path
+ fill="url(#av)"
+ d="m-68.412 20.494c-0.26128 0.08557-0.43547 0.34229-0.34837 0.59901l3.2225 9.4985c0.08709 0.25672 0.34837 0.42786 0.60965 0.34229s0.43547-0.34229 0.34837-0.599l-3.2225-9.4985c-0.08709-0.25672-0.34837-0.42786-0.60965-0.34229z"
+ id="path310" />
+ <path
+ stroke-linejoin="round"
+ d="m-68.326 20.433c-0.20545 0.03453-0.36639 0.19261-0.40161 0.39445-0.03521 0.20184 0.06295 0.40357 0.24496 0.50336 0 0 1.5391 0.88724 3.5507 1.3339s4.5857 0.47563 6.527-1.3852c0.14641-0.11413 0.21429-0.29995 0.17515-0.47951-0.03914-0.17955-0.17852-0.32177-0.35966-0.36697s-0.3727 0.01443-0.49429 0.15388c-1.6296 1.5621-3.797 1.5634-5.6393 1.1543-1.8423-0.40907-3.2635-1.2313-3.2635-1.2313-0.09978-0.0655-0.2205-0.09287-0.3394-0.07696z"
+ stroke="url(#aw)"
+ stroke-linecap="round"
+ stroke-width=".17767"
+ fill="#fff"
+ id="path312" />
+ <path
+ opacity=".59777"
+ style="color:#000000"
+ fill="url(#ax)"
+ d="m-63.214 8.0805c-5.3274 0-9.6501 3.5288-9.6501 7.8747 0 1.7357 0.83146 3.2556 1.9993 4.5575 1.3206 0.55388 2.759 0.95189 4.3452 0.95189 5.3274 0 9.6501-3.5288 9.6501-7.8747 0-1.7462-0.84528-3.2802-2.026-4.5864-1.3145-0.54732-2.7424-0.92305-4.3186-0.92305z"
+ id="path314" />
+ </g>
+</svg>
diff --git a/common/wildcards_and_files_ext.cpp b/common/wildcards_and_files_ext.cpp
index de343ec..80326d3 100644
--- a/common/wildcards_and_files_ext.cpp
+++ b/common/wildcards_and_files_ext.cpp
@@ -43,6 +43,7 @@ const wxString SchematicFileExtension( wxT( "sch" ) );
const wxString NetlistFileExtension( wxT( "net" ) );
const wxString ComponentFileExtension( wxT( "cmp" ) );
const wxString GerberFileExtension( wxT( ".((gbr|(gb|gt)[alops])|pho)" ) );
+const wxString HtmlFileExtension( wxT( "html" ) );
const wxString LegacyPcbFileExtension( wxT( "brd" ) );
const wxString KiCadPcbFileExtension( wxT( "kicad_pcb" ) );
@@ -93,6 +94,7 @@ const wxString ComponentFileWildcard( _( "KiCad cmp/footprint link files (*.cmp)
// Wildcard for reports and fabrication documents
const wxString DrillFileWildcard( _( "Drill files (*.drl)|*.drl;*.DRL" ) );
const wxString SVGFileWildcard( _( "SVG files (*.svg)|*.svg;*.SVG" ) );
+const wxString HtmlFileWildcard( _( "HTML files (*.html)|*.htm;*.html" ) );
const wxString PdfFileWildcard( _( "Portable document format files (*.pdf)|*.pdf" ) );
const wxString PSFileWildcard( _( "PostScript files (.ps)|*.ps" ) );
const wxString ReportFileWildcard = _( "Report files (*.rpt)|*.rpt" );
diff --git a/include/bitmaps.h b/include/bitmaps.h
index 25b3751..c0711c8 100644
--- a/include/bitmaps.h
+++ b/include/bitmaps.h
@@ -243,6 +243,7 @@ EXTERN_BITMAP( hidden_pin_xpm )
EXTERN_BITMAP( hierarchy_cursor_xpm )
EXTERN_BITMAP( hierarchy_nav_xpm )
EXTERN_BITMAP( hotkeys_xpm )
+EXTERN_BITMAP( html_xpm )
EXTERN_BITMAP( icon_cvpcb_small_xpm )
EXTERN_BITMAP( icon_cvpcb_xpm )
EXTERN_BITMAP( icon_eeschema_xpm )
diff --git a/include/wildcards_and_files_ext.h b/include/wildcards_and_files_ext.h
index 94ad151..63b43fc 100644
--- a/include/wildcards_and_files_ext.h
+++ b/include/wildcards_and_files_ext.h
@@ -51,6 +51,7 @@ extern const wxString ProjectFileExtension;
extern const wxString SchematicFileExtension;
extern const wxString NetlistFileExtension;
extern const wxString GerberFileExtension;
+extern const wxString HtmlFileExtension;
extern const wxString LegacyPcbFileExtension;
extern const wxString KiCadPcbFileExtension;
@@ -81,6 +82,7 @@ extern const wxString SchematicFileWildcard;
extern const wxString BoardFileWildcard;
extern const wxString NetlistFileWildcard;
extern const wxString GerberFileWildcard;
+extern const wxString HtmlFileWildcard;
extern const wxString LegacyPcbFileWildcard;
extern const wxString PcbFileWildcard;
extern const wxString EaglePcbFileWildcard;
diff --git a/kicad/class_treeproject_item.cpp b/kicad/class_treeproject_item.cpp
index 24a7aa1..2ea7784 100644
--- a/kicad/class_treeproject_item.cpp
+++ b/kicad/class_treeproject_item.cpp
@@ -49,7 +49,6 @@ TREEPROJECT_ITEM::TREEPROJECT_ITEM( enum TreeFileType type, const wxString& data
wxTreeItemData()
{
m_parent = parent;
-
SetType( type );
SetFileName( data );
SetRootFile( false ); // true only for the root item of the tree (the project name)
@@ -218,6 +217,10 @@ void TREEPROJECT_ITEM::Activate( TREE_PROJECT_FRAME* prjframe )
frame->Execute( m_parent, GERBVIEW_EXE, fullFileName );
break;
+ case TREE_HTML:
+ wxLaunchDefaultBrowser( fullFileName );
+ break;
+
case TREE_PDF:
OpenPDF( fullFileName );
break;
diff --git a/kicad/class_treeprojectfiles.cpp b/kicad/class_treeprojectfiles.cpp
index b67db30..1d2b317 100644
--- a/kicad/class_treeprojectfiles.cpp
+++ b/kicad/class_treeprojectfiles.cpp
@@ -65,6 +65,7 @@ TREEPROJECTFILES::TREEPROJECTFILES( TREE_PROJECT_FRAME* parent ) :
m_ImageList->Add( KiBitmap( pcbnew_xpm ) ); // TREE_LEGACY_PCB
m_ImageList->Add( KiBitmap( pcbnew_xpm ) ); // TREE_SFMT_PCB
m_ImageList->Add( KiBitmap( icon_gerbview_small_xpm ) ); // TREE_GERBER
+ m_ImageList->Add( KiBitmap( html_xpm ) ); // TREE_HTML
m_ImageList->Add( KiBitmap( datasheet_xpm ) ); // TREE_PDF
m_ImageList->Add( KiBitmap( icon_txt_xpm ) ); // TREE_TXT
m_ImageList->Add( KiBitmap( netlist_xpm ) ); // TREE_NET
diff --git a/kicad/kicad.h b/kicad/kicad.h
index a9018a4..abdbcf6 100644
--- a/kicad/kicad.h
+++ b/kicad/kicad.h
@@ -64,6 +64,7 @@ enum TreeFileType {
TREE_LEGACY_PCB, // board file (.brd) legacy format
TREE_SEXP_PCB, // board file (.kicad_brd) new s expression format
TREE_GERBER, // Gerber file (.pho, .g*)
+ TREE_HTML, // HTML file (.htm, *.html)
TREE_PDF, // PDF file (.pdf)
TREE_TXT, // ascii text file (.txt)
TREE_NET, // netlist file (.net)
diff --git a/kicad/tree_project_frame.cpp b/kicad/tree_project_frame.cpp
index c02d681..0486b3c 100644
--- a/kicad/tree_project_frame.cpp
+++ b/kicad/tree_project_frame.cpp
@@ -258,6 +258,10 @@ wxString TREE_PROJECT_FRAME::GetFileExt( TreeFileType type )
ext = GerberFileExtension;
break;
+ case TREE_HTML:
+ ext = HtmlFileExtension;
+ break;
+
case TREE_PDF:
ext = PdfFileExtension;
break;
@@ -336,6 +340,10 @@ wxString TREE_PROJECT_FRAME::GetFileWildcard( TreeFileType type )
ext = GerberFileWildcard;
break;
+ case TREE_HTML:
+ ext = HtmlFileWildcard;
+ break;
+
case TREE_PDF:
ext = PdfFileWildcard;
break;
Follow ups