aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2022-08-24 13:27:57 +0200
committerThomas White <taw@physics.org>2022-08-24 13:56:06 +0200
commit606d42de1570307bf39e8955cc56d074c5f855d3 (patch)
tree6b962b91653172d50fdf78e2660f9b9d1791a076 /data
parent4464b2fc8d2840d489a839e4973fab1e71144efc (diff)
GUI: Add custom task icons
Previously, the task buttons used stock icons chosen to approximately fit the task when displayed with the icon theme on my computers. But they don't fit so well in other themes, and sometimes no icon is shown at all. So, now they have their own icons, specifically designed for CrystFEL. Fixes: https://gitlab.desy.de/thomas.white/crystfel/-/issues/9
Diffstat (limited to 'data')
-rw-r--r--data/crystfel-ambiguity.svg113
-rw-r--r--data/crystfel-export.svg86
-rw-r--r--data/crystfel-fom.svg91
-rw-r--r--data/crystfel-index-all.svg245
-rw-r--r--data/crystfel-index-frame.svg220
-rw-r--r--data/crystfel-load-data.svg131
-rw-r--r--data/crystfel-merge.svg276
-rw-r--r--data/crystfel-peak-detection.svg83
-rw-r--r--data/crystfel-unitcell.svg100
9 files changed, 1345 insertions, 0 deletions
diff --git a/data/crystfel-ambiguity.svg b/data/crystfel-ambiguity.svg
new file mode 100644
index 00000000..c0841de5
--- /dev/null
+++ b/data/crystfel-ambiguity.svg
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="48"
+ height="48"
+ viewBox="0 0 48 48"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="crystfel-ambiguity.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:document-units="px"
+ showgrid="false"
+ inkscape:zoom="12.480932"
+ inkscape:cx="25.438805"
+ inkscape:cy="29.92565"
+ inkscape:window-width="1604"
+ inkscape:window-height="1132"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="layer1" />
+ <defs
+ id="defs2">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="9.0721649 : 28.728522 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective852" />
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <ellipse
+ style="fill:#29a25c;fill-opacity:1;stroke:#000000;stroke-width:1.02255;stroke-linejoin:bevel"
+ id="path6007"
+ cx="27.735241"
+ cy="37.770245"
+ rx="16.501385"
+ ry="7.5619636" />
+ <ellipse
+ style="fill:#29a25c;fill-opacity:1;stroke:#000000;stroke-width:0.818041;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path6009"
+ cx="37.097046"
+ cy="26.381664"
+ rx="4.2449737"
+ ry="4.5457988" />
+ <path
+ style="fill:#29a25c;fill-opacity:1;stroke:#000000;stroke-width:0.715786;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 41.508601,25.564028 4.044728,1.604755 -4.213396,0.531711"
+ id="path6044"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:#29a25c;fill-opacity:1;stroke:#000000;stroke-width:0.7;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 29.393814,34.762328 c -1.01201,0.281114 -11.075888,-1.293124 -8.714531,2.305133 2.361356,3.598258 8.883199,3.82315 8.883199,3.82315"
+ id="path6197" />
+ <ellipse
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.94796;stroke-linejoin:bevel"
+ id="path6683"
+ cx="38.77174"
+ cy="25.413023"
+ rx="0.82460076"
+ ry="0.76464552" />
+ <ellipse
+ style="fill:#d7d360;fill-opacity:1;stroke:#000000;stroke-width:1.02255;stroke-linejoin:bevel"
+ id="path6007-0"
+ cx="-23.057211"
+ cy="-10.152688"
+ rx="16.501385"
+ ry="7.5619636"
+ transform="scale(-1)" />
+ <ellipse
+ style="fill:#d7d360;fill-opacity:1;stroke:#000000;stroke-width:0.818041;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path6009-9"
+ cx="-13.695406"
+ cy="-21.541271"
+ rx="4.2449737"
+ ry="4.5457988"
+ transform="scale(-1)" />
+ <path
+ style="fill:#d7d360;fill-opacity:1;stroke:#000000;stroke-width:0.715786;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 9.2838536,22.358906 5.2391253,20.754152 9.4525215,20.222441"
+ id="path6044-1"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:#d7d360;fill-opacity:1;stroke:#000000;stroke-width:0.7;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+ d="m 21.39864,13.160608 c 1.012011,-0.281114 11.075889,1.293124 8.714531,-2.305134 C 27.751814,7.2572167 21.229973,7.0323247 21.229973,7.0323247"
+ id="path6197-7" />
+ <ellipse
+ style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2.94795;stroke-linejoin:bevel"
+ id="path6683-7"
+ cx="-12.020714"
+ cy="-22.509914"
+ rx="0.82460076"
+ ry="0.76464546"
+ transform="scale(-1)" />
+ </g>
+</svg>
diff --git a/data/crystfel-export.svg b/data/crystfel-export.svg
new file mode 100644
index 00000000..3f744640
--- /dev/null
+++ b/data/crystfel-export.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="48"
+ height="48"
+ viewBox="0 0 48 48"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="crystfel-export.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:document-units="px"
+ showgrid="false"
+ inkscape:zoom="18.1875"
+ inkscape:cx="28.701031"
+ inkscape:cy="23.61512"
+ inkscape:window-width="1765"
+ inkscape:window-height="1270"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="layer1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3425" />
+ </sodipodi:namedview>
+ <defs
+ id="defs2">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="9.0721649 : 28.728522 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective852" />
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g5080"
+ transform="translate(0.10051489,-0.16494846)">
+ <circle
+ style="fill:none;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3449"
+ cx="10.685567"
+ cy="24.164948"
+ r="3.7600229" />
+ <circle
+ style="fill:none;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3449-2"
+ cx="37.113403"
+ cy="13.140894"
+ r="3.7600229" />
+ <circle
+ style="fill:none;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="path3449-7"
+ cx="37.113403"
+ cy="35.189003"
+ r="3.7600229" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 14.138971,22.616805 33.604507,14.431608"
+ id="path3933"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 14.093323,25.603028 19.534532,8.091434"
+ id="path3935"
+ sodipodi:nodetypes="cc" />
+ </g>
+ </g>
+</svg>
diff --git a/data/crystfel-fom.svg b/data/crystfel-fom.svg
new file mode 100644
index 00000000..8865d399
--- /dev/null
+++ b/data/crystfel-fom.svg
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="48"
+ height="48"
+ viewBox="0 0 48 48"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="crystfel-fom.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:document-units="px"
+ showgrid="true"
+ inkscape:zoom="18.1875"
+ inkscape:cx="24.329897"
+ inkscape:cy="24"
+ inkscape:window-width="1816"
+ inkscape:window-height="1172"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="layer1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid14142" />
+ </sodipodi:namedview>
+ <defs
+ id="defs2">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="9.0721649 : 28.728522 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective852" />
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#b3ff87;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect17136"
+ width="13"
+ height="13"
+ x="8"
+ y="32" />
+ <rect
+ style="fill:#b3ff87;fill-opacity:1;stroke:none;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect17136-4"
+ width="13"
+ height="27"
+ x="26"
+ y="18" />
+ <path
+ style="fill:none;stroke:#bf0000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 3,30 13,20 23,36 33,31 43,38"
+ id="path15310"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:none;stroke:#0f3ba5;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 3,30 13,10 23,20 33,39 43,42"
+ id="path15312"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 3,5 V 45 H 47"
+ id="path14985"
+ sodipodi:nodetypes="ccc" />
+ <path
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="M 1,10 3,5 5,10 Z"
+ id="path14987" />
+ <path
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="m 42,43 5,2 -5,2 z"
+ id="path15024" />
+ </g>
+</svg>
diff --git a/data/crystfel-index-all.svg b/data/crystfel-index-all.svg
new file mode 100644
index 00000000..2c14d53a
--- /dev/null
+++ b/data/crystfel-index-all.svg
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="48"
+ height="48"
+ viewBox="0 0 48 48"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="crystfel-index-all.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:document-units="px"
+ showgrid="false"
+ inkscape:zoom="9.09375"
+ inkscape:cx="29.415808"
+ inkscape:cy="33.704467"
+ inkscape:window-width="1938"
+ inkscape:window-height="1196"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="layer1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid992" />
+ </sodipodi:namedview>
+ <defs
+ id="defs2">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="9.0721649 : 28.728522 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective852" />
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g5935"
+ transform="matrix(0.72725579,0,0,0.72725579,7.5152127,6.7967117)">
+ <rect
+ style="fill:#0a0cff;fill-opacity:1;stroke:#ffffff;stroke-width:1.09303;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3350-4"
+ width="44.902851"
+ height="44.90284"
+ x="-8.1858225"
+ y="-7.1915221" />
+ <rect
+ style="fill:#0a0cff;fill-opacity:1;stroke:#ffffff;stroke-width:1.09303;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3350-4-6"
+ width="44.902851"
+ height="44.90284"
+ x="-3.7590928"
+ y="-2.8800569" />
+ <rect
+ style="fill:#0a0cff;fill-opacity:1;stroke:#ffffff;stroke-width:1.09303;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3350-4-0"
+ width="44.902851"
+ height="44.90284"
+ x="0.66763961"
+ y="1.4314115" />
+ <rect
+ style="fill:#0a0cff;fill-opacity:1;stroke:#ffffff;stroke-width:1.09303;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3350-4-62"
+ width="44.902851"
+ height="44.90284"
+ x="5.0943689"
+ y="5.742878" />
+ <g
+ id="g5551"
+ transform="translate(-41.814415,28.766934)">
+ <rect
+ style="fill:#0a0cff;fill-opacity:1;stroke:#ffffff;stroke-width:0.8;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect3350"
+ width="45.195877"
+ height="45.195877"
+ x="51.189003"
+ y="-18.859108" />
+ <g
+ id="g5178"
+ transform="rotate(31.773777,74.066587,6.5564342)">
+ <path
+ style="font-variation-settings:normal;vector-effect:none;fill:#feff82;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ d="m 63.015464,3.2163221 11.743986,2.55 V 20.216323 L 63.015464,3.2163231"
+ id="path3950" />
+ <path
+ style="font-variation-settings:normal;vector-effect:none;fill:#e5e600;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ d="M 74.75945,5.7663221 86.558419,3.0513741 74.75945,20.216323 Z"
+ id="path3952" />
+ <path
+ style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ d="M 74.75945,6.6163221 V 20.216323"
+ id="path1324" />
+ <path
+ style="font-variation-settings:normal;vector-effect:none;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ d="M 74.75945,-13.233677 86.558419,3.0513741 74.75945,5.7663221 Z"
+ id="path3709" />
+ <path
+ style="fill:#feffbc;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 74.75945,-13.783677 -11.743986,16.9999991 11.743986,2.55 V -13.233677"
+ id="path3402"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 74.75945,-13.783677 86.558419,3.0513741 74.75945,20.216323 63.015464,3.2163221 Z"
+ id="path1034"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:none;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 74.75945,-12.933677 V 6.6163221"
+ id="path1038"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="font-variation-settings:normal;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ d="m 63.015464,3.2163221 11.743986,2.55 11.798969,-2.714948"
+ id="path1036"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205"
+ cx="56.467354"
+ cy="-14.185568"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5"
+ cx="60.615501"
+ cy="-10.458955"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6"
+ cx="64.763649"
+ cy="-6.7323413"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-0"
+ cx="68.068726"
+ cy="-12.975945"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-9-1-2-7-0-3"
+ cx="89.652542"
+ cy="15.627337"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-9-1-2-7-0-9-5"
+ cx="93.80069"
+ cy="19.353951"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-6"
+ cx="55.505154"
+ cy="-5.5170965"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-0"
+ cx="59.653301"
+ cy="-1.7904836"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-9-1-2-8-6"
+ cx="61.576744"
+ cy="18.864273"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-9-1-2-7-7-291"
+ cx="84.542191"
+ cy="20.569195"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-9-1-2-7-0-92-2"
+ cx="88.690338"
+ cy="24.295807"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-6-3"
+ cx="55.670105"
+ cy="3.6650324"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-0-7"
+ cx="59.818253"
+ cy="7.3916464"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-2-9"
+ cx="56.606445"
+ cy="21.376495"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-0-7-2"
+ cx="89.508972"
+ cy="-9.7629919"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-6-5-9"
+ cx="93.65712"
+ cy="-6.036377"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-0-7-2-0"
+ cx="89.927498"
+ cy="-16.775286"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-6-5-9-3"
+ cx="94.075645"
+ cy="-13.048673"
+ r="0.60481101" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/data/crystfel-index-frame.svg b/data/crystfel-index-frame.svg
new file mode 100644
index 00000000..be3ae7cc
--- /dev/null
+++ b/data/crystfel-index-frame.svg
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="48"
+ height="48"
+ viewBox="0 0 48 48"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="crystfel-index-frame.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:document-units="px"
+ showgrid="false"
+ inkscape:zoom="12.860505"
+ inkscape:cx="29.353436"
+ inkscape:cy="28.809134"
+ inkscape:window-width="1938"
+ inkscape:window-height="1196"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="layer1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid992" />
+ </sodipodi:namedview>
+ <defs
+ id="defs2">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="9.0721649 : 28.728522 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective852" />
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#0a0cff;stroke-linejoin:bevel;fill-opacity:1"
+ id="rect3350"
+ width="45.195877"
+ height="45.195877"
+ x="1.4295533"
+ y="1.3745705" />
+ <g
+ id="g6111">
+ <path
+ style="fill:#feff82;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;font-variation-settings:normal;opacity:1;vector-effect:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 13.256014,23.45 25,26 v 14.45 l -11.743986,-17"
+ id="path3950" />
+ <path
+ style="fill:#e5e600;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;font-variation-settings:normal;opacity:1;vector-effect:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 25,26 36.798969,23.285052 25,40.45 Z"
+ id="path3952" />
+ <path
+ style="fill:none;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;font-variation-settings:normal;opacity:1;vector-effect:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="m 25,26.85 v 13.6"
+ id="path1324" />
+ <path
+ style="fill:#feff00;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;font-variation-settings:normal;opacity:1;vector-effect:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 25,7 36.798969,23.285052 25,26 Z"
+ id="path3709" />
+ <path
+ style="fill:#feffbc;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25,6.45 13.256014,23.45 25,26 V 7"
+ id="path3402"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25,6.45 36.798969,23.285052 25,40.45 13.256014,23.45 Z"
+ id="path1034"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:none;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25,7.3 V 26.85"
+ id="path1038"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;font-variation-settings:normal;opacity:1;vector-effect:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 13.256014,23.45 25,26 36.798969,23.285052"
+ id="path1036"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ <circle
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ id="path6205"
+ cx="6.7079039"
+ cy="6.04811"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5"
+ cx="10.856052"
+ cy="9.7747231"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6"
+ cx="15.0042"
+ cy="13.501336"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-9-1-2-7"
+ cx="35.744942"
+ cy="32.134403"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-9-1-2-7-0"
+ cx="39.893089"
+ cy="35.861015"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-9-1-2-7-0-9"
+ cx="44.041237"
+ cy="39.587627"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-6"
+ cx="5.7457047"
+ cy="14.71658"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-0"
+ cx="9.8938532"
+ cy="18.443193"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-9-1-2-8"
+ cx="11.817293"
+ cy="39.09795"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-9-1-2-7-7"
+ cx="34.782742"
+ cy="40.802872"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-9-1-2-7-0-92"
+ cx="38.930889"
+ cy="44.529484"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-6-3"
+ cx="5.9106536"
+ cy="23.89871"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-0-7"
+ cx="10.058803"
+ cy="27.625324"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-2-9"
+ cx="6.8469968"
+ cy="41.610172"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-2-9-1-1-2"
+ cx="11.333177"
+ cy="45.020012"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-6-3-1"
+ cx="35.601376"
+ cy="6.744072"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-0-7-2"
+ cx="39.749523"
+ cy="10.470686"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-6-5-9"
+ cx="43.897671"
+ cy="14.1973"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-0-7-2-0"
+ cx="40.168049"
+ cy="3.4583917"
+ r="0.60481101" />
+ <circle
+ style="font-variation-settings:normal;vector-effect:none;fill:#ccf9ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000"
+ id="path6205-5-6-6-5-9-3"
+ cx="44.316193"
+ cy="7.1850052"
+ r="0.60481101" />
+ </g>
+</svg>
diff --git a/data/crystfel-load-data.svg b/data/crystfel-load-data.svg
new file mode 100644
index 00000000..a2f3aa81
--- /dev/null
+++ b/data/crystfel-load-data.svg
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="48"
+ height="48"
+ viewBox="0 0 48 48"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="crystfel-load-data.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:document-units="px"
+ showgrid="false"
+ inkscape:zoom="18.1875"
+ inkscape:cx="13.140893"
+ inkscape:cy="24"
+ inkscape:window-width="1965"
+ inkscape:window-height="1278"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="layer1"
+ showguides="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid7330" />
+ </sodipodi:namedview>
+ <defs
+ id="defs2">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="9.0721649 : 28.728522 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective852" />
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ style="fill:#d6cd87;fill-opacity:1;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+ d="M 1,47 H 47 V 10 H 24 L 20,4 H 6 l -5,6 v 37"
+ id="path7365"
+ sodipodi:nodetypes="cccccccc" />
+ <g
+ id="g10547-9"
+ transform="matrix(1.0951955,0,0,1.0951955,0.04320818,-2.2050827)">
+ <rect
+ style="fill:#aaaaaa;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect9846-2"
+ width="27"
+ height="26"
+ x="9"
+ y="15" />
+ <rect
+ style="fill:#001aff;fill-opacity:1;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round"
+ id="rect9322-28"
+ width="5"
+ height="9"
+ x="16"
+ y="28" />
+ <rect
+ style="fill:#001aff;fill-opacity:1;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round"
+ id="rect9322-2-9"
+ width="5"
+ height="9"
+ x="10"
+ y="28" />
+ <rect
+ style="fill:#001aff;fill-opacity:1;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round"
+ id="rect9322-0-7"
+ width="5"
+ height="9"
+ x="29"
+ y="-31"
+ transform="rotate(90)" />
+ <rect
+ style="fill:#001aff;fill-opacity:1;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round"
+ id="rect9322-0-6-3"
+ width="5"
+ height="9"
+ x="35"
+ y="-31"
+ transform="rotate(90)" />
+ <rect
+ style="fill:#001aff;fill-opacity:1;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round"
+ id="rect9322-9-6"
+ width="5"
+ height="9"
+ x="24"
+ y="19" />
+ <rect
+ style="fill:#001aff;fill-opacity:1;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round"
+ id="rect9322-9-0-1"
+ width="5"
+ height="9"
+ x="30"
+ y="19" />
+ <rect
+ style="fill:#001aff;fill-opacity:1;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round"
+ id="rect9322-3-2"
+ width="5"
+ height="9"
+ x="-27"
+ y="14"
+ transform="rotate(-90)" />
+ <rect
+ style="fill:#001aff;fill-opacity:1;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round"
+ id="rect9322-3-6-9"
+ width="5"
+ height="9"
+ x="-21"
+ y="14"
+ transform="rotate(-90)" />
+ </g>
+ </g>
+</svg>
diff --git a/data/crystfel-merge.svg b/data/crystfel-merge.svg
new file mode 100644
index 00000000..21cd1a2c
--- /dev/null
+++ b/data/crystfel-merge.svg
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="48"
+ height="48"
+ viewBox="0 0 48 48"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="crystfel-merge.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:document-units="px"
+ showgrid="false"
+ inkscape:zoom="16"
+ inkscape:cx="33.4375"
+ inkscape:cy="23.59375"
+ inkscape:window-width="2291"
+ inkscape:window-height="1202"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="layer1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid829" />
+ </sodipodi:namedview>
+ <defs
+ id="defs2">
+ <marker
+ id="ExperimentalArrow"
+ refX="5.0"
+ refY="3.0"
+ orient="auto-start-reverse"
+ inkscape:stockid="ExperimentalArrow"
+ inkscape:isstock="true">
+ <path
+ style="fill:context-stroke"
+ d="m 10,3 -10,3 0,-6 z"
+ id="path2098" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="RazorWire"
+ inkscape:stockid="RazorWire"
+ inkscape:isstock="true">
+ <path
+ d="M 0.022727273,-0.74009011 L 0.022727273,0.69740989 L -7.7585227,3.0099099 L 10.678977,3.0099099 L 3.4914773,0.69740989 L 3.4914773,-0.74009011 L 10.741477,-2.8963401 L -7.7272727,-2.8963401 L 0.022727273,-0.74009011 z "
+ style="fill:#808080;fill-opacity:1;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.1pt"
+ transform="scale(0.8,0.8)"
+ id="path2077" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Scissors"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Scissors"
+ inkscape:isstock="true">
+ <path
+ style="fill:context-stroke;"
+ d="M 9.0898857,-3.6061018 C 8.1198849,-4.7769976 6.3697607,-4.7358294 5.0623558,-4.2327734 L -3.1500488,-1.1548705 C -5.5383421,-2.4615840 -7.8983361,-2.0874077 -7.8983361,-2.7236578 C -7.8983361,-3.2209742 -7.4416699,-3.1119800 -7.5100293,-4.4068519 C -7.5756648,-5.6501286 -8.8736064,-6.5699315 -10.100428,-6.4884954 C -11.327699,-6.4958500 -12.599867,-5.5553341 -12.610769,-4.2584343 C -12.702194,-2.9520479 -11.603560,-1.7387447 -10.304005,-1.6532027 C -8.7816644,-1.4265411 -6.0857470,-2.3487593 -4.8210600,-0.082342643 C -5.7633447,1.6559151 -7.4350844,1.6607341 -8.9465707,1.5737277 C -10.201445,1.5014928 -11.708664,1.8611256 -12.307219,3.0945882 C -12.885586,4.2766744 -12.318421,5.9591904 -10.990470,6.3210002 C -9.6502788,6.8128279 -7.8098011,6.1912892 -7.4910978,4.6502760 C -7.2454393,3.4624530 -8.0864637,2.9043186 -7.7636052,2.4731223 C -7.5199917,2.1477623 -5.9728246,2.3362771 -3.2164999,1.0982979 L 5.6763468,4.2330688 C 6.8000164,4.5467672 8.1730685,4.5362646 9.1684433,3.4313614 L -0.051640930,-0.053722219 L 9.0898857,-3.6061018 z M -9.2179159,-5.5066058 C -7.9233569,-4.7838060 -8.0290767,-2.8230356 -9.3743431,-2.4433169 C -10.590861,-2.0196559 -12.145370,-3.2022863 -11.757521,-4.5207817 C -11.530373,-5.6026336 -10.104134,-6.0014137 -9.2179159,-5.5066058 z M -9.1616516,2.5107591 C -7.8108215,3.0096239 -8.0402087,5.2951947 -9.4138723,5.6023681 C -10.324932,5.9187072 -11.627422,5.4635705 -11.719569,4.3902287 C -11.897178,3.0851737 -10.363484,1.9060805 -9.1616516,2.5107591 z "
+ id="schere" />
+ </marker>
+ <marker
+ style="overflow:visible"
+ id="Tail"
+ refX="0.0"
+ refY="0.0"
+ orient="auto"
+ inkscape:stockid="Tail"
+ inkscape:isstock="true">
+ <g
+ transform="scale(-1.2)"
+ id="g1893">
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.8;stroke-linecap:round"
+ d="M -3.8048674,-3.9585227 L 0.54352094,0"
+ id="path1881" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.8;stroke-linecap:round"
+ d="M -1.2866832,-3.9585227 L 3.0617053,0"
+ id="path1883" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.8;stroke-linecap:round"
+ d="M 1.3053582,-3.9585227 L 5.6537466,0"
+ id="path1885" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.8;stroke-linecap:round"
+ d="M -3.8048674,4.1775838 L 0.54352094,0.21974226"
+ id="path1887" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.8;stroke-linecap:round"
+ d="M -1.2866832,4.1775838 L 3.0617053,0.21974226"
+ id="path1889" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:context-stroke;stroke-width:0.8;stroke-linecap:round"
+ d="M 1.3053582,4.1775838 L 5.6537466,0.21974226"
+ id="path1891" />
+ </g>
+ </marker>
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="9.0721649 : 28.728522 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective852" />
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#0a0cff;fill-opacity:1;stroke:none;stroke-width:0.892;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ id="rect8744"
+ width="47.125"
+ height="47.4375"
+ x="0.37499997"
+ y="0.4375" />
+ <path
+ style="fill:none;stroke:#d6cd87;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 14.092416,40.878066 c 0,0 11.454936,1.96201 14.940371,-6.588185 2.598264,-6.373856 4.058725,-10.101573 9.601279,-10.170628 l 5.923957,-0.07381"
+ id="path1174-7"
+ sodipodi:nodetypes="cssc" />
+ <path
+ style="fill:none;stroke:#d6cd87;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 15.154916,6.77534 c 0,0 11.753158,-0.274505 13.877871,7.088185 1.909104,6.615548 4.058305,10.160061 9.601279,10.170628 l 5.923957,0.01129"
+ id="path1174-7-3"
+ sodipodi:nodetypes="cssc" />
+ <path
+ style="fill:#d6cd87;fill-opacity:1;stroke:#d6cd87;stroke-width:0.757529;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 46.683023,24.201696 -7.188831,-2.951563 v 5.728207 l 7.188831,-2.776644"
+ id="path6649" />
+ <path
+ style="fill:none;stroke:#d6cd87;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 43.245523,24.139201 -26.166305,-0.0625"
+ id="path1745"
+ sodipodi:nodetypes="cc" />
+ <g
+ id="g6111"
+ transform="matrix(0.42718548,0.35155002,-0.34217999,0.41579951,8.910621,-9.6658352)">
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#feff82;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 13.256014,23.45 25,26 v 14.45 l -11.743986,-17"
+ id="path3950" />
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#e5e600;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 25,26 36.798969,23.285052 25,40.45 Z"
+ id="path3952" />
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="m 25,26.85 v 13.6"
+ id="path1324" />
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 25,7 36.798969,23.285052 25,26 Z"
+ id="path3709" />
+ <path
+ style="fill:#feffbc;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25,6.45 13.256014,23.45 25,26 V 7"
+ id="path3402"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25,6.45 36.798969,23.285052 25,40.45 13.256014,23.45 Z"
+ id="path1034"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:none;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25,7.3 V 26.85"
+ id="path1038"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 13.256014,23.45 25,26 36.798969,23.285052"
+ id="path1036"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ <g
+ id="g6111-6"
+ transform="matrix(-0.195562,-0.59396514,0.5781339,-0.19034959,4.7188544,42.935328)">
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#feff82;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 13.256014,23.45 25,26 v 14.45 l -11.743986,-17"
+ id="path3950-1" />
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#e5e600;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 25,26 36.798969,23.285052 25,40.45 Z"
+ id="path3952-8" />
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="m 25,26.85 v 13.6"
+ id="path1324-7" />
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 25,7 36.798969,23.285052 25,26 Z"
+ id="path3709-9" />
+ <path
+ style="fill:#feffbc;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25,6.45 13.256014,23.45 25,26 V 7"
+ id="path3402-2"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25,6.45 36.798969,23.285052 25,40.45 13.256014,23.45 Z"
+ id="path1034-0"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:none;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25,7.3 V 26.85"
+ id="path1038-2"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 13.256014,23.45 25,26 36.798969,23.285052"
+ id="path1036-3"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ <g
+ id="g6111-6-7"
+ transform="matrix(0.43713166,-0.349639,0.34031992,0.4254806,-9.3862766,37.74062)">
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#feff82;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 13.256014,23.45 25,26 v 14.45 l -11.743986,-17"
+ id="path3950-1-5" />
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#e5e600;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 25,26 36.798969,23.285052 25,40.45 Z"
+ id="path3952-8-9" />
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="m 25,26.85 v 13.6"
+ id="path1324-7-2" />
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:#feff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 25,7 36.798969,23.285052 25,26 Z"
+ id="path3709-9-2" />
+ <path
+ style="fill:#feffbc;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25,6.45 13.256014,23.45 25,26 V 7"
+ id="path3402-2-8"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25,6.45 36.798969,23.285052 25,40.45 13.256014,23.45 Z"
+ id="path1034-0-9"
+ sodipodi:nodetypes="ccccc" />
+ <path
+ style="fill:none;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="M 25,7.3 V 26.85"
+ id="path1038-2-7"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="font-variation-settings:normal;opacity:1;vector-effect:none;fill:none;fill-opacity:1;stroke:#ffda1d;stroke-width:0.85px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;-inkscape-stroke:none;stop-color:#000000;stop-opacity:1"
+ d="M 13.256014,23.45 25,26 36.798969,23.285052"
+ id="path1036-3-3"
+ sodipodi:nodetypes="ccc" />
+ </g>
+ </g>
+</svg>
diff --git a/data/crystfel-peak-detection.svg b/data/crystfel-peak-detection.svg
new file mode 100644
index 00000000..004d9fd6
--- /dev/null
+++ b/data/crystfel-peak-detection.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="48"
+ height="48"
+ viewBox="0 0 48 48"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="crystfel-peak-detection.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:document-units="px"
+ showgrid="false"
+ inkscape:zoom="12.860505"
+ inkscape:cx="14.812793"
+ inkscape:cy="24.02705"
+ inkscape:window-width="1926"
+ inkscape:window-height="1417"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="layer1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid13593" />
+ </sodipodi:namedview>
+ <defs
+ id="defs2">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="9.0721649 : 28.728522 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="48 : 24 : 1"
+ inkscape:persp3d-origin="24 : 16 : 1"
+ id="perspective852" />
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g1665"
+ transform="matrix(0.96124618,0,0,0.96124618,0.02390156,0.03495804)">
+ <circle
+ style="fill:none;stroke:#000000;stroke-width:1.88976;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none"
+ id="path2370"
+ cx="28.529518"
+ cy="0.41102958"
+ r="18.476656"
+ transform="rotate(44.579698)" />
+ <rect
+ style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.23839;stroke-linejoin:bevel"
+ id="rect2474"
+ width="5.5174623"
+ height="18.799377"
+ x="-2.4326081"
+ y="-65.886269"
+ transform="matrix(0.71257715,-0.70159376,-0.70220754,-0.71197231,0,0)" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.755906;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.755906, 0.755906;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 10,29.222426 c 0,0 9.182568,0.496858 10,-10 0.43434,-5.577481 1,-10.0000004 1,-10.0000004"
+ id="path1040"
+ sodipodi:nodetypes="csc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:0.755906;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:0.755906, 0.755906;stroke-dashoffset:0;stroke-opacity:1"
+ d="m 32,29.222426 c 0,0 -9.182568,0.496858 -10,-10 C 21.56566,13.644945 21,9.2224256 21,9.2224256"
+ id="path1040-6"
+ sodipodi:nodetypes="csc" />
+ </g>
+ </g>
+</svg>
diff --git a/data/crystfel-unitcell.svg b/data/crystfel-unitcell.svg
new file mode 100644
index 00000000..0e38d0ee
--- /dev/null
+++ b/data/crystfel-unitcell.svg
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="48"
+ height="48"
+ viewBox="0 0 48 48"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="crystfel-unitcell.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ inkscape:document-units="px"
+ showgrid="false"
+ inkscape:zoom="9.09375"
+ inkscape:cx="25.292096"
+ inkscape:cy="18.694158"
+ inkscape:window-width="1579"
+ inkscape:window-height="1275"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:current-layer="layer1" />
+ <defs
+ id="defs2">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="-11.802168 : 57.609007 : 1"
+ inkscape:vp_y="0 : -1000 : 0"
+ inkscape:vp_z="75.71134 : 52.934091 : 1"
+ inkscape:persp3d-origin="24 : 33.332717 : 1"
+ id="perspective852" />
+ </defs>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ sodipodi:type="inkscape:box3d"
+ id="g4924"
+ style="fill:none;stroke:#000000;stroke-linejoin:bevel;stroke-opacity:1"
+ inkscape:perspectiveID="#perspective852"
+ inkscape:corner0="1.5148301 : 0.041855292 : 0 : 1"
+ inkscape:corner7="0.22718332 : 0.014618113 : 1.1917633 : 1">
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path4930"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:box3dsidetype="3"
+ d="M 2.4342482,16.687633 17.372094,44.279912 V 22.085038 L 2.4342482,5.8570092 Z"
+ points="17.372094,44.279912 17.372094,22.085038 2.4342482,5.8570092 2.4342482,16.687633 " />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path4932"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:box3dsidetype="14"
+ d="M 17.372094,44.279912 V 22.085038 L 46.114594,8.7732905 V 20.033224 Z"
+ points="17.372094,22.085038 46.114594,8.7732905 46.114594,20.033224 17.372094,44.279912 " />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path4934"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:box3dsidetype="13"
+ d="M 2.4342482,5.8570092 17.372094,22.085038 46.114594,8.7732905 25.994682,2.3873982 Z"
+ points="17.372094,22.085038 46.114594,8.7732905 25.994682,2.3873982 2.4342482,5.8570092 " />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path4928"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:box3dsidetype="5"
+ d="M 2.4342482,16.687633 17.372094,44.279912 46.114594,20.033224 25.994682,9.7357032 Z"
+ points="17.372094,44.279912 46.114594,20.033224 25.994682,9.7357032 2.4342482,16.687633 " />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path4926"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:box3dsidetype="6"
+ d="M 2.4342482,16.687633 V 5.8570092 L 25.994682,2.3873982 v 7.348305 z"
+ points="2.4342482,5.8570092 25.994682,2.3873982 25.994682,9.7357032 2.4342482,16.687633 " />
+ <path
+ sodipodi:type="inkscape:box3dside"
+ id="path4936"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-linejoin:round;stroke-opacity:1"
+ inkscape:box3dsidetype="11"
+ d="M 25.994682,9.7357032 46.114594,20.033224 V 8.7732905 L 25.994682,2.3873982 Z"
+ points="46.114594,20.033224 46.114594,8.7732905 25.994682,2.3873982 25.994682,9.7357032 " />
+ </g>
+ </g>
+</svg>