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();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||