First commit

This commit is contained in:
Rebecca Breu 2021-03-22 21:32:33 +01:00
parent b9e74ed80b
commit 3e76f86822
7 changed files with 491 additions and 2 deletions

2
.gitignore vendored
View file

@ -1,3 +1,5 @@
*~
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]

View file

@ -1,2 +1,3 @@
# beeref
BeeRef Reference Image Viewer
# BeeRef — A Simple Reference Image Viewer
View your references while you art!

BIN
assets/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

421
assets/logo.svg Normal file
View file

@ -0,0 +1,421 @@
<?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"
width="51.699471mm"
height="51.699471mm"
viewBox="0 0 51.69947 51.69947"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c870, 2021-01-15)"
sodipodi:docname="logo.svg"
inkscape:export-filename="/home/rbreu/code/python/beeref/assets/logo.png"
inkscape:export-xdpi="196.74001"
inkscape:export-ydpi="196.74001">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient1234">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop1230" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop1232" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient1226">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop1222" />
<stop
style="stop-color:#000000;stop-opacity:0;"
offset="1"
id="stop1224" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient916">
<stop
style="stop-color:#fffff6;stop-opacity:0"
offset="0"
id="stop912" />
<stop
style="stop-color:#fffff6;stop-opacity:1"
offset="1"
id="stop914" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient916"
id="linearGradient918"
x1="49.119205"
y1="177.92455"
x2="66.474861"
y2="168.13577"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(8.22962,-13.573706)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient916"
id="linearGradient1027"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(15.004939,-25.248832)"
x1="49.119205"
y1="177.92455"
x2="66.474861"
y2="168.13577" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient916"
id="linearGradient1169"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(35.302229,-13.541095)"
x1="49.119205"
y1="177.92455"
x2="66.474861"
y2="168.13577" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient916"
id="linearGradient1219"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(14.98468,-1.908615)"
x1="49.119205"
y1="177.92455"
x2="66.474861"
y2="168.13577" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1226"
id="linearGradient1228"
x1="57.01697"
y1="160.53979"
x2="70.947659"
y2="160.53979"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1234"
id="linearGradient1236"
x1="64.025267"
y1="148.86445"
x2="77.490378"
y2="148.86445"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient916"
id="linearGradient1490"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(28.407949,-25.284404)"
x1="49.119205"
y1="177.92455"
x2="66.474861"
y2="168.13577" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1234"
id="linearGradient1492"
gradientUnits="userSpaceOnUse"
x1="64.025267"
y1="148.86445"
x2="77.490378"
y2="148.86445"
gradientTransform="translate(13.40301,-0.03557269)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.1946385"
inkscape:cx="73.261656"
inkscape:cy="71.727629"
inkscape:document-units="mm"
inkscape:current-layer="layer3"
showgrid="false"
inkscape:window-width="1280"
inkscape:window-height="720"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:document-rotation="0"
showguides="true"
inkscape:showpageshadow="true" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="combs"
style="display:inline"
transform="translate(-56.958071,-139.8279)">
<path
style="display:inline;fill:#ff80f6;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 57.376433,156.5412 6.682443,-3.75522 6.749259,3.78863 0.0058,7.87646 -6.71585,3.75522 -6.749261,-3.85545 z"
id="path4750-36"
inkscape:connector-curvature="0"
inkscape:label="pink comb colour" />
<path
style="display:inline;fill:url(#linearGradient918);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1228);stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 57.277557,156.58465 6.682443,-3.75522 6.749259,3.78863 0.0058,7.87646 -6.71585,3.75522 -6.749261,-3.85545 z"
id="path4750-36-7"
inkscape:connector-curvature="0"
inkscape:transform-center-x="0.11493552"
inkscape:transform-center-y="-0.43223338"
inkscape:label="pink comb shading" />
<path
sodipodi:type="star"
style="opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.678165;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1080"
sodipodi:sides="6"
sodipodi:cx="16.595886"
sodipodi:cy="132.67018"
sodipodi:r1="11.379502"
sodipodi:r2="9.8922243"
sodipodi:arg1="0.8327888"
sodipodi:arg2="1.317317"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 24.252188,141.08886 -5.175593,1.15745 -5.943345,1.26376 -3.5901775,-3.90347 -4.0661249,-4.5152 1.585416,-5.06092 1.8772206,-5.77898 5.1755928,-1.15744 5.943346,-1.26377 3.590177,3.90347 4.066125,4.51521 -1.585416,5.06092 z"
inkscape:transform-center-x="0.39929447"
inkscape:transform-center-y="-0.38719023"
transform="matrix(0.65375366,-0.20677321,0.20677321,0.65375366,25.686706,77.27186)"
inkscape:label="pink comb outline" />
<path
style="fill:#8c80ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 63.987607,144.95297 6.682443,-3.75522 6.74926,3.78863 0.0058,7.87646 -6.715851,3.75522 -6.749261,-3.85545 z"
id="path4750-2"
inkscape:connector-curvature="0"
inkscape:label="purple comb colour" />
<path
style="display:inline;fill:url(#linearGradient1027);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1236);stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 64.052876,144.90952 6.682443,-3.75522 6.749259,3.78863 0.0058,7.87646 -6.71585,3.75522 -6.749261,-3.85545 z"
id="path4750-36-7-0"
inkscape:connector-curvature="0"
inkscape:transform-center-x="0.11493552"
inkscape:transform-center-y="-0.43223338"
inkscape:label="purple comb shading" />
<path
sodipodi:type="star"
style="display:inline;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.678165;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1080-6"
sodipodi:sides="6"
sodipodi:cx="16.595886"
sodipodi:cy="132.67018"
sodipodi:r1="11.379502"
sodipodi:r2="9.8922243"
sodipodi:arg1="0.8327888"
sodipodi:arg2="1.317317"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
inkscape:transform-center-x="0.39929447"
inkscape:transform-center-y="-0.38719023"
transform="matrix(0.65375366,-0.20677321,0.20677321,0.65375366,32.396757,65.64018)"
inkscape:label="purple comb outline"
d="m 24.252188,141.08886 -5.175593,1.15745 -5.943345,1.26376 -3.5901775,-3.90347 -4.0661249,-4.5152 1.585416,-5.06092 1.8772206,-5.77898 5.1755928,-1.15744 5.943346,-1.26377 3.590177,3.90347 4.066125,4.51521 -1.585416,5.06092 z" />
<path
style="fill:#80e5ff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 77.452719,145.00595 6.682443,-3.75522 6.749259,3.78863 0.0058,7.87646 -6.715851,3.75522 -6.74926,-3.85545 z"
id="path4750-9"
inkscape:connector-curvature="0"
inkscape:label="blue comb colour" />
<path
style="display:inline;fill:url(#linearGradient1490);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient1492);stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 77.455886,144.87395 6.682443,-3.75522 6.749259,3.78863 0.0058,7.87646 -6.71585,3.75522 -6.749261,-3.85545 z"
id="path4750-36-7-0-8"
inkscape:connector-curvature="0"
inkscape:transform-center-x="0.11493552"
inkscape:transform-center-y="-0.43223338"
inkscape:label="blue comb shading" />
<path
sodipodi:type="star"
style="display:inline;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.678165;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1080-6-2"
sodipodi:sides="6"
sodipodi:cx="16.595886"
sodipodi:cy="132.67018"
sodipodi:r1="11.379502"
sodipodi:r2="9.8922243"
sodipodi:arg1="0.8327888"
sodipodi:arg2="1.317317"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
inkscape:transform-center-x="0.39929447"
inkscape:transform-center-y="-0.38719023"
transform="matrix(0.65375366,-0.20677321,0.20677321,0.65375366,45.833756,65.619298)"
inkscape:label="blue comb outline"
d="m 24.252188,141.08886 -5.175593,1.15745 -5.943345,1.26376 -3.5901775,-3.90347 -4.0661249,-4.5152 1.585416,-5.06092 1.8772206,-5.77898 5.1755928,-1.15744 5.943346,-1.26377 3.590177,3.90347 4.066125,4.51521 -1.585416,5.06092 z" />
<path
style="fill:#a0ff80;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 84.350167,156.61726 6.68244,-3.75522 6.74926,3.78863 0.006,7.87646 -6.71585,3.75522 -6.74926,-3.85545 z"
id="path4750-1"
inkscape:connector-curvature="0"
inkscape:label="green comb colour" />
<path
style="display:inline;fill:url(#linearGradient1169);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 84.350166,156.61726 6.682443,-3.75522 6.749258,3.78863 0.006,7.87646 -6.715849,3.75522 -6.749261,-3.85545 z"
id="path4750-36-7-0-0-7"
inkscape:connector-curvature="0"
inkscape:transform-center-x="0.11493552"
inkscape:transform-center-y="-0.43223338"
inkscape:label="green comb shading" />
<path
sodipodi:type="star"
style="display:inline;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.678165;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1080-6-2-6"
sodipodi:sides="6"
sodipodi:cx="16.595886"
sodipodi:cy="132.67018"
sodipodi:r1="11.379502"
sodipodi:r2="9.8922243"
sodipodi:arg1="0.8327888"
sodipodi:arg2="1.317317"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
inkscape:transform-center-x="0.39929447"
inkscape:transform-center-y="-0.38719023"
transform="matrix(0.65375366,-0.20677321,0.20677321,0.65375366,52.731202,77.230608)"
inkscape:label="green comb outline"
d="m 24.252188,141.08886 -5.175593,1.15745 -5.943345,1.26376 -3.5901775,-3.90347 -4.0661249,-4.5152 1.585416,-5.06092 1.8772206,-5.77898 5.1755928,-1.15744 5.943346,-1.26377 3.590177,3.90347 4.066125,4.51521 -1.585416,5.06092 z" />
<path
style="fill:#ff9e80;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 64.032616,168.24974 6.682443,-3.75522 6.74926,3.78863 0.006,7.87646 -6.71585,3.75522 -6.749262,-3.85545 z"
id="path4750-27"
inkscape:connector-curvature="0"
inkscape:label="red comb colour" />
<path
style="display:inline;fill:url(#linearGradient1219);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 64.032617,168.24974 6.682444,-3.75522 6.749254,3.78863 0.006,7.87646 -6.715846,3.75522 -6.749261,-3.85545 z"
id="path4750-36-7-0-0-7-2"
inkscape:connector-curvature="0"
inkscape:transform-center-x="0.11493552"
inkscape:transform-center-y="-0.43223338"
inkscape:label="red comb shading" />
<path
sodipodi:type="star"
style="display:inline;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.678165;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="path1080-6-2-6-9"
sodipodi:sides="6"
sodipodi:cx="16.595886"
sodipodi:cy="132.67018"
sodipodi:r1="11.379502"
sodipodi:r2="9.8922243"
sodipodi:arg1="0.8327888"
sodipodi:arg2="1.317317"
inkscape:flatsided="false"
inkscape:rounded="0"
inkscape:randomized="0"
inkscape:transform-center-x="0.39929447"
inkscape:transform-center-y="-0.38719023"
transform="matrix(0.65375366,-0.20677321,0.20677321,0.65375366,32.491351,88.875372)"
inkscape:label="red comb outline"
d="m 24.252188,141.08886 -5.175593,1.15745 -5.943345,1.26376 -3.5901775,-3.90347 -4.0661249,-4.5152 1.585416,-5.06092 1.8772206,-5.77898 5.1755928,-1.15744 5.943346,-1.26377 3.590177,3.90347 4.066125,4.51521 -1.585416,5.06092 z" />
<path
style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 70.841544,156.64143 6.583566,-3.77859 6.848136,3.812 2.462645,9.34112 -8.375056,4.40555 -7.564911,-6.0467 z"
id="path4750-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc"
inkscape:label="center comb" />
</g>
<g
id="layer2"
inkscape:label="bee"
transform="translate(-56.958071,-139.8279)"
style="display:inline;opacity:1"
inkscape:groupmode="layer">
<path
style="fill:#75624f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 75.323653,155.82275 c -3.140595,1.53645 -4.298695,4.92785 -3.513085,6.94905 1.644007,4.22966 6.689126,3.09838 8.55525,2.15052 1.866123,-0.94786 4.473946,-4.27749 2.190684,-7.28271 -1.570464,-2.06703 -4.370162,-3.21735 -7.232849,-1.81686 z"
id="path4793-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sszss"
inkscape:transform-center-x="0.33149953"
inkscape:transform-center-y="0.031441719" />
<path
style="fill:#75624f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 80.150319,163.40272 c -3.140595,1.53645 -4.555926,5.29558 -3.891061,8.74444 1.814879,9.41435 12.878486,11.27211 14.74461,10.32425 1.866123,-0.94786 3.954229,-11.78976 -2.581265,-17.06284 -2.020344,-1.63009 -5.409597,-3.40634 -8.272284,-2.00585 z"
id="path4793-0-9"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sszss"
inkscape:transform-center-x="0.33149953"
inkscape:transform-center-y="0.031441719" />
<path
style="display:inline;opacity:1;fill:#ffda00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 80.493966,177.79853 c 5.575545,0.21023 8.881183,-0.95305 11.622769,-6.80357 0,0 1.228422,5.00819 0.755951,6.75633 -2.409597,2.83482 -6.230583,4.0196 -9.780134,3.40177 -2.510116,-1.37378 -2.598586,-3.35453 -2.598586,-3.35453 z"
id="path4840-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#ffda00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 76.6152,169.8374 c 5.150322,-0.026 8.030737,-1.99248 10.347099,-5.10267 0,0 4.063244,2.69308 3.590773,4.44122 -2.929315,5.05543 -6.608559,6.38195 -11.670015,6.37834 C 77.034399,171.9599 76.6152,169.8374 76.6152,169.8374 Z"
id="path4840"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 71.059522,159.34108 c -0.999325,4.51981 -2.527449,17.65272 -0.944944,31.27753 7.347292,0.22797 11.123092,-3.02174 11.811756,-9.07144 0,0 -6.182218,-15.29213 -10.866812,-22.20609 z"
id="path4654"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 79.993058,154.66164 c 4.487062,1.13738 16.906946,5.67114 28.369082,13.20501 -3.09659,6.66677 -7.69603,8.58052 -13.410413,6.47839 0,0 -10.885683,-12.39237 -14.958669,-19.6834 z"
id="path4654-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
style="fill:#75624f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 72.231092,150.37567 c -3.140595,1.53645 -4.298695,4.92785 -3.513085,6.94905 1.644007,4.22966 4.657504,-0.3979 6.523628,-1.34576 1.866123,-0.94786 6.505568,-0.78121 4.222306,-3.78643 -1.570464,-2.06703 -4.370162,-3.21735 -7.232849,-1.81686 z"
id="path4793"
inkscape:connector-curvature="0"
sodipodi:nodetypes="sszss"
inkscape:transform-center-x="0.33149953"
inkscape:transform-center-y="0.031441719" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.465;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 69.734022,152.37552 c 0,0 -1.557196,-1.06618 -3.619603,-2.13816 -5.98391,-0.22154 -8.218538,1.5368 -8.218538,1.5368"
id="path4857"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.465;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 73.883135,149.76047 c 0,0 -0.149453,-1.88129 -0.05242,-4.20363 3.353795,-3.64633 6.841672,-4.33105 6.841672,-4.33105"
id="path4857-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 21 KiB

62
beeref.py Executable file
View file

@ -0,0 +1,62 @@
#!/usr/bin/env python3
import logging
import os.path
import signal
import sys
from PyQt6 import QtCore, QtGui, QtWidgets
from lib.view import BeeGraphicsView
logger = logging.getLogger('BeeRef')
class BeeRefMainWindow(QtWidgets.QWidget):
def __init__(self, filename=None):
super().__init__()
self.setWindowTitle('BeeRef')
self.setWindowIcon(QtGui.QIcon(os.path.join('assets', 'logo.png')))
view = BeeGraphicsView(app, self, filename)
layout = QtWidgets.QVBoxLayout()
layout.setContentsMargins(QtCore.QMargins(0, 0, 0, 0))
layout.addWidget(view)
self.setLayout(layout)
self.resize(500, 300)
self.show()
def safe_timer(timeout, func, *args, **kwargs):
"""Create a timer that is safe against garbage collection and
overlapping calls.
See: http://ralsina.me/weblog/posts/BB974.html
"""
def timer_event():
try:
func(*args, **kwargs)
finally:
QtCore.QTimer.singleShot(timeout, timer_event)
QtCore.QTimer.singleShot(timeout, timer_event)
def handle_sigint(signum, frame):
logger.info('Received interrupt. Exiting...')
QtWidgets.QApplication.quit()
if __name__ == '__main__':
logger = logging.getLogger('BeeRef')
logging.basicConfig(level=logging.DEBUG)
app = QtWidgets.QApplication(sys.argv)
filename = sys.argv[1] if len(sys.argv) > 1 else None
bee = BeeRefMainWindow(filename)
signal.signal(signal.SIGINT, handle_sigint)
# Repeatedly run python-noop to give the interpreter time to
# handel signals
safe_timer(50, lambda: None)
app.exec()

1
requirements/app.txt Normal file
View file

@ -0,0 +1 @@
pyQt6==6.0.3

2
requirements/dev.txt Normal file
View file

@ -0,0 +1,2 @@
flake8==3.9.0
pytest==6.2.2