Initial QML interface code
BIN
src/vr/assets/img/alarm/alarm_activated.png
Executable file
After Width: | Height: | Size: 4.6 KiB |
12
src/vr/assets/img/audio/media_keys/outline_play_pause_white_24dp.svg
Executable file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
</style>
|
||||
<path class="st0" d="M0,0h24v24H0V0z"/>
|
||||
<path class="st1" d="M5,8.6l5.3,3.4L5,15.4V8.6 M3,5v14l11-7L3,5z"/>
|
||||
<path class="st1" d="M14,19h2.3V5H14V19z M18.7,5v14H21V5H18.7z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 598 B |
1
src/vr/assets/img/audio/media_keys/outline_skip_next_white_24dp.svg
Executable file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path fill="white" d="M6 18l8.5-6L6 6v12zm2-8.14L11.03 12 8 14.14V9.86zM16 6h2v12h-2z"/></svg>
|
After Width: | Height: | Size: 216 B |
1
src/vr/assets/img/audio/media_keys/outline_skip_previous_white_24dp.svg
Executable file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path fill="white" d="M6 6h2v12H6zm3.5 6l8.5 6V6l-8.5 6zm6.5 2.14L12.97 12 16 9.86v4.28z"/></svg>
|
After Width: | Height: | Size: 219 B |
1
src/vr/assets/img/audio/media_keys/outline_stop_white_24dp.svg
Executable file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path fill="white" d="M16 8v8H8V8h8m2-2H6v12h12V6z"/></svg>
|
After Width: | Height: | Size: 181 B |
75
src/vr/assets/img/audio/microphone/mic_off.svg
Executable file
|
@ -0,0 +1,75 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
viewBox="0 0 22 22"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="mic_off.svg">
|
||||
<metadata
|
||||
id="metadata20">
|
||||
<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="1920"
|
||||
inkscape:window-height="1137"
|
||||
id="namedview18"
|
||||
showgrid="false"
|
||||
inkscape:zoom="10.727273"
|
||||
inkscape:cx="-0.51271186"
|
||||
inkscape:cy="11"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<defs
|
||||
id="defs4">
|
||||
<clipPath
|
||||
id="clipPath6">
|
||||
<path
|
||||
d="m69.63 12.145h-.052c-22.727-.292-46.47 4.077-46.709 4.122-2.424.451-4.946 2.974-5.397 5.397-.044.237-4.414 23.983-4.122 46.71-.292 22.777 4.078 46.523 4.122 46.761.451 2.423 2.974 4.945 5.398 5.398.237.044 23.982 4.413 46.709 4.121 22.779.292 46.524-4.077 46.761-4.121 2.423-.452 4.946-2.976 5.398-5.399.044-.236 4.413-23.981 4.121-46.709.292-22.777-4.077-46.523-4.121-46.761-.453-2.423-2.976-4.946-5.398-5.397-.238-.045-23.984-4.414-46.71-4.122"
|
||||
id="path8" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g
|
||||
transform="matrix(0.1327649,0,0,0.1327649,3.5653647,1.971854)"
|
||||
id="g10"
|
||||
style="fill:#ffffff">
|
||||
<path
|
||||
d="M 20.722,77.21 C 19.907,73.951 19.5,70.883 19.5,68.004 l 0,-10.43 c 0,-1.412 -0.516,-2.634 -1.548,-3.666 -1.032,-1.032 -2.254,-1.548 -3.666,-1.548 -1.413,0 -2.635,0.516 -3.667,1.548 -1.032,1.032 -1.548,2.254 -1.548,3.666 l 0,10.429 c 0,6.03 1.141,11.841 3.422,17.437 l 8.229,-8.23"
|
||||
id="path12"
|
||||
style="fill:#ffffff"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 56,94.07 c 7.17,0 13.309,-2.553 18.412,-7.657 C 79.517,81.309 82.07,75.17 82.07,68 l 0,-10.429 29.412,-29.412 c 0.543,-0.543 0.815,-1.168 0.815,-1.874 0,-0.706 -0.271,-1.331 -0.815,-1.874 l -6.68,-6.681 c -0.544,-0.544 -1.168,-0.815 -1.875,-0.815 -0.705,0 -1.33,0.271 -1.873,0.815 L 0.514,118.27 c -0.543,0.543 -0.814,1.168 -0.814,1.873 0,0.707 0.271,1.332 0.814,1.875 l 6.681,6.681 c 0.543,0.543 1.168,0.814 1.874,0.814 0.706,0 1.331,-0.271 1.874,-0.814 l 20.694,-20.694 c 5.974,3.695 12.356,5.895 19.15,6.6 l 0,10.756 -20.857,0 c -1.412,0 -2.635,0.516 -3.666,1.548 -1.032,1.032 -1.549,2.254 -1.549,3.666 0,1.411 0.517,2.635 1.549,3.666 1.031,1.032 2.254,1.549 3.666,1.549 l 52.14,0 c 1.412,0 2.635,-0.517 3.666,-1.549 1.033,-1.031 1.549,-2.255 1.549,-3.666 0,-1.412 -0.516,-2.634 -1.549,-3.666 -1.031,-1.032 -2.254,-1.548 -3.666,-1.548 l -20.856,0 0,-10.756 C 73,113.302 82.899,108.21 90.911,99.33 98.921,90.45 102.931,80.008 102.931,68 l 0,-10.431 c 0,-1.412 -0.516,-2.634 -1.547,-3.666 -1.033,-1.032 -2.255,-1.548 -3.667,-1.548 -1.412,0 -2.634,0.516 -3.666,1.548 -1.032,1.032 -1.548,2.254 -1.548,3.666 l 0,10.429 c 0,10.05 -3.572,18.643 -10.714,25.785 -7.142,7.142 -15.738,10.714 -25.786,10.714 -5.866,0 -11.433,-1.384 -16.702,-4.155 l 7.821,-7.82 c 2.934,1.031 5.894,1.546 8.881,1.546"
|
||||
id="path14"
|
||||
style="fill:#ffffff"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 71.03,5.02 C 66.549,1.815 61.538,0.212 56,0.212 c -7.17,0 -13.308,2.554 -18.413,7.659 -5.105,5.105 -7.658,11.243 -7.658,18.413 l 0,41.714 50.594,-50.595 C 78.676,12.353 75.513,8.224 71.032,5.02"
|
||||
id="path16"
|
||||
style="fill:#ffffff"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.1 KiB |
70
src/vr/assets/img/audio/microphone/mic_on.svg
Executable file
|
@ -0,0 +1,70 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
viewBox="0 0 22 22"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="mic_on.svg">
|
||||
<metadata
|
||||
id="metadata18">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1137"
|
||||
id="namedview16"
|
||||
showgrid="false"
|
||||
inkscape:zoom="10.727273"
|
||||
inkscape:cx="-0.51271186"
|
||||
inkscape:cy="11"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<defs
|
||||
id="defs4">
|
||||
<clipPath
|
||||
id="clipPath6">
|
||||
<path
|
||||
d="m69.63 12.145h-.052c-22.727-.292-46.47 4.077-46.709 4.122-2.424.451-4.946 2.974-5.397 5.397-.044.237-4.414 23.983-4.122 46.71-.292 22.777 4.078 46.523 4.122 46.761.451 2.423 2.974 4.945 5.398 5.398.237.044 23.982 4.413 46.709 4.121 22.779.292 46.524-4.077 46.761-4.121 2.423-.452 4.946-2.976 5.398-5.399.044-.236 4.413-23.981 4.121-46.709.292-22.777-4.077-46.523-4.121-46.761-.453-2.423-2.976-4.946-5.398-5.397-.238-.045-23.984-4.414-46.71-4.122"
|
||||
id="path8" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g
|
||||
transform="matrix(0.13276686,0,0,0.13276686,4.7597584,1.971588)"
|
||||
id="g10"
|
||||
style="fill:#ffffff">
|
||||
<path
|
||||
d="m 47,94.07 c 7.17,0 13.307,-2.553 18.412,-7.657 C 70.517,81.309 73.07,75.17 73.07,68 l 0,-41.714 C 73.07,19.116 70.519,12.979 65.412,7.873 60.307,2.768 54.17,0.214 47,0.214 c -7.17,0 -13.307,2.554 -18.413,7.659 -5.106,5.105 -7.659,11.243 -7.659,18.413 l 0,41.714 c 0,7.17 2.554,13.309 7.659,18.413 C 33.692,91.517 39.83,94.07 47,94.07"
|
||||
id="path12"
|
||||
style="fill:#ffffff"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 92.38,53.905 c -1.03,-1.032 -2.254,-1.548 -3.666,-1.548 -1.412,0 -2.634,0.516 -3.666,1.548 -1.032,1.032 -1.548,2.254 -1.548,3.666 L 83.5,68 C 83.5,78.05 79.928,86.643 72.786,93.786 65.645,100.929 57.049,104.5 47,104.5 36.95,104.5 28.356,100.929 21.213,93.786 14.071,86.645 10.5,78.049 10.5,68 l 0,-10.429 C 10.5,56.159 9.984,54.937 8.952,53.905 7.92,52.873 6.699,52.357 5.286,52.357 c -1.413,0 -2.635,0.516 -3.667,1.548 -1.032,1.032 -1.548,2.254 -1.548,3.666 l 0,10.429 c 0,12 4.01,22.446 12.02,31.33 8.01,8.88 17.91,13.972 29.697,15.275 l 0,10.756 -20.857,0 c -1.412,0 -2.634,0.516 -3.666,1.548 -1.032,1.032 -1.548,2.254 -1.548,3.666 0,1.411 0.516,2.635 1.548,3.666 1.032,1.032 2.254,1.549 3.666,1.549 l 52.14,0 c 1.412,0 2.636,-0.517 3.666,-1.549 1.033,-1.031 1.55,-2.255 1.55,-3.666 0,-1.412 -0.517,-2.634 -1.55,-3.666 -1.03,-1.032 -2.254,-1.548 -3.666,-1.548 l -20.855,0 0,-10.756 C 64.001,113.302 73.9,108.21 81.912,99.33 89.922,90.45 93.932,80.008 93.932,68 l 0,-10.429 c 0,-1.412 -0.517,-2.633 -1.55,-3.666"
|
||||
id="path14"
|
||||
style="fill:#ffffff"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
BIN
src/vr/assets/img/audio/microphone/ptm_notification.png
Executable file
After Width: | Height: | Size: 4.7 KiB |
BIN
src/vr/assets/img/audio/microphone/ptt_notification.png
Executable file
After Width: | Height: | Size: 4.9 KiB |
85
src/vr/assets/img/audio/microphone/ptt_notification.svg
Executable file
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
viewBox="0 0 16 22"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="ptt_notification.dvg.svg"
|
||||
width="16"
|
||||
height="22">
|
||||
<metadata
|
||||
id="metadata18">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#1b2939"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1137"
|
||||
id="namedview16"
|
||||
showgrid="false"
|
||||
inkscape:zoom="10.727273"
|
||||
inkscape:cx="-5.3865047"
|
||||
inkscape:cy="11"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<defs
|
||||
id="defs4">
|
||||
<clipPath
|
||||
id="clipPath6">
|
||||
<path
|
||||
d="m 69.63,12.145 -0.052,0 c -22.727,-0.292 -46.47,4.077 -46.709,4.122 -2.424,0.451 -4.946,2.974 -5.397,5.397 -0.044,0.237 -4.414,23.983 -4.122,46.71 -0.292,22.777 4.078,46.523 4.122,46.761 0.451,2.423 2.974,4.945 5.398,5.398 0.237,0.044 23.982,4.413 46.709,4.121 22.779,0.292 46.524,-4.077 46.761,-4.121 2.423,-0.452 4.946,-2.976 5.398,-5.399 0.044,-0.236 4.413,-23.981 4.121,-46.709 0.292,-22.777 -4.077,-46.523 -4.121,-46.761 -0.453,-2.423 -2.976,-4.946 -5.398,-5.397 -0.238,-0.045 -23.984,-4.414 -46.71,-4.122"
|
||||
id="path8"
|
||||
inkscape:connector-curvature="0" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
<g
|
||||
transform="matrix(0.12612852,0,0,0.12612852,2.0717705,2.4230086)"
|
||||
id="g10"
|
||||
style="fill:#ffffff">
|
||||
<g
|
||||
id="g4141"
|
||||
transform="matrix(1.1111111,0,0,1.1111111,-5.2223894,-7.5557786)">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff"
|
||||
id="path12"
|
||||
d="m 47,94.07 c 7.17,0 13.307,-2.553 18.412,-7.657 C 70.517,81.309 73.07,75.17 73.07,68 l 0,-41.714 C 73.07,19.116 70.519,12.979 65.412,7.873 60.307,2.768 54.17,0.214 47,0.214 c -7.17,0 -13.307,2.554 -18.413,7.659 -5.106,5.105 -7.659,11.243 -7.659,18.413 l 0,41.714 c 0,7.17 2.554,13.309 7.659,18.413 C 33.692,91.517 39.83,94.07 47,94.07" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff"
|
||||
id="path14"
|
||||
d="m 92.38,53.905 c -1.03,-1.032 -2.254,-1.548 -3.666,-1.548 -1.412,0 -2.634,0.516 -3.666,1.548 -1.032,1.032 -1.548,2.254 -1.548,3.666 L 83.5,68 C 83.5,78.05 79.928,86.643 72.786,93.786 65.645,100.929 57.049,104.5 47,104.5 36.95,104.5 28.356,100.929 21.213,93.786 14.071,86.645 10.5,78.049 10.5,68 l 0,-10.429 C 10.5,56.159 9.984,54.937 8.952,53.905 7.92,52.873 6.699,52.357 5.286,52.357 c -1.413,0 -2.635,0.516 -3.667,1.548 -1.032,1.032 -1.548,2.254 -1.548,3.666 l 0,10.429 c 0,12 4.01,22.446 12.02,31.33 8.01,8.88 17.91,13.972 29.697,15.275 l 0,10.756 -20.857,0 c -1.412,0 -2.634,0.516 -3.666,1.548 -1.032,1.032 -1.548,2.254 -1.548,3.666 0,1.411 0.516,2.635 1.548,3.666 1.032,1.032 2.254,1.549 3.666,1.549 l 52.14,0 c 1.412,0 2.636,-0.517 3.666,-1.549 1.033,-1.031 1.55,-2.255 1.55,-3.666 0,-1.412 -0.517,-2.634 -1.55,-3.666 -1.03,-1.032 -2.254,-1.548 -3.666,-1.548 l -20.855,0 0,-10.756 C 64.001,113.302 73.9,108.21 81.912,99.33 89.922,90.45 93.932,80.008 93.932,68 l 0,-10.429 c 0,-1.412 -0.517,-2.633 -1.55,-3.666" />
|
||||
</g>
|
||||
</g>
|
||||
<rect
|
||||
style="fill:none;stroke:#3b607a;stroke-width:0.29646081;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect3337"
|
||||
width="15.012013"
|
||||
height="21.071335"
|
||||
x="0.49399328"
|
||||
y="0.46433258" />
|
||||
</svg>
|
After Width: | Height: | Size: 4.1 KiB |
1
src/vr/assets/img/audio/speaker/speaker_off.svg
Executable file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22"><g transform="matrix(.13811 0 0 .13811 4.955 5.808)" fill-opacity=".8"><g transform="matrix(6.5167 0 0 6.5167-28.01-34.23)"><g transform="matrix(1.17633 0 0 1.17633 1 1.589)" stroke-opacity=".85" fill="#000" stroke="none" fill-opacity="0" stroke-width=".73"><path d="m11.243 12.993c-.192 0-.384-.073-.53-.22-.293-.293-.293-.768 0-1.061 2.047-2.047 2.047-5.378 0-7.425-.293-.293-.293-.768 0-1.061.293-.293.768-.293 1.061 0 1.275 1.275 1.977 2.97 1.977 4.773 0 1.803-.702 3.498-1.977 4.773-.146.146-.338.22-.53.22z"/><path d="m8.578 11.578c-.192 0-.384-.073-.53-.22-.293-.293-.293-.768 0-1.061 1.267-1.267 1.267-3.329 0-4.596-.293-.293-.293-.768 0-1.061.293-.293.768-.293 1.061 0 1.852 1.852 1.852 4.865 0 6.718-.146.146-.338.22-.53.22z"/></g><g transform="translate(16 4)"><g fill="#f2f2f2" fill-opacity="0"><path d="m-1.773 12.874c-.226 0-.452-.086-.623-.259-.345-.345-.345-.903 0-1.248 2.408-2.408 2.408-6.326 0-8.734-.345-.345-.345-.903 0-1.248.345-.345.903-.345 1.248 0 1.5 1.5 2.326 3.494 2.326 5.615 0 2.121-.826 4.115-2.326 5.615-.172.172-.398.259-.623.259z"/><path d="m-4.908 11.209c-.226 0-.452-.086-.623-.259-.345-.345-.345-.903 0-1.248 1.49-1.49 1.49-3.916 0-5.406-.345-.345-.345-.903 0-1.248.345-.345.903-.345 1.248 0 2.179 2.179 2.179 5.723 0 7.903-.172.172-.398.259-.623.259z"/></g><path d="m-7.353 15.235c-.153 0-.303-.06-.416-.172l-4.534-4.534h-2.109c-.325 0-.588-.263-.588-.588v-5.882c0-.325.263-.588.588-.588h2.109l4.534-4.534c.168-.168.421-.219.641-.127.22.092.363.306.363.543v15.292c0 .238-.144.453-.363.543-.073.031-.149.045-.225.045" fill="#fff" fill-opacity="1"/></g></g><path d="m14.75 9.674v1.326h-1.326l-1.674-1.674-1.674 1.674h-1.326v-1.326l1.674-1.674-1.674-1.674v-1.326h1.326l1.674 1.674 1.674-1.674h1.326v1.326l-1.674 1.674 1.674 1.674" fill="#fff" fill-opacity="1" transform="matrix(8.22579 0 0 8.22579-32.543-28.351)"/></g></svg>
|
After Width: | Height: | Size: 1.9 KiB |
1
src/vr/assets/img/audio/speaker/speaker_on.svg
Executable file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22"><g transform="matrix(.90003 0 0 .90003 15.507 4.708)" fill-opacity="1" fill="#fff"><path d="m1.36 14.537c-.226 0-.452-.086-.623-.259-.345-.345-.345-.903 0-1.248 1.61-1.61 2.497-3.752 2.497-6.03 0-2.279-.887-4.419-2.497-6.03-.345-.345-.345-.903 0-1.248.345-.345.903-.345 1.248 0 1.944 1.944 3.01 4.529 3.01 7.278 0 2.749-1.07 5.333-3.01 7.278-.172.172-.398.259-.623.259"/><path d="m-1.773 12.874c-.226 0-.452-.086-.623-.259-.345-.345-.345-.903 0-1.248 2.408-2.408 2.408-6.326 0-8.734-.345-.345-.345-.903 0-1.248.345-.345.903-.345 1.248 0 1.5 1.5 2.326 3.494 2.326 5.615 0 2.121-.826 4.115-2.326 5.615-.172.172-.398.259-.623.259z"/><path d="m-4.908 11.209c-.226 0-.452-.086-.623-.259-.345-.345-.345-.903 0-1.248 1.49-1.49 1.49-3.916 0-5.406-.345-.345-.345-.903 0-1.248.345-.345.903-.345 1.248 0 2.179 2.179 2.179 5.723 0 7.903-.172.172-.398.259-.623.259z"/><path d="m-7.353 15.235c-.153 0-.303-.06-.416-.172l-4.534-4.534h-2.109c-.325 0-.588-.263-.588-.588v-5.882c0-.325.263-.588.588-.588h2.109l4.534-4.534c.168-.168.421-.219.641-.127.22.092.363.306.363.543v15.292c0 .238-.144.453-.363.543-.073.031-.149.045-.225.045"/></g></svg>
|
After Width: | Height: | Size: 1.2 KiB |
BIN
src/vr/assets/img/battery/battery_0.png
Executable file
After Width: | Height: | Size: 26 KiB |
BIN
src/vr/assets/img/battery/battery_1.png
Executable file
After Width: | Height: | Size: 28 KiB |
BIN
src/vr/assets/img/battery/battery_2.png
Executable file
After Width: | Height: | Size: 28 KiB |
BIN
src/vr/assets/img/battery/battery_3.png
Executable file
After Width: | Height: | Size: 29 KiB |
BIN
src/vr/assets/img/battery/battery_4.png
Executable file
After Width: | Height: | Size: 29 KiB |
BIN
src/vr/assets/img/battery/battery_5.png
Executable file
After Width: | Height: | Size: 29 KiB |
BIN
src/vr/assets/img/chaperone/centermark.png
Executable file
After Width: | Height: | Size: 4.2 KiB |
BIN
src/vr/assets/img/chaperone/centermarkl1.png
Executable file
After Width: | Height: | Size: 5.3 KiB |
BIN
src/vr/assets/img/chaperone/centermarkl2.png
Executable file
After Width: | Height: | Size: 5.4 KiB |
BIN
src/vr/assets/img/chaperone/centermarkl3.png
Executable file
After Width: | Height: | Size: 5.5 KiB |
BIN
src/vr/assets/img/chaperone/centermarkr1.png
Executable file
After Width: | Height: | Size: 5.3 KiB |
BIN
src/vr/assets/img/chaperone/centermarkr2.png
Executable file
After Width: | Height: | Size: 5.5 KiB |
BIN
src/vr/assets/img/chaperone/centermarkr3.png
Executable file
After Width: | Height: | Size: 5.6 KiB |
BIN
src/vr/assets/img/chest.png
Normal file
After Width: | Height: | Size: 112 KiB |
76
src/vr/assets/img/common/backarrow.svg
Executable file
|
@ -0,0 +1,76 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="20"
|
||||
height="20"
|
||||
id="svg3026"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="backarrow.svg">
|
||||
<metadata
|
||||
id="metadata3038">
|
||||
<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 />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs3036">
|
||||
<linearGradient
|
||||
id="linearGradient4006">
|
||||
<stop
|
||||
style="stop-color:#252525;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4008" />
|
||||
<stop
|
||||
style="stop-color:#4a4a4a;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4010" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1137"
|
||||
id="namedview3034"
|
||||
showgrid="true"
|
||||
inkscape:zoom="26.304372"
|
||||
inkscape:cx="11.841239"
|
||||
inkscape:cy="6.8249439"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g3028">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3040" />
|
||||
</sodipodi:namedview>
|
||||
<g
|
||||
id="g3028"
|
||||
stroke-width="2.23"
|
||||
stroke="#d40000">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4003"
|
||||
style="font-size:11.38508987px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#f9f9f9;fill-opacity:1;stroke:none;font-family:Segoe UI Symbol;-inkscape-font-specification:Segoe UI Symbol"
|
||||
d="m 1.731867,9.9956035 c 2e-5,0.7560365 0.09966,1.4842425 0.298902,2.1846165 0.199287,0.700357 0.477675,1.358232 0.835165,1.973627 0.357528,0.615372 0.786831,1.175079 1.287912,1.67912 0.501116,0.504017 1.057891,0.936251 1.67033,1.296703 0.612469,0.360426 1.270344,0.640279 1.973627,0.839561 0.703309,0.199253 1.432978,0.298886 2.18901,0.298901 0.756055,-1.5e-5 1.484259,-0.09965 2.184616,-0.298901 0.700375,-0.199282 1.355319,-0.479135 1.964834,-0.839561 0.609531,-0.360452 1.167773,-0.792686 1.674726,-1.296703 0.506965,-0.504041 0.940664,-1.063748 1.301099,-1.67912 0.360444,-0.615395 0.641762,-1.27327 0.843956,-1.973627 0.202201,-0.700374 0.3033,-1.42858 0.303296,-2.1846165 4e-6,-0.756049 -0.09963,-1.484254 -0.298901,-2.184615 -0.199263,-0.70037 -0.479116,-1.356779 -0.83956,-1.969231 -0.360435,-0.612454 -0.792669,-1.169231 -1.296704,-1.67033 -0.504022,-0.501098 -1.063729,-0.931867 -1.67912,-1.292307 -0.615377,-0.360439 -1.273251,-0.640292 -1.973626,-0.839561 -0.700357,-0.199264 -1.428561,-0.298899 -2.184616,-0.2989 -0.756032,10e-7 -1.485701,0.09964 -2.18901,0.2989 -0.703283,0.199269 -1.361158,0.477658 -1.973627,0.835165 -0.612439,0.357511 -1.169214,0.786814 -1.67033,1.287912 -0.501081,0.501099 -0.930384,1.05934 -1.287912,1.674726 -0.35749,0.615382 -0.635878,1.273256 -0.835165,1.973626 -0.199247,0.700361 -0.298882,1.428566 -0.298902,2.184615 z m 2.769231,0.035172 0,-0.035172 4.026374,-4.210988 2.918682,0 -3.068132,3.138462 6.672527,0 0,2.1802195 -6.672527,0 3.068132,3.138461 -2.918682,0 z M 0,9.9868115 c 2.0999981e-5,-0.90843 0.120171,-1.784619 0.360439,-2.628572 0.240315,-0.843958 0.58024,-1.636632 1.01978,-2.378021 0.43958,-0.741393 0.964123,-1.416851 1.573627,-2.026375 C 3.563387,2.3443225 4.238845,1.8197795 4.980218,1.3802185 5.721627,0.94065953 6.515765,0.60073453 7.362637,0.36043753 8.209538,0.12014953 9.087192,2.5255985e-6 9.995604,-4.7440151e-7 10.90404,2.5255985e-6 11.781694,0.12015453 12.628571,0.36043853 c 0.846895,0.240297 1.641033,0.577292 2.382418,1.01098997 0.741398,0.433701 1.41832,0.955312 2.030769,1.564835 0.612458,0.609524 1.138465,1.284982 1.578022,2.026374 0.439563,0.74139 0.77949,1.535528 1.01978,2.382416 0.240295,0.846883 0.360442,1.727468 0.36044,2.641759 2e-6,0.9084175 -0.120145,1.7860735 -0.36044,2.6329675 -0.24029,0.846877 -0.580217,1.641015 -1.01978,2.382417 -0.439557,0.74138 -0.965564,1.418303 -1.578022,2.03077 -0.612449,0.61244 -1.289371,1.138447 -2.030769,1.578022 -0.741385,0.439545 -1.535523,0.780937 -2.382418,1.024176 C 11.781694,19.878372 10.90404,19.999984 9.995604,20 9.087192,19.999984 8.209538,19.879837 7.362637,19.63956 6.515765,19.399252 5.721627,19.06079 4.980218,18.624176 4.238845,18.187531 3.563387,17.66299 2.953846,17.050549 2.344342,16.438082 1.819799,15.761159 1.380219,15.019779 0.940679,14.278377 0.600754,13.482774 0.360439,12.632967 0.120168,11.783143 2.0999981e-5,10.901091 0,9.9868125 z" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.1 KiB |
1
src/vr/assets/img/common/check.svg
Executable file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="270" height="270"><path d="M30 180l60 60L240 30" stroke="#000" stroke-width="30" fill="none"/></svg>
|
After Width: | Height: | Size: 147 B |
BIN
src/vr/assets/img/confirmed.png
Executable file
After Width: | Height: | Size: 53 KiB |
BIN
src/vr/assets/img/cpus.png
Normal file
After Width: | Height: | Size: 165 KiB |
1
src/vr/assets/img/cpus.svg
Normal file
After Width: | Height: | Size: 621 KiB |
BIN
src/vr/assets/img/dog.gif
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
src/vr/assets/img/dog2.gif
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
src/vr/assets/img/expired.png
Executable file
After Width: | Height: | Size: 28 KiB |
BIN
src/vr/assets/img/grass.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
src/vr/assets/img/hypnotoad.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
src/vr/assets/img/icons/advicon256px.ico
Executable file
After Width: | Height: | Size: 41 KiB |
BIN
src/vr/assets/img/icons/thumbicon.png
Executable file
After Width: | Height: | Size: 32 KiB |
BIN
src/vr/assets/img/illuminati.png
Normal file
After Width: | Height: | Size: 706 KiB |
BIN
src/vr/assets/img/info.png
Executable file
After Width: | Height: | Size: 9.9 KiB |
12
src/vr/assets/img/main_menu_icons/audio_tab_icon.svg
Executable file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:none;}
|
||||
</style>
|
||||
<path class="st0" d="M3,9v6h4l5,5V4L7,9H3z M16.5,12c0-1.8-1-3.3-2.5-4V16C15.5,15.3,16.5,13.8,16.5,12z M14,3.2v2.1
|
||||
c2.9,0.9,5,3.5,5,6.7s-2.1,5.9-5,6.7v2.1c4-0.9,7-4.5,7-8.8S18,4.1,14,3.2z"/>
|
||||
<path class="st1" d="M0,0h24v24H0V0z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 667 B |
14
src/vr/assets/img/main_menu_icons/bindings_tab_icon.svg
Executable file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
</style>
|
||||
<g>
|
||||
<path class="st0" d="M21.6,6.3V19c0,1.9-1.6,3.5-3.5,3.5h-6.4c-0.9,0-1.8-0.4-2.5-1l-6.9-7c0,0,1.1-1.1,1.1-1.1
|
||||
c0.2-0.2,0.4-0.3,0.7-0.3c0.2,0,0.4,0.1,0.5,0.1c0,0,3.8,2.2,3.8,2.2V5c0-0.7,0.6-1.3,1.3-1.3s1.3,0.6,1.3,1.3v6.1H12V2.8
|
||||
c0-0.7,0.6-1.3,1.3-1.3s1.3,0.6,1.3,1.3v8.3h0.9V3.7c0-0.7,0.6-1.3,1.3-1.3s1.3,0.6,1.3,1.3v7.4H19V6.3C19,5.6,19.6,5,20.3,5
|
||||
S21.6,5.6,21.6,6.3z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 807 B |
12
src/vr/assets/img/main_menu_icons/chaperone_tab_icon.svg
Executable file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:none;}
|
||||
</style>
|
||||
<path class="st0" d="M13,7h-2v2h2V7z M13,11h-2v2h2V11z M17,11h-2v2h2V11z M3,3v18h18V3H3z M19,19H5V5h14V19z M13,15h-2v2h2V15z
|
||||
M9,11H7v2h2V11z"/>
|
||||
<path class="st1" d="M0,0h24v24H0V0z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 622 B |
14
src/vr/assets/img/main_menu_icons/motion_tab_icon.svg
Executable file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:none;}
|
||||
</style>
|
||||
<path class="st0" d="M15.5,5.5l-1.8,1.8L12,5.5l-1.8,1.8L8.5,5.5L12,2L15.5,5.5z M18.5,15.5l-1.8-1.8l1.8-1.8l-1.8-1.8l1.8-1.8
|
||||
L22,12L18.5,15.5z M8.5,18.5l1.8-1.8l1.8,1.8l1.8-1.8l1.8,1.8L12,22L8.5,18.5z M5.5,8.5l1.8,1.8L5.5,12l1.8,1.8l-1.8,1.8L2,12
|
||||
L5.5,8.5z"/>
|
||||
<circle class="st0" cx="12" cy="12" r="3"/>
|
||||
<path class="st1" d="M0,0h24v24H0V0z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 783 B |
13
src/vr/assets/img/main_menu_icons/offsets_tab_icon.svg
Executable file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
</style>
|
||||
<path class="st0" d="M0,0h24v24H0V0z"/>
|
||||
<path class="st1" d="M20,2H4C2.9,2,2,2.9,2,4v16c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V4C22,2.9,21.1,2,20,2z M8,20H4v-4h4V20z M8,14
|
||||
H4v-4h4V14z M8,8H4V4h4V8z M14,20h-4v-4h4V20z M14,14h-4v-4h4V14z M14,8h-4V4h4V8z M20,20h-4v-4h4V20z M20,14h-4v-4h4V14z M20,8h-4
|
||||
V4h4V8z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 745 B |
13
src/vr/assets/img/main_menu_icons/rotation_tab_icon.svg
Executable file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
</style>
|
||||
<path class="st0" d="M0,0h24v24H0V0z"/>
|
||||
<path class="st1" d="M15.6,5.6L11,1v3.1C7.1,4.6,4,7.9,4,12s3.1,7.4,7,7.9v-2C8.2,17.4,6,15,6,12s2.2-5.4,5-5.9V10L15.6,5.6z
|
||||
M19.9,11c-0.2-1.4-0.7-2.7-1.6-3.9l-1.4,1.4c0.5,0.8,0.9,1.6,1,2.5H19.9z M13,17.9v2c1.4-0.2,2.7-0.7,3.9-1.6l-1.4-1.4
|
||||
C14.7,17.4,13.9,17.8,13,17.9z M16.9,15.5l1.4,1.4c0.9-1.2,1.5-2.5,1.6-3.9h-2C17.8,13.9,17.4,14.7,16.9,15.5z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 827 B |
17
src/vr/assets/img/main_menu_icons/settings_tab_icon.svg
Executable file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
</style>
|
||||
<path class="st0" d="M0,0h24v24H0V0z"/>
|
||||
<path class="st1" d="M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2s2-0.9,2-2S13.1,10,12,10z M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14
|
||||
c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M17.3,12c0,0.2,0,0.5,0,0.7l1.5,1.2c0.1,0.1,0.2,0.3,0.1,0.4l-1.4,2.4
|
||||
c-0.1,0.1-0.3,0.2-0.4,0.1l-1.7-0.7c-0.4,0.3-0.8,0.5-1.2,0.7l-0.3,1.9c0,0.2-0.2,0.3-0.4,0.3h-2.8c-0.2,0-0.3-0.1-0.4-0.3L10,16.9
|
||||
c-0.4-0.2-0.8-0.4-1.2-0.7l-1.7,0.7c-0.2,0.1-0.3,0-0.4-0.1l-1.4-2.4c-0.1-0.1-0.1-0.3,0.1-0.4l1.5-1.2c0-0.2-0.1-0.5-0.1-0.7
|
||||
s0-0.5,0.1-0.7l-1.5-1.2C5.2,10,5.1,9.9,5.2,9.7l1.4-2.4c0.1-0.2,0.3-0.2,0.4-0.2l1.7,0.7C9.2,7.6,9.6,7.3,10,7.1l0.3-1.8
|
||||
c0-0.2,0.2-0.3,0.4-0.3h2.8c0.2,0,0.3,0.1,0.4,0.3L14,7.1c0.4,0.2,0.8,0.4,1.2,0.7l1.7-0.7c0.2-0.1,0.3,0,0.4,0.2l1.4,2.4
|
||||
c0.1,0.1,0,0.3-0.1,0.4l-1.5,1.2C17.2,11.5,17.3,11.8,17.3,12z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
12
src/vr/assets/img/main_menu_icons/space_fix_tab_icon.svg
Executable file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
</style>
|
||||
<path class="st0" d="M0,0h24v24H0V0z"/>
|
||||
<path class="st1" d="M3,5H1v16c0,1.1,0.9,2,2,2h16v-2H3V5z M21,1H7C5.9,1,5,1.9,5,3v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V3
|
||||
C23,1.9,22.1,1,21,1z M21,17H7V3h14V17z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 641 B |
13
src/vr/assets/img/main_menu_icons/statistics_tab_icon.svg
Executable file
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:none;}
|
||||
</style>
|
||||
<path class="st0" d="M4,10.5c-0.8,0-1.5,0.7-1.5,1.5s0.7,1.5,1.5,1.5s1.5-0.7,1.5-1.5S4.8,10.5,4,10.5z M4,4.5
|
||||
C3.2,4.5,2.5,5.2,2.5,6S3.2,7.5,4,7.5S5.5,6.8,5.5,6S4.8,4.5,4,4.5z M4,16.5c-0.8,0-1.5,0.7-1.5,1.5s0.7,1.5,1.5,1.5
|
||||
s1.5-0.7,1.5-1.5S4.8,16.5,4,16.5z M7,19h14v-2H7V19z M7,13h14v-2H7V13z M7,5v2h14V5H7z"/>
|
||||
<path class="st1" d="M0,0h24v24H0V0z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 788 B |
12
src/vr/assets/img/main_menu_icons/steamvr_tab_icon.svg
Executable file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
</style>
|
||||
<path class="st0" d="M0,0h24v24H0V0z"/>
|
||||
<path class="st1" d="M3,17v2h6v-2H3z M3,5v2h10V5H3z M13,21v-2h8v-2h-8v-2h-2v6H13z M7,9v2H3v2h4v2h2V9H7z M21,13v-2H11v2H21z M15,9
|
||||
h2V7h4V5h-4V3h-2V9z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 629 B |
12
src/vr/assets/img/main_menu_icons/utilities_tab_icon.svg
Executable file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:none;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
</style>
|
||||
<path class="st0" d="M0,0h24v24H0V0z"/>
|
||||
<path class="st1" d="M22.7,19l-9.1-9.1c0.9-2.3,0.4-5-1.5-6.9c-2-2-5-2.4-7.4-1.3L9,6L6,9L1.6,4.7c-1.2,2.4-0.7,5.4,1.3,7.4
|
||||
c1.9,1.9,4.6,2.4,6.9,1.5l9.1,9.1c0.4,0.4,1,0.4,1.4,0l2.3-2.3C23.1,20,23.1,19.3,22.7,19z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 689 B |
12
src/vr/assets/img/main_menu_icons/video_tab_icon.svg
Executable file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:none;}
|
||||
</style>
|
||||
<path class="st0" d="M21,3H3C1.9,3,1,3.9,1,5v12c0,1.1,0.9,2,2,2h5v2h8v-2h5c1.1,0,2-0.9,2-2l0-12C23,3.9,22.1,3,21,3z M21,17H3V5
|
||||
h18V17z"/>
|
||||
<path class="st1" d="M0,0h24v24H0V0z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 615 B |
1
src/vr/assets/img/receive.svg
Executable file
|
@ -0,0 +1 @@
|
|||
<svg height="300px" width="300px" fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1" viewBox="0 0 100 100" x="0px" y="0px"><title>Artboard 13</title><path d="M45.07,58.81H62.55a6.56,6.56,0,1,1,0,13.12H49a2.17,2.17,0,1,0,0,4.34H64.36a7.73,7.73,0,0,0,5.78-2.59l16.54-18.9a6.81,6.81,0,0,1,10.22,9l-20.66,24A16.21,16.21,0,0,1,64,93.38H31.78L26.16,99,1.42,78.72l14.21-14A27.37,27.37,0,0,1,45.07,58.81Zm-1.28-31a6,6,0,0,0-1.17.34,5,5,0,0,0-1,.56,4.08,4.08,0,0,0-.82.77,4,4,0,0,0-.7,1.32,3.73,3.73,0,0,0-.15,1.4,4,4,0,0,0,.37,1.38,4.78,4.78,0,0,0,.86,1.26L56,50.52a4.24,4.24,0,0,0,.77.64,5.05,5.05,0,0,0,.93.48,5.71,5.71,0,0,0,1,.3,6.07,6.07,0,0,0,2.22,0,5.71,5.71,0,0,0,1-.3,5.06,5.06,0,0,0,.93-.48,4.26,4.26,0,0,0,.77-.64L78.57,34.82a5.12,5.12,0,0,0,.48-.58,4.55,4.55,0,0,0,.37-.63,4.17,4.17,0,0,0,.25-.66,4,4,0,0,0,.13-.69,3.85,3.85,0,0,0,0-.53,3.76,3.76,0,0,0-.06-.53,3.66,3.66,0,0,0-.13-.51,3.6,3.6,0,0,0-.21-.49,4.08,4.08,0,0,0-.74-1,4.56,4.56,0,0,0-1-.79,5.23,5.23,0,0,0-1.28-.5,5.92,5.92,0,0,0-1.45-.18h-6.2l.95-21.41a4.94,4.94,0,0,0-.33-2,5,5,0,0,0-1.09-1.68,5.19,5.19,0,0,0-1.68-1.15A5.38,5.38,0,0,0,64.45,1H55.28a5.38,5.38,0,0,0-2.11.42,5.19,5.19,0,0,0-1.68,1.15A5,5,0,0,0,50.4,4.25a4.94,4.94,0,0,0-.33,2L51,27.68H45A6.91,6.91,0,0,0,43.78,27.8Z"/></svg>
|
After Width: | Height: | Size: 1.2 KiB |
BIN
src/vr/assets/img/rotation/autoturn.png
Executable file
After Width: | Height: | Size: 4.2 KiB |
BIN
src/vr/assets/img/rotation/noautoturn.png
Executable file
After Width: | Height: | Size: 13 KiB |
120
src/vr/assets/img/rotation/noautoturn.svg
Executable file
|
@ -0,0 +1,120 @@
|
|||
<?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"
|
||||
width="100mm"
|
||||
height="100mm"
|
||||
viewBox="0 0 100 100"
|
||||
version="1.1"
|
||||
id="svg8">
|
||||
<defs
|
||||
id="defs2">
|
||||
<rect
|
||||
x="43.277892"
|
||||
y="36.927076"
|
||||
width="23.295368"
|
||||
height="30.546571"
|
||||
id="rect1983" />
|
||||
<marker
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Lend"
|
||||
style="overflow:visible;">
|
||||
<path
|
||||
id="path1440"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
|
||||
transform="scale(0.8) rotate(180) translate(12.5,0)" />
|
||||
</marker>
|
||||
<marker
|
||||
orient="auto"
|
||||
refY="0.0"
|
||||
refX="0.0"
|
||||
id="Arrow1Lstart"
|
||||
style="overflow:visible">
|
||||
<path
|
||||
id="path1437"
|
||||
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
||||
style="fill-rule:evenodd;stroke:#ffffff;stroke-width:1pt;stroke-opacity:1;fill:#ffffff;fill-opacity:1"
|
||||
transform="scale(0.8) translate(12.5,0)" />
|
||||
</marker>
|
||||
</defs>
|
||||
<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>
|
||||
<rect
|
||||
y="17.717316"
|
||||
x="17.717316"
|
||||
height="64.565376"
|
||||
width="64.565376"
|
||||
id="rect1404"
|
||||
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:5.0000958;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<rect
|
||||
y="72.682518"
|
||||
x="26.972013"
|
||||
height="0.34497312"
|
||||
width="46.055973"
|
||||
id="rect1406"
|
||||
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:4.65502977;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<rect
|
||||
transform="rotate(-90)"
|
||||
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:4.61399984;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect1406-3"
|
||||
width="40.386425"
|
||||
height="0.38642606"
|
||||
x="-69.420227"
|
||||
y="72.641556" />
|
||||
<g
|
||||
transform="matrix(2.1165483,0,0,2.1165483,-81.187201,-75.769488)"
|
||||
id="g4567">
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:2.50000007, 2.50000007;stroke-dashoffset:17;stroke-opacity:1"
|
||||
d="m 72.479209,53.094746 c 0,0 -6.460096,-1.327245 -12.308933,4.1861 -5.848839,5.513348 -5.595517,8.406487 -5.595517,8.406487"
|
||||
id="path1435" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:17;stroke-opacity:1"
|
||||
id="path1977"
|
||||
d="m 53.243307,65.791321 0.299848,-4.141501 3.436721,2.330426 z" />
|
||||
</g>
|
||||
<path
|
||||
d="m 72.968407,24.57116 3.522289,6.100784 h -7.044579 z"
|
||||
id="path1979"
|
||||
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:2.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:64.2519989;stroke-opacity:1" />
|
||||
<text
|
||||
y="-87.638542"
|
||||
x="-96.653877"
|
||||
transform="scale(0.9999973,1.0000027)"
|
||||
style="font-style:normal;font-weight:normal;font-size:44.66781998px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect1983);fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2.81372094"
|
||||
id="text1981"
|
||||
xml:space="preserve"><tspan
|
||||
style="stroke-width:2.81372094"
|
||||
x="25.116493"
|
||||
y="55.786346"
|
||||
id="tspan17"><tspan
|
||||
style="font-size:44.66781998px;fill:#ffffff;fill-opacity:1;stroke-width:2.81372094"
|
||||
id="tspan15">A</tspan></tspan></text>
|
||||
<ellipse
|
||||
ry="32.294323"
|
||||
rx="32.294319"
|
||||
cy="49.999966"
|
||||
cx="50.000027"
|
||||
id="path4571"
|
||||
style="fill:none;fill-opacity:1;stroke:#ff0000;stroke-width:4.9769268;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
id="path4573"
|
||||
d="M 28.177966,24.682203 76.165254,69.385592"
|
||||
style="fill:none;stroke:#ff0000;stroke-width:5.0000958;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
|
||||
</svg>
|
After Width: | Height: | Size: 4.5 KiB |
BIN
src/vr/assets/img/send.png
Executable file
After Width: | Height: | Size: 12 KiB |
173
src/vr/assets/img/status_connected.svg
Normal file
|
@ -0,0 +1,173 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
version="1.0"
|
||||
id="svg7854"
|
||||
height="512"
|
||||
width="512"
|
||||
viewBox="9 9 30 30">
|
||||
<defs
|
||||
id="defs7856">
|
||||
<linearGradient
|
||||
id="linearGradient860">
|
||||
<stop
|
||||
id="stop856"
|
||||
offset="0"
|
||||
style="stop-color:#90bb65;stop-opacity:1" />
|
||||
<stop
|
||||
id="stop858"
|
||||
offset="1"
|
||||
style="stop-color:#6ac017;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient7577">
|
||||
<stop
|
||||
id="stop7579"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:0.3137255;" />
|
||||
<stop
|
||||
id="stop7581"
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5167">
|
||||
<stop
|
||||
style="stop-color:#76d717;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5169" />
|
||||
<stop
|
||||
style="stop-color:#509e07;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5171" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5184">
|
||||
<stop
|
||||
style="stop-color:white;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5186" />
|
||||
<stop
|
||||
style="stop-color:white;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop5188" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientTransform="matrix(2.1074616,0,0,2.1078593,-9.43551,-10.006786)"
|
||||
y2="17.024479"
|
||||
x2="16.657505"
|
||||
y1="10.883683"
|
||||
x1="15.011773"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient8317"
|
||||
xlink:href="#linearGradient7577" />
|
||||
<radialGradient
|
||||
gradientTransform="matrix(1.897257,0,0,1.897615,-6.10046,-6.6146433)"
|
||||
r="7.5896134"
|
||||
fy="20.410854"
|
||||
fx="15.865708"
|
||||
cy="20.410854"
|
||||
cx="15.865708"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient8319"
|
||||
xlink:href="#linearGradient5167" />
|
||||
<radialGradient
|
||||
r="5.96875"
|
||||
fy="11.308558"
|
||||
fx="14.05685"
|
||||
cy="11.308558"
|
||||
cx="14.05685"
|
||||
gradientTransform="matrix(-4.2002315,0.5953403,0.2958442,2.0989386,75.31118,-18.732928)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient8321"
|
||||
xlink:href="#linearGradient5184" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(1.7591324,0,0,1.7580929,-3.90899,-4.3562887)"
|
||||
y2="26.431587"
|
||||
x2="13.458839"
|
||||
y1="2.0178134"
|
||||
x1="8.9317284"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient8323"
|
||||
xlink:href="#linearGradient860" />
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata7859">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Lapo Calamandrei</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:source />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
<dc:title></dc:title>
|
||||
<dc:subject>
|
||||
<rdf:Bag>
|
||||
<rdf:li>record</rdf:li>
|
||||
<rdf:li>media</rdf:li>
|
||||
</rdf:Bag>
|
||||
</dc:subject>
|
||||
<dc:contributor>
|
||||
<cc:Agent>
|
||||
<dc:title>Jakub Steiner</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:contributor>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1">
|
||||
<ellipse
|
||||
ry="14.997972"
|
||||
rx="14.995141"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.4;fill:url(#linearGradient8317);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.11079514;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
id="path7691"
|
||||
cx="24.00086"
|
||||
cy="24.002029" />
|
||||
<ellipse
|
||||
ry="13.502028"
|
||||
rx="13.49948"
|
||||
cy="24.002029"
|
||||
cx="24.000866"
|
||||
id="path7968"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient8319);fill-opacity:1;fill-rule:nonzero;stroke:#336402;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
|
||||
<path
|
||||
id="path7970"
|
||||
d="M 25.3861,13.485003 C 20.31979,12.724926 15.45183,15.857848 14,20.764516 c 1.18871,3.18039 3.90811,5.70993 7.46677,6.47724 5.29459,1.141602 10.50115,-2.027543 12.01505,-7.143895 -1.18869,-3.180413 -3.90812,-5.709952 -7.46675,-6.477239 -0.217,-0.04678 -0.41248,-0.103152 -0.62897,-0.135619 z"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.404;fill:url(#radialGradient8321);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.09465754;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
|
||||
<ellipse
|
||||
ry="12.509292"
|
||||
rx="12.516688"
|
||||
cy="24.009293"
|
||||
cx="24.000891"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.54494413;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8323);stroke-width:1.00000215;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
id="path7972" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.4 KiB |
293
src/vr/assets/img/status_disconnected.svg
Normal file
|
@ -0,0 +1,293 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://web.resource.org/cc/"
|
||||
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="512"
|
||||
height="512"
|
||||
viewBox="9 9 30 30"
|
||||
id="svg7854"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.45"
|
||||
version="1.0"
|
||||
sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/actions"
|
||||
sodipodi:docname="media-record.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
inkscape:export-filename="/home/lapo/Desktop/media-icons.png"
|
||||
inkscape:export-xdpi="90"
|
||||
inkscape:export-ydpi="90">
|
||||
<defs
|
||||
id="defs7856">
|
||||
<linearGradient
|
||||
id="linearGradient7577">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.3137255;"
|
||||
offset="0"
|
||||
id="stop7579" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop7581" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5167">
|
||||
<stop
|
||||
id="stop5169"
|
||||
offset="0"
|
||||
style="stop-color:#ef2929;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5171"
|
||||
offset="1"
|
||||
style="stop-color:#c60e0e;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5184"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop5186"
|
||||
offset="0"
|
||||
style="stop-color:white;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5188"
|
||||
offset="1"
|
||||
style="stop-color:white;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5172"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop5174"
|
||||
offset="0"
|
||||
style="stop-color:white;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop5176"
|
||||
offset="1"
|
||||
style="stop-color:white;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient7577"
|
||||
id="linearGradient8317"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="15.011773"
|
||||
y1="10.883683"
|
||||
x2="16.657505"
|
||||
y2="17.024479" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5167"
|
||||
id="radialGradient8319"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
cx="15.865708"
|
||||
cy="20.410854"
|
||||
fx="15.865708"
|
||||
fy="20.410854"
|
||||
r="7.5896134" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5184"
|
||||
id="radialGradient8321"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-4.2002315,0.5953403,0.2958442,2.0989386,-274.68882,-18.732928)"
|
||||
cx="14.05685"
|
||||
cy="11.308558"
|
||||
fx="14.05685"
|
||||
fy="11.308558"
|
||||
r="5.96875" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5172"
|
||||
id="linearGradient8323"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="8.9317284"
|
||||
y1="2.0178134"
|
||||
x2="13.458839"
|
||||
y2="26.431587" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#afafaf"
|
||||
borderopacity="1"
|
||||
gridtolerance="10000"
|
||||
guidetolerance="10"
|
||||
objecttolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="-137.53856"
|
||||
inkscape:cy="10.827794"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
width="48px"
|
||||
height="48px"
|
||||
inkscape:showpageshadow="false"
|
||||
inkscape:window-width="872"
|
||||
inkscape:window-height="971"
|
||||
inkscape:window-x="117"
|
||||
inkscape:window-y="27"
|
||||
showgrid="false"
|
||||
gridspacingx="0.5px"
|
||||
gridspacingy="0.5px"
|
||||
gridempspacing="2"
|
||||
inkscape:grid-points="true"
|
||||
showborder="true"
|
||||
showguides="false"
|
||||
inkscape:guide-bbox="true"
|
||||
borderlayer="true">
|
||||
<sodipodi:guide
|
||||
orientation="horizontal"
|
||||
position="13.125"
|
||||
id="guide7377" />
|
||||
<sodipodi:guide
|
||||
orientation="horizontal"
|
||||
position="5.4800776"
|
||||
id="guide7379" />
|
||||
<sodipodi:guide
|
||||
orientation="horizontal"
|
||||
position="35"
|
||||
id="guide7492" />
|
||||
<sodipodi:guide
|
||||
orientation="horizontal"
|
||||
position="48"
|
||||
id="guide7046" />
|
||||
<sodipodi:guide
|
||||
orientation="horizontal"
|
||||
position="-17.5"
|
||||
id="guide7233" />
|
||||
<sodipodi:guide
|
||||
orientation="horizontal"
|
||||
position="-29"
|
||||
id="guide7235" />
|
||||
<sodipodi:guide
|
||||
orientation="horizontal"
|
||||
position="22.097087"
|
||||
id="guide7556" />
|
||||
<sodipodi:guide
|
||||
orientation="vertical"
|
||||
position="-76.125"
|
||||
id="guide7644" />
|
||||
<sodipodi:guide
|
||||
orientation="vertical"
|
||||
position="-26.125"
|
||||
id="guide7646" />
|
||||
<sodipodi:guide
|
||||
orientation="vertical"
|
||||
position="24"
|
||||
id="guide7648" />
|
||||
<sodipodi:guide
|
||||
orientation="vertical"
|
||||
position="-125.28125"
|
||||
id="guide7665" />
|
||||
<sodipodi:guide
|
||||
orientation="vertical"
|
||||
position="-175.125"
|
||||
id="guide7667" />
|
||||
<sodipodi:guide
|
||||
orientation="vertical"
|
||||
position="-225.83223"
|
||||
id="guide7685" />
|
||||
<sodipodi:guide
|
||||
orientation="vertical"
|
||||
position="-326.06462"
|
||||
id="guide7695" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7859">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Lapo Calamandrei</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:source />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
<dc:title>Record</dc:title>
|
||||
<dc:subject>
|
||||
<rdf:Bag>
|
||||
<rdf:li>record</rdf:li>
|
||||
<rdf:li>media</rdf:li>
|
||||
</rdf:Bag>
|
||||
</dc:subject>
|
||||
<dc:contributor>
|
||||
<cc:Agent>
|
||||
<dc:title>Jakub Steiner</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:contributor>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="g7170"
|
||||
transform="translate(350,0)">
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="opacity:0.4;color:#000000;fill:url(#linearGradient8317);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.52702755;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||
id="path7691"
|
||||
sodipodi:cx="15.865708"
|
||||
sodipodi:cy="16.134291"
|
||||
sodipodi:rx="7.115262"
|
||||
sodipodi:ry="7.115262"
|
||||
d="M 22.98097 16.134291 A 7.115262 7.115262 0 1 1 8.7504463,16.134291 A 7.115262 7.115262 0 1 1 22.98097 16.134291 z"
|
||||
transform="matrix(2.1074616,0,0,2.1078593,-359.43551,-10.006786)" />
|
||||
<g
|
||||
id="g7564">
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="color:#000000;fill:url(#radialGradient8319);fill-opacity:1;fill-rule:nonzero;stroke:#a40000;stroke-width:0.52702755;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||
id="path7968"
|
||||
sodipodi:cx="15.865708"
|
||||
sodipodi:cy="16.134291"
|
||||
sodipodi:rx="7.115262"
|
||||
sodipodi:ry="7.115262"
|
||||
d="M 22.98097 16.134291 A 7.115262 7.115262 0 1 1 8.7504463,16.134291 A 7.115262 7.115262 0 1 1 22.98097 16.134291 z"
|
||||
transform="matrix(1.897257,0,0,1.897615,-356.10046,-6.6146433)" />
|
||||
<path
|
||||
style="opacity:0.64044949;color:#000000;fill:url(#radialGradient8321);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.09465754;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||
d="M -324.6139,13.485003 C -329.68021,12.724926 -334.54817,15.857848 -336,20.764516 C -334.81129,23.944906 -332.09189,26.474446 -328.53323,27.241756 C -323.23864,28.383358 -318.03208,25.214213 -316.51818,20.097861 C -317.70687,16.917448 -320.4263,14.387909 -323.98493,13.620622 C -324.20193,13.573837 -324.39741,13.51747 -324.6139,13.485003 z "
|
||||
id="path7970" />
|
||||
<path
|
||||
transform="matrix(1.7591324,0,0,1.7580929,-353.90899,-4.3562887)"
|
||||
d="M 22.98097 16.134291 A 7.115262 7.115262 0 1 1 8.7504463,16.134291 A 7.115262 7.115262 0 1 1 22.98097 16.134291 z"
|
||||
sodipodi:ry="7.115262"
|
||||
sodipodi:rx="7.115262"
|
||||
sodipodi:cy="16.134291"
|
||||
sodipodi:cx="15.865708"
|
||||
id="path7972"
|
||||
style="opacity:0.54494413;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8323);stroke-width:0.56863129;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||
sodipodi:type="arc" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 10 KiB |
173
src/vr/assets/img/status_lagging.svg
Normal file
|
@ -0,0 +1,173 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
version="1.0"
|
||||
id="svg7854"
|
||||
height="512"
|
||||
width="512"
|
||||
viewBox="9 9 30 30">
|
||||
<defs
|
||||
id="defs7856">
|
||||
<linearGradient
|
||||
id="linearGradient860">
|
||||
<stop
|
||||
id="stop856"
|
||||
offset="0"
|
||||
style="stop-color:#ef9d29;stop-opacity:1" />
|
||||
<stop
|
||||
id="stop858"
|
||||
offset="1"
|
||||
style="stop-color:#c67f0e;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient7577">
|
||||
<stop
|
||||
id="stop7579"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:0.3137255;" />
|
||||
<stop
|
||||
id="stop7581"
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5167">
|
||||
<stop
|
||||
style="stop-color:#ef9a29;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop5169" />
|
||||
<stop
|
||||
style="stop-color:#a6600c;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop5171" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5184">
|
||||
<stop
|
||||
style="stop-color:white;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5186" />
|
||||
<stop
|
||||
style="stop-color:white;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop5188" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientTransform="matrix(2.1074616,0,0,2.1078593,-9.43551,-10.006786)"
|
||||
y2="17.024479"
|
||||
x2="16.657505"
|
||||
y1="10.883683"
|
||||
x1="15.011773"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient8317"
|
||||
xlink:href="#linearGradient7577" />
|
||||
<radialGradient
|
||||
gradientTransform="matrix(1.897257,0,0,1.897615,-6.10046,-6.6146433)"
|
||||
r="7.5896134"
|
||||
fy="20.410854"
|
||||
fx="15.865708"
|
||||
cy="20.410854"
|
||||
cx="15.865708"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient8319"
|
||||
xlink:href="#linearGradient5167" />
|
||||
<radialGradient
|
||||
r="5.96875"
|
||||
fy="11.308558"
|
||||
fx="14.05685"
|
||||
cy="11.308558"
|
||||
cx="14.05685"
|
||||
gradientTransform="matrix(-4.2002315,0.5953403,0.2958442,2.0989386,75.31118,-18.732928)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient8321"
|
||||
xlink:href="#linearGradient5184" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(1.7591324,0,0,1.7580929,-3.90899,-4.3562887)"
|
||||
y2="26.431587"
|
||||
x2="13.458839"
|
||||
y1="2.0178134"
|
||||
x1="8.9317284"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient8323"
|
||||
xlink:href="#linearGradient860" />
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata7859">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Lapo Calamandrei</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:source />
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
<dc:title></dc:title>
|
||||
<dc:subject>
|
||||
<rdf:Bag>
|
||||
<rdf:li>record</rdf:li>
|
||||
<rdf:li>media</rdf:li>
|
||||
</rdf:Bag>
|
||||
</dc:subject>
|
||||
<dc:contributor>
|
||||
<cc:Agent>
|
||||
<dc:title>Jakub Steiner</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:contributor>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1">
|
||||
<ellipse
|
||||
ry="14.997972"
|
||||
rx="14.995141"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.4;fill:url(#linearGradient8317);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.11079514;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
id="path7691"
|
||||
cx="24.00086"
|
||||
cy="24.002029" />
|
||||
<ellipse
|
||||
ry="13.502028"
|
||||
rx="13.49948"
|
||||
cy="24.002029"
|
||||
cx="24.000866"
|
||||
id="path7968"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient8319);fill-opacity:1.0;fill-rule:nonzero;stroke:#8e5700;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
|
||||
<path
|
||||
id="path7970"
|
||||
d="M 25.3861,13.485003 C 20.31979,12.724926 15.45183,15.857848 14,20.764516 c 1.18871,3.18039 3.90811,5.70993 7.46677,6.47724 5.29459,1.141602 10.50115,-2.027543 12.01505,-7.143895 -1.18869,-3.180413 -3.90812,-5.709952 -7.46675,-6.477239 -0.217,-0.04678 -0.41248,-0.103152 -0.62897,-0.135619 z"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.404;fill:url(#radialGradient8321);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.09465754;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none" />
|
||||
<ellipse
|
||||
ry="12.509292"
|
||||
rx="12.516688"
|
||||
cy="24.009293"
|
||||
cx="24.000891"
|
||||
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.54494413;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8323);stroke-width:1.00000215;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none"
|
||||
id="path7972" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.4 KiB |
398
src/vr/assets/img/status_waiting.svg
Normal file
|
@ -0,0 +1,398 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://web.resource.org/cc/"
|
||||
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"
|
||||
inkscape:export-ydpi="90.000000"
|
||||
inkscape:export-xdpi="90.000000"
|
||||
inkscape:export-filename="c:\Tango\git\view-refresh.png"
|
||||
width="512"
|
||||
height="512"
|
||||
viewBox="0 0 48 48"
|
||||
id="svg11300"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.45"
|
||||
sodipodi:docbase="/home/dobey/Projects/gnome-icon-theme/scalable/actions"
|
||||
sodipodi:docname="view-refresh.svg"
|
||||
version="1.0"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape">
|
||||
<defs
|
||||
id="defs3">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient5335">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5337" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop5339" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5313">
|
||||
<stop
|
||||
id="stop5315"
|
||||
offset="0"
|
||||
style="stop-color:#99b8df;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#3969a8;stop-opacity:1;"
|
||||
offset="0.23705086"
|
||||
id="stop5333" />
|
||||
<stop
|
||||
style="stop-color:#4f7eba;stop-opacity:1;"
|
||||
offset="0.54706067"
|
||||
id="stop5317" />
|
||||
<stop
|
||||
id="stop5321"
|
||||
offset="0.74557692"
|
||||
style="stop-color:#96b6d7;stop-opacity:1" />
|
||||
<stop
|
||||
style="stop-color:#a0bddc;stop-opacity:1"
|
||||
offset="0.87321436"
|
||||
id="stop5331" />
|
||||
<stop
|
||||
id="stop5319"
|
||||
offset="1"
|
||||
style="stop-color:#729fcf;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient8152">
|
||||
<stop
|
||||
style="stop-color:#3465a4;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8154" />
|
||||
<stop
|
||||
id="stop3174"
|
||||
offset="0.5"
|
||||
style="stop-color:#4f7eba;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#729fcf;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop8156" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3207">
|
||||
<stop
|
||||
style="stop-color:#eeeeec;stop-opacity:0.47058824;"
|
||||
offset="0"
|
||||
id="stop3209" />
|
||||
<stop
|
||||
style="stop-color:#eeeeec;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop3211" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient2847">
|
||||
<stop
|
||||
style="stop-color:#3465a4;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2849" />
|
||||
<stop
|
||||
style="stop-color:#3465a4;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop2851" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2831">
|
||||
<stop
|
||||
style="stop-color:#3465a4;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2833" />
|
||||
<stop
|
||||
id="stop2855"
|
||||
offset="0.33333334"
|
||||
style="stop-color:#5b86be;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#83a8d8;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop2835" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient8662">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop8664" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop8666" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2831"
|
||||
id="linearGradient1486"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0818662,0,0,1.1166851,-0.8207482,-1.8622434)"
|
||||
x1="13.478554"
|
||||
y1="10.612206"
|
||||
x2="15.419417"
|
||||
y2="19.115122" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2847"
|
||||
id="linearGradient1488"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.0818662,0,0,-1.1166851,50.09459,49.644854)"
|
||||
x1="37.128052"
|
||||
y1="29.729605"
|
||||
x2="37.40255"
|
||||
y2="26.800913" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8662"
|
||||
id="radialGradient1503"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.536723,0,16.87306)"
|
||||
cx="24.837126"
|
||||
cy="36.421127"
|
||||
fx="24.837126"
|
||||
fy="36.421127"
|
||||
r="15.644737" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8152"
|
||||
id="linearGradient8158"
|
||||
x1="49.412277"
|
||||
y1="37.904068"
|
||||
x2="11.881318"
|
||||
y2="19.776045"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2831"
|
||||
id="linearGradient8170"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.0818662,0,0,-1.1166851,48.639854,47.862243)"
|
||||
x1="13.478554"
|
||||
y1="10.612206"
|
||||
x2="15.419417"
|
||||
y2="19.115122" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2847"
|
||||
id="linearGradient8172"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.0818662,0,0,1.1166851,-2.2754847,-3.644854)"
|
||||
x1="37.128052"
|
||||
y1="29.729605"
|
||||
x2="37.40255"
|
||||
y2="26.800913" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient8152"
|
||||
id="linearGradient8174"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="49.412277"
|
||||
y1="37.904068"
|
||||
x2="11.881318"
|
||||
y2="19.776045" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3207"
|
||||
id="linearGradient8178"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="5.8925977"
|
||||
y1="20.540676"
|
||||
x2="45.198921"
|
||||
y2="27.721035" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5313"
|
||||
id="linearGradient8180"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="61.572533"
|
||||
y1="28.049652"
|
||||
x2="10.969182"
|
||||
y2="20.333939" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient5335"
|
||||
id="linearGradient5341"
|
||||
x1="8.6878577"
|
||||
y1="25.265626"
|
||||
x2="52.122673"
|
||||
y2="25.265626"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
stroke="#3465a4"
|
||||
fill="#729fcf"
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#e8e8e8"
|
||||
borderopacity="0.86666667"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1"
|
||||
inkscape:cx="48.628749"
|
||||
inkscape:cy="21.704614"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:showpageshadow="false"
|
||||
inkscape:window-width="892"
|
||||
inkscape:window-height="938"
|
||||
inkscape:window-x="374"
|
||||
inkscape:window-y="37"
|
||||
width="48px"
|
||||
height="48px"
|
||||
borderlayer="true" />
|
||||
<metadata
|
||||
id="metadata4">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Jakub Steiner</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:source>http://jimmac.musichall.cz</dc:source>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
||||
<dc:title>View Refresh</dc:title>
|
||||
<dc:subject>
|
||||
<rdf:Bag>
|
||||
<rdf:li>reload</rdf:li>
|
||||
<rdf:li>refresh</rdf:li>
|
||||
<rdf:li>view</rdf:li>
|
||||
</rdf:Bag>
|
||||
</dc:subject>
|
||||
<dc:contributor>
|
||||
<cc:Agent>
|
||||
<dc:title>Ricardo 'Rick' González</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:contributor>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true">
|
||||
<path
|
||||
transform="matrix(-1.5146484,0,0,-0.7917058,60.923237,69.528413)"
|
||||
d="M 40.481863 36.421127 A 15.644737 8.3968935 0 1 1 9.1923885,36.421127 A 15.644737 8.3968935 0 1 1 40.481863 36.421127 z"
|
||||
sodipodi:ry="8.3968935"
|
||||
sodipodi:rx="15.644737"
|
||||
sodipodi:cy="36.421127"
|
||||
sodipodi:cx="24.837126"
|
||||
id="path8660"
|
||||
style="opacity:0.36111109;color:#000000;fill:url(#radialGradient1503);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
|
||||
sodipodi:type="arc"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true" />
|
||||
<path
|
||||
style="color:#000000;fill:url(#linearGradient1486);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1488);stroke-width:1.04300582000000008;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;opacity:0.51807229"
|
||||
d="M 20.478497,9.7711467 C 20.478497,9.7711467 12.632988,7.9438002 14.368023,21.024298 L 5.1028658,21.024298 C 5.1028658,21.024298 6.0085332,7.5377773 20.478497,9.7711467 z "
|
||||
id="path2865"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
<g
|
||||
id="g1878"
|
||||
transform="matrix(-0.6129282,-0.5154381,-0.5178496,0.610074,58.686164,13.911361)"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
style="fill:url(#linearGradient8158);fill-opacity:1;stroke:#204a87;stroke-width:1.24932528;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
id="path1880"
|
||||
d="M 45.862102,50.273522 C 62.924432,34.96305 47.150241,15.929711 22.760624,12.513943 L 22.113577,3.1522143 L 7.613534,20.510135 L 22.703188,33.23244 C 22.703188,33.23244 22.454828,23.347105 22.454828,23.347105 C 41.289895,24.339584 54.775794,35.675041 45.862102,50.273522 z "
|
||||
style="opacity:1;color:#000000;fill:url(#linearGradient8180);fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:1.24977946000000006;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true" />
|
||||
</g>
|
||||
<g
|
||||
style="fill:none;fill-opacity:1;stroke:url(#linearGradient5341);stroke-width:1.24928653000000001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:0.54819277"
|
||||
inkscape:r_cy="true"
|
||||
inkscape:r_cx="true"
|
||||
transform="matrix(-0.612811,-0.5154406,-0.5177506,0.6100769,58.675633,13.911365)"
|
||||
id="g3185">
|
||||
<path
|
||||
sodipodi:type="inkscape:offset"
|
||||
inkscape:radius="-1.197237"
|
||||
inkscape:original="M 22.125 3.15625 L 7.625 20.5 L 22.71875 33.21875 C 22.718749 33.21875 22.46875 23.34375 22.46875 23.34375 C 41.298509 24.342727 54.468144 35.661007 45.5625 50.25 C 62.614067 34.952315 46.852277 15.923275 22.46875 12.5 L 22.125 3.15625 z "
|
||||
style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5341);stroke-width:1.24928653000000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
|
||||
id="path3189"
|
||||
d="M 21.0625,6.3125 L 9.3125,20.34375 L 21.46875,30.59375 C 21.39688,27.754893 21.28125,23.375 21.28125,23.375 C 21.27502,23.044409 21.405774,22.725958 21.642519,22.495132 C 21.879264,22.264306 22.200923,22.141654 22.53125,22.15625 C 32.170255,22.667629 40.441027,25.773015 45.28125,30.875 C 48.676469,34.453835 50.102049,39.131532 49.125,44.21875 C 50.368339,42.205641 51.107893,40.194594 51.375,38.21875 C 51.870422,34.55401 50.856988,30.946652 48.5625,27.59375 C 43.973525,20.887947 34.236978,15.361613 22.3125,13.6875 C 21.732114,13.606381 21.295727,13.117098 21.28125,12.53125 L 21.0625,6.3125 z "
|
||||
transform="translate(1.0080026e-6,8.5223784e-7)" />
|
||||
</g>
|
||||
<g
|
||||
id="g2424"
|
||||
transform="matrix(0.190868,0.16126,0.16126,-0.190868,-0.719083,15.30613)"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
style="opacity:0.5;fill:none;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:r_cy="true"
|
||||
inkscape:r_cx="true"
|
||||
id="path8160"
|
||||
d="M 27.340608,36.228853 C 27.340608,36.228853 35.186117,38.0562 33.451082,24.975702 L 42.71624,24.975702 C 42.71624,24.975702 41.810572,38.462223 27.340608,36.228853 z "
|
||||
style="color:#000000;fill:url(#linearGradient8170);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8172);stroke-width:1.04300582000000008;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;opacity:0.51807229" />
|
||||
<g
|
||||
style="fill:url(#linearGradient8174);fill-opacity:1;stroke:#204a87;stroke-width:1.24932528;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:r_cy="true"
|
||||
inkscape:r_cx="true"
|
||||
transform="matrix(0.6101332,0.5154999,0.5154881,-0.6101471,-10.618024,32.088556)"
|
||||
id="g8162">
|
||||
<path
|
||||
inkscape:r_cy="true"
|
||||
inkscape:r_cx="true"
|
||||
style="opacity:1;color:#000000;fill:url(#linearGradient8180);fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:1.25256376;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible;enable-background:accumulate"
|
||||
d="M 45.862102,50.273522 C 62.924432,34.96305 47.150241,15.929711 22.760624,12.513943 L 22.113577,3.1522141 L 7.6135337,20.510135 L 22.703188,33.23244 C 22.703188,33.23244 22.454828,23.347105 22.454828,23.347105 C 41.289895,24.339584 54.775794,35.675041 45.862102,50.273522 z "
|
||||
id="path8164"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
</g>
|
||||
<g
|
||||
id="g8166"
|
||||
transform="matrix(0.6128107,0.5154406,0.5177504,-0.6100769,-10.856505,32.088635)"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
style="fill:none;fill-opacity:1;stroke:#204a87;stroke-width:1.24928653;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
|
||||
<path
|
||||
transform="matrix(0.9972307,-2.4605589e-3,-2.4605593e-3,0.9980642,0.2457029,0.2077351)"
|
||||
d="M 21.0625,6.3125 L 9.3125,20.34375 L 21.46875,30.59375 C 21.39688,27.754893 21.28125,23.375 21.28125,23.375 C 21.27502,23.044409 21.405774,22.725958 21.642519,22.495132 C 21.879264,22.264306 22.200923,22.141654 22.53125,22.15625 C 32.170255,22.667629 40.441027,25.773015 45.28125,30.875 C 48.676469,34.453835 50.102049,39.131532 49.125,44.21875 C 50.368339,42.205641 51.107893,40.194594 51.375,38.21875 C 51.870422,34.55401 50.856988,30.946652 48.5625,27.59375 C 43.973525,20.887947 34.236978,15.361613 22.3125,13.6875 C 21.732114,13.606381 21.295727,13.117098 21.28125,12.53125 L 21.0625,6.3125 z "
|
||||
id="path8168"
|
||||
style="opacity:1;color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8178);stroke-width:1.24973191;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.70588235;visibility:visible;display:block;overflow:visible"
|
||||
inkscape:original="M 22.125 3.15625 L 7.625 20.5 L 22.71875 33.21875 C 22.718749 33.21875 22.46875 23.34375 22.46875 23.34375 C 41.298509 24.342727 54.468144 35.661007 45.5625 50.25 C 62.614067 34.952315 46.852277 15.923275 22.46875 12.5 L 22.125 3.15625 z "
|
||||
inkscape:radius="-1.197237"
|
||||
sodipodi:type="inkscape:offset" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 17 KiB |
BIN
src/vr/assets/img/tutorial.png
Normal file
After Width: | Height: | Size: 181 KiB |
BIN
src/vr/assets/img/video/color.png
Executable file
After Width: | Height: | Size: 1.4 KiB |
BIN
src/vr/assets/img/video/dimmer.png
Executable file
After Width: | Height: | Size: 12 KiB |
BIN
src/vr/assets/img/wizard.png
Normal file
After Width: | Height: | Size: 72 KiB |
353
src/vr/main.qml
Normal file
|
@ -0,0 +1,353 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.2
|
||||
import QtGraphicalEffects 1.0
|
||||
import QtQuick.Window 2.0
|
||||
import QtQuick.Controls.Styles 1.4
|
||||
import QtQuick.Dialogs 1.2
|
||||
|
||||
import "."
|
||||
import "mock/Windows.js" as Windows
|
||||
import "mock/Version.js" as Version
|
||||
import "mock/NetworkType.js" as NetworkType
|
||||
import "mock/Settings.js" as Settings
|
||||
import "mock"
|
||||
|
||||
import "qml/common"
|
||||
import "qml/."
|
||||
|
||||
import wowlet.Wallet 1.0
|
||||
import wowlet.WalletManager 1.0
|
||||
|
||||
Rectangle {
|
||||
id: appWindow
|
||||
width: 1600
|
||||
height: 800
|
||||
color: "#1b2939"
|
||||
|
||||
property var currentWallet;
|
||||
property bool disconnected: currentWallet ? currentWallet.disconnected : false
|
||||
property string walletTitle: "lol123"
|
||||
property string walletPath: ""
|
||||
property string statusText: "Idle"
|
||||
property string balanceFormatted: "Balance: 25928.9543 WOW (+3902.32 WOW unconfirmed)"
|
||||
property bool wsConnected: false
|
||||
property int connectionStatus: Wallet.ConnectionStatus_Disconnected;
|
||||
|
||||
property var balance: 0.0
|
||||
property var spendable: 0.0
|
||||
|
||||
property DashboardPage dashboardPage: DashboardPage {
|
||||
visible: false
|
||||
}
|
||||
|
||||
property AboutPage aboutPage: AboutPage {
|
||||
visible: false
|
||||
}
|
||||
|
||||
property WalletPage walletPage: WalletPage {
|
||||
visible: false
|
||||
}
|
||||
|
||||
MyDialogOkPopup {
|
||||
id: messagePopup
|
||||
function showMessage(title, text) {
|
||||
dialogTitle = title
|
||||
dialogText = text
|
||||
open()
|
||||
}
|
||||
}
|
||||
|
||||
MyDialogOkCancelPopup {
|
||||
id: enterPasswordDialog
|
||||
dialogTitle: "Enter Password"
|
||||
dialogWidth: 700
|
||||
dialogHeight: 400
|
||||
|
||||
dialogContentItem: ColumnLayout {
|
||||
RowLayout {
|
||||
Layout.topMargin: 16
|
||||
Layout.leftMargin: 16
|
||||
Layout.rightMargin: 16
|
||||
|
||||
MyText {
|
||||
text: "Password: "
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: walletOpenPassword
|
||||
keyBoardUID: 590
|
||||
color: "#cccccc"
|
||||
text: ""
|
||||
Layout.fillWidth: true
|
||||
font.pointSize: 20
|
||||
function onInputEvent(input) {
|
||||
walletOpenPassword.text = input
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onClosed: {
|
||||
if (okClicked) {
|
||||
if(walletOpenPassword.text === "")
|
||||
return messagePopup.showMessage("Password empty", "Please fill in a password.");
|
||||
|
||||
ctx.onOpenWallet(appWindow.walletPath, walletOpenPassword.text);
|
||||
}
|
||||
}
|
||||
function openPopup() {
|
||||
open()
|
||||
}
|
||||
}
|
||||
|
||||
MyDialogOkCancelPopup {
|
||||
id: createWalletDialog
|
||||
dialogTitle: "Create New Wallet"
|
||||
dialogWidth: 700
|
||||
dialogHeight: 400
|
||||
|
||||
dialogContentItem: ColumnLayout {
|
||||
RowLayout {
|
||||
Layout.topMargin: 16
|
||||
Layout.leftMargin: 16
|
||||
Layout.rightMargin: 16
|
||||
|
||||
MyText {
|
||||
text: "Name: "
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: newWalletName
|
||||
keyBoardUID: 590
|
||||
color: "#cccccc"
|
||||
text: ""
|
||||
Layout.fillWidth: true
|
||||
font.pointSize: 20
|
||||
function onInputEvent(input) {
|
||||
newWalletName.text = input
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.topMargin: 16
|
||||
Layout.leftMargin: 16
|
||||
Layout.rightMargin: 16
|
||||
|
||||
MyText {
|
||||
text: "Password: "
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: newWalletPassword
|
||||
keyBoardUID: 591
|
||||
color: "#cccccc"
|
||||
text: ""
|
||||
Layout.fillWidth: true
|
||||
font.pointSize: 20
|
||||
function onInputEvent(input) {
|
||||
newWalletPassword.text = input
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MyText {
|
||||
fontSize: 16
|
||||
text: "The password field is optional."
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
}
|
||||
onClosed: {
|
||||
if (okClicked) {
|
||||
if(newWalletName.text === "")
|
||||
return messagePopup.showMessage("Invalid name", "Please name the wallet.");
|
||||
|
||||
ctx.createWalletWithoutSpecifyingSeed(newWalletName.text, newWalletPassword.text);
|
||||
}
|
||||
}
|
||||
function openPopup() {
|
||||
open()
|
||||
}
|
||||
}
|
||||
|
||||
StackView {
|
||||
id: mainView
|
||||
anchors.fill: parent
|
||||
|
||||
pushEnter: Transition {
|
||||
PropertyAnimation {
|
||||
property: "x"
|
||||
from: mainView.width
|
||||
to: 0
|
||||
duration: 300
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
pushExit: Transition {
|
||||
PropertyAnimation {
|
||||
property: "x"
|
||||
from: 0
|
||||
to: -mainView.width
|
||||
duration: 300
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
popEnter: Transition {
|
||||
PropertyAnimation {
|
||||
property: "x"
|
||||
from: -mainView.width
|
||||
to: 0
|
||||
duration: 300
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
popExit: Transition {
|
||||
PropertyAnimation {
|
||||
property: "x"
|
||||
from: 0
|
||||
to: mainView.width
|
||||
duration: 300
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
|
||||
initialItem: dashboardPage
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
dashboardPage.onPageCompleted();
|
||||
|
||||
if(typeof ctx !== 'undefined') {
|
||||
ctx.initTor();
|
||||
ctx.initWS();
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: ctx
|
||||
|
||||
function onWsConnected() {
|
||||
console.log("onWsConnected")
|
||||
appWindow.wsConnected = true;
|
||||
}
|
||||
|
||||
function onWsDisconnected() {
|
||||
console.log("onWsDisconnected")
|
||||
appWindow.wsConnected = false;
|
||||
}
|
||||
|
||||
function onWalletOpened(wallet) {
|
||||
console.log("onWalletOpened()");
|
||||
|
||||
appWindow.currentWallet = wallet;
|
||||
appWindow.walletTitle = ctx.walletName;
|
||||
mainView.push(appWindow.walletPage);
|
||||
appWindow.walletPage.onPageCompleted();
|
||||
|
||||
appWindow.currentWallet.connectionStatusChanged.connect(onConnectionStatusChanged);
|
||||
}
|
||||
|
||||
// function onWalletOpened(Wallet *wallet) {
|
||||
|
||||
// currentWallet.heightRefreshed.connect(onHeightRefreshed);
|
||||
// currentWallet.refreshed.connect(onWalletRefresh)
|
||||
// currentWallet.updated.connect(onWalletUpdate)
|
||||
// currentWallet.newBlock.connect(onWalletNewBlock)
|
||||
// currentWallet.moneySpent.connect(onWalletMoneySent)
|
||||
// currentWallet.moneyReceived.connect(onWalletMoneyReceived)
|
||||
// currentWallet.unconfirmedMoneyReceived.connect(onWalletUnconfirmedMoneyReceived)
|
||||
// currentWallet.transactionCreated.connect(onTransactionCreated)
|
||||
// currentWallet.connectionStatusChanged.connect(onWalletConnectionStatusChanged)
|
||||
// currentWallet.deviceButtonRequest.connect(onDeviceButtonRequest);
|
||||
// currentWallet.deviceButtonPressed.connect(onDeviceButtonPressed);
|
||||
// currentWallet.walletPassphraseNeeded.connect(onWalletPassphraseNeededWallet);
|
||||
// currentWallet.transactionCommitted.connect(onTransactionCommitted);
|
||||
|
||||
// middlePanel.paymentClicked.connect(handlePayment);
|
||||
// }
|
||||
|
||||
function onBlockchainSync(height, target) {
|
||||
let blocks = (target > height) ? (target - height) : "?";
|
||||
let heightText = "Blockchain sync: " + blocks + " blocks remaining";
|
||||
appWindow.statusText = heightText;
|
||||
}
|
||||
|
||||
function onRefreshSync(height, target) {
|
||||
let blocks = (target >= height) ? (target - height) : "?";
|
||||
let heightText = "Wallet sync: " + blocks + " blocks remaining";
|
||||
appWindow.statusText = heightText;
|
||||
}
|
||||
|
||||
function onWalletClosed() {
|
||||
console.log("onWalletClosed");
|
||||
|
||||
appWindow.currentWallet.connectionStatusChanged.disconnect(onConnectionStatusChanged);
|
||||
|
||||
appWindow.walletTitle = "";
|
||||
appWindow.balanceFormatted = "";
|
||||
appWindow.balance = 0.0;
|
||||
appWindow.spendable = 0.0;
|
||||
appWindow.connectionStatus = Wallet.ConnectionStatus_Disconnected;
|
||||
}
|
||||
|
||||
function onBalanceUpdatedFormatted(fmt) {
|
||||
appWindow.balanceFormatted = fmt;
|
||||
}
|
||||
|
||||
function onBalanceUpdated(balance, spendable) {
|
||||
appWindow.balance = balance;
|
||||
appWindow.spendable = spendable;
|
||||
}
|
||||
|
||||
function onWalletOpenedError(err) {
|
||||
messagePopup.showMessage("Error", err);
|
||||
}
|
||||
|
||||
function onWalletCreatedError(err) {
|
||||
messagePopup.showMessage("Error", err);
|
||||
}
|
||||
|
||||
function onWalletCreated(wallet) {
|
||||
console.log("walletCreated");
|
||||
}
|
||||
|
||||
function onSynchronized() {
|
||||
appWindow.statusText = "Synchronized";
|
||||
|
||||
appWindow.onConnectionStatusChanged(Wallet.ConnectionStatus_Connected);
|
||||
console.log("onSynchronized");
|
||||
}
|
||||
|
||||
function onWalletOpenPasswordNeeded(invalidPassword, path) { // bool, str
|
||||
enterPasswordDialog.openPopup();
|
||||
}
|
||||
|
||||
function onInitiateTransaction() {
|
||||
console.log("transactionStarted");
|
||||
}
|
||||
|
||||
function onCreateTransactionError(message) { // str
|
||||
console.log("transactionError", message);
|
||||
}
|
||||
|
||||
function onCreateTransactionSuccess(tx, address) { // PendingTransaction
|
||||
// auto-commit all tx's
|
||||
//m_ctx->currentWallet->commitTransactionAsync(tx);
|
||||
console.log("onCreateTransactionSuccess", address)
|
||||
}
|
||||
|
||||
function onTransactionCommitted(status, tx, txid) { // bool,PendingTransaction,stringlist
|
||||
console.log("onTransactionCommitted", status)
|
||||
}
|
||||
}
|
||||
|
||||
function onConnectionStatusChanged(status) {
|
||||
console.log("onConnectionStatusChanged", status)
|
||||
appWindow.connectionStatus = status;
|
||||
}
|
||||
}
|
87
src/vr/qml.qrc
Normal file
|
@ -0,0 +1,87 @@
|
|||
<!DOCTYPE RCC><RCC version="1.0">
|
||||
<qresource prefix="/">
|
||||
<file alias="backarrow">assets/img/common/backarrow.svg</file>
|
||||
<file alias="box_checkmark">assets/img/common/check.svg</file>
|
||||
<file alias="on">assets/img/audio/speaker/speaker_on.svg</file>
|
||||
<file alias="off">assets/img/audio/speaker/speaker_off.svg</file>
|
||||
<file alias="play_pause">assets/img/audio/media_keys/outline_play_pause_white_24dp.svg</file>
|
||||
<file alias="next">assets/img/audio/media_keys/outline_skip_next_white_24dp.svg</file>
|
||||
<file alias="previous">assets/img/audio/media_keys/outline_skip_previous_white_24dp.svg</file>
|
||||
<file alias="stop">assets/img/audio/media_keys/outline_stop_white_24dp.svg</file>
|
||||
<file alias="audio_tab_icon">assets/img/main_menu_icons/audio_tab_icon.svg</file>
|
||||
<file alias="bindings_tab_icon">assets/img/main_menu_icons/bindings_tab_icon.svg</file>
|
||||
<file alias="chaperone_tab_icon">assets/img/main_menu_icons/chaperone_tab_icon.svg</file>
|
||||
<file alias="motion_tab_icon">assets/img/main_menu_icons/motion_tab_icon.svg</file>
|
||||
<file alias="offsets_tab_icon">assets/img/main_menu_icons/offsets_tab_icon.svg</file>
|
||||
<file alias="settings_tab_icon">assets/img/main_menu_icons/settings_tab_icon.svg</file>
|
||||
<file alias="space_fix_tab_icon">assets/img/main_menu_icons/space_fix_tab_icon.svg</file>
|
||||
<file alias="statistics_tab_icon">assets/img/main_menu_icons/statistics_tab_icon.svg</file>
|
||||
<file alias="steamvr_tab_icon">assets/img/main_menu_icons/steamvr_tab_icon.svg</file>
|
||||
<file alias="utilities_tab_icon">assets/img/main_menu_icons/utilities_tab_icon.svg</file>
|
||||
<file alias="video_tab_icon">assets/img/main_menu_icons/video_tab_icon.svg</file>
|
||||
<file alias="rotation_tab_icon">assets/img/main_menu_icons/rotation_tab_icon.svg</file>
|
||||
<file alias="send_icon">assets/img/send.png</file>
|
||||
<file alias="receive_icon">assets/img/receive.svg</file>
|
||||
<file alias="info_icon">assets/img/info.png</file>
|
||||
<file alias="checkmark_icon">assets/img/confirmed.png</file>
|
||||
<file alias="expired_icon">assets/img/expired.png</file>
|
||||
<file alias="illuminati">assets/img/illuminati.png</file>
|
||||
<file alias="chest">assets/img/chest.png</file>
|
||||
<file alias="tutorial">assets/img/tutorial.png</file>
|
||||
<file alias="wizard">assets/img/wizard.png</file>
|
||||
<file alias="hypnotoad">assets/img/hypnotoad.png</file>
|
||||
<file alias="grass">assets/img/grass.png</file>
|
||||
<file alias="dog">assets/img/dog.gif</file>
|
||||
<file alias="dog2">assets/img/dog2.gif</file>
|
||||
<file alias="cpus">assets/img/cpus.png</file>
|
||||
|
||||
<file alias="status_disconnected">assets/img/status_disconnected.svg</file>
|
||||
<file alias="status_connected">assets/img/status_connected.svg</file>
|
||||
<file alias="status_waiting">assets/img/status_waiting.svg</file>
|
||||
<file alias="status_lagging">assets/img/status_lagging.svg</file>
|
||||
|
||||
<file>mock/NetworkType.js</file>
|
||||
<file>mock/OverlayController.js</file>
|
||||
<file>mock/Settings.js</file>
|
||||
<file>mock/Translation.js</file>
|
||||
<file>mock/Version.js</file>
|
||||
<file>mock/Windows.js</file>
|
||||
|
||||
<file alias="main">main.qml</file>
|
||||
<file>qml/common/HourComboBox.qml</file>
|
||||
<file>qml/common/MinuteSecondComboBox.qml</file>
|
||||
<file>qml/common/MyDialogOkCancelPopup.qml</file>
|
||||
<file>qml/common/MyResources.qml</file>
|
||||
<file>qml/common/MyTextField.qml</file>
|
||||
<file>qml/common/MyRadioButton.qml</file>
|
||||
<file>qml/common/MyDialogOkPopup.qml</file>
|
||||
<file>qml/common/MyPushButton2.qml</file>
|
||||
<file>qml/common/MyComboBox.qml</file>
|
||||
<file>qml/common/TimeAssembly.qml</file>
|
||||
<file>qml/common/LineSeparator.qml</file>
|
||||
<file>qml/common/FullWidthSliderBox.qml</file>
|
||||
<file>qml/common/MyText.qml</file>
|
||||
<file>qml/common/MyToggleButton.qml</file>
|
||||
<file>qml/common/MyPushButton.qml</file>
|
||||
<file>qml/common/MySlider.qml</file>
|
||||
<file>qml/common/mainwidget.qml</file>
|
||||
<file>qml/common/MyNumPad.qml</file>
|
||||
<file>qml/common/MyNumPadButton.qml</file>
|
||||
<file>qml/common/MyNumPadSendAmount.qml</file>
|
||||
<file>qml/common/MyStackViewPage.qml</file>
|
||||
<file>qml/wallet/ReceivePage.qml</file>
|
||||
<file>qml/wallet/HistoryTable.qml</file>
|
||||
<file>qml/wallet/WalletDashBoardPage.qml</file>
|
||||
|
||||
<file>qml/DashboardPage.qml</file>
|
||||
<file>qml/WalletPage.qml</file>
|
||||
<file>qml/AboutPage.qml</file>
|
||||
|
||||
<file>qml/wallet/send/SendPage.qml</file>
|
||||
<file>qml/wallet/send/SendPageDashboard.qml</file>
|
||||
<file>qml/wallet/send/SendPageNavBack.qml</file>
|
||||
<file>qml/wallet/send/SendPagePIN.qml</file>
|
||||
<file>qml/wallet/send/SendPageQR.qml</file>
|
||||
<file>qml/wallet/send/SendPageTransfer.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
78
src/vr/qml/AboutPage.qml
Normal file
|
@ -0,0 +1,78 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.2
|
||||
|
||||
import "."
|
||||
import "common"
|
||||
|
||||
ColumnLayout {
|
||||
id: root
|
||||
spacing: 30
|
||||
width: 1600
|
||||
height: 800
|
||||
|
||||
RowLayout {
|
||||
Layout.topMargin: 40
|
||||
Layout.leftMargin: 40
|
||||
Layout.rightMargin: 40
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 200
|
||||
|
||||
ColumnLayout {
|
||||
Layout.preferredWidth: 256
|
||||
Layout.maximumWidth: 256
|
||||
|
||||
Image {
|
||||
Layout.preferredHeight: 256
|
||||
Layout.preferredWidth: 256
|
||||
|
||||
source: "qrc:/illuminati"
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Layout.preferredWidth: 256
|
||||
|
||||
MyText {
|
||||
Layout.leftMargin: 40
|
||||
Layout.rightMargin: 40
|
||||
Layout.fillWidth: true
|
||||
text: "Wowlet VR is an alternative QML interface for wowlet and was made over a 4 week period by eating lots of pizzas. It is the world's first cryptocurrency wallet with support for VR. Wowlet is Free and open-source (BSD-3) software and the source code can be studied on git.wownero.com/wowlet/wowlet"
|
||||
wrap: true
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
MyText {
|
||||
Layout.leftMargin: 40
|
||||
Layout.rightMargin: 40
|
||||
Layout.fillWidth: true
|
||||
text: "By \"dsc\" - April 2021. Shoutouts: OpenVR-AdvancedSettings, qvqc, Gatto, cisme, wowario, lza_menace, jwinterm, nioc, asymptotically, azy, selsta, kico, laura, thrmo, rottensox, solar, bl4sty, scoobybejesus (sorry if I forgot anyone!)"
|
||||
wrap: true
|
||||
}
|
||||
|
||||
MyPushButton {
|
||||
text: "Back"
|
||||
Layout.leftMargin: 40
|
||||
Layout.preferredWidth: 220
|
||||
|
||||
onClicked: {
|
||||
mainView.pop();
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
function onPageCompleted(previousView){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// OverlayController.exitApp();
|
12
src/vr/qml/CreateWalletDialog.qml
Normal file
|
@ -0,0 +1,12 @@
|
|||
// import QtQuick 2.7
|
||||
// import QtQuick.Controls 2.0
|
||||
// import QtQuick.Layouts 1.2
|
||||
// import QtGraphicalEffects 1.0
|
||||
// import QtQuick.Window 2.0
|
||||
// import QtQuick.Controls.Styles 1.4
|
||||
// import QtQuick.Dialogs 1.2
|
||||
|
||||
// //import ovrwow.wowletvr 1.0
|
||||
|
||||
// import "common"
|
||||
|
183
src/vr/qml/DashboardPage.qml
Normal file
|
@ -0,0 +1,183 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.2
|
||||
|
||||
import wowlet.NetworkType 1.0
|
||||
import wowlet.WalletKeysFiles 1.0
|
||||
|
||||
import "."
|
||||
import "common"
|
||||
|
||||
ColumnLayout {
|
||||
id: root
|
||||
width: 1600
|
||||
height: 800
|
||||
|
||||
property var walletList: [];
|
||||
property string enteredColor: "#365473"
|
||||
property string exitedColor: "#2c435d"
|
||||
property string pressedColor: "#406288"
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 128
|
||||
Layout.leftMargin: 40
|
||||
Layout.rightMargin: 40
|
||||
|
||||
RowLayout {
|
||||
MyText {
|
||||
text: "Welcome to Wowlet VR"
|
||||
font.pointSize: 24
|
||||
Layout.leftMargin: 0
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 50
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
Layout.preferredWidth: 720
|
||||
Layout.preferredHeight: 50
|
||||
color: "transparent"
|
||||
|
||||
MyText{
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
fontSize: 14
|
||||
text: "Version 0.1 (Qt " + qtRuntimeVersion + ")"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
color: "#cccccc"
|
||||
height: 1
|
||||
Layout.topMargin: 10
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
Flow {
|
||||
id: flow
|
||||
spacing: 20
|
||||
clip: true
|
||||
|
||||
property int itemHeight: 192
|
||||
property int maxRows: 6
|
||||
|
||||
Layout.topMargin: 30
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: 40
|
||||
|
||||
|
||||
Repeater {
|
||||
id: recentList
|
||||
clip: true
|
||||
model: walletList
|
||||
|
||||
delegate: Rectangle {
|
||||
// inherited roles from walletKeysFilesModel:
|
||||
// index, fileName, modified, accessed, path, networktype, address
|
||||
// @TODO: maybe enforce networktype === 0 (mainnet)
|
||||
|
||||
id: item
|
||||
property var currentItem: walletList[index]
|
||||
property bool about: currentItem.hasOwnProperty("about")
|
||||
property bool create: currentItem.hasOwnProperty("create")
|
||||
color: root.enteredColor
|
||||
height: 256
|
||||
width: 256
|
||||
|
||||
Image {
|
||||
width: 182
|
||||
height: 182
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.bottomMargin: 10
|
||||
source: {
|
||||
if(about) {
|
||||
return "qrc:/hypnotoad";
|
||||
} else if(create) {
|
||||
return "qrc:/wizard";
|
||||
} else {
|
||||
return "qrc:/chest";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Text {
|
||||
color: "white"
|
||||
text: {
|
||||
if(about) {
|
||||
return "About";
|
||||
} else if(create) {
|
||||
return "Create wallet";
|
||||
} else {
|
||||
return currentItem['fileName'].replace(".keys", "");
|
||||
}
|
||||
}
|
||||
font.pointSize: 14
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 14
|
||||
anchors.leftMargin: 14
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
|
||||
onEntered: {
|
||||
parent.color = root.pressedColor
|
||||
}
|
||||
onExited: {
|
||||
parent.color = root.enteredColor;
|
||||
}
|
||||
onClicked: {
|
||||
if(about) {
|
||||
mainView.push(aboutPage);
|
||||
} else if(create) {
|
||||
createWalletDialog.openPopup();
|
||||
} else {
|
||||
appWindow.walletPath = currentItem['path'];
|
||||
ctx.onOpenWallet(currentItem['path'], "");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
function onPageCompleted(previousView){
|
||||
console.log("list wallets");
|
||||
|
||||
let wallets = [];
|
||||
if(typeof ctx !== 'undefined')
|
||||
wallets = ctx.listWallets();
|
||||
|
||||
let _walletList = [];
|
||||
|
||||
for(var i = 0; i != wallets.length; i++) {
|
||||
if(i == 8) // draw 10 items at any time
|
||||
break;
|
||||
_walletList.push(wallets[i]);
|
||||
}
|
||||
|
||||
_walletList.push({"create": true});
|
||||
_walletList.push({"about": true});
|
||||
|
||||
root.walletList = _walletList;
|
||||
}
|
||||
}
|
||||
|
||||
// OverlayController.exitApp();
|
82
src/vr/qml/WalletPage.qml
Executable file
|
@ -0,0 +1,82 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.2
|
||||
import QtGraphicalEffects 1.0
|
||||
import QtQuick.Window 2.0
|
||||
import QtQuick.Controls.Styles 1.4
|
||||
import QtQuick.Dialogs 1.2
|
||||
|
||||
import "."
|
||||
import "common"
|
||||
import "wallet"
|
||||
import "wallet/send"
|
||||
|
||||
|
||||
Rectangle {
|
||||
width: 1600
|
||||
height: 800
|
||||
color: "transparent"
|
||||
|
||||
property WalletDashBoardPage walletDashboardPage: WalletDashBoardPage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property SendPage sendPage: SendPage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property ReceivePage receivePage: ReceivePage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
StackView {
|
||||
id: walletView
|
||||
anchors.fill: parent
|
||||
|
||||
pushEnter: Transition {
|
||||
PropertyAnimation {
|
||||
property: "x"
|
||||
from: walletView.width
|
||||
to: 0
|
||||
duration: 300
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
pushExit: Transition {
|
||||
PropertyAnimation {
|
||||
property: "x"
|
||||
from: 0
|
||||
to: -walletView.width
|
||||
duration: 300
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
popEnter: Transition {
|
||||
PropertyAnimation {
|
||||
property: "x"
|
||||
from: -walletView.width
|
||||
to: 0
|
||||
duration: 300
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
popExit: Transition {
|
||||
PropertyAnimation {
|
||||
property: "x"
|
||||
from: 0
|
||||
to: walletView.width
|
||||
duration: 300
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
|
||||
initialItem: walletDashboardPage
|
||||
}
|
||||
|
||||
function onPageCompleted() {
|
||||
walletDashboardPage.onPageCompleted();
|
||||
}
|
||||
}
|
93
src/vr/qml/common/FullWidthSliderBox.qml
Executable file
|
@ -0,0 +1,93 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
|
||||
GroupBox {
|
||||
// Public properties
|
||||
// Overload
|
||||
property alias headerMessage: headerText.text
|
||||
property alias sliderText: steamDesktopForwardText.text
|
||||
property alias sliderValue: steamDesktopForwardSlider.value
|
||||
property alias lowerLimit: steamDesktopForwardSlider.from
|
||||
property alias upperLimit: steamDesktopForwardSlider.to
|
||||
property alias kbUID: steamDesktopForwardText.keyBoardUID
|
||||
|
||||
|
||||
function onValueChanged(value) {
|
||||
|
||||
}
|
||||
|
||||
function onComponentComplete() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Private properties
|
||||
id: sliderBox
|
||||
Layout.fillWidth: true
|
||||
label: MyText {
|
||||
id: headerText
|
||||
leftPadding: 10
|
||||
text: "MISSING HEADER TEXT"
|
||||
bottomPadding: -10
|
||||
}
|
||||
background: Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "#ffffff"
|
||||
radius: 8
|
||||
}
|
||||
|
||||
property real sliderStepSize: 0.10
|
||||
readonly property real rightLeftLimit: 4.0
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
LineSeparator {
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
RowLayout {
|
||||
MyPushButton2 {
|
||||
Layout.preferredWidth: 40
|
||||
text: "-"
|
||||
onClicked: {
|
||||
steamDesktopForwardSlider.value -= sliderStepSize
|
||||
}
|
||||
}
|
||||
|
||||
MySlider {
|
||||
id: steamDesktopForwardSlider
|
||||
from: -rightLeftLimit
|
||||
to: rightLeftLimit
|
||||
stepSize: sliderStepSize
|
||||
Layout.fillWidth: true
|
||||
onValueChanged: {
|
||||
sliderBox.onValueChanged(this.value)
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton2 {
|
||||
Layout.preferredWidth: 40
|
||||
text: "+"
|
||||
onClicked: {
|
||||
steamDesktopForwardSlider.value += sliderStepSize
|
||||
}
|
||||
}
|
||||
|
||||
MyTextField {
|
||||
id: steamDesktopForwardText
|
||||
text: "0.0"
|
||||
keyBoardUID: 611
|
||||
Layout.preferredWidth: 100
|
||||
Layout.leftMargin: 10
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Component.onCompleted: {
|
||||
sliderBox.onComponentComplete()
|
||||
}
|
||||
}
|
49
src/vr/qml/common/HourComboBox.qml
Executable file
|
@ -0,0 +1,49 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
|
||||
MyComboBox {
|
||||
|
||||
model: [
|
||||
{ value: 0, text: "00" },
|
||||
{ value: 1, text: "01" },
|
||||
{ value: 2, text: "02" },
|
||||
{ value: 3, text: "03" },
|
||||
{ value: 4, text: "04" },
|
||||
{ value: 5, text: "05" },
|
||||
{ value: 6, text: "06" },
|
||||
{ value: 7, text: "07" },
|
||||
{ value: 8, text: "08" },
|
||||
{ value: 9, text: "09" },
|
||||
{ value: 10, text: "10" },
|
||||
{ value: 11, text: "11" },
|
||||
{ value: 12, text: "12" },
|
||||
{ value: 13, text: "13" },
|
||||
{ value: 14, text: "14" },
|
||||
{ value: 15, text: "15" },
|
||||
{ value: 16, text: "16" },
|
||||
{ value: 17, text: "17" },
|
||||
{ value: 18, text: "18" },
|
||||
{ value: 19, text: "19" },
|
||||
{ value: 20, text: "20" },
|
||||
{ value: 21, text: "21" },
|
||||
{ value: 22, text: "22" },
|
||||
{ value: 23, text: "23" },
|
||||
]
|
||||
|
||||
delegate: ItemDelegate {
|
||||
width: parent.width
|
||||
text: modelData.text
|
||||
hoverEnabled: true
|
||||
contentItem: MyText {
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
text: parent.text
|
||||
color: parent.enabled ? "#ffffff" : "#909090"
|
||||
}
|
||||
background: Rectangle {
|
||||
color: parent.pressed ? "#406288" : (parent.hovered ? "#365473" : "#2c435d")
|
||||
}
|
||||
}
|
||||
}
|
15
src/vr/qml/common/LineSeparator.qml
Executable file
|
@ -0,0 +1,15 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
// Necessary for the project specific Components.
|
||||
import ".."
|
||||
|
||||
// Insert inside a ColumnLayout containing this and a RowLayout
|
||||
// to neatly separate header and buttons.
|
||||
Rectangle {
|
||||
color: "#ffffff"
|
||||
height: 1
|
||||
Layout.fillWidth: true
|
||||
Layout.bottomMargin: 5
|
||||
}
|
85
src/vr/qml/common/MinuteSecondComboBox.qml
Executable file
|
@ -0,0 +1,85 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
|
||||
MyComboBox {
|
||||
|
||||
model: [
|
||||
{ value: 0, text: "00" },
|
||||
{ value: 1, text: "01" },
|
||||
{ value: 2, text: "02" },
|
||||
{ value: 3, text: "03" },
|
||||
{ value: 4, text: "04" },
|
||||
{ value: 5, text: "05" },
|
||||
{ value: 6, text: "06" },
|
||||
{ value: 7, text: "07" },
|
||||
{ value: 8, text: "08" },
|
||||
{ value: 9, text: "09" },
|
||||
{ value: 10, text: "10" },
|
||||
{ value: 11, text: "11" },
|
||||
{ value: 12, text: "12" },
|
||||
{ value: 13, text: "13" },
|
||||
{ value: 14, text: "14" },
|
||||
{ value: 15, text: "15" },
|
||||
{ value: 16, text: "16" },
|
||||
{ value: 17, text: "17" },
|
||||
{ value: 18, text: "18" },
|
||||
{ value: 19, text: "19" },
|
||||
{ value: 20, text: "20" },
|
||||
{ value: 21, text: "21" },
|
||||
{ value: 22, text: "22" },
|
||||
{ value: 23, text: "23" },
|
||||
{ value: 24, text: "24" },
|
||||
{ value: 25, text: "25" },
|
||||
{ value: 26, text: "26" },
|
||||
{ value: 27, text: "27" },
|
||||
{ value: 28, text: "28" },
|
||||
{ value: 29, text: "29" },
|
||||
{ value: 30, text: "30" },
|
||||
{ value: 31, text: "31" },
|
||||
{ value: 32, text: "32" },
|
||||
{ value: 33, text: "33" },
|
||||
{ value: 34, text: "34" },
|
||||
{ value: 35, text: "35" },
|
||||
{ value: 36, text: "36" },
|
||||
{ value: 37, text: "37" },
|
||||
{ value: 38, text: "38" },
|
||||
{ value: 39, text: "39" },
|
||||
{ value: 40, text: "40" },
|
||||
{ value: 41, text: "41" },
|
||||
{ value: 42, text: "42" },
|
||||
{ value: 43, text: "43" },
|
||||
{ value: 44, text: "44" },
|
||||
{ value: 45, text: "45" },
|
||||
{ value: 46, text: "46" },
|
||||
{ value: 47, text: "47" },
|
||||
{ value: 48, text: "48" },
|
||||
{ value: 49, text: "49" },
|
||||
{ value: 50, text: "50" },
|
||||
{ value: 51, text: "51" },
|
||||
{ value: 52, text: "52" },
|
||||
{ value: 53, text: "53" },
|
||||
{ value: 54, text: "54" },
|
||||
{ value: 55, text: "55" },
|
||||
{ value: 56, text: "56" },
|
||||
{ value: 57, text: "57" },
|
||||
{ value: 58, text: "58" },
|
||||
{ value: 59, text: "59" }
|
||||
]
|
||||
|
||||
delegate: ItemDelegate {
|
||||
width: parent.width
|
||||
text: modelData.text
|
||||
hoverEnabled: true
|
||||
contentItem: MyText {
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
text: parent.text
|
||||
color: parent.enabled ? "#ffffff" : "#909090"
|
||||
}
|
||||
background: Rectangle {
|
||||
color: parent.pressed ? "#406288" : (parent.hovered ? "#365473" : "#2c435d")
|
||||
}
|
||||
}
|
||||
}
|
73
src/vr/qml/common/MyComboBox.qml
Executable file
|
@ -0,0 +1,73 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
|
||||
|
||||
|
||||
ComboBox {
|
||||
id: myComboBox
|
||||
hoverEnabled: true
|
||||
background: Rectangle {
|
||||
color: parent.pressed ? "#406288" : (parent.activeFocus ? "#365473" : "#2c435d")
|
||||
}
|
||||
|
||||
contentItem: MyText {
|
||||
leftPadding: 0
|
||||
rightPadding: parent.indicator.width + parent.spacing
|
||||
text: parent.displayText
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
elide: Text.ElideRight
|
||||
}
|
||||
|
||||
delegate: ItemDelegate {
|
||||
width: myComboBox.width
|
||||
text: modelData
|
||||
hoverEnabled: true
|
||||
contentItem: MyText {
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
text: parent.text
|
||||
color: parent.enabled ? "#ffffff" : "#909090"
|
||||
}
|
||||
background: Rectangle {
|
||||
color: parent.pressed ? "#406288" : (parent.hovered ? "#365473" : "#2c435d")
|
||||
}
|
||||
}
|
||||
|
||||
indicator: Canvas {
|
||||
x: parent.width - width - parent.rightPadding
|
||||
y: parent.topPadding + (parent.availableHeight - height) / 2
|
||||
width: 13
|
||||
height: 7
|
||||
contextType: "2d"
|
||||
|
||||
onPaint: {
|
||||
if (!context) {
|
||||
getContext("2d")
|
||||
}
|
||||
context.reset();
|
||||
context.lineWidth = 2
|
||||
context.moveTo(1, 1);
|
||||
context.lineTo(Math.ceil(width / 2), height - 1);
|
||||
context.lineTo(width - 1, 1);
|
||||
context.strokeStyle = "#ffffff"
|
||||
context.stroke()
|
||||
}
|
||||
}
|
||||
|
||||
onHoveredChanged: {
|
||||
if (hovered) {
|
||||
forceActiveFocus()
|
||||
}
|
||||
}
|
||||
|
||||
onActivated: {
|
||||
if (activeFocus) {
|
||||
MyResources.playActivationSound()
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
popup.background.color = "#2c435d"
|
||||
}
|
||||
}
|
99
src/vr/qml/common/MyDialogOkCancelPopup.qml
Executable file
|
@ -0,0 +1,99 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
Popup {
|
||||
id: myDialogPopup
|
||||
|
||||
implicitHeight: parent.height
|
||||
implicitWidth: parent.width
|
||||
|
||||
property string dialogTitle: ""
|
||||
property string dialogText: ""
|
||||
property int dialogWidth: 600
|
||||
property int dialogHeight: 300
|
||||
|
||||
property Item dialogContentItem: MyText {
|
||||
text: dialogText
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
property bool okClicked: false
|
||||
|
||||
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
|
||||
|
||||
background: Rectangle {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
color: "black"
|
||||
opacity: 0.8
|
||||
}
|
||||
|
||||
contentItem: Item {
|
||||
Rectangle {
|
||||
implicitWidth: dialogWidth
|
||||
implicitHeight: dialogHeight
|
||||
anchors.centerIn: parent
|
||||
radius: 24
|
||||
color: "#1b2939"
|
||||
border.color: "#cccccc"
|
||||
border.width: 2
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 12
|
||||
MyText {
|
||||
Layout.leftMargin: 16
|
||||
Layout.rightMargin: 16
|
||||
text: dialogTitle
|
||||
}
|
||||
Rectangle {
|
||||
color: "#cccccc"
|
||||
height: 1
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ColumnLayout {
|
||||
id: dialogContent
|
||||
}
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: 24
|
||||
Layout.rightMargin: 24
|
||||
Layout.bottomMargin: 12
|
||||
MyPushButton {
|
||||
implicitWidth: 200
|
||||
text: "Ok"
|
||||
onClicked: {
|
||||
okClicked = true
|
||||
myDialogPopup.close()
|
||||
}
|
||||
}
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
MyPushButton {
|
||||
implicitWidth: 200
|
||||
text: "Cancel"
|
||||
onClicked: {
|
||||
okClicked = false
|
||||
myDialogPopup.close()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
dialogContentItem.parent = dialogContent
|
||||
}
|
||||
}
|
93
src/vr/qml/common/MyDialogOkPopup.qml
Executable file
|
@ -0,0 +1,93 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
Popup {
|
||||
id: myDialogPopup
|
||||
|
||||
implicitHeight: parent.height
|
||||
implicitWidth: parent.width
|
||||
|
||||
property string dialogTitle: ""
|
||||
property string dialogText: ""
|
||||
property int dialogWidth: 800
|
||||
property int dialogHeight: 300
|
||||
|
||||
property Item dialogContentItem: MyText {
|
||||
fontSize:16
|
||||
text: dialogText
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
property bool okClicked: false
|
||||
|
||||
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
|
||||
|
||||
background: Rectangle {
|
||||
color: "black"
|
||||
opacity: 0.8
|
||||
}
|
||||
|
||||
contentItem: Item {
|
||||
Rectangle {
|
||||
implicitWidth: dialogWidth
|
||||
implicitHeight: dialogHeight
|
||||
anchors.centerIn: parent
|
||||
radius: 24
|
||||
color: "#1b2939"
|
||||
border.color: "#cccccc"
|
||||
border.width: 2
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 12
|
||||
MyText {
|
||||
Layout.leftMargin: 16
|
||||
Layout.rightMargin: 16
|
||||
text: dialogTitle
|
||||
}
|
||||
Rectangle {
|
||||
color: "#cccccc"
|
||||
height: 1
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ColumnLayout {
|
||||
id: dialogContent
|
||||
}
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
Layout.leftMargin: 24
|
||||
Layout.rightMargin: 24
|
||||
Layout.bottomMargin: 12
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
MyPushButton {
|
||||
implicitWidth: 200
|
||||
text: "Ok"
|
||||
onClicked: {
|
||||
okClicked = true
|
||||
myDialogPopup.close()
|
||||
}
|
||||
}
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
dialogContentItem.parent = dialogContent
|
||||
}
|
||||
}
|
136
src/vr/qml/common/MyNumPad.qml
Normal file
|
@ -0,0 +1,136 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import "."
|
||||
|
||||
ColumnLayout {
|
||||
id: root
|
||||
enabled: true
|
||||
|
||||
property double disabledOpacity: 0.4
|
||||
property var code: [];
|
||||
|
||||
signal resolvePressed();
|
||||
signal codeUpdated(var pin_code);
|
||||
|
||||
function onButtonPress(val) {
|
||||
code.push(val);
|
||||
|
||||
if(code.length === 5)
|
||||
code = [val];
|
||||
|
||||
codeUpdated(code);
|
||||
}
|
||||
|
||||
function reset() {
|
||||
root.code = [];
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 20
|
||||
|
||||
MyNumPadButton {
|
||||
opacity: root.enabled ? 1 : disabledOpacity
|
||||
text: "1"
|
||||
onClicked: {
|
||||
onButtonPress("1");
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
opacity: root.enabled ? 1 : disabledOpacity
|
||||
text: "2"
|
||||
onClicked: {
|
||||
onButtonPress("2");
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
opacity: root.enabled ? 1 : disabledOpacity
|
||||
text: "3"
|
||||
onClicked: {
|
||||
onButtonPress("3");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 20
|
||||
|
||||
MyNumPadButton {
|
||||
opacity: root.enabled ? 1 : disabledOpacity
|
||||
text: "4"
|
||||
onClicked: {
|
||||
onButtonPress("4");
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
opacity: root.enabled ? 1 : disabledOpacity
|
||||
text: "5"
|
||||
onClicked: {
|
||||
onButtonPress("5");
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
opacity: root.enabled ? 1 : disabledOpacity
|
||||
text: "6"
|
||||
onClicked: {
|
||||
onButtonPress("6");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 20
|
||||
|
||||
MyNumPadButton {
|
||||
opacity: root.enabled ? 1 : disabledOpacity
|
||||
text: "7"
|
||||
onClicked: {
|
||||
onButtonPress("7");
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
opacity: root.enabled ? 1 : disabledOpacity
|
||||
text: "8"
|
||||
onClicked: {
|
||||
onButtonPress("8");
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
opacity: root.enabled ? 1 : disabledOpacity
|
||||
text: "9"
|
||||
onClicked: {
|
||||
onButtonPress("9");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 20
|
||||
|
||||
MyNumPadButton {
|
||||
opacity: root.enabled ? 1 : disabledOpacity
|
||||
text: "0"
|
||||
onClicked: {
|
||||
onButtonPress("0");
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
opacity: root.enabled ? 1 : disabledOpacity
|
||||
|
||||
Layout.preferredWidth: 204
|
||||
fontSize: 16
|
||||
text: "Clear"
|
||||
onClicked: {
|
||||
root.code = [0,0,0,0];
|
||||
root.codeUpdated(root.code);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
40
src/vr/qml/common/MyNumPadButton.qml
Normal file
|
@ -0,0 +1,40 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
property string text: ""
|
||||
property int fontSize: 22
|
||||
property string enteredColor: "#365473"
|
||||
property string exitedColor: "#2c435d"
|
||||
property string pressedColor: "#406288"
|
||||
property alias mouseArea: mouseArea
|
||||
|
||||
signal clicked;
|
||||
|
||||
Layout.preferredWidth: 92
|
||||
Layout.preferredHeight: 92
|
||||
color: root.exitedColor
|
||||
|
||||
MyText {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
color: "white"
|
||||
text: root.text
|
||||
fontSize: root.fontSize
|
||||
fontBold: true
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onEntered: parent.color = root.enteredColor
|
||||
onExited: parent.color = root.exitedColor
|
||||
onPressed: parent.color = root.pressedColor
|
||||
onClicked: {
|
||||
root.clicked();
|
||||
}
|
||||
}
|
||||
}
|
172
src/vr/qml/common/MyNumPadSendAmount.qml
Normal file
|
@ -0,0 +1,172 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import "."
|
||||
|
||||
RowLayout {
|
||||
id: root
|
||||
property double amount: 0.0;
|
||||
property bool add: true;
|
||||
|
||||
property string enteredColor: "#365473"
|
||||
property string exitedColor: "#2c435d"
|
||||
property string pressedColor: "#406288"
|
||||
|
||||
signal amountUpdated(double amount);
|
||||
|
||||
spacing: 24
|
||||
|
||||
function reset() {
|
||||
root.amount = 0.0;
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
id: minButton
|
||||
mouseArea.enabled: false
|
||||
fontSize: 18
|
||||
|
||||
Layout.preferredWidth: 128
|
||||
Layout.preferredHeight: 112
|
||||
|
||||
color: root.add ? root.exitedColor : root.enteredColor
|
||||
|
||||
text: "-"
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onEntered: {
|
||||
if(!root.add) return;
|
||||
parent.color = root.enteredColor
|
||||
}
|
||||
onExited: {
|
||||
if(!root.add) return;
|
||||
parent.color = root.exitedColor
|
||||
}
|
||||
onClicked: {
|
||||
root.add = false;
|
||||
plusButton.color = root.exitedColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
id: plusButton
|
||||
mouseArea.enabled: false
|
||||
fontSize: 18
|
||||
|
||||
Layout.preferredWidth: 128
|
||||
Layout.preferredHeight: 112
|
||||
|
||||
color: root.add ? root.enteredColor : root.exitedColor
|
||||
|
||||
text: "+"
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onEntered: {
|
||||
if(root.add) return;
|
||||
parent.color = root.enteredColor
|
||||
}
|
||||
onExited: {
|
||||
if(root.add) return;
|
||||
parent.color = root.exitedColor
|
||||
}
|
||||
onClicked: {
|
||||
root.add = true;
|
||||
minButton.color = root.exitedColor
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
color: "#cccccc"
|
||||
width: 1
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
fontSize: 18
|
||||
Layout.preferredWidth: 180
|
||||
Layout.preferredHeight: 112
|
||||
text: "0.001"
|
||||
onClicked: {
|
||||
root.add ? root.amount += 0.001 : root.amount -= 0.001;
|
||||
if(root.amount <= 0.0) root.amount = 0.0;
|
||||
amountUpdated(root.amount);
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
fontSize: 18
|
||||
Layout.preferredWidth: 148
|
||||
Layout.preferredHeight: 112
|
||||
text: "0.01"
|
||||
onClicked: {
|
||||
root.add ? root.amount += 0.01 : root.amount -= 0.01;
|
||||
if(root.amount <= 0.0) root.amount = 0.0;
|
||||
amountUpdated(root.amount);
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
fontSize: 18
|
||||
Layout.preferredWidth: 128
|
||||
Layout.preferredHeight: 112
|
||||
text: "0.1"
|
||||
onClicked: {
|
||||
root.add ? root.amount += 0.1 : root.amount -= 0.1;
|
||||
if(root.amount <= 0.0) root.amount = 0.0;
|
||||
amountUpdated(root.amount);
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
fontSize: 18
|
||||
Layout.preferredWidth: 128
|
||||
Layout.preferredHeight: 112
|
||||
text: "1"
|
||||
onClicked: {
|
||||
root.add ? root.amount += 1.0 : root.amount -= 1.0;
|
||||
if(root.amount <= 0.0) root.amount = 0.0;
|
||||
amountUpdated(root.amount);
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
fontSize: 18
|
||||
Layout.preferredWidth: 168
|
||||
Layout.preferredHeight: 112
|
||||
text: "10"
|
||||
onClicked: {
|
||||
root.add ? root.amount += 10.0 : root.amount -= 10.0;
|
||||
if(root.amount <= 0.0) root.amount = 0.0;
|
||||
amountUpdated(root.amount);
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
fontSize: 18
|
||||
Layout.preferredWidth: 128
|
||||
Layout.preferredHeight: 112
|
||||
text: "100"
|
||||
onClicked: {
|
||||
root.add ? root.amount += 100.0 : root.amount -= 100.0;
|
||||
if(root.amount <= 0.0) root.amount = 0.0;
|
||||
amountUpdated(root.amount);
|
||||
}
|
||||
}
|
||||
|
||||
MyNumPadButton {
|
||||
fontSize: 18
|
||||
Layout.preferredWidth: 168
|
||||
Layout.preferredHeight: 112
|
||||
text: "1000"
|
||||
onClicked: {
|
||||
root.add ? root.amount += 1000.0 : root.amount -= 1000.0;
|
||||
if(root.amount <= 0.0) root.amount = 0.0;
|
||||
amountUpdated(root.amount);
|
||||
}
|
||||
}
|
||||
}
|
62
src/vr/qml/common/MyPushButton.qml
Executable file
|
@ -0,0 +1,62 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.2
|
||||
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
|
||||
|
||||
Item {
|
||||
id: root
|
||||
property string text: "testy"
|
||||
property string iconPath: ""
|
||||
property bool hasIcon: iconPath !== ""
|
||||
property bool hoverEnabled: true
|
||||
property bool activationSoundEnabled: true
|
||||
property string enteredColor: "#365473"
|
||||
property string exitedColor: "#2c435d"
|
||||
property string pressedColor: "#406288"
|
||||
signal clicked;
|
||||
|
||||
Layout.preferredHeight: 70
|
||||
|
||||
RowLayout {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
Layout.minimumHeight: 54
|
||||
|
||||
Image {
|
||||
visible: hasIcon
|
||||
source: iconPath
|
||||
Layout.leftMargin: 20
|
||||
Layout.rightMargin: 20
|
||||
Layout.preferredWidth: 32
|
||||
Layout.preferredHeight: 32
|
||||
}
|
||||
|
||||
MyText {
|
||||
Layout.leftMargin: root.hasIcon ? 0 : 20
|
||||
Layout.rightMargin: root.hasIcon ? 0 : 20
|
||||
Layout.fillWidth: root.hasIcon ? true : false
|
||||
Layout.alignment: root.hasIcon ? Qt.AlignLeft : Qt.AlignHCenter
|
||||
text: root.text
|
||||
fontSize: 16
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
z: root.z - 1
|
||||
anchors.fill: root
|
||||
Layout.fillWidth: root.Layout.fillWidth
|
||||
color: root.down ? root.pressedColor : (root.activeFocus ? root.enteredColor : root.exitedColor)
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onEntered: parent.color = root.enteredColor
|
||||
onExited: parent.color = root.exitedColor
|
||||
onPressed: parent.color = root.pressedColor
|
||||
onClicked: {
|
||||
root.clicked();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
29
src/vr/qml/common/MyPushButton2.qml
Executable file
|
@ -0,0 +1,29 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
|
||||
|
||||
Button {
|
||||
hoverEnabled: true
|
||||
contentItem: MyText {
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
text: parent.text
|
||||
color: parent.enabled ? "#ffffff" : "#909090"
|
||||
}
|
||||
background: Rectangle {
|
||||
color: parent.down ? "#406288" : (parent.activeFocus ? "#365473" : "transparent")
|
||||
border.color: parent.enabled ? "#ffffff" : "#909090"
|
||||
radius: 8
|
||||
}
|
||||
onHoveredChanged: {
|
||||
if (hovered) {
|
||||
forceActiveFocus()
|
||||
} else {
|
||||
focus = false
|
||||
}
|
||||
}
|
||||
|
||||
onClicked: {
|
||||
MyResources.playActivationSound()
|
||||
}
|
||||
}
|
24
src/vr/qml/common/MyRadioButton.qml
Executable file
|
@ -0,0 +1,24 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
|
||||
|
||||
RadioButton {
|
||||
hoverEnabled: true
|
||||
contentItem: MyText {
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
text: parent.text
|
||||
color: parent.enabled ? "#ffffff" : "#909090"
|
||||
}
|
||||
onHoveredChanged: {
|
||||
if (hovered) {
|
||||
forceActiveFocus()
|
||||
} else {
|
||||
focus = false
|
||||
}
|
||||
}
|
||||
|
||||
onClicked: {
|
||||
MyResources.playActivationSound()
|
||||
}
|
||||
}
|
12
src/vr/qml/common/MyResources.qml
Executable file
|
@ -0,0 +1,12 @@
|
|||
pragma Singleton
|
||||
import QtQuick 2.7
|
||||
|
||||
|
||||
QtObject {
|
||||
function playActivationSound() {
|
||||
OverlayController.playActivationSound()
|
||||
}
|
||||
function playFocusChangedSound() {
|
||||
OverlayController.playFocusChangedSound()
|
||||
}
|
||||
}
|
54
src/vr/qml/common/MySlider.qml
Executable file
|
@ -0,0 +1,54 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
|
||||
|
||||
|
||||
|
||||
Slider {
|
||||
snapMode: Slider.SnapAlways
|
||||
wheelEnabled: true
|
||||
hoverEnabled: true
|
||||
to: 1.0
|
||||
from: 0.0
|
||||
|
||||
background: Rectangle {
|
||||
x: parent.leftPadding
|
||||
y: parent.topPadding + parent.availableHeight / 2 - height / 2
|
||||
width: parent.availableWidth
|
||||
height: parent.availableHeight
|
||||
radius: 2
|
||||
color: parent.activeFocus ? "#2c435d" : "#1b2939"
|
||||
Rectangle {
|
||||
y: parent.height / 2 - height / 2
|
||||
implicitHeight: 4
|
||||
width: parent.width
|
||||
height: implicitHeight
|
||||
radius: 2
|
||||
color: "#bdbebf"
|
||||
}
|
||||
}
|
||||
|
||||
handle: Rectangle {
|
||||
x: parent.leftPadding + parent.visualPosition * (parent.availableWidth - width)
|
||||
y: parent.topPadding + parent.availableHeight / 2 - height / 2
|
||||
implicitWidth: 20
|
||||
implicitHeight: 40
|
||||
radius: 4
|
||||
color: parent.pressed ? "#ffffff" : "#eeeeee"
|
||||
border.color: "#bdbebf"
|
||||
}
|
||||
|
||||
onHoveredChanged: {
|
||||
if (hovered) {
|
||||
forceActiveFocus()
|
||||
} else {
|
||||
focus = false
|
||||
}
|
||||
}
|
||||
|
||||
onValueChanged: {
|
||||
if (activeFocus) {
|
||||
//MyResources.playActivationSound()
|
||||
}
|
||||
}
|
||||
}
|
275
src/vr/qml/common/MyStackViewPage.qml
Executable file
|
@ -0,0 +1,275 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.2
|
||||
|
||||
import "."
|
||||
import ".."
|
||||
|
||||
import wowlet.Wallet 1.0
|
||||
|
||||
|
||||
Rectangle {
|
||||
color: "#1b2939"
|
||||
width: 1600
|
||||
height: 800
|
||||
|
||||
property StackView stackView
|
||||
property string headerText: "Header Title"
|
||||
property bool headerShowBackButton: true
|
||||
|
||||
signal backClicked();
|
||||
|
||||
property Item header: ColumnLayout {
|
||||
RowLayout {
|
||||
Button {
|
||||
id: headerBackButton
|
||||
Layout.preferredHeight: 50
|
||||
Layout.preferredWidth: 50
|
||||
hoverEnabled: true
|
||||
enabled: headerShowBackButton
|
||||
visible: headerShowBackButton
|
||||
contentItem: Image {
|
||||
source: "qrc:/backarrow"
|
||||
sourceSize.width: 50
|
||||
sourceSize.height: 50
|
||||
anchors.fill: parent
|
||||
}
|
||||
background: Rectangle {
|
||||
opacity: parent.down ? 1.0 : (parent.activeFocus ? 0.5 : 0.0)
|
||||
color: "#406288"
|
||||
radius: 4
|
||||
anchors.fill: parent
|
||||
}
|
||||
onHoveredChanged: {
|
||||
if (hovered) {
|
||||
forceActiveFocus()
|
||||
} else {
|
||||
focus = false
|
||||
}
|
||||
}
|
||||
onClicked: {
|
||||
backClicked();
|
||||
stackView.pop();
|
||||
}
|
||||
}
|
||||
MyText {
|
||||
id: headerTitle
|
||||
text: headerText
|
||||
font.pointSize: 30
|
||||
Layout.leftMargin: headerShowBackButton ? 32 : 0
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 50
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
Layout.preferredWidth: 720
|
||||
Layout.preferredHeight: 50
|
||||
color: "transparent"
|
||||
|
||||
MyText{
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
fontSize: 14
|
||||
fontBold: true
|
||||
text: appWindow.balanceFormatted
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
color: "#cccccc"
|
||||
height: 1
|
||||
Layout.topMargin: 10
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
property Item content: Frame {
|
||||
MyText {
|
||||
text: "Content"
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
id: mainLayout
|
||||
spacing: 12
|
||||
anchors.fill: parent
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: testy66
|
||||
color: "transparent"
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 64
|
||||
|
||||
Rectangle {
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
anchors.leftMargin: 40
|
||||
anchors.rightMargin: 40
|
||||
|
||||
color: "#cccccc"
|
||||
height: 1
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 30
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
Layout.preferredHeight: 64
|
||||
Layout.fillWidth: true
|
||||
|
||||
MyText {
|
||||
Layout.leftMargin: 40
|
||||
|
||||
fontSize: 14
|
||||
text: appWindow.statusText
|
||||
color: "#cccccc"
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
Layout.fillHeight: true
|
||||
Layout.preferredWidth: 1
|
||||
color: "#cccccc"
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillHeight: true
|
||||
spacing: 0
|
||||
|
||||
MyText {
|
||||
fontSize: 14
|
||||
text: "Daemon: "
|
||||
color: "#cccccc"
|
||||
}
|
||||
|
||||
Image {
|
||||
opacity: 0.8
|
||||
Layout.preferredWidth: 32
|
||||
Layout.preferredHeight: 32
|
||||
source: {
|
||||
if(typeof Wallet == 'undefined')
|
||||
return "qrc:/status_disconnected";
|
||||
|
||||
if(appWindow.connectionStatus == Wallet.ConnectionStatus_Connected){
|
||||
return "qrc:/status_connected";
|
||||
} else if(appWindow.connectionStatus == Wallet.ConnectionStatus_Connecting) {
|
||||
return "qrc:/status_lagging";
|
||||
} else {
|
||||
return "qrc:/status_disconnected";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
Layout.fillHeight: true
|
||||
Layout.preferredWidth: 1
|
||||
color: "#cccccc"
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillHeight: true
|
||||
spacing: 0
|
||||
|
||||
MyText {
|
||||
fontSize: 14
|
||||
text: "WS: "
|
||||
color: "#cccccc"
|
||||
}
|
||||
|
||||
Image {
|
||||
opacity: 0.8
|
||||
Layout.preferredWidth: 32
|
||||
Layout.preferredHeight: 32
|
||||
source: appWindow.wsConnected ? "qrc:/status_connected" : "qrc:/status_disconnected"
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
Layout.fillHeight: true
|
||||
Layout.preferredWidth: 1
|
||||
color: "#cccccc"
|
||||
}
|
||||
|
||||
MyText {
|
||||
fontSize: 14
|
||||
text: "Fiat: $0.05 USD"
|
||||
color: "#cccccc"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Rectangle {
|
||||
// z: 100
|
||||
// color: "black"
|
||||
// height: 64
|
||||
|
||||
// // anchors.bottom: parent.bottom
|
||||
// // anchors.left: parent.left
|
||||
// // anchors.right: parent.right
|
||||
|
||||
// Rectangle {
|
||||
// anchors.top: parent.top
|
||||
// anchors.left: parent.left
|
||||
// anchors.right: parent.right
|
||||
|
||||
// anchors.leftMargin: 40
|
||||
// anchors.rightMargin: 40
|
||||
|
||||
// color: "#cccccc"
|
||||
// height: 1
|
||||
// }
|
||||
|
||||
// RowLayout {
|
||||
// spacing: 30
|
||||
// anchors.left: parent.left
|
||||
// anchors.leftMargin: 40
|
||||
// anchors.rightMargin: 40
|
||||
// anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
// MyText {
|
||||
// fontSize: 14
|
||||
// text: "Status: idle"
|
||||
// }
|
||||
|
||||
// MyText {
|
||||
// fontSize: 14
|
||||
// text: "WS: OK"
|
||||
// }
|
||||
|
||||
// MyText {
|
||||
// fontSize: 14
|
||||
// text: "Tor: OK"
|
||||
// }
|
||||
|
||||
// MyText {
|
||||
// fontSize: 14
|
||||
// text: "Height: OK"
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
Component.onCompleted: {
|
||||
header.parent = mainLayout
|
||||
header.Layout.leftMargin = 40
|
||||
header.Layout.topMargin = 30
|
||||
header.Layout.rightMargin = 40
|
||||
content.parent = mainLayout
|
||||
content.Layout.fillHeight = true
|
||||
content.Layout.fillWidth = true
|
||||
|
||||
content.Layout.topMargin = 10
|
||||
content.Layout.leftMargin = 40
|
||||
content.Layout.rightMargin = 40
|
||||
content.Layout.bottomMargin = 40
|
||||
|
||||
testy66.parent = mainLayout
|
||||
}
|
||||
}
|
15
src/vr/qml/common/MyText.qml
Executable file
|
@ -0,0 +1,15 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
|
||||
|
||||
Text {
|
||||
property bool wrap: false
|
||||
property int fontSize: 16
|
||||
property bool fontBold: false
|
||||
property string fontColor: "#ffffff"
|
||||
|
||||
color: fontColor
|
||||
font.bold: fontBold
|
||||
font.pointSize: fontSize
|
||||
wrapMode: wrap ? Text.WordWrap : Text.NoWrap
|
||||
}
|
42
src/vr/qml/common/MyTextField.qml
Executable file
|
@ -0,0 +1,42 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
|
||||
TextField {
|
||||
property int keyBoardUID: 0
|
||||
property string savedText: ""
|
||||
property bool passwordField: false
|
||||
|
||||
id: myTextField
|
||||
echoMode: passwordField ? TextInput.Password : TextInput.Normal
|
||||
color: "#cccccc"
|
||||
text: ""
|
||||
font.pointSize: 20
|
||||
background: Button {
|
||||
hoverEnabled: true
|
||||
background: Rectangle {
|
||||
color: parent.hovered ? "#2c435d" : "#1b2939"
|
||||
border.color: "#cccccc"
|
||||
border.width: 2
|
||||
}
|
||||
onClicked: {
|
||||
myTextField.forceActiveFocus()
|
||||
}
|
||||
}
|
||||
onActiveFocusChanged: {
|
||||
if (activeFocus) {
|
||||
if (!OverlayController.desktopMode) {
|
||||
OverlayController.showKeyboard(text, keyBoardUID)
|
||||
} else {
|
||||
savedText = text
|
||||
}
|
||||
}
|
||||
}
|
||||
onEditingFinished: {
|
||||
if (OverlayController.desktopMode && savedText !== text) {
|
||||
myTextField.onInputEvent(text)
|
||||
}
|
||||
}
|
||||
function onInputEvent(input) {
|
||||
text = input
|
||||
}
|
||||
}
|
65
src/vr/qml/common/MyToggleButton.qml
Executable file
|
@ -0,0 +1,65 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import "." // QTBUG-34418, singletons require explicit import to load qmldir file
|
||||
// Needed for MyResources in the default folder.
|
||||
import ".."
|
||||
|
||||
CheckBox {
|
||||
checkState: Qt.Checked
|
||||
tristate: false
|
||||
hoverEnabled: true
|
||||
spacing: 12
|
||||
|
||||
indicator: Rectangle {
|
||||
implicitWidth: 28
|
||||
implicitHeight: 28
|
||||
x: parent.leftPadding
|
||||
y: parent.height / 2 - height / 2
|
||||
color: parent.enabled ? (parent.down ? "#e0e0e0" : "#ffffff") : "#a0a0a0"
|
||||
border.width: 0
|
||||
Path {
|
||||
startX: 0
|
||||
startY: 0
|
||||
PathLine {
|
||||
x: 40
|
||||
y: 40
|
||||
}
|
||||
}
|
||||
|
||||
Image {
|
||||
width: 28
|
||||
height: 28
|
||||
x: (parent.width - width) / 2
|
||||
y: (parent.height - height) / 2
|
||||
source: "qrc:/box_checkmark"
|
||||
sourceSize.width: width
|
||||
sourceSize.height: height
|
||||
visible: parent.parent.checked
|
||||
}
|
||||
}
|
||||
|
||||
contentItem: MyText {
|
||||
text: parent.text
|
||||
horizontalAlignment: Text.AlignLeft
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
leftPadding: parent.indicator.width + parent.spacing
|
||||
color: parent.enabled ? "#ffffff" : "#909090"
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
color: "#2c435d"
|
||||
opacity: parent.activeFocus ? 1.0 : 0
|
||||
}
|
||||
|
||||
onHoveredChanged: {
|
||||
if (hovered) {
|
||||
forceActiveFocus()
|
||||
} else {
|
||||
focus = false
|
||||
}
|
||||
}
|
||||
|
||||
onClicked: {
|
||||
MyResources.playActivationSound()
|
||||
}
|
||||
}
|
55
src/vr/qml/common/TimeAssembly.qml
Executable file
|
@ -0,0 +1,55 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
|
||||
|
||||
RowLayout {
|
||||
signal timeChanged(int hour, int minute, int second)
|
||||
|
||||
HourComboBox {
|
||||
id: hourBox
|
||||
Layout.preferredWidth: 60
|
||||
onActivated: {
|
||||
parent.timeChanged(hourBox.currentIndex,
|
||||
minuteBox.currentIndex,
|
||||
secondBox.currentIndex)
|
||||
}
|
||||
}
|
||||
MyText {
|
||||
text: "h"
|
||||
}
|
||||
|
||||
MinuteSecondComboBox {
|
||||
id: minuteBox
|
||||
Layout.preferredWidth: 60
|
||||
onActivated: {
|
||||
parent.timeChanged(hourBox.currentIndex,
|
||||
minuteBox.currentIndex,
|
||||
secondBox.currentIndex)
|
||||
}
|
||||
}
|
||||
MyText {
|
||||
text: "m"
|
||||
}
|
||||
|
||||
MinuteSecondComboBox {
|
||||
id: secondBox
|
||||
Layout.preferredWidth: 60
|
||||
onActivated: {
|
||||
parent.timeChanged(hourBox.currentIndex,
|
||||
minuteBox.currentIndex,
|
||||
secondBox.currentIndex)
|
||||
}
|
||||
}
|
||||
MyText {
|
||||
text: "s"
|
||||
}
|
||||
function changeTimer(hour, minute, second) {
|
||||
hourBox.currentIndex = hour
|
||||
minuteBox.currentIndex = minute
|
||||
secondBox.currentIndex = second
|
||||
hourBox.displayText = hour
|
||||
minuteBox.displayText = minute
|
||||
secondBox.displayText = second
|
||||
}
|
||||
}
|
128
src/vr/qml/common/mainwidget.qml
Executable file
|
@ -0,0 +1,128 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.0
|
||||
import ".."
|
||||
import "../utilities_page"
|
||||
import "../audio_page"
|
||||
import "../motion_page"
|
||||
import "../video_page"
|
||||
import "../chaperone_page"
|
||||
import "../steamvr_page"
|
||||
import "../rotation_page"
|
||||
import "../chaperone_page/chaperone_additional"
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
color: "#1b2939"
|
||||
width: 1200
|
||||
height: 800
|
||||
|
||||
property WalletDashboard WalletDashboard: WalletDashboard {
|
||||
stackView: walletView
|
||||
}
|
||||
|
||||
property SteamVRPage steamVRPage: SteamVRPage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property ChaperonePage chaperonePage: ChaperonePage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property ChaperoneWarningsPage chaperoneWarningsPage: ChaperoneWarningsPage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property ChaperoneAdditionalPage chaperoneAdditionalPage: ChaperoneAdditionalPage{
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property PlayspacePage playspacePage: PlayspacePage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property MotionPage motionPage: MotionPage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property RotationPage rotationPage: RotationPage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property FixFloorPage fixFloorPage: FixFloorPage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property StatisticsPage statisticsPage: StatisticsPage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property SettingsPage settingsPage: SettingsPage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property AudioPage audioPage: AudioPage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property UtilitiesPage utilitiesPage: UtilitiesPage {
|
||||
stackView: walletView
|
||||
visible: false
|
||||
}
|
||||
|
||||
property VideoPage videoPage: VideoPage {
|
||||
stackView: walletView
|
||||
visible:false
|
||||
}
|
||||
|
||||
StackView {
|
||||
id: walletView
|
||||
anchors.fill: parent
|
||||
|
||||
pushEnter: Transition {
|
||||
PropertyAnimation {
|
||||
property: "x"
|
||||
from: walletView.width
|
||||
to: 0
|
||||
duration: 200
|
||||
}
|
||||
}
|
||||
pushExit: Transition {
|
||||
PropertyAnimation {
|
||||
property: "x"
|
||||
from: 0
|
||||
to: -walletView.width
|
||||
duration: 200
|
||||
}
|
||||
}
|
||||
popEnter: Transition {
|
||||
PropertyAnimation {
|
||||
property: "x"
|
||||
from: -walletView.width
|
||||
to: 0
|
||||
duration: 200
|
||||
}
|
||||
}
|
||||
popExit: Transition {
|
||||
PropertyAnimation {
|
||||
property: "x"
|
||||
from: 0
|
||||
to: walletView.width
|
||||
duration: 200
|
||||
}
|
||||
}
|
||||
|
||||
initialItem: WalletDashboard
|
||||
}
|
||||
}
|
0
src/vr/qml/dashboard/CreateWallet.qml
Normal file
0
src/vr/qml/dashboard/HelpPage.qml
Normal file
189
src/vr/qml/wallet/HistoryTable.qml
Executable file
|
@ -0,0 +1,189 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.2
|
||||
|
||||
import wowlet.Wallet 1.0
|
||||
import wowlet.WalletManager 1.0
|
||||
import wowlet.TransactionHistory 1.0
|
||||
import wowlet.TransactionInfo 1.0
|
||||
import wowlet.TransactionHistoryModel 1.0
|
||||
import wowlet.TransactionHistoryProxyModel 1.0
|
||||
|
||||
import "../common"
|
||||
|
||||
Item {
|
||||
id: root
|
||||
property var modelx
|
||||
|
||||
property var txModelData: []
|
||||
property int sideMargin: 20
|
||||
|
||||
ListModel { id: txListViewModel }
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
spacing: 0
|
||||
|
||||
ListView {
|
||||
id: listView
|
||||
visible: true
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
spacing: 10
|
||||
model: modelx
|
||||
interactive: false
|
||||
|
||||
delegate: Rectangle {
|
||||
id: delegate
|
||||
anchors.left: parent ? parent.left : undefined
|
||||
anchors.right: parent ? parent.right : undefined
|
||||
height: 54
|
||||
color: "#2c435d"
|
||||
|
||||
property bool isout: false;
|
||||
property string amount: "0";
|
||||
property string description: "";
|
||||
property string date: "2021-13-37";
|
||||
|
||||
property bool confirmed: false
|
||||
property bool failed: false
|
||||
property bool pending: false
|
||||
property int confirmations: 0
|
||||
property int confirmationsRequired: 0
|
||||
|
||||
Component.onCompleted: {
|
||||
isout = getTxData(index, TransactionHistoryModel.TransactionIsOutRole);
|
||||
amount = getTxData(index, TransactionHistoryModel.Amount);
|
||||
description = getTxData(index, TransactionHistoryModel.Description);
|
||||
date = getTxData(index, TransactionHistoryModel.Date);
|
||||
|
||||
failed = getTxData(index, TransactionHistoryModel.TransactionFailedRole);
|
||||
pending = getTxData(index, TransactionHistoryModel.TransactionPendingRole);
|
||||
confirmations = getTxData(index, TransactionHistoryModel.TransactionConfirmationsRole);
|
||||
confirmationsRequired = getTxData(index, TransactionHistoryModel.TransactionConfirmationsRequiredRole);
|
||||
|
||||
confirmed = confirmations >= confirmationsRequired;
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 0
|
||||
clip: true
|
||||
height: parent.height
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Rectangle {
|
||||
Layout.preferredWidth: 56
|
||||
Layout.fillHeight: true
|
||||
color: "#406288"
|
||||
|
||||
Image {
|
||||
width: 32
|
||||
height: 32
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
source: {
|
||||
if(failed) return "qrc:/assets/images/warning.png"
|
||||
else if(pending) return "qrc:/assets/images/unconfirmed.png"
|
||||
else if(!confirmed) return "qrc:/assets/images/clock1.png"
|
||||
|
||||
else return "qrc:/assets/images/confirmed.png"
|
||||
//confirmed ? "qrc:/checkmark_icon" : "qrc:/expired_icon"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
Layout.preferredWidth: 300
|
||||
Layout.leftMargin: 10
|
||||
Layout.rightMargin: 10
|
||||
Layout.fillHeight: true
|
||||
color: "transparent"
|
||||
|
||||
MyText {
|
||||
// date
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
fontSize: 12
|
||||
fontColor: "white"
|
||||
text: date
|
||||
|
||||
Component.onCompleted: {
|
||||
parent.Layout.preferredWidth = width;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
Layout.fillHeight: true
|
||||
Layout.leftMargin: 10
|
||||
color: "transparent"
|
||||
|
||||
MyText {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
fontSize: 14
|
||||
text: description !== "" ? description : "..."
|
||||
fontColor: description !== "" ? "white" : "#cccccc"
|
||||
Component.onCompleted: {
|
||||
parent.Layout.preferredWidth = width;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
Layout.preferredWidth: 420
|
||||
Layout.fillHeight: true
|
||||
color: "#406288"
|
||||
|
||||
MyText {
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: 10
|
||||
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
fontSize: 14
|
||||
fontBold: true
|
||||
text: amount
|
||||
fontColor: !isout ? "#00d304" : "red"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
z: parent.z - 1
|
||||
color: "transparent"
|
||||
anchors.fill: parent
|
||||
}
|
||||
|
||||
function getTxData(x, y) {
|
||||
var idx = modelx.index(x, y);
|
||||
return modelx.data(idx, 0);
|
||||
}
|
||||
|
||||
function updateTransactionsFromModel() {
|
||||
// This function copies the items of `appWindow.currentWallet.historyModel` to `root.txModelData`, as a list of javascript objects
|
||||
if(appWindow.currentWallet == null || typeof appWindow.currentWallet.history === "undefined" ) return;
|
||||
|
||||
var _model = root.model;
|
||||
var total = 0
|
||||
var count = _model.rowCount()
|
||||
root.txModelData = [];
|
||||
}
|
||||
|
||||
function onPageCompleted() {
|
||||
if(currentWallet == null || typeof currentWallet.history === "undefined" ) return;
|
||||
root.modelx = appWindow.currentWallet.historyModel;
|
||||
//root.model.sortRole = TransactionHistoryModel.TransactionBlockHeightRole;
|
||||
//root.model.sort(0, Qt.DescendingOrder);
|
||||
}
|
||||
}
|
266
src/vr/qml/wallet/ReceivePage.qml
Executable file
|
@ -0,0 +1,266 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtQuick.Dialogs 1.2
|
||||
import "."
|
||||
import "../common"
|
||||
|
||||
MyStackViewPage {
|
||||
headerText: "Receive"
|
||||
|
||||
MyDialogOkPopup {
|
||||
id: chaperoneMessageDialog
|
||||
function showMessage(title, text) {
|
||||
dialogTitle = title
|
||||
dialogText = text
|
||||
open()
|
||||
}
|
||||
}
|
||||
|
||||
MyDialogOkCancelPopup {
|
||||
id: chaperoneDeleteProfileDialog
|
||||
property int profileIndex: -1
|
||||
dialogTitle: "Delete Profile"
|
||||
dialogText: "Do you really want to delete this profile?"
|
||||
onClosed: {
|
||||
if (okClicked) {
|
||||
ChaperoneTabController.deleteChaperoneProfile(profileIndex)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MyDialogOkCancelPopup {
|
||||
id: chaperoneNewProfileDialog
|
||||
dialogTitle: "Create New Profile"
|
||||
dialogWidth: 800
|
||||
dialogHeight: 780
|
||||
dialogContentItem: ColumnLayout {
|
||||
RowLayout {
|
||||
Layout.topMargin: 16
|
||||
Layout.leftMargin: 16
|
||||
Layout.rightMargin: 16
|
||||
MyText {
|
||||
text: "Name: "
|
||||
}
|
||||
MyTextField {
|
||||
id: chaperoneNewProfileName
|
||||
keyBoardUID: 390
|
||||
color: "#cccccc"
|
||||
text: ""
|
||||
Layout.fillWidth: true
|
||||
font.pointSize: 20
|
||||
function onInputEvent(input) {
|
||||
chaperoneNewProfileName.text = input
|
||||
}
|
||||
}
|
||||
}
|
||||
MyText {
|
||||
Layout.topMargin: 24
|
||||
text: "What to include:"
|
||||
}
|
||||
MyToggleButton {
|
||||
id: chaperoneNewProfileIncludeGeometry
|
||||
Layout.leftMargin: 32
|
||||
text: "Chaperone Geometry"
|
||||
}
|
||||
MyToggleButton {
|
||||
id: chaperoneNewProfileIncludeStyle
|
||||
Layout.leftMargin: 32
|
||||
text: "Chaperone Style"
|
||||
}
|
||||
MyToggleButton {
|
||||
id: chaperoneNewProfileIncludeBoundsColor
|
||||
Layout.leftMargin: 32
|
||||
text: "Chaperone Color"
|
||||
}
|
||||
MyToggleButton {
|
||||
id: chaperoneNewProfileIncludeVisibility
|
||||
Layout.leftMargin: 32
|
||||
text: "Visibility Setting"
|
||||
}
|
||||
MyToggleButton {
|
||||
id: chaperoneNewProfileIncludeFadeDistance
|
||||
Layout.leftMargin: 32
|
||||
text: "Fade Distance Setting"
|
||||
}
|
||||
MyToggleButton {
|
||||
id: chaperoneNewProfileIncludeCenterMarker
|
||||
Layout.leftMargin: 32
|
||||
text: "Center Marker Setting"
|
||||
}
|
||||
MyToggleButton {
|
||||
id: chaperoneNewProfileIncludePlaySpaceMarker
|
||||
Layout.leftMargin: 32
|
||||
text: "Play Space Marker Setting"
|
||||
}
|
||||
MyToggleButton {
|
||||
id: chaperoneNewProfileIncludeFloorBoundsMarker
|
||||
Layout.leftMargin: 32
|
||||
text: "Floor Bounds Always On Setting"
|
||||
}
|
||||
MyToggleButton {
|
||||
id: chaperoneNewProfileIncludeForceBounds
|
||||
Layout.leftMargin: 32
|
||||
text: "Force Bounds Setting"
|
||||
}
|
||||
MyToggleButton {
|
||||
id: chaperoneNewProfileIncludeProximityWarnings
|
||||
Layout.leftMargin: 32
|
||||
text: "Proximity Warning Settings"
|
||||
}
|
||||
}
|
||||
onClosed: {
|
||||
if (okClicked) {
|
||||
if (chaperoneNewProfileName.text == "") {
|
||||
chaperoneMessageDialog.showMessage("Create New Profile", "ERROR: Empty profile name.")
|
||||
} else if (!chaperoneNewProfileIncludeGeometry.checked
|
||||
&& !chaperoneNewProfileIncludeVisibility.checked
|
||||
&& !chaperoneNewProfileIncludeFadeDistance.checked
|
||||
&& !chaperoneNewProfileIncludeCenterMarker.checked
|
||||
&& !chaperoneNewProfileIncludePlaySpaceMarker.checked
|
||||
&& !chaperoneNewProfileIncludeFloorBoundsMarker.checked
|
||||
&& !chaperoneNewProfileIncludeBoundsColor.checked
|
||||
&& !chaperoneNewProfileIncludeStyle.checked
|
||||
&& !chaperoneNewProfileIncludeForceBounds.checked
|
||||
&& !chaperoneNewProfileIncludeProximityWarnings.checked) {
|
||||
chaperoneMessageDialog.showMessage("Create New Profile", "ERROR: Nothing included.")
|
||||
} else if ( Math.abs(MoveCenterTabController.offsetX) > 0.00000000001
|
||||
|| Math.abs(MoveCenterTabController.offsetY) > 0.00000000001
|
||||
|| Math.abs(MoveCenterTabController.offsetZ) > 0.00000000001
|
||||
|| MoveCenterTabController.rotation !== 0) {
|
||||
chaperoneMessageDialog.showMessage("Create New Profile", "ERROR: Offsets not reset.")
|
||||
} else {
|
||||
ChaperoneTabController.addChaperoneProfile(chaperoneNewProfileName.text,
|
||||
chaperoneNewProfileIncludeGeometry.checked,
|
||||
chaperoneNewProfileIncludeVisibility.checked,
|
||||
chaperoneNewProfileIncludeFadeDistance.checked,
|
||||
chaperoneNewProfileIncludeCenterMarker.checked,
|
||||
chaperoneNewProfileIncludePlaySpaceMarker.checked,
|
||||
chaperoneNewProfileIncludeFloorBoundsMarker.checked,
|
||||
chaperoneNewProfileIncludeBoundsColor.checked,
|
||||
chaperoneNewProfileIncludeStyle.checked,
|
||||
chaperoneNewProfileIncludeForceBounds.checked,
|
||||
chaperoneNewProfileIncludeProximityWarnings.checked)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
function openPopup() {
|
||||
chaperoneNewProfileName.text = ""
|
||||
chaperoneNewProfileIncludeGeometry.checked = false
|
||||
chaperoneNewProfileIncludeVisibility.checked = false
|
||||
chaperoneNewProfileIncludeFadeDistance.checked = false
|
||||
chaperoneNewProfileIncludeCenterMarker.checked = false
|
||||
chaperoneNewProfileIncludePlaySpaceMarker.checked = false
|
||||
chaperoneNewProfileIncludeFloorBoundsMarker.checked = false
|
||||
chaperoneNewProfileIncludeBoundsColor.checked = false
|
||||
chaperoneNewProfileIncludeStyle.checked = false
|
||||
chaperoneNewProfileIncludeForceBounds.checked = false
|
||||
chaperoneNewProfileIncludeProximityWarnings.checked = false
|
||||
open()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
content: ColumnLayout {
|
||||
spacing: 30
|
||||
|
||||
MyText {
|
||||
Layout.fillWidth: true
|
||||
wrap: true
|
||||
text: "Give the following 4 digit PIN to the person that is sending you Wownero. PIN's are valid for 5 minutes and automatically renew."
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
MyText {
|
||||
visible: false
|
||||
fontSize: 14
|
||||
text: "Currently generating PIN."
|
||||
}
|
||||
|
||||
Text {
|
||||
visible: true
|
||||
text: "0 0 0 0"
|
||||
color: "#ffffff"
|
||||
font.bold: true
|
||||
font.pointSize: 40
|
||||
leftPadding: 20
|
||||
rightPadding: 20
|
||||
|
||||
Rectangle {
|
||||
z: parent.z - 1
|
||||
anchors.fill: parent
|
||||
color: "black"
|
||||
}
|
||||
}
|
||||
|
||||
MyText {
|
||||
id: expireText
|
||||
visible: true
|
||||
fontSize: 14
|
||||
text: "Expires in 40 seconds."
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
color: "#cccccc"
|
||||
height: 1
|
||||
Layout.topMargin: 10
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
MyText {
|
||||
Layout.fillWidth: true
|
||||
wrap: true
|
||||
text: "Alternatively, you may use one of the following methods."
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.topMargin: 10
|
||||
|
||||
MyPushButton {
|
||||
id: viewAddress
|
||||
text: "View address"
|
||||
Layout.preferredWidth: 360
|
||||
|
||||
onClicked: {
|
||||
MyResources.playFocusChangedSound()
|
||||
walletView.push(chaperoneAdditionalPage)
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton {
|
||||
id: copyToClipboard
|
||||
text: "Copy address to clipboard"
|
||||
Layout.preferredWidth: 540
|
||||
|
||||
onClicked: {
|
||||
MyResources.playFocusChangedSound()
|
||||
walletView.push(chaperoneAdditionalPage)
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton {
|
||||
id: writeQRcode
|
||||
text: "QR image"
|
||||
Layout.preferredWidth: 340
|
||||
|
||||
onClicked: {
|
||||
chaperoneNewProfileDialog.open();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function onPageCompleted() {
|
||||
console.log("onPageCompleted() ReceivePage")
|
||||
}
|
||||
}
|
101
src/vr/qml/wallet/WalletDashBoardPage.qml
Normal file
|
@ -0,0 +1,101 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.2
|
||||
import QtGraphicalEffects 1.0
|
||||
import QtQuick.Window 2.0
|
||||
import QtQuick.Controls.Styles 1.4
|
||||
import QtQuick.Dialogs 1.2
|
||||
|
||||
// import ovrwow.wowletvr 1.0
|
||||
|
||||
import "../common"
|
||||
import "."
|
||||
|
||||
MyStackViewPage {
|
||||
id: walletDashboard
|
||||
width: 1600
|
||||
height: 800
|
||||
headerText: appWindow.walletTitle
|
||||
headerShowBackButton: false
|
||||
stackView: walletView
|
||||
|
||||
content: Item {
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
RowLayout {
|
||||
spacing: 32
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
|
||||
ColumnLayout {
|
||||
Layout.preferredWidth: 250
|
||||
Layout.maximumWidth: 250
|
||||
Layout.fillHeight: true
|
||||
spacing: 10
|
||||
|
||||
MyPushButton {
|
||||
id: steamVRButton
|
||||
iconPath: "qrc:/send_icon"
|
||||
activationSoundEnabled: false
|
||||
text: "Send"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
//MyResources.playFocusChangedSound()
|
||||
if(!appWindow.wsConnected) {
|
||||
return messagePopup.showMessage("Please wait", "No connection to websocket server (yet).");
|
||||
}
|
||||
|
||||
walletView.push(sendPage)
|
||||
sendPage.onPageCompleted();
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton {
|
||||
id: chaperoneButton
|
||||
iconPath: "qrc:/receive_icon"
|
||||
activationSoundEnabled: false
|
||||
text: "Receive"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
//MyResources.playFocusChangedSound()
|
||||
if(!appWindow.wsConnected) {
|
||||
return messagePopup.showMessage("Please wait", "No connection to websocket server (yet).");
|
||||
}
|
||||
|
||||
walletView.push(receivePage)
|
||||
}
|
||||
}
|
||||
|
||||
MyPushButton {
|
||||
id: rotationButton
|
||||
iconPath: "qrc:/backarrow"
|
||||
activationSoundEnabled: false
|
||||
text: "Close"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
//MyResources.playFocusChangedSound()
|
||||
ctx.closeWallet(true, true);
|
||||
mainView.pop();
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
color: "transparent"
|
||||
}
|
||||
}
|
||||
|
||||
HistoryTable {
|
||||
id: historyView
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function onPageCompleted() {
|
||||
historyView.onPageCompleted();
|
||||
}
|
||||
}
|
123
src/vr/qml/wallet/send/SendPage.qml
Executable file
|
@ -0,0 +1,123 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtQuick.Controls 1.4
|
||||
|
||||
import "../../common"
|
||||
import "."
|
||||
|
||||
MyStackViewPage {
|
||||
id: sendStateController
|
||||
width: 1600
|
||||
headerText: "Send"
|
||||
|
||||
property string destinationAddress: "cool_addy_here"
|
||||
|
||||
property string enteredColor: "#365473"
|
||||
property string exitedColor: "#2c435d"
|
||||
property string pressedColor: "#406288"
|
||||
|
||||
content: ColumnLayout {
|
||||
id: sendStateView
|
||||
property Item currentView
|
||||
property Item previousView
|
||||
|
||||
property SendPagePIN pinPage: SendPagePIN {}
|
||||
property SendPageDashboard dashPage: SendPageDashboard {}
|
||||
property SendPageTransfer transferPage: SendPageTransfer {}
|
||||
property SendPageQR qrPage: SendPageQR {}
|
||||
|
||||
state: ''
|
||||
|
||||
onCurrentViewChanged: {
|
||||
if (previousView) {
|
||||
if (typeof previousView.onPageClosed === "function") {
|
||||
previousView.onPageClosed();
|
||||
}
|
||||
}
|
||||
|
||||
// if(previousView !== null && currentView.viewName === "wizardHome")
|
||||
// wizardController.restart();
|
||||
|
||||
if (currentView) {
|
||||
sendStack.replace(currentView)
|
||||
// Calls when view is opened
|
||||
if (typeof currentView.onPageCompleted === "function") {
|
||||
currentView.onPageCompleted(previousView);
|
||||
}
|
||||
}
|
||||
|
||||
previousView = currentView;
|
||||
|
||||
// reset push direction
|
||||
// if(wizardController.wizardState == "wizardHome")
|
||||
// wizardController.wizardStackView.backTransition = false;
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "pinPage"
|
||||
PropertyChanges { target: sendStateView; currentView: sendStateView.pinPage }
|
||||
}, State {
|
||||
name: "dashPage"
|
||||
PropertyChanges { target: sendStateView; currentView: sendStateView.dashPage }
|
||||
}, State {
|
||||
name: "transferPage"
|
||||
PropertyChanges { target: sendStateView; currentView: sendStateView.transferPage }
|
||||
}, State {
|
||||
name: "qrPage"
|
||||
PropertyChanges { target: sendStateView; currentView: sendStateView.qrPage }
|
||||
}
|
||||
]
|
||||
|
||||
StackView {
|
||||
id: sendStack
|
||||
clip: true
|
||||
initialItem: sendStateView.dashPage
|
||||
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
delegate: StackViewDelegate {
|
||||
pushTransition: StackViewTransition {
|
||||
PropertyAnimation {
|
||||
target: enterItem
|
||||
property: "x"
|
||||
from: sendStack.backTransition ? -target.width : target.width
|
||||
to: 0
|
||||
duration: 300
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
|
||||
PropertyAnimation {
|
||||
target: exitItem
|
||||
property: "x"
|
||||
from: 0
|
||||
to: sendStack.backTransition ? target.width : -target.width
|
||||
duration: 300
|
||||
easing.type: Easing.OutCubic
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Connections {
|
||||
// target: sendStateView.dashPage
|
||||
// function onTest() {
|
||||
// sendStack.push(pinPage)
|
||||
// pinPage.onPageCompleted();
|
||||
// }
|
||||
// }
|
||||
|
||||
function onPageCompleted(previousView){
|
||||
sendStateView.state = "dashPage"
|
||||
}
|
||||
|
||||
onBackClicked: {
|
||||
// top back button to send/receive menu, reset default states for sendViews
|
||||
sendStateView.pinPage.onPageCompleted();
|
||||
sendStateView.dashPage.onPageCompleted();
|
||||
sendStateView.transferPage.onPageCompleted();
|
||||
}
|
||||
}
|
65
src/vr/qml/wallet/send/SendPageDashboard.qml
Normal file
|
@ -0,0 +1,65 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import "../../common"
|
||||
|
||||
ColumnLayout {
|
||||
id: root
|
||||
|
||||
Layout.fillWidth: true
|
||||
|
||||
MyText {
|
||||
Layout.fillWidth: true
|
||||
wrap: true
|
||||
text: "How to transfer Wownero?"
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.topMargin: 30
|
||||
Layout.fillWidth: true
|
||||
spacing: 30
|
||||
|
||||
Rectangle {
|
||||
color: sendStateController.exitedColor
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onEntered: parent.color = sendStateController.enteredColor
|
||||
onExited: parent.color = sendStateController.exitedColor
|
||||
onPressed: parent.color = sendStateController.pressedColor
|
||||
onClicked: {
|
||||
sendStateView.state = "pinPage";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
color: sendStateController.exitedColor
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onEntered: parent.color = sendStateController.enteredColor
|
||||
onExited: parent.color = sendStateController.exitedColor
|
||||
onPressed: parent.color = sendStateController.pressedColor
|
||||
onClicked: {
|
||||
sendStateView.state = "qrPage";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
function onPageCompleted(previousView){
|
||||
|
||||
}
|
||||
}
|
56
src/vr/qml/wallet/send/SendPageNavBack.qml
Normal file
|
@ -0,0 +1,56 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
import QtQuick.Layouts 1.3
|
||||
import QtQuick.Controls 1.4
|
||||
|
||||
import "../../common"
|
||||
|
||||
|
||||
RowLayout {
|
||||
id: root
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 82
|
||||
Layout.maximumHeight: 82
|
||||
|
||||
signal backClicked();
|
||||
|
||||
Rectangle {
|
||||
color: sendStateController.exitedColor
|
||||
Layout.preferredHeight: 82
|
||||
Layout.preferredWidth: 220
|
||||
|
||||
RowLayout {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
Layout.minimumHeight: 54
|
||||
|
||||
Image {
|
||||
source: "qrc:/backarrow"
|
||||
Layout.leftMargin: 20
|
||||
Layout.rightMargin: 20
|
||||
Layout.preferredWidth: 32
|
||||
Layout.preferredHeight: 32
|
||||
}
|
||||
|
||||
MyText {
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
fontBold: true
|
||||
text: "back"
|
||||
fontSize: 16
|
||||
}
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onEntered: parent.color = sendStateController.enteredColor
|
||||
onExited: parent.color = sendStateController.exitedColor
|
||||
onPressed: parent.color = sendStateController.pressedColor
|
||||
onClicked: {
|
||||
root.backClicked();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|