[VD][WIP] #130 Change to a new logo, new icon color schemes and added dark mode support (#131)

* [Update] icons: visual design

* [add] Added PNG for macOS

* [add] Added macOS icns

* [add] Added more icons and do some renamings, #130 this WILL BREAK the build.

* [fix] #130 fixed some ui settings

* [add] #130 Added more support for new ICONS

* [change] #130 #131 Changed MainWindow UI-Merging "ADDConfigBtn", fixed a ScreenShot window issue. Added message in Pref Window.

* [fix] Fixed layout of mainwindow

* [Windows] More UI Options

* [fix] Fixed a typo #130 #131


Former-commit-id: 727b907bcc
This commit is contained in:
Leroy.H.Y 2019-11-18 18:38:42 +08:00 committed by GitHub
parent c32c1389d1
commit dfd7f87850
83 changed files with 6815 additions and 1790 deletions

View File

@ -1 +1 @@
540 682

View File

@ -25,8 +25,8 @@ write_file("Build.Counter", _BUILD_NUMBER)
DEFINES += QT_DEPRECATED_WARNINGS QV2RAY_VERSION_STRING=\"\\\"v$${VERSION}\\\"\" DEFINES += QT_DEPRECATED_WARNINGS QV2RAY_VERSION_STRING=\"\\\"v$${VERSION}\\\"\"
SOURCES += \ SOURCES += \
src/QvCoreConfigOperations.cpp \
src/main.cpp \ src/main.cpp \
src/QvCoreConfigOperations.cpp \
src/QvConfigUpgrade.cpp \ src/QvConfigUpgrade.cpp \
src/QvCoreConfigOperations_Convertion.cpp \ src/QvCoreConfigOperations_Convertion.cpp \
src/QvCoreConfigOperations_Generation.cpp \ src/QvCoreConfigOperations_Generation.cpp \
@ -57,7 +57,6 @@ INCLUDEPATH += \
src/ui/ \ src/ui/ \
src/utils/ \ src/utils/ \
libs/gen/ libs/gen/
HEADERS += \ HEADERS += \
src/Qv2rayBase.hpp \ src/Qv2rayBase.hpp \
src/QvCoreConfigObjects.hpp \ src/QvCoreConfigObjects.hpp \
@ -74,6 +73,7 @@ HEADERS += \
src/ui/w_RoutesEditor.hpp \ src/ui/w_RoutesEditor.hpp \
src/ui/w_SubscriptionEditor.hpp \ src/ui/w_SubscriptionEditor.hpp \
src/ui/w_ScreenShot_Core.hpp \ src/ui/w_ScreenShot_Core.hpp \
src/utils/QvTinyLog.hpp \
src/utils/QJsonModel.hpp \ src/utils/QJsonModel.hpp \
src/utils/QJsonObjectInsertMacros.h \ src/utils/QJsonObjectInsertMacros.h \
src/utils/QObjectMessageProxy.hpp \ src/utils/QObjectMessageProxy.hpp \
@ -82,8 +82,7 @@ HEADERS += \
src/utils/QvPingModel.hpp \ src/utils/QvPingModel.hpp \
src/utils/QvRunguard.hpp \ src/utils/QvRunguard.hpp \
libs/gen/v2ray_api_commands.pb.h \ libs/gen/v2ray_api_commands.pb.h \
libs/gen/v2ray_api_commands.grpc.pb.h \ libs/gen/v2ray_api_commands.grpc.pb.h
src/utils/QvTinyLog.hpp
FORMS += \ FORMS += \
src/ui/w_ExportConfig.ui \ src/ui/w_ExportConfig.ui \
@ -94,8 +93,8 @@ FORMS += \
src/ui/w_OutboundEditor.ui \ src/ui/w_OutboundEditor.ui \
src/ui/w_PrefrencesWindow.ui \ src/ui/w_PrefrencesWindow.ui \
src/ui/w_RoutesEditor.ui \ src/ui/w_RoutesEditor.ui \
src/ui/w_SubscriptionEditor.ui \ src/ui/w_ScreenShot_Core.ui \
src/ui/w_ScreenShot_Core.ui src/ui/w_SubscriptionEditor.ui
RESOURCES += \ RESOURCES += \
resources.qrc resources.qrc
@ -113,8 +112,10 @@ message("| |")
message("| See: https://www.gnu.org/licenses/gpl-3.0.html |") message("| See: https://www.gnu.org/licenses/gpl-3.0.html |")
message("|-------------------------------------------------|") message("|-------------------------------------------------|")
message(" ") message(" ")
RC_ICONS += ./icons/Qv2ray.ico
ICON = ./icons/Qv2ray.icns
RC_ICONS += ./icons/qv2ray.ico
ICON = ./icons/qv2ray.icns
# ------------------------------------------ Begin checking gRPC and protobuf headers. # ------------------------------------------ Begin checking gRPC and protobuf headers.
!exists(libs/gen/v2ray_api_commands.grpc.pb.h) || !exists(libs/gen/v2ray_api_commands.grpc.pb.cc) || !exists(libs/gen/v2ray_api_commands.pb.h) || !exists(libs/gen/v2ray_api_commands.pb.cc) { !exists(libs/gen/v2ray_api_commands.grpc.pb.h) || !exists(libs/gen/v2ray_api_commands.grpc.pb.cc) || !exists(libs/gen/v2ray_api_commands.pb.h) || !exists(libs/gen/v2ray_api_commands.pb.cc) {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -1,63 +0,0 @@
<?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://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="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg16"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="add_connection_btn.svg">
<defs
id="defs10" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.49497475"
inkscape:cx="-311.88599"
inkscape:cy="374.18688"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1050"
inkscape:window-x="1920"
inkscape:window-y="30"
inkscape:window-maximized="1" />
<metadata
id="metadata13">
<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>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="rect74-7"
style="fill:#808080;stroke-width:0.23007688"
d="M 110.29167,82.354162 V 214.64584 H 99.708338 l -10e-7,-132.291678 z M 38.854163,143.20833 H 171.14584 v 10.58333 H 38.854163 Z"
inkscape:connector-curvature="0"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,319 @@
<?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://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="48"
height="48"
viewBox="0 0 12.699999 12.7"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="Qv2ray_AppLogo-noBG.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/qv2ray.png"
inkscape:export-xdpi="292.57144"
inkscape:export-ydpi="292.57144">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient908">
<stop
style="stop-color:#6e7678;stop-opacity:1"
offset="0"
id="stop904" />
<stop
style="stop-color:#2e3235;stop-opacity:1"
offset="1"
id="stop906" />
</linearGradient>
<linearGradient
id="linearGradient1014"
inkscape:collect="always">
<stop
id="stop1010"
offset="0"
style="stop-color:#232629;stop-opacity:1" />
<stop
id="stop1012"
offset="1"
style="stop-color:#282728;stop-opacity:0.6574803" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient847">
<stop
style="stop-color:#c1fe6f;stop-opacity:1"
offset="0"
id="stop843" />
<stop
style="stop-color:#60fe6f;stop-opacity:1"
offset="1"
id="stop845" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient5057">
<stop
style="stop-color:#3c3c3c;stop-opacity:1;"
offset="0"
id="stop5053" />
<stop
style="stop-color:#282728;stop-opacity:0.6574803"
offset="1"
id="stop5055" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4759">
<stop
style="stop-color:#2eec71;stop-opacity:1"
offset="0"
id="stop4755" />
<stop
style="stop-color:#1cdc9a;stop-opacity:1"
offset="1"
id="stop4757" />
</linearGradient>
<linearGradient
id="linearGradient4713"
inkscape:collect="always">
<stop
id="stop4709"
offset="0"
style="stop-color:#3de256;stop-opacity:1" />
<stop
id="stop4711"
offset="1"
style="stop-color:#2fbeba;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4713"
id="linearGradient4707"
x1="89.965836"
y1="19.458199"
x2="108.00179"
y2="39.934193"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(38.574145,1.3181723)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5057"
id="linearGradient5059"
x1="92.227142"
y1="48.940449"
x2="140.26065"
y2="94.022179"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4759"
id="linearGradient953"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.34597512,0.06144722,-0.06655638,0.31941658,-25.119909,272.6237)"
x1="85.229973"
y1="28.293249"
x2="113.08728"
y2="35.515835" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient847"
id="linearGradient955"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.15666471,0,0,0.15666471,-5.1504396,254.55225)"
x1="39.630962"
y1="196.65211"
x2="56.496174"
y2="208.57474" />
<linearGradient
gradientTransform="matrix(0.20376549,0,0,0.20074727,-14.31152,285.69187)"
inkscape:collect="always"
xlink:href="#linearGradient1014"
id="linearGradient976"
x1="85.003403"
y1="24.072737"
x2="90.152313"
y2="29.206858"
gradientUnits="userSpaceOnUse" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath922">
<rect
style="fill:none;fill-opacity:1;stroke:#23d829;stroke-width:0.044;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.72265625"
id="rect924"
width="12.7"
height="12.170834"
x="9.5367426e-08"
y="284.56458"
ry="1.0638391" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient908"
id="linearGradient910"
x1="12.7"
y1="284.29999"
x2="12.7"
y2="297"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.87500008,0,0,0.87505491,0.81442048,36.315602)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4759"
id="linearGradient874"
x1="255.39789"
y1="156.97427"
x2="256.42874"
y2="156.97427"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient908"
id="linearGradient62"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.87500008,0,0,0.87505491,-13.281515,36.362432)"
x1="12.7"
y1="284.29999"
x2="12.7"
y2="297" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="15.980121"
inkscape:cx="20.802729"
inkscape:cy="23.989658"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-smooth-nodes="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:snap-midpoints="true"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="true"
inkscape:object-paths="true"
inkscape:snap-intersection-paths="true"
inkscape:object-nodes="true"
inkscape:snap-center="true"
inkscape:snap-text-baseline="true"
inkscape:snap-global="true"
inkscape:snap-grids="false"
inkscape:snap-to-guides="true">
<inkscape:grid
type="xygrid"
id="grid885" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-284.29999)">
<ellipse
id="path64"
cx="6.3760843"
cy="290.90906"
rx="6.2284365"
ry="6.1347756"
style="fill:url(#linearGradient62)"
z="9" />
<g
id="g889"
transform="matrix(0.77674917,0,0,0.77993751,1.4662318,64.012038)">
<path
style="fill:#27b181;fill-opacity:1;stroke:none;stroke-width:0.02480469px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 4.9266835,288.67208 c 0,0 -0.3728772,0.72708 -0.5817291,0.90212 -0.1467587,0.12299 -0.5403878,0.19489 -0.5403878,0.19489 l 0.7707172,0.2259 1.6743163,-0.39422 c 0,0 -0.7913874,-1.07043 -1.3229166,-0.92869 z"
id="path879-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cscccc" />
<path
sodipodi:nodetypes="cscc"
inkscape:connector-curvature="0"
id="path4715-0"
d="m 4.1744977,288.92304 c 0,0 1.1173813,-2.75102 3.3019109,-0.59828 2.1845217,2.15274 3.6949274,5.47345 3.6949274,5.47345 0,0 -2.9944654,-4.26031 -6.9968383,-4.87517 z"
style="fill:#1cd28e;fill-opacity:1;stroke:none;stroke-width:0.08956835px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4715-6-93"
d="m 2.2426889,288.4487 c 0,0 -0.1508518,-2.94653 2.7747518,-1.81527 2.9256022,1.13127 6.6242253,4.28351 6.6242253,4.28351 0,0 -4.8112308,-3.07932 -9.3989771,-2.46824 z"
style="fill:url(#linearGradient953);fill-opacity:1;stroke:none;stroke-width:0.08956835px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:nodetypes="cscc"
inkscape:connector-curvature="0"
id="path4715-6-9-6"
d="m 1.3229167,287.74194 c 0,0 -1.322916666666666,-2.64583 1.9849644,-2.35592 3.1595803,0.27691 7.8046189,2.09134 7.8046189,2.09134 0,0 -5.6043102,-1.52438 -9.7895833,0.26458 z"
style="fill:url(#linearGradient955);fill-opacity:1;stroke:none;stroke-width:0.08956835px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.27755448;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 3.6416708,289.91693 c -0.7492351,0 -1.3524704,0.69167 -1.3524704,1.5509 v 1.17083 c 0,0.85923 0.6032353,1.55108 1.3524704,1.55108 h 0.5832971 c 0.7492363,0 1.3524712,-0.69185 1.3524712,-1.55108 v -1.17083 c 0,-0.85923 -0.6032349,-1.5509 -1.3524712,-1.5509 z m 0.1234318,0.60551 h 0.3346139 c 0.429567,0 0.7753625,0.37687 0.7753625,0.84495 v 1.40023 c 0,0.46808 -0.3457955,0.84495 -0.7753625,0.84495 H 3.7651026 c -0.4295666,0 -0.7753632,-0.37687 -0.7753632,-0.84495 v -1.40023 c 0,-0.46808 0.3457966,-0.84495 0.7753632,-0.84495 z"
id="rect4871-6"
inkscape:connector-curvature="0" />
<rect
style="fill:url(#linearGradient874);fill-opacity:1.0;stroke:none;stroke-width:0.28459525;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4892-2"
width="1.0308615"
height="0.77975327"
x="255.39789"
y="156.5844"
rx="0"
ry="0"
transform="matrix(0.54708146,0.83707937,-0.86047141,0.50949872,0,0)" />
<rect
style="opacity:0.5;fill:url(#linearGradient976);fill-opacity:0.5;stroke:none;stroke-width:0.6178087;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect968"
width="1.8878751"
height="3.0746891"
x="2.9962649"
y="290.52454"
ry="0.7882148" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:1.77398825px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.04434972"
x="6.0134816"
y="291.99249"
id="text877"
transform="scale(0.99392476,1.0061124)"><tspan
sodipodi:role="line"
id="tspan875"
x="6.0134816"
y="291.99249"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.04434972">V2ray</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,271 @@
<?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://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="48"
height="48"
viewBox="0 0 12.699999 12.7"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="Applogo_Frameless.svg"
inkscape:export-filename="/media/Storage/Projects/Qv2ray/icons/qv.png"
inkscape:export-xdpi="512"
inkscape:export-ydpi="512">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient908">
<stop
style="stop-color:#6e7678;stop-opacity:1"
offset="0"
id="stop904" />
<stop
style="stop-color:#2e3235;stop-opacity:1"
offset="1"
id="stop906" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient847">
<stop
style="stop-color:#c1fe6f;stop-opacity:1"
offset="0"
id="stop843" />
<stop
style="stop-color:#60fe6f;stop-opacity:1"
offset="1"
id="stop845" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient5057">
<stop
style="stop-color:#3c3c3c;stop-opacity:1;"
offset="0"
id="stop5053" />
<stop
style="stop-color:#282728;stop-opacity:0.6574803"
offset="1"
id="stop5055" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4759">
<stop
style="stop-color:#2eec71;stop-opacity:1"
offset="0"
id="stop4755" />
<stop
style="stop-color:#1cdc9a;stop-opacity:1"
offset="1"
id="stop4757" />
</linearGradient>
<linearGradient
id="linearGradient4713"
inkscape:collect="always">
<stop
id="stop4709"
offset="0"
style="stop-color:#3de256;stop-opacity:1" />
<stop
id="stop4711"
offset="1"
style="stop-color:#2fbeba;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4713"
id="linearGradient4707"
x1="89.965836"
y1="19.458199"
x2="108.00179"
y2="39.934193"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(38.574145,1.3181723)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5057"
id="linearGradient5059"
x1="92.227142"
y1="48.940449"
x2="140.26065"
y2="94.022179"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4759"
id="linearGradient953"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.34597512,0.06144722,-0.06655638,0.31941658,-25.119909,272.6237)"
x1="85.229973"
y1="28.293249"
x2="113.08728"
y2="35.515835" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient847"
id="linearGradient955"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.15666471,0,0,0.15666471,-5.1504396,254.55225)"
x1="39.630962"
y1="196.65211"
x2="56.496174"
y2="208.57474" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath922">
<rect
style="fill:none;fill-opacity:1;stroke:#23d829;stroke-width:0.044;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.72265625"
id="rect924"
width="12.7"
height="12.170834"
x="9.5367426e-08"
y="284.56458"
ry="1.0638391" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient908"
id="linearGradient910"
x1="12.7"
y1="284.29999"
x2="12.7"
y2="297"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.87500008,0,0,0.87505491,0.81442048,36.315602)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4759"
id="linearGradient874"
x1="255.39789"
y1="156.97427"
x2="256.42874"
y2="156.97427"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="31.960242"
inkscape:cx="19.684095"
inkscape:cy="21.19423"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="false"
inkscape:snap-smooth-nodes="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:snap-midpoints="false"
units="px"
inkscape:snap-nodes="false"
inkscape:snap-others="false"
inkscape:object-paths="false"
inkscape:snap-intersection-paths="false"
inkscape:object-nodes="false"
inkscape:snap-center="false"
inkscape:snap-text-baseline="false"
inkscape:snap-global="false"
inkscape:snap-grids="false"
inkscape:snap-to-guides="false">
<inkscape:grid
type="xygrid"
id="grid885" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-284.29999)">
<g
id="g889"
transform="matrix(0.77674917,0,0,0.77993751,1.4662318,64.012038)">
<path
style="fill:#27b181;fill-opacity:1;stroke:none;stroke-width:0.02480469px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 4.9266835,288.67208 c 0,0 -0.3728772,0.72708 -0.5817291,0.90212 -0.1467587,0.12299 -0.5403878,0.19489 -0.5403878,0.19489 l 0.7707172,0.2259 1.6743163,-0.39422 c 0,0 -0.7913874,-1.07043 -1.3229166,-0.92869 z"
id="path879-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cscccc" />
<path
sodipodi:nodetypes="cscc"
inkscape:connector-curvature="0"
id="path4715-0"
d="m 4.1744977,288.92304 c 0,0 1.1173813,-2.75102 3.3019109,-0.59828 2.1845217,2.15274 3.6949274,5.47345 3.6949274,5.47345 0,0 -2.9944654,-4.26031 -6.9968383,-4.87517 z"
style="fill:#1cd28e;fill-opacity:1;stroke:none;stroke-width:0.08956835px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4715-6-93"
d="m 2.2426889,288.4487 c 0,0 -0.1508518,-2.94653 2.7747518,-1.81527 2.9256022,1.13127 6.6242253,4.28351 6.6242253,4.28351 0,0 -4.8112308,-3.07932 -9.3989771,-2.46824 z"
style="fill:url(#linearGradient953);fill-opacity:1;stroke:none;stroke-width:0.08956835px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:nodetypes="cscc"
inkscape:connector-curvature="0"
id="path4715-6-9-6"
d="m 1.3229167,287.74194 c 0,0 -1.322916666666666,-2.64583 1.9849644,-2.35592 3.1595803,0.27691 7.8046189,2.09134 7.8046189,2.09134 0,0 -5.6043102,-1.52438 -9.7895833,0.26458 z"
style="fill:url(#linearGradient955);fill-opacity:1;stroke:none;stroke-width:0.08956835px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<path
style="fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.27755448;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 3.6416708,289.91693 c -0.7492351,0 -1.3524704,0.69167 -1.3524704,1.5509 v 1.17083 c 0,0.85923 0.6032353,1.55108 1.3524704,1.55108 h 0.5832971 c 0.7492363,0 1.3524712,-0.69185 1.3524712,-1.55108 v -1.17083 c 0,-0.85923 -0.6032349,-1.5509 -1.3524712,-1.5509 z m 0.1234318,0.60551 h 0.3346139 c 0.429567,0 0.7753625,0.37687 0.7753625,0.84495 v 1.40023 c 0,0.46808 -0.3457955,0.84495 -0.7753625,0.84495 H 3.7651026 c -0.4295666,0 -0.7753632,-0.37687 -0.7753632,-0.84495 v -1.40023 c 0,-0.46808 0.3457966,-0.84495 0.7753632,-0.84495 z"
id="rect4871-6"
inkscape:connector-curvature="0" />
<rect
style="fill:url(#linearGradient874);fill-opacity:1.0;stroke:none;stroke-width:0.28459525;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4892-2"
width="1.0308615"
height="0.77975327"
x="255.39789"
y="156.5844"
rx="0"
ry="0"
transform="matrix(0.54708146,0.83707937,-0.86047141,0.50949872,0,0)" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:1.77398825px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.04434972;"
x="6.0134816"
y="291.99249"
id="text877"
transform="scale(0.99392476,1.0061124)"><tspan
sodipodi:role="line"
id="tspan875"
x="6.0134816"
y="291.99249"
style="fill:#666666;fill-opacity:1;stroke-width:0.04434972;">V2ray</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@ -0,0 +1,383 @@
<?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://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="48"
height="48"
viewBox="0 0 12.699999 12.7"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="Qv2ray_Green.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/qv2ray.png"
inkscape:export-xdpi="292.57144"
inkscape:export-ydpi="292.57144">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient908">
<stop
style="stop-color:#6e7678;stop-opacity:1"
offset="0"
id="stop904" />
<stop
style="stop-color:#2e3235;stop-opacity:1"
offset="1"
id="stop906" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient881">
<stop
style="stop-color:#4d595a;stop-opacity:1"
offset="0"
id="stop877" />
<stop
style="stop-color:#313537;stop-opacity:1"
offset="1"
id="stop879" />
</linearGradient>
<linearGradient
id="linearGradient1014"
inkscape:collect="always">
<stop
id="stop1010"
offset="0"
style="stop-color:#232629;stop-opacity:1" />
<stop
id="stop1012"
offset="1"
style="stop-color:#282728;stop-opacity:0.6574803" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient974">
<stop
style="stop-color:#232629;stop-opacity:1;"
offset="0"
id="stop970" />
<stop
style="stop-color:#232629;stop-opacity:0;"
offset="1"
id="stop972" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient847">
<stop
style="stop-color:#c1fe6f;stop-opacity:1"
offset="0"
id="stop843" />
<stop
style="stop-color:#60fe6f;stop-opacity:1"
offset="1"
id="stop845" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient5057">
<stop
style="stop-color:#3c3c3c;stop-opacity:1;"
offset="0"
id="stop5053" />
<stop
style="stop-color:#282728;stop-opacity:0.6574803"
offset="1"
id="stop5055" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4759">
<stop
style="stop-color:#2eec71;stop-opacity:1"
offset="0"
id="stop4755" />
<stop
style="stop-color:#1cdc9a;stop-opacity:1"
offset="1"
id="stop4757" />
</linearGradient>
<linearGradient
id="linearGradient4713"
inkscape:collect="always">
<stop
id="stop4709"
offset="0"
style="stop-color:#3de256;stop-opacity:1" />
<stop
id="stop4711"
offset="1"
style="stop-color:#2fbeba;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4713"
id="linearGradient4707"
x1="89.965836"
y1="19.458199"
x2="108.00179"
y2="39.934193"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(38.574145,1.3181723)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5057"
id="linearGradient5059"
x1="92.227142"
y1="48.940449"
x2="140.26065"
y2="94.022179"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4759"
id="linearGradient953"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.34597512,0.06144722,-0.06655638,0.31941658,-25.119909,272.6237)"
x1="85.229973"
y1="28.293249"
x2="113.08728"
y2="35.515835" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient847"
id="linearGradient955"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.15666471,0,0,0.15666471,-5.1504396,254.55225)"
x1="39.630962"
y1="196.65211"
x2="56.496174"
y2="208.57474" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient974"
id="linearGradient984"
x1="2.1166666"
y1="290.38541"
x2="8.2020836"
y2="297"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.77674916,0,0,0.77993748,0.85059819,64.012035)" />
<linearGradient
gradientTransform="matrix(0.20376549,0,0,0.20074727,-14.31152,285.69187)"
inkscape:collect="always"
xlink:href="#linearGradient1014"
id="linearGradient976"
x1="85.003403"
y1="24.072737"
x2="90.152313"
y2="29.206858"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient974"
id="linearGradient1028"
x1="1.3229166"
y1="286.15207"
x2="13.41244"
y2="297.00031"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.77674916,0,0,0.77993748,1.4662318,64.013879)" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath922">
<rect
style="fill:none;fill-opacity:1;stroke:#23d829;stroke-width:0.044;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.72265625"
id="rect924"
width="12.7"
height="12.170834"
x="9.5367426e-08"
y="284.56458"
ry="1.0638391" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient881"
id="linearGradient883"
x1="0"
y1="284.82916"
x2="12.7"
y2="297"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.87499999,0,0,0.8892651,0.79374991,32.185238)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient908"
id="linearGradient910"
x1="12.7"
y1="284.29999"
x2="12.7"
y2="297"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.87500008,0,0,0.87505491,0.81442048,36.315602)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4759"
id="linearGradient874"
x1="255.39789"
y1="156.97427"
x2="256.42874"
y2="156.97427"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.649826"
inkscape:cx="-54.381415"
inkscape:cy="54.29098"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1874"
inkscape:window-height="1050"
inkscape:window-x="46"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-smooth-nodes="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:snap-midpoints="true"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="true"
inkscape:object-paths="true"
inkscape:snap-intersection-paths="true"
inkscape:object-nodes="true"
inkscape:snap-center="true"
inkscape:snap-text-baseline="true"
inkscape:snap-global="true"
inkscape:snap-grids="false">
<inkscape:grid
type="xygrid"
id="grid885" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-284.29999)">
<rect
style="fill:url(#linearGradient910);fill-opacity:1;stroke:none;stroke-width:0.21816222;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4910-1"
width="11.1125"
height="11.113197"
x="0.79374999"
y="285.09375"
ry="0.52915668" />
<rect
style="fill:url(#linearGradient883);fill-opacity:1;stroke:none;stroke-width:0.08627162;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4910-2-2"
width="11.1125"
height="10.352571"
x="0.79374999"
y="285.47388"
ry="0.52494615" />
<path
style="opacity:0.65;fill:url(#linearGradient1028);fill-opacity:1;stroke:none;stroke-width:0.20593624px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2.4938062,288.43277 1.8496339,1.85724 1.0275745,0.41087 4.9323574,4.95258 1.583192,0.002 -0.0022,-5.63289 -1.786476,-1.79602 -3.4937536,-1.0318 -3.699268,0.61907 z"
id="path1020"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc"
clip-path="none" />
<g
id="g889"
transform="matrix(0.77674917,0,0,0.77993751,1.4662318,64.012038)">
<path
style="fill:#27b181;fill-opacity:1;stroke:none;stroke-width:0.02480469px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 4.9266835,288.67208 c 0,0 -0.3728772,0.72708 -0.5817291,0.90212 -0.1467587,0.12299 -0.5403878,0.19489 -0.5403878,0.19489 l 0.7707172,0.2259 1.6743163,-0.39422 c 0,0 -0.7913874,-1.07043 -1.3229166,-0.92869 z"
id="path879-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cscccc" />
<path
sodipodi:nodetypes="cscc"
inkscape:connector-curvature="0"
id="path4715-0"
d="m 4.1744977,288.92304 c 0,0 1.1173813,-2.75102 3.3019109,-0.59828 2.1845217,2.15274 3.6949274,5.47345 3.6949274,5.47345 0,0 -2.9944654,-4.26031 -6.9968383,-4.87517 z"
style="fill:#1cd28e;fill-opacity:1;stroke:none;stroke-width:0.08956835px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4715-6-93"
d="m 2.2426889,288.4487 c 0,0 -0.1508518,-2.94653 2.7747518,-1.81527 2.9256022,1.13127 6.6242253,4.28351 6.6242253,4.28351 0,0 -4.8112308,-3.07932 -9.3989771,-2.46824 z"
style="fill:url(#linearGradient953);fill-opacity:1;stroke:none;stroke-width:0.08956835px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:nodetypes="cscc"
inkscape:connector-curvature="0"
id="path4715-6-9-6"
d="m 1.3229167,287.74194 c 0,0 -1.322916666666666,-2.64583 1.9849644,-2.35592 3.1595803,0.27691 7.8046189,2.09134 7.8046189,2.09134 0,0 -5.6043102,-1.52438 -9.7895833,0.26458 z"
style="fill:url(#linearGradient955);fill-opacity:1;stroke:none;stroke-width:0.08956835px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<path
style="opacity:0.75;fill:url(#linearGradient984);fill-opacity:1;stroke:none;stroke-width:0.20593624px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2.4947173,293.38352 2.0551488,2.26995 h 5.7544159 l -4.9323566,-4.95259 -0.9012783,-0.24572 0.7071424,0.71003 v 1.99987 l -0.5092722,0.51136 -0.5164926,0.29941 h -0.823185 l -0.6048485,-0.60732 z"
id="path966"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccc" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.27755448;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 3.6416708,289.91693 c -0.7492351,0 -1.3524704,0.69167 -1.3524704,1.5509 v 1.17083 c 0,0.85923 0.6032353,1.55108 1.3524704,1.55108 h 0.5832971 c 0.7492363,0 1.3524712,-0.69185 1.3524712,-1.55108 v -1.17083 c 0,-0.85923 -0.6032349,-1.5509 -1.3524712,-1.5509 z m 0.1234318,0.60551 h 0.3346139 c 0.429567,0 0.7753625,0.37687 0.7753625,0.84495 v 1.40023 c 0,0.46808 -0.3457955,0.84495 -0.7753625,0.84495 H 3.7651026 c -0.4295666,0 -0.7753632,-0.37687 -0.7753632,-0.84495 v -1.40023 c 0,-0.46808 0.3457966,-0.84495 0.7753632,-0.84495 z"
id="rect4871-6"
inkscape:connector-curvature="0" />
<rect
style="fill:url(#linearGradient874);fill-opacity:1.0;stroke:none;stroke-width:0.28459525;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4892-2"
width="1.0308615"
height="0.77975327"
x="255.39789"
y="156.5844"
rx="0"
ry="0"
transform="matrix(0.54708146,0.83707937,-0.86047141,0.50949872,0,0)" />
<rect
style="opacity:0.5;fill:url(#linearGradient976);fill-opacity:1;stroke:none;stroke-width:0.6178087;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect968"
width="1.8878751"
height="3.0746891"
x="2.9962649"
y="290.52454"
ry="0.7882148" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:1.77398825px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.04434972"
x="6.0134816"
y="291.99249"
id="text877"
transform="scale(0.99392476,1.0061124)"><tspan
sodipodi:role="line"
id="tspan875"
x="6.0134816"
y="291.99249"
style="fill:#ffffff;fill-opacity:1;stroke-width:0.04434972">V2ray</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

471
icons/designs/banner.svg Normal file
View File

@ -0,0 +1,471 @@
<?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://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="615.74542"
height="323.61377"
viewBox="0 0 224.48847 117.98311"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="Qv2ray_Banner.svg"
inkscape:export-filename="/home/axionl/Qv2ray_Banner.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient1299">
<stop
style="stop-color:#d1f8de;stop-opacity:0.7421875"
offset="0"
id="stop1295" />
<stop
style="stop-color:#e8fff1;stop-opacity:0.26171875"
offset="1"
id="stop1297" />
</linearGradient>
<linearGradient
id="linearGradient5057"
inkscape:collect="always">
<stop
id="stop5053"
offset="0"
style="stop-color:#3c3c3c;stop-opacity:1;" />
<stop
id="stop5055"
offset="1"
style="stop-color:#282728;stop-opacity:0.6574803" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4713">
<stop
style="stop-color:#3de256;stop-opacity:1"
offset="0"
id="stop4709" />
<stop
style="stop-color:#2fbeba;stop-opacity:1"
offset="1"
id="stop4711" />
</linearGradient>
<linearGradient
gradientTransform="translate(38.574145,1.3181723)"
gradientUnits="userSpaceOnUse"
y2="39.934193"
x2="108.00179"
y1="19.458199"
x1="89.965836"
id="linearGradient4707"
xlink:href="#linearGradient4713"
inkscape:collect="always" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="94.022179"
x2="140.26065"
y1="48.940449"
x1="92.227142"
id="linearGradient5059"
xlink:href="#linearGradient5057"
inkscape:collect="always" />
<clipPath
id="clipPath922"
clipPathUnits="userSpaceOnUse">
<rect
ry="1.0638391"
y="284.56458"
x="9.5367426e-08"
height="12.170834"
width="12.7"
id="rect924"
style="fill:none;fill-opacity:1;stroke:#23d829;stroke-width:0.044;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.72265625" />
</clipPath>
<linearGradient
inkscape:collect="always"
id="linearGradient1014">
<stop
style="stop-color:#232629;stop-opacity:1"
offset="0"
id="stop1010" />
<stop
style="stop-color:#282728;stop-opacity:0.6574803"
offset="1"
id="stop1012" />
</linearGradient>
<linearGradient
id="linearGradient974"
inkscape:collect="always">
<stop
id="stop970"
offset="0"
style="stop-color:#232629;stop-opacity:1;" />
<stop
id="stop972"
offset="1"
style="stop-color:#232629;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient847"
inkscape:collect="always">
<stop
id="stop843"
offset="0"
style="stop-color:#c1fe6f;stop-opacity:1" />
<stop
id="stop845"
offset="1"
style="stop-color:#60fe6f;stop-opacity:1" />
</linearGradient>
<linearGradient
id="linearGradient4759"
inkscape:collect="always">
<stop
id="stop4755"
offset="0"
style="stop-color:#2eec71;stop-opacity:1" />
<stop
id="stop4757"
offset="1"
style="stop-color:#1cdc9a;stop-opacity:1" />
</linearGradient>
<clipPath
id="clipPath922-0"
clipPathUnits="userSpaceOnUse">
<rect
ry="1.0638391"
y="284.56458"
x="9.5367426e-08"
height="12.170834"
width="12.7"
id="rect924-6"
style="fill:none;fill-opacity:1;stroke:#23d829;stroke-width:0.044;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.72265625" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient1299"
id="linearGradient1293"
x1="10.783128"
y1="217.78912"
x2="177.85728"
y2="339.11475"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient908"
id="linearGradient910"
x1="12.7"
y1="284.29999"
x2="12.7"
y2="297"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.2056978,0,0,1.2057734,77.261682,-114.9911)" />
<linearGradient
inkscape:collect="always"
id="linearGradient908">
<stop
style="stop-color:#6e7678;stop-opacity:1"
offset="0"
id="stop904" />
<stop
style="stop-color:#2e3235;stop-opacity:1"
offset="1"
id="stop906" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient881"
id="linearGradient883"
x1="0"
y1="284.82916"
x2="12.7"
y2="297"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.2056977,0,0,1.2253541,77.233199,-120.6825)" />
<linearGradient
inkscape:collect="always"
id="linearGradient881">
<stop
style="stop-color:#4d595a;stop-opacity:1"
offset="0"
id="stop877" />
<stop
style="stop-color:#313537;stop-opacity:1"
offset="1"
id="stop879" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient974"
id="linearGradient1028-3"
x1="1.3229166"
y1="286.15207"
x2="13.41244"
y2="297.00031"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0703139,0,0,1.0747072,78.159839,-76.824538)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient4759"
id="linearGradient953-5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.34597512,0.06144722,-0.06655638,0.31941658,-25.119909,272.6237)"
x1="85.229973"
y1="28.293249"
x2="113.08728"
y2="35.515835" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient847"
id="linearGradient955-6"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.15666471,0,0,0.15666471,-5.1504396,254.55225)"
x1="39.630962"
y1="196.65211"
x2="56.496174"
y2="208.57474" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient974"
id="linearGradient984-1"
x1="2.1166666"
y1="290.38541"
x2="8.2020836"
y2="297"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0703139,0,0,1.0747072,77.311532,-76.827079)" />
<linearGradient
gradientTransform="matrix(0.28077666,0,0,0.27661774,56.41904,228.63448)"
inkscape:collect="always"
xlink:href="#linearGradient1014"
id="linearGradient976-2"
x1="85.003403"
y1="24.072737"
x2="90.152313"
y2="29.206858"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.959798"
inkscape:cx="302.28651"
inkscape:cy="226.42951"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:window-width="1874"
inkscape:window-height="1050"
inkscape:window-x="46"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:object-paths="true"
inkscape:snap-bbox="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
inkscape:snap-nodes="true"
scale-x="0.36458"
fit-margin-top="25"
fit-margin-left="25"
fit-margin-right="25"
fit-margin-bottom="25"
inkscape:snap-intersection-paths="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-text-baseline="true"
inkscape:snap-global="true"
inkscape:snap-others="false">
<inkscape:grid
type="xygrid"
id="grid1234"
originx="46.619838"
originy="24.11246" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(46.619838,-221.12875)">
<rect
style="opacity:1;fill:none;fill-opacity:0.26171875;stroke:none;stroke-width:0.04547203;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.72265625"
id="rect1328"
width="226.03961"
height="120.3114"
x="-47.395409"
y="220.2086" />
<path
style="fill:url(#linearGradient1293);fill-opacity:1;stroke:none;stroke-width:0.36458001px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m -37.461738,329.95377 9.160997,9.16099 H 177.85728 l 0.26073,-84.45811 -9.40747,-9.40747 v 84.70459 z"
id="path1285"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<rect
style="opacity:1;fill:#fffefa;fill-opacity:1;stroke:#23d829;stroke-width:0.08719815;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.72265625"
id="rect1254"
width="206.17227"
height="84.704582"
x="-37.461739"
y="245.24918"
ry="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:20.29482841px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.50737071"
x="30.43325"
y="289.26395"
id="text1204"><tspan
sodipodi:role="line"
id="tspan1202"
x="30.43325"
y="289.26395"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Noto Sans';-inkscape-font-specification:'Noto Sans';fill:#4d4d4d;fill-opacity:1;stroke-width:0.50737071">QV2ray</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:20.68452454px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#666666;fill-opacity:1;stroke:none;stroke-width:0.51711321"
x="16.455324"
y="304.12708"
id="text1204-7"><tspan
sodipodi:role="line"
id="tspan1202-5"
x="16.455324"
y="304.12708"
style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-size:7.58432627px;font-family:'Noto Sans CJK SC';-inkscape-font-specification:'Noto Sans CJK SC Light';fill:#666666;stroke-width:0.51711321">The V2ray GUI client using Qt</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:20.68452454px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#b3b3b3;fill-opacity:1;stroke:none;stroke-width:0.51711321"
x="23.02709"
y="314.99207"
id="text1204-7-7"><tspan
sodipodi:role="line"
id="tspan1202-5-8"
x="23.02709"
y="314.99207"
style="font-style:normal;font-variant:normal;font-weight:100;font-stretch:normal;font-size:7.58432627px;font-family:'Noto Sans CJK SC';-inkscape-font-specification:'Noto Sans CJK SC Thin';fill:#b3b3b3;stroke-width:0.51711321">Windows / Linux / macOS</tspan></text>
<g
id="g963"
transform="matrix(2.3388721,0,0,2.3388721,-132.92101,-303.99427)">
<rect
ry="0.7291463"
y="227.81032"
x="77.2332"
height="15.313321"
width="15.31236"
id="rect4910-1-9"
style="fill:url(#linearGradient910);fill-opacity:1;stroke:none;stroke-width:0.30061451;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
ry="0.72334439"
y="228.33411"
x="77.2332"
height="14.265224"
width="15.31236"
id="rect4910-2-2-3"
style="fill:url(#linearGradient883);fill-opacity:1;stroke:none;stroke-width:0.11887714;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
clip-path="none"
sodipodi:nodetypes="cccccccccc"
inkscape:connector-curvature="0"
id="path1020-6"
d="m 79.575775,232.41128 2.548685,2.55917 1.415936,0.56615 6.796493,6.82436 2.181544,0.003 -0.003,-7.76179 -2.461662,-2.47482 -4.814184,-1.42176 -5.09737,0.85304 z"
style="opacity:0.65;fill:url(#linearGradient1028-3);fill-opacity:1;stroke:none;stroke-width:0.28376782px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<g
transform="matrix(1.0703139,0,0,1.0747072,78.159839,-76.82709)"
id="g889">
<path
sodipodi:nodetypes="cscccc"
inkscape:connector-curvature="0"
id="path879-7-0"
d="m 4.9266835,288.67208 c 0,0 -0.3728772,0.72708 -0.5817291,0.90212 -0.1467587,0.12299 -0.5403878,0.19489 -0.5403878,0.19489 l 0.7707172,0.2259 1.6743163,-0.39422 c 0,0 -0.7913874,-1.07043 -1.3229166,-0.92869 z"
style="fill:#27b181;fill-opacity:1;stroke:none;stroke-width:0.02480469px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:#1cd28e;fill-opacity:1;stroke:none;stroke-width:0.08956835px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 4.1744977,288.92304 c 0,0 1.1173813,-2.75102 3.3019109,-0.59828 2.1845217,2.15274 3.6949274,5.47345 3.6949274,5.47345 0,0 -2.9944654,-4.26031 -6.9968383,-4.87517 z"
id="path4715-0-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cscc" />
<path
style="fill:url(#linearGradient953-5);fill-opacity:1;stroke:none;stroke-width:0.08956835px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 2.2426889,288.4487 c 0,0 -0.1508518,-2.94653 2.7747518,-1.81527 2.9256022,1.13127 6.6242253,4.28351 6.6242253,4.28351 0,0 -4.8112308,-3.07932 -9.3989771,-2.46824 z"
id="path4715-6-93-2"
inkscape:connector-curvature="0" />
<path
style="fill:url(#linearGradient955-6);fill-opacity:1;stroke:none;stroke-width:0.08956835px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 1.3229167,287.74194 c 0,0 -1.322916666666666,-2.64583 1.9849644,-2.35592 3.1595803,0.27691 7.8046189,2.09134 7.8046189,2.09134 0,0 -5.6043102,-1.52438 -9.7895833,0.26458 z"
id="path4715-6-9-6-6"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cscc" />
</g>
<path
sodipodi:nodetypes="cccccccccccc"
inkscape:connector-curvature="0"
id="path966-1"
d="m 79.57703,239.23312 2.831873,3.12785 h 7.92924 l -6.796492,-6.82437 -1.241908,-0.33859 0.9744,0.97838 v 2.7557 l -0.701746,0.70463 -0.711696,0.41257 h -1.1343 l -0.833445,-0.83686 z"
style="opacity:0.75;fill:url(#linearGradient984-1);fill-opacity:1;stroke:none;stroke-width:0.28376782px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<g
transform="matrix(0.28077666,0,0,0.27661773,56.412455,228.61984)"
id="g4906-0-8">
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.37232864;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 88.130575,21.09953 c -3.676948,0 -6.637387,3.445469 -6.637387,7.725603 v 5.832396 c 0,4.280138 2.960439,7.726498 6.637387,7.726498 h 2.86259 c 3.676954,0 6.637391,-3.44636 6.637391,-7.726498 v -5.832396 c 0,-4.280134 -2.960437,-7.725603 -6.637391,-7.725603 z m 0.605754,3.016265 h 1.642152 c 2.108144,0 3.805171,1.877318 3.805171,4.20901 v 6.975112 c 0,2.331691 -1.697027,4.209009 -3.805171,4.209009 h -1.642152 c -2.108142,0 -3.805174,-1.877318 -3.805174,-4.209009 v -6.975112 c 0,-2.331692 1.697032,-4.20901 3.805174,-4.20901 z"
id="rect4871-6-7"
inkscape:connector-curvature="0" />
<rect
style="fill:#3bdc66;fill-opacity:1;stroke:none;stroke-width:1.4067868;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4892-2-9"
width="5.1124744"
height="3.841737"
x="82.512436"
y="-58.410168"
rx="0"
ry="0"
transform="matrix(0.54136549,0.84078737,-0.85710765,0.51513734,0,0)" />
</g>
<rect
ry="1.0861129"
y="235.29361"
x="80.268135"
height="4.2367373"
width="2.6013789"
id="rect968-2"
style="opacity:0.5;fill:url(#linearGradient976-2);fill-opacity:1;stroke:none;stroke-width:0.85130346;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
transform="scale(0.99392474,1.0061124)"
id="text877"
y="238.31897"
x="84.891068"
style="font-style:normal;font-weight:normal;font-size:2.44444966px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.06111126"
xml:space="preserve"><tspan
style="fill:#ffffff;fill-opacity:1;stroke-width:0.06111126"
y="238.31897"
x="84.891068"
id="tspan875"
sodipodi:role="line">V2ray</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,85 +0,0 @@
<?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://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="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg68"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="edit_connection_btn.svg">
<defs
id="defs62" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.16"
inkscape:cx="-1959.3444"
inkscape:cy="-96.386561"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1050"
inkscape:window-x="1920"
inkscape:window-y="30"
inkscape:window-maximized="1"
showguides="true"
inkscape:guide-bbox="true" />
<metadata
id="metadata65">
<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>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g151"
transform="matrix(0.77998462,0.45032433,-0.4818899,0.83465778,88.833102,-18.057022)"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<path
inkscape:connector-curvature="0"
d="m 109.71346,185.45443 16.6138,18.51253 -16.6138,18.51253 -16.613804,-18.51253 z M 93.099655,112.60424 h 33.309325 v 91.36272 H 93.099657 Z"
style="fill:#808080;stroke-width:0.22257984"
id="rect24" />
<rect
y="88.811867"
x="93.099655"
height="11.896188"
width="33.309326"
id="rect33"
style="fill:#808080;stroke-width:0.33672053" />
</g>
<rect
style="fill:#808080;stroke-width:0.29884946"
id="rect39"
width="132.29167"
height="10.583333"
x="37.750366"
y="219.70386"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -1,74 +0,0 @@
<?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://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="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="import_connection_btn.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.78038721"
inkscape:cx="175.16557"
inkscape:cy="540.28184"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1050"
inkscape:window-x="1920"
inkscape:window-y="30"
inkscape:window-maximized="1" />
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
id="rect38"
style="fill:#808080;stroke-width:0.26458332"
d="M 106.7982,81.639253 66.522106,121.91483 H 147.07378 Z M 91.79793,121.91507 h 30 v 67.94371 h -30 z"
inkscape:connector-curvature="0"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<rect
style="fill:#808080;stroke-width:0.29884946"
id="rect39-3"
width="132.29167"
height="10.583333"
x="40.652103"
y="203.34738"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="459px" height="459px" viewBox="0 0 459 459" style="enable-background:new 0 0 459 459;" xml:space="preserve">
<g>
<g id="swap-vert">
<path fill="#808080" d="M331.5,357V178.5h-51V357H204l102,102l102-102H331.5z M153,0L51,102h76.5v178.5h51V102H255L153,0z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1,103 +0,0 @@
<?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://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="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="remove_connection_btn.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.78038721"
inkscape:cx="319.47995"
inkscape:cy="722.22587"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1050"
inkscape:window-x="0"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true">
<sodipodi:guide
position="131.95044,215.36075"
orientation="0,1"
id="guide11"
inkscape:locked="false" />
<sodipodi:guide
position="70.590597,83.065066"
orientation="0,1"
id="guide13"
inkscape:locked="false" />
<sodipodi:guide
position="38.854164,198.30448"
orientation="1,0"
id="guide15"
inkscape:locked="false" />
<sodipodi:guide
position="171.14584,198.30448"
orientation="1,0"
id="guide17"
inkscape:locked="false" />
<sodipodi:guide
position="131.95044,199.48575"
orientation="0,1"
id="guide86"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<path
style="fill:#ff5555;stroke-width:0.32981005"
d="m 54.174686,120.78453 v 93.15021 H 155.82533 v -93.15021 z m 14.650783,15.23548 h 13.229166 v 62.67925 H 68.825469 Z m 30.427083,0 h 13.229168 v 62.67925 H 99.252552 Z m 30.427598,0 h 13.22917 v 62.67925 h -13.22917 z"
id="rect9"
inkscape:connector-curvature="0"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
<path
id="rect39-3-3"
style="fill:#ff5555;stroke-width:0.23363064"
d="m 78.049561,81.639252 h 53.900889 v 15.875 H 78.049561 Z m -39.195389,15.875 H 171.14584 V 113.38925 H 38.854172 Z"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

BIN
icons/ui_dark/add.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 804 B

BIN
icons/ui_dark/delete.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

View File

@ -0,0 +1,145 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="add.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/add_connection_btn.png"
inkscape:export-xdpi="144.00002"
inkscape:export-ydpi="144.00002">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="8"
inkscape:cx="-6.067921"
inkscape:cy="6.3620808"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)"
style="opacity:1">
<path
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 24.145831,229.70159 v 1.05834 h -1.058334 v 1.05833 h 1.058334 v 1.05833 h 1.058333 v -1.05833 h 1.058333 v -1.05833 h -1.058333 v -1.05834 h -0.264583 z m 0.264583,0.26459 h 0.529167 v 1.05833 h 1.058333 v 0.52917 h -1.058333 v 1.05833 h -0.529167 v -1.05833 h -1.058333 v -0.52917 h 1.058333 z"
id="path830"
inkscape:connector-curvature="0" />
<rect
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159"
width="2.6458333"
height="0.26458332"
x="20.972286"
y="228.64551" />
<rect
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-1"
width="2.6458333"
height="0.26458332"
x="20.972509"
y="229.71312" />
<path
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 15 20 L 8 20 L 8 21 L 15 21 L 15 20 z "
id="path839"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
<path
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 9.5859375 4 L 3.9960938 9.5898438 L 4 10 L 4 25 L 15 25 L 15 24 L 5 24 L 5 10 L 10 10 L 10 5 L 20 5 L 20 15 L 21 15 L 21 4 L 10 4 L 9.5859375 4 z M 9 6 L 9 9 L 6 9 L 9 6 z "
id="path1214"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -0,0 +1,153 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="delete.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/remove_connection_btn.png"
inkscape:export-xdpi="144.00002"
inkscape:export-ydpi="144.00002">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568543"
inkscape:cx="-71.005696"
inkscape:cy="8.8646449"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.058,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,220,255)" />
<sodipodi:guide
position="0,7.408"
orientation="0,1"
id="guide826"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,220,255)" />
<sodipodi:guide
position="1.3229167,1.058"
orientation="0,1"
id="guide830"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,220,255)" />
<sodipodi:guide
position="7.408,7.4083334"
orientation="1,0"
id="guide869"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,220,255)" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)">
<path
style="fill:#e6e6e6;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
d="m 20.970831,228.64326 v 3.96875 h 4.233333 v -3.96875 h 0.264583 v 4.23333 h -4.7625 v -4.23333 z"
id="path835"
inkscape:connector-curvature="0" />
<path
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 21.76458,229.17243 v 2.91041 h 0.264584 v -2.91041 z"
id="path837"
inkscape:connector-curvature="0" />
<path
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 22.955205,229.17243 v 2.91041 h 0.264584 v -2.91041 z"
id="path837-3"
inkscape:connector-curvature="0" />
<path
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 24.145831,229.17243 v 2.91041 h 0.264584 v -2.91041 z"
id="path837-3-6"
inkscape:connector-curvature="0" />
<path
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 21.76458,226.52693 v 0.79341 h 0.264584 v -0.52916 h 2.116666 v 0.52916 h 0.264584 v -0.79375 z"
id="path871"
inkscape:connector-curvature="0" />
<path
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 4 7 L 4 12 L 27.998047 12 L 27.998047 7 L 4 7 z M 5 8 L 27 8 L 27 11 L 5 11 L 5 8 z "
id="rect881"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -0,0 +1,166 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="duplicate.svg"
inkscape:export-filename="/home/axionl/Desktop/Qv2ray_Design/duplicate_connection_btn.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568542"
inkscape:cx="-15.536765"
inkscape:cy="26.519006"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)">
<rect
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159"
width="2.6458333"
height="0.26458332"
x="22.559788"
y="229.43913" />
<rect
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-1"
width="2.6458333"
height="0.26458332"
x="22.560011"
y="230.50674" />
<rect
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-1-9"
width="2.6458333"
height="0.26458332"
x="22.558331"
y="231.55368" />
<rect
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-4"
width="0.26458308"
height="0.26457855"
x="20.970831"
y="228.64326"
ry="0" />
<rect
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-1-7"
width="0.26435992"
height="0.25530019"
x="20.971054"
y="229.71088" />
<rect
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-1-9-8"
width="0.2660403"
height="0.2666975"
x="20.969374"
y="230.75781" />
<path
id="path1214"
style="fill:#e6e6e6;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
d="m 21.764581,228.90784 h 1.322916 v -1.32291 l -0.264583,0.26458 v 0.79375 h -0.79375 z m -0.265642,-0.10855 1.479049,-1.47905 0.109509,10e-5 v 0.26459 l -1.322916,1.32291 h -0.264584 z m 4.498975,4.0773 v -5.55625 h -2.910417 v 0.26459 h 2.645834 v 5.02708 z m -0.264583,-0.26458 h -3.96875 v -3.70417 h -0.264584 v 3.96875 h 4.497917 z" />
<path
id="path1214-4"
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 20.177081,228.11409 h 1.322916 v -1.32291 l -0.264583,0.26458 v 0.79375 h -0.79375 z m -0.265642,-0.10855 1.479049,-1.47905 0.109509,1e-4 v 0.26459 l -1.322916,1.32291 h -0.264584 z m 4.498975,-0.94978 v -0.52917 h -2.910417 v 0.26459 h 2.645834 v 0.26458 z m -3.175,4.7625 h -1.058333 v -3.70417 h -0.264584 v 3.96875 h 1.322917 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1,213 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="edit.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/edit_connection_btn.png"
inkscape:export-xdpi="192"
inkscape:export-ydpi="192">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
inkscape:cx="5.0653219"
inkscape:cy="19.649966"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
<sodipodi:guide
position="3.703984,3.4395567"
orientation="0,1"
id="guide833"
inkscape:locked="false" />
<sodipodi:guide
position="3.4587786,3.6265368"
orientation="1,0"
id="guide1021"
inkscape:locked="false" />
<sodipodi:guide
position="3.6459543,3.4395567"
orientation="1,0"
id="guide1023"
inkscape:locked="false" />
<sodipodi:guide
position="6.0108124,5.8043835"
orientation="1,0"
id="guide1033"
inkscape:locked="false" />
<sodipodi:guide
position="5.823721,5.9914767"
orientation="1,0"
id="guide1035"
inkscape:locked="false" />
<sodipodi:guide
position="5.823721,5.9914767"
orientation="0,1"
id="guide1037"
inkscape:locked="false" />
<sodipodi:guide
position="6.0108124,5.8043835"
orientation="0,1"
id="guide1039"
inkscape:locked="false" />
<sodipodi:guide
position="3.4587786,3.6265368"
orientation="0,1"
id="guide1041"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,5.2916667"
orientation="1,0"
id="guide1116"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)">
<path
id="path944"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 25.343714,10.264687 -0.70702,-0.7070204 -7.599585,7.6005364 -2.886718,2.884766 H 12.003906 L 11.980469,17.970703 21.909591,8.0421546 24.0309,10.163462 24.636694,9.5576666 21.808273,6.7292423 10.990234,17.548828 l 0.0059,1.408203 0.0078,2.085938 3.552735,0.0078 1.007812,-1.007812 z" />
<path
id="path842-6"
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 24.537109,4 -2.123047,2.1230469 0.707032,0.7070312 2.121094,2.1210938 0.707338,-0.7063383 -2.121306,-2.1213082 0.706936,-0.7075098 2.121094,2.1210938 -1.414062,1.4140625 0.707031,0.7070312 2.121093,-2.1210937 z"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
<path
style="fill:#e6e6e6;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 22.312943,230.30839 v 0.18698 h 0.187175 l 2.364858,-2.36483 -0.187091,-0.18709 z"
id="path1029"
inkscape:connector-curvature="0" />
<path
style="fill:#e6e6e6;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0"
d="m 22.312943,230.30839 v 0.18698 h 0.18698 l 2.365051,-2.36483 -0.187089,-0.18709 z"
id="path1031"
inkscape:connector-curvature="0" />
<path
style="fill:#e6e6e6;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
d="m 22.312943,230.30839 v 0.18698 h 0.187175 l 2.364855,-2.36483 -0.187088,-0.18709 z"
id="path1043"
inkscape:connector-curvature="0" />
<path
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 12 15 L 8 15 L 8 16 L 11 16 L 12 15 z "
id="path925"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
<path
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 17,20.035156 h 1 v -1.035055 z"
id="path960"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 10,19.035156 8,19 v 1.035156 h 2 z"
id="path958"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<rect
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-1-9"
width="2.6458333"
height="0.26458332"
x="20.969374"
y="231.55156" />
<path
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 20,7 H 10 9.5859375 L 3.9960938,12.589844 4,13 V 28 H 21 V 16 l -1,1 V 27 H 5 V 13 h 5 V 8 h 9 z M 9,9 v 3 H 6 Z"
id="path838"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -0,0 +1,151 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="import.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/import_connection_btn.png"
inkscape:export-xdpi="191.99707"
inkscape:export-ydpi="191.99707">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
inkscape:cx="8.271398"
inkscape:cy="16.201975"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)">
<g
id="g832"
transform="translate(-0.66092917,-0.79374667)"
style="fill:#e6e6e6">
<rect
y="229.43913"
x="22.559788"
height="0.26458332"
width="2.6458333"
id="rect1159"
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
y="230.50674"
x="22.560011"
height="0.26458332"
width="2.6458333"
id="rect1159-1"
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
y="231.55368"
x="22.558331"
height="0.26458332"
width="2.6458333"
id="rect1159-1-9"
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
d="m 21.764581,228.90784 h 1.322916 v -1.32291 l -0.264583,0.26458 v 0.79375 h -0.79375 z m -0.265642,-0.10855 1.479049,-1.47905 0.109509,10e-5 v 0.26459 l -1.322916,1.32291 h -0.264584 z m 4.498975,4.0773 v -5.55625 h -2.910417 v 0.26459 h 2.645834 v 5.02708 z m -0.264583,-0.26458 h -3.96875 v -3.70417 h -0.264584 v 3.96875 h 4.497917 z"
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path1214"
inkscape:connector-curvature="0" />
</g>
<path
style="fill:#e6e6e6;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
d="m 19.912497,231.28909 h 0.529167 v 0.26459 h -0.264583 v 1.05833 h 5.820833 v -1.05833 h -0.264583 v -0.26459 h 0.529166 v 1.5875 h -6.35 z"
id="path834"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -0,0 +1,170 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="json.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/add_connection_btn.png"
inkscape:export-xdpi="144.00002"
inkscape:export-ydpi="144.00002">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="20.318725"
inkscape:cx="-1.4115197"
inkscape:cy="9.6750041"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="false"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
<sodipodi:guide
position="3.175,7.1437467"
orientation="0,1"
id="guide840"
inkscape:locked="false" />
<sodipodi:guide
position="2.1166665,5.8189079"
orientation="0,1"
id="guide842"
inkscape:locked="false" />
<sodipodi:guide
position="2.6458333,3.175"
orientation="0,1"
id="guide1086"
inkscape:locked="false" />
<sodipodi:guide
position="2.6458333,3.4395833"
orientation="0,1"
id="guide1088"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)"
style="opacity:1">
<g
id="g1116"
style="fill:#e6e6e6">
<path
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
id="path1214-6"
d="M 9.5898438 4 L 4 9.5898438 L 4.0039062 10 L 4.0039062 25 L 11 25 L 11 24 L 5.0039062 24 L 5.0039062 10 L 10.003906 10 L 10.003906 5 L 20.003906 5 L 20.003906 10.007812 L 21.003906 10.007812 L 21.003906 4 L 10.003906 4 L 9.5898438 4 z M 9.0039062 6 L 9.0039062 9 L 6.0039062 9 L 9.0039062 6 z "
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path1032"
d="m 22.822914,228.37868 a 0.79374999,0.79374999 0 0 0 -0.79375,0.79375 v 0.79375 a 0.52916663,0.52916663 0 0 1 -0.529167,0.52916 v 0.26459 a 0.52916663,0.52916663 0 0 1 0.529167,0.52916 v 0.79375 a 0.79374999,0.79374999 0 0 0 0.79375,0.79375 v -0.26458 a 0.52916663,0.52916663 0 0 1 -0.529167,-0.52917 v -0.79375 a 0.79374999,0.79374999 0 0 0 -0.35605,-0.66145 0.79374999,0.79374999 0 0 0 0.35605,-0.66146 v -0.79375 a 0.52916663,0.52916663 0 0 1 0.529167,-0.52917 z"
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path1032-1"
d="m 24.93958,228.37867 a 0.79375,0.79375 0 0 1 0.79375,0.79375 v 0.79375 a 0.52916664,0.52916664 0 0 0 0.529167,0.52917 v 0.26458 a 0.52916664,0.52916664 0 0 0 -0.529167,0.52917 v 0.79375 a 0.79375,0.79375 0 0 1 -0.79375,0.79375 V 232.612 a 0.52916664,0.52916664 0 0 0 0.529167,-0.52916 v -0.79375 a 0.79375,0.79375 0 0 1 0.356051,-0.66146 0.79375,0.79375 0 0 1 -0.356051,-0.66146 v -0.79375 a 0.52916664,0.52916664 0 0 0 -0.529167,-0.52917 z"
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
inkscape:connector-curvature="0" />
<g
id="g1108"
style="fill:#e6e6e6">
<circle
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path1067"
cx="23.881247"
cy="229.96617"
r="0.26458332" />
<path
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 19 21 A 0.99999994 0.99999994 0 0 0 18 22 A 0.99999994 0.99999994 0 0 0 18.722656 22.958984 C 18.426399 23.545698 18 24 18 24 C 18 24 19.261784 23.422924 19.775391 22.630859 A 0.99999994 0.99999994 0 0 0 19.914062 22.402344 A 0.99999994 0.99999994 0 0 0 20 22 A 0.99999994 0.99999994 0 0 0 19 21 z "
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
id="path1067-2" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -0,0 +1,162 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="netspeed_arrow.svg"
inkscape:export-filename="/home/axionl/Desktop/Qv2ray_Design/duplicate_connection_btn.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="16"
inkscape:cx="9.4046517"
inkscape:cy="5.7825006"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,6.6145834"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
<sodipodi:guide
position="3.0380535,7.4083327"
orientation="1,0"
id="guide859"
inkscape:locked="false" />
<sodipodi:guide
position="1.4336343,5.2927882"
orientation="0,1"
id="guide864"
inkscape:locked="false" />
<sodipodi:guide
position="4.6517755,5.2927883"
orientation="1,0"
id="guide890"
inkscape:locked="false" />
<sodipodi:guide
position="2.504455,5.5525067"
orientation="0,1"
id="guide944"
inkscape:locked="false" />
<sodipodi:guide
position="4.4979167,6.0854167"
orientation="1,0"
id="guide967"
inkscape:locked="false" />
<sodipodi:guide
position="3.96875,3.175"
orientation="1,0"
id="guide969"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)">
<path
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 13.582031 19 L 14.582031 19 L 14.582031 11.996094 L 16 11.996094 L 16 11.013672 L 13.582031 11.013672 L 13.582031 19 z "
id="path1005"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
<path
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 12.064453,4 4,11.996094 H 9.5820312 V 25 L 14,25 V 24 H 10.582031 V 11.013672 L 6.4648438,11.011719 12.064453,5.4140625 16,9.3496094 V 7.9355469 Z"
id="path842"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccc" />
<path
id="path842-6"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 17.519531,6.9980469 V 20.001953 H 15 v 0.982422 h 3.519531 V 7.9980469 h 3 V 20.984375 h 4.082031 L 20.001953,26.583984 15,21.580078 v 1.458984 l 5.001953,4.958985 7.996094,-7.996094 H 22.519531 V 6.9980469 Z M 15,23.039062 V 21.580078 L 14.404297,20.984375 H 15 v -0.982422 h -3.0625 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1,180 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="ping_gauge.svg"
inkscape:export-filename="/home/axionl/Desktop/Qv2ray_Design/duplicate_connection_btn.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="11.313708"
inkscape:cx="-3.8227905"
inkscape:cy="5.4884252"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="false"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,6.6145834"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
<sodipodi:guide
position="4.2333333,0.79375"
orientation="1,0"
id="guide862"
inkscape:locked="false" />
<sodipodi:guide
position="1.058333,4.2333126"
orientation="0,1"
id="guide896"
inkscape:locked="false" />
<sodipodi:guide
position="5.4787523,1.9843804"
orientation="0,1"
id="guide1290"
inkscape:locked="false" />
<sodipodi:guide
position="5.4787523,1.719793"
orientation="0,1"
id="guide1292"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)">
<circle
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path1148"
cx="23.087498"
cy="229.7016"
r="0.26458338" />
<path
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.25420347px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 23.087497,229.51453 2.245078,-2.24507 0.187089,0.18709 -2.245064,2.24506 z"
id="path1150"
inkscape:connector-curvature="0" />
<rect
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1222"
width="0.26458332"
height="0.26458332"
x="-147.91432"
y="179.55203"
transform="rotate(-45)" />
<path
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 21.499997,231.95055 0.474373,0 0.583961,-0.58396 1.05833,1.05833 0.474377,-0.47437 h 0.588094 v 0.26458 h -0.478511 l -0.583962,0.58397 -1.058328,-1.05833 -0.474368,0.47436 h -0.582932 z"
id="path1298"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccc" />
<path
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 16 4 A 11.999921 11.999921 0 0 0 4 16 A 11.999921 11.999921 0 0 0 7.5195312 24.480469 L 11.052734 21.267578 L 11.759766 20.560547 A 5.9999984 5.9999984 0 0 1 10 16.320312 A 5.9999984 5.9999984 0 0 1 16 10.320312 A 5.9999984 5.9999984 0 0 1 18.841797 11.037109 L 19.570312 10.308594 A 6.9999998 6.9999998 0 0 0 16 9.3203125 A 6.9999998 6.9999998 0 0 0 9 16.320312 A 6.9999998 6.9999998 0 0 0 10.375 20.46875 L 7.5566406 23.033203 A 10.999999 10.999999 0 0 1 5 16 A 10.999999 10.999999 0 0 1 16 5 A 10.999999 10.999999 0 0 1 22.634766 7.2421875 L 23.353516 6.5234375 A 11.999921 11.999921 0 0 0 16 4 z "
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
id="path951" />
<path
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 20.427734 12.279297 L 21.132812 11.574219 A 6.9999999 6.9999999 0 0 0 20.408203 10.884766 L 19.693359 11.599609 A 5.9999985 5.9999985 0 0 1 20.427734 12.279297 z "
id="path947"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
<path
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 25.46875 8.6523438 L 24.759766 9.3632812 A 10.999999 10.999999 0 0 1 27 16 A 10.999999 10.999999 0 0 1 24.445312 23.033203 L 21.623047 20.46875 A 6.9999998 6.9999998 0 0 0 23 16.320312 A 6.9999998 6.9999998 0 0 0 21.767578 12.353516 L 21.046875 13.076172 A 5.9999984 5.9999984 0 0 1 22 16.320312 A 5.9999984 5.9999984 0 0 1 20.240234 20.560547 L 20.947266 21.267578 L 24.480469 24.480469 A 11.999921 11.999921 0 0 0 28 16 A 11.999921 11.999921 0 0 0 25.46875 8.6523438 z "
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
id="path943" />
<path
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 24.115234 7.1777344 L 23.408203 7.8847656 A 10.999999 10.999999 0 0 1 24.117188 8.5917969 L 24.822266 7.8867188 A 11.999921 11.999921 0 0 0 24.115234 7.1777344 z "
id="path937"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.6 KiB

View File

@ -0,0 +1,160 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="share.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/add_connection_btn.png"
inkscape:export-xdpi="144.00002"
inkscape:export-ydpi="144.00002">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
inkscape:cx="12.190575"
inkscape:cy="12.106514"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="true"
inkscape:bbox-paths="false"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="false">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
<sodipodi:guide
position="2.1166665,5.8189079"
orientation="0,1"
id="guide842"
inkscape:locked="false" />
<sodipodi:guide
position="4.4368395,3.1750017"
orientation="1,0"
id="guide961"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)"
style="opacity:1">
<path
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.07559059;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 20,13.292969 V 14.707031 18 l -3.230469,0 h -2.683593 c -1.598676,0.07502 -2.856968,1.391754 -2.859376,2.992188 V 21 28 h 4.566407 V 27 23 L 20,23 v 3.292969 1.414062 l 1,-1 5.5,-5.5 L 27.207031,20.5 26.5,19.792969 l -5.5,-5.5 z M 21,15.707031 25.792969,20.5 21,25.292969 V 22 l -5.207031,0 -0.02344,-2 v -0.002 c -3.54e-4,-0.03325 9.5e-4,-0.06649 0.0039,-0.09961 0.0035,-0.03345 0.0087,-0.06669 0.01562,-0.09961 0.0069,-0.0323 0.01535,-0.06424 0.02539,-0.0957 0.0095,-0.03178 0.02059,-0.06307 0.0332,-0.09375 0.01346,-0.03068 0.02845,-0.06067 0.04492,-0.08984 0.01549,-0.02947 0.03243,-0.05815 0.05078,-0.08594 0.01883,-0.02769 0.03904,-0.05442 0.06055,-0.08008 0.02157,-0.02521 0.04439,-0.04933 0.06836,-0.07227 0.02426,-0.02341 0.04968,-0.04557 0.07617,-0.06641 0.02571,-0.02084 0.05243,-0.0404 0.08008,-0.05859 0.02846,-0.01774 0.05779,-0.03404 0.08789,-0.04883 0.02925,-0.01514 0.05924,-0.02883 0.08984,-0.04102 0.03136,-0.01202 0.0633,-0.02245 0.0957,-0.03125 0.03217,-0.0088 0.06477,-0.01596 0.09766,-0.02148 0.03299,-0.0056 0.06623,-0.0095 0.09961,-0.01172 0.02341,-0.0015 0.04686,-0.0021 0.07031,-0.002 L 21,19 Z M 14.085938,19 h 0.955078 c -0.176442,0.303122 -0.270068,0.647315 -0.271485,0.998047 V 20 l 0.02344,2 v 5 h -2.566407 v -6 -0.0059 c -5.6e-5,-0.06653 0.0032,-0.133016 0.0098,-0.199219 0.0065,-0.0662 0.01626,-0.132039 0.0293,-0.197266 0.01363,-0.06592 0.03058,-0.131104 0.05078,-0.195312 0.01965,-0.0636 0.04247,-0.126177 0.06836,-0.1875 0.02564,-0.06129 0.05432,-0.121256 0.08594,-0.179688 0.0323,-0.05836 0.0675,-0.115076 0.105469,-0.169922 0.0376,-0.05605 0.07802,-0.11015 0.121094,-0.162109 0.0431,-0.05108 0.08873,-0.09997 0.136718,-0.146484 0.04729,-0.04604 0.09683,-0.08972 0.148438,-0.13086 0.05268,-0.0418 0.107439,-0.08091 0.164062,-0.117187 0.05624,-0.03609 0.114262,-0.06933 0.173828,-0.09961 0.05918,-0.02968 0.119806,-0.05641 0.181641,-0.08008 0.06204,-0.02463 0.125266,-0.04614 0.189453,-0.06445 0.06435,-0.01757 0.129533,-0.03191 0.195313,-0.04297 0.06601,-0.01048 0.132495,-0.01766 0.199219,-0.02148 z"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
id="path966"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
<path
inkscape:connector-curvature="0"
style="fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 21.391477,226.52659 -1.47898,1.47898 0.001,0.10852 v 3.96875 h 1.5865 v -0.26458 H 20.17808 v -3.70417 h 1.322917 v -1.32291 h 2.645833 v 1.85208 h 0.264583 v -2.11667 h -2.910416 z m -0.15503,0.52917 v 0.79375 h -0.79375 z"
id="path1214-6"
sodipodi:nodetypes="cccccccccccccccccccc" />
<rect
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect846"
width="2.9104166"
height="0.26458332"
x="20.706247"
y="228.64326" />
<rect
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect846-3"
width="2.9104166"
height="0.26458332"
x="20.706247"
y="229.43701" />
<rect
style="opacity:1;fill:#e6e6e6;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect846-3-6"
width="1.0583333"
height="0.2645874"
x="20.706247"
y="230.23076" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -0,0 +1,292 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="22"
height="22"
viewBox="0 0 5.8208333 5.8208333"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="Qv2ray_System_Tray_Light.svg"
inkscape:export-filename="/home/axionl/Desktop/Qv2ray_Design/qv2ray.png"
inkscape:export-xdpi="558.54999"
inkscape:export-ydpi="558.54999">
<defs
id="defs2">
<linearGradient
id="linearGradient841"
osb:paint="solid">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop839" />
</linearGradient>
<linearGradient
id="linearGradient5057"
inkscape:collect="always">
<stop
id="stop5053"
offset="0"
style="stop-color:#3c3c3c;stop-opacity:1;" />
<stop
id="stop5055"
offset="1"
style="stop-color:#282728;stop-opacity:0.6574803" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4713">
<stop
style="stop-color:#3de256;stop-opacity:1"
offset="0"
id="stop4709" />
<stop
style="stop-color:#2fbeba;stop-opacity:1"
offset="1"
id="stop4711" />
</linearGradient>
<linearGradient
gradientTransform="translate(38.574145,1.3181723)"
gradientUnits="userSpaceOnUse"
y2="39.934193"
x2="108.00179"
y1="19.458199"
x1="89.965836"
id="linearGradient4707"
xlink:href="#linearGradient4713"
inkscape:collect="always" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="94.022179"
x2="140.26065"
y1="48.940449"
x1="92.227142"
id="linearGradient5059"
xlink:href="#linearGradient5057"
inkscape:collect="always" />
<clipPath
id="clipPath922"
clipPathUnits="userSpaceOnUse">
<rect
ry="1.0638391"
y="284.56458"
x="9.5367426e-08"
height="12.170834"
width="12.7"
id="rect924"
style="fill:none;fill-opacity:1;stroke:#23d829;stroke-width:0.044;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.72265625" />
</clipPath>
<clipPath
id="clipPath922-6"
clipPathUnits="userSpaceOnUse">
<rect
ry="1.0638391"
y="284.56458"
x="9.5367426e-08"
height="12.170834"
width="12.7"
id="rect924-2"
style="fill:none;fill-opacity:1;stroke:#23d829;stroke-width:0.044;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.72265625" />
</clipPath>
<filter
style="color-interpolation-filters:sRGB"
inkscape:label="Drop Shadow"
id="filter1510">
<feFlood
flood-opacity="0.976471"
flood-color="rgb(0,0,0)"
result="flood"
id="feFlood1500" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite1502" />
<feGaussianBlur
in="composite1"
stdDeviation="0.1"
result="blur"
id="feGaussianBlur1504" />
<feOffset
dx="0"
dy="0"
result="offset"
id="feOffset1506" />
<feComposite
in="offset"
in2="SourceGraphic"
operator="out"
result="composite2"
id="feComposite1508" />
</filter>
<filter
style="color-interpolation-filters:sRGB"
inkscape:label="Drop Shadow"
id="filter1859">
<feFlood
flood-opacity="0.266667"
flood-color="rgb(0,0,0)"
result="flood"
id="feFlood1849" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite1851" />
<feGaussianBlur
in="composite1"
stdDeviation="0.2"
result="blur"
id="feGaussianBlur1853" />
<feOffset
dx="0"
dy="0"
result="offset"
id="feOffset1855" />
<feComposite
in="offset"
in2="SourceGraphic"
operator="out"
result="composite2"
id="feComposite1857" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
inkscape:cx="5.9585184"
inkscape:cy="11.144438"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
units="px"
inkscape:window-width="1874"
inkscape:window-height="1050"
inkscape:window-x="46"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
fit-margin-top="5"
fit-margin-left="5"
fit-margin-bottom="5"
fit-margin-right="5"
inkscape:snap-global="true"
inkscape:object-paths="false"
inkscape:snap-intersection-paths="false"
inkscape:snap-smooth-nodes="true"
inkscape:snap-midpoints="true"
inkscape:snap-grids="false"
inkscape:snap-object-midpoints="true"
showguides="true"
inkscape:guide-bbox="true"
scale-x="1"
guidecolor="#00ffff"
guideopacity="0.49803922"
guidehicolor="#ff5184"
guidehiopacity="0.62745098"
inkscape:snap-nodes="true"
inkscape:snap-others="false">
<inkscape:grid
type="xygrid"
id="grid815"
originx="0"
originy="0"
color="#3f513e"
opacity="0.04313725"
empcolor="#3f3742"
empopacity="0.16470588"
empspacing="5"
dotted="false" />
<sodipodi:guide
position="28.284675,2.8909227"
orientation="1,0"
id="guide924"
inkscape:locked="false" />
<sodipodi:guide
position="26.141,6.3542733"
orientation="1,0"
id="guide932"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,255,236)" />
<sodipodi:guide
position="0.79375,4.4979166"
orientation="1,0"
id="guide1884"
inkscape:locked="false" />
<sodipodi:guide
position="3.96875,5.0270833"
orientation="0,1"
id="guide1886"
inkscape:locked="false" />
<sodipodi:guide
position="5.0270833,0.26458333"
orientation="1,0"
id="guide1888"
inkscape:locked="false" />
<sodipodi:guide
position="4.4979166,0.79375"
orientation="0,1"
id="guide1890"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-1.9173392,-290.74464)">
<path
id="path1962"
transform="matrix(0.26458333,0,0,0.26458333,1.9173392,290.74464)"
style="fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 7,11 6.2929688,11.707031 8.5859375,14 H 18 V 13 H 9 Z M 6.2929688,11.707031 5,13 H 4 v 1 H 5.4140625 L 7,12.414062 Z M 3,3 V 18.999988 H 19 V 3 Z M 3.9999999,3.9999875 H 18 V 18 H 3.9999999 Z" />
<rect
style="opacity:0.5;fill:none;fill-opacity:1;stroke:none;stroke-width:0.04583338;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect844"
width="5.8208332"
height="5.8208447"
x="1.9173392"
y="290.74463"
inkscape:export-xdpi="64"
inkscape:export-ydpi="64" />
<path
style="fill:#f2f2f2;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 4.5631726,292.06756 -0.2645834,0.26459 v 0.52916 l 0.2645834,-0.26458 v 0.26458 0.52917 l 0.5291666,0.79375 0.5291667,1.32291 v -0.79374 l 0.2645833,-0.26459 -0.2645833,-0.52916 v -0.79375 l -0.2645833,-0.52917 z"
id="path1934"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.8 KiB

BIN
icons/ui_dark/duplicate.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 905 B

BIN
icons/ui_dark/edit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
icons/ui_dark/import.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

BIN
icons/ui_dark/json.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

BIN
icons/ui_dark/share.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
icons/ui_dark/tray.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
icons/ui_light/add.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

BIN
icons/ui_light/delete.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 B

View File

@ -0,0 +1,145 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="add_connection_btn.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/add_connection_btn.png"
inkscape:export-xdpi="144.00002"
inkscape:export-ydpi="144.00002">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
inkscape:cx="12.167264"
inkscape:cy="15.865066"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="474"
inkscape:window-height="388"
inkscape:window-x="901"
inkscape:window-y="663"
inkscape:window-maximized="0"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)"
style="opacity:1">
<path
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 24.145831,229.70159 v 1.05834 h -1.058334 v 1.05833 h 1.058334 v 1.05833 h 1.058333 v -1.05833 h 1.058333 v -1.05833 h -1.058333 v -1.05834 h -0.264583 z m 0.264583,0.26459 h 0.529167 v 1.05833 h 1.058333 v 0.52917 h -1.058333 v 1.05833 h -0.529167 v -1.05833 h -1.058333 v -0.52917 h 1.058333 z"
id="path830"
inkscape:connector-curvature="0" />
<rect
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159"
width="2.6458333"
height="0.26458332"
x="20.972286"
y="228.64551" />
<rect
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-1"
width="2.6458333"
height="0.26458332"
x="20.972509"
y="229.71312" />
<path
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 15 20 L 8 20 L 8 21 L 15 21 L 15 20 z "
id="path839"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
<path
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 9.5859375 4 L 3.9960938 9.5898438 L 4 10 L 4 25 L 15 25 L 15 24 L 5 24 L 5 10 L 10 10 L 10 5 L 20 5 L 20 15 L 21 15 L 21 4 L 10 4 L 9.5859375 4 z M 9 6 L 9 9 L 6 9 L 9 6 z "
id="path1214"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -0,0 +1,153 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="remove_connection_btn.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/remove_connection_btn.png"
inkscape:export-xdpi="144.00002"
inkscape:export-ydpi="144.00002">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568543"
inkscape:cx="-7.7196395"
inkscape:cy="8.8646449"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1874"
inkscape:window-height="1050"
inkscape:window-x="46"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.058,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,220,255)" />
<sodipodi:guide
position="0,7.408"
orientation="0,1"
id="guide826"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,220,255)" />
<sodipodi:guide
position="1.3229167,1.058"
orientation="0,1"
id="guide830"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,220,255)" />
<sodipodi:guide
position="7.408,7.4083334"
orientation="1,0"
id="guide869"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,220,255)" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)">
<path
style="fill:#31363b;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
d="m 20.970831,228.64326 v 3.96875 h 4.233333 v -3.96875 h 0.264583 v 4.23333 h -4.7625 v -4.23333 z"
id="path835"
inkscape:connector-curvature="0" />
<path
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 21.76458,229.17243 v 2.91041 h 0.264584 v -2.91041 z"
id="path837"
inkscape:connector-curvature="0" />
<path
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 22.955205,229.17243 v 2.91041 h 0.264584 v -2.91041 z"
id="path837-3"
inkscape:connector-curvature="0" />
<path
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 24.145831,229.17243 v 2.91041 h 0.264584 v -2.91041 z"
id="path837-3-6"
inkscape:connector-curvature="0" />
<path
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 21.76458,226.52693 v 0.79341 h 0.264584 v -0.52916 h 2.116666 v 0.52916 h 0.264584 v -0.79375 z"
id="path871"
inkscape:connector-curvature="0" />
<path
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 4 7 L 4 12 L 27.998047 12 L 27.998047 7 L 4 7 z M 5 8 L 27 8 L 27 11 L 5 11 L 5 8 z "
id="rect881"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -0,0 +1,166 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="duplicate_connection_btn.svg"
inkscape:export-filename="/home/axionl/Desktop/Qv2ray_Design/duplicate_connection_btn.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="5.6568542"
inkscape:cx="16.106264"
inkscape:cy="26.519006"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1874"
inkscape:window-height="1050"
inkscape:window-x="46"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)">
<rect
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159"
width="2.6458333"
height="0.26458332"
x="22.559788"
y="229.43913" />
<rect
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-1"
width="2.6458333"
height="0.26458332"
x="22.560011"
y="230.50674" />
<rect
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-1-9"
width="2.6458333"
height="0.26458332"
x="22.558331"
y="231.55368" />
<rect
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-4"
width="0.26458308"
height="0.26457855"
x="20.970831"
y="228.64326"
ry="0" />
<rect
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-1-7"
width="0.26435992"
height="0.25530019"
x="20.971054"
y="229.71088" />
<rect
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-1-9-8"
width="0.2660403"
height="0.2666975"
x="20.969374"
y="230.75781" />
<path
id="path1214"
style="fill:#31363b;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
d="m 21.764581,228.90784 h 1.322916 v -1.32291 l -0.264583,0.26458 v 0.79375 h -0.79375 z m -0.265642,-0.10855 1.479049,-1.47905 0.109509,10e-5 v 0.26459 l -1.322916,1.32291 h -0.264584 z m 4.498975,4.0773 v -5.55625 h -2.910417 v 0.26459 h 2.645834 v 5.02708 z m -0.264583,-0.26458 h -3.96875 v -3.70417 h -0.264584 v 3.96875 h 4.497917 z" />
<path
id="path1214-4"
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 20.177081,228.11409 h 1.322916 v -1.32291 l -0.264583,0.26458 v 0.79375 h -0.79375 z m -0.265642,-0.10855 1.479049,-1.47905 0.109509,1e-4 v 0.26459 l -1.322916,1.32291 h -0.264584 z m 4.498975,-0.94978 v -0.52917 h -2.910417 v 0.26459 h 2.645834 v 0.26458 z m -3.175,4.7625 h -1.058333 v -3.70417 h -0.264584 v 3.96875 h 1.322917 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -0,0 +1,213 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="edit_connection_btn.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/edit_connection_btn.png"
inkscape:export-xdpi="192"
inkscape:export-ydpi="192">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="22.627417"
inkscape:cx="12.976079"
inkscape:cy="19.649966"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1874"
inkscape:window-height="1050"
inkscape:window-x="46"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
<sodipodi:guide
position="3.703984,3.4395567"
orientation="0,1"
id="guide833"
inkscape:locked="false" />
<sodipodi:guide
position="3.4587786,3.6265368"
orientation="1,0"
id="guide1021"
inkscape:locked="false" />
<sodipodi:guide
position="3.6459543,3.4395567"
orientation="1,0"
id="guide1023"
inkscape:locked="false" />
<sodipodi:guide
position="6.0108124,5.8043835"
orientation="1,0"
id="guide1033"
inkscape:locked="false" />
<sodipodi:guide
position="5.823721,5.9914767"
orientation="1,0"
id="guide1035"
inkscape:locked="false" />
<sodipodi:guide
position="5.823721,5.9914767"
orientation="0,1"
id="guide1037"
inkscape:locked="false" />
<sodipodi:guide
position="6.0108124,5.8043835"
orientation="0,1"
id="guide1039"
inkscape:locked="false" />
<sodipodi:guide
position="3.4587786,3.6265368"
orientation="0,1"
id="guide1041"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,5.2916667"
orientation="1,0"
id="guide1116"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)">
<path
id="path944"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 25.343714,10.264687 -0.70702,-0.7070204 -7.599585,7.6005364 -2.886718,2.884766 H 12.003906 L 11.980469,17.970703 21.909591,8.0421546 24.0309,10.163462 24.636694,9.5576666 21.808273,6.7292423 10.990234,17.548828 l 0.0059,1.408203 0.0078,2.085938 3.552735,0.0078 1.007812,-1.007812 z" />
<path
id="path842-6"
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 24.537109,4 -2.123047,2.1230469 0.707032,0.7070312 2.121094,2.1210938 0.707338,-0.7063383 -2.121306,-2.1213082 0.706936,-0.7075098 2.121094,2.1210938 -1.414062,1.4140625 0.707031,0.7070312 2.121093,-2.1210937 z"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
<path
style="fill:none;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 22.312943,230.30839 v 0.18698 h 0.187175 l 2.364858,-2.36483 -0.187091,-0.18709 z"
id="path1029"
inkscape:connector-curvature="0" />
<path
style="fill:#ea6de6;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:0"
d="m 22.312943,230.30839 v 0.18698 h 0.18698 l 2.365051,-2.36483 -0.187089,-0.18709 z"
id="path1031"
inkscape:connector-curvature="0" />
<path
style="fill:#31363b;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
d="m 22.312943,230.30839 v 0.18698 h 0.187175 l 2.364855,-2.36483 -0.187088,-0.18709 z"
id="path1043"
inkscape:connector-curvature="0" />
<path
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 12 15 L 8 15 L 8 16 L 11 16 L 12 15 z "
id="path925"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
<path
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 17,20.035156 h 1 v -1.035055 z"
id="path960"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 10,19.035156 8,19 v 1.035156 h 2 z"
id="path958"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccc" />
<rect
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1159-1-9"
width="2.6458333"
height="0.26458332"
x="20.969374"
y="231.55156" />
<path
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 20,7 H 10 9.5859375 L 3.9960938,12.589844 4,13 V 28 H 21 V 16 l -1,1 V 27 H 5 V 13 h 5 V 8 h 9 z M 9,9 v 3 H 6 Z"
id="path838"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@ -0,0 +1,150 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="import_connection_btn.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/import_connection_btn.png"
inkscape:export-xdpi="191.99707"
inkscape:export-ydpi="191.99707">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
inkscape:cx="13.865148"
inkscape:cy="16.201975"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1874"
inkscape:window-height="1050"
inkscape:window-x="46"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)">
<g
id="g832"
transform="translate(-0.66092917,-0.79374667)">
<rect
y="229.43913"
x="22.559788"
height="0.26458332"
width="2.6458333"
id="rect1159"
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
y="230.50674"
x="22.560011"
height="0.26458332"
width="2.6458333"
id="rect1159-1"
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
y="231.55368"
x="22.558331"
height="0.26458332"
width="2.6458333"
id="rect1159-1-9"
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
d="m 21.764581,228.90784 h 1.322916 v -1.32291 l -0.264583,0.26458 v 0.79375 h -0.79375 z m -0.265642,-0.10855 1.479049,-1.47905 0.109509,10e-5 v 0.26459 l -1.322916,1.32291 h -0.264584 z m 4.498975,4.0773 v -5.55625 h -2.910417 v 0.26459 h 2.645834 v 5.02708 z m -0.264583,-0.26458 h -3.96875 v -3.70417 h -0.264584 v 3.96875 h 4.497917 z"
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="path1214"
inkscape:connector-curvature="0" />
</g>
<path
style="fill:#31363b;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1"
d="m 19.912497,231.28909 h 0.529167 v 0.26459 h -0.264583 v 1.05833 h 5.820833 v -1.05833 h -0.264583 v -0.26459 h 0.529166 v 1.5875 h -6.35 z"
id="path834"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -0,0 +1,168 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="json_connectio_btn.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/add_connection_btn.png"
inkscape:export-xdpi="144.00002"
inkscape:export-ydpi="144.00002">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="20.318725"
inkscape:cx="7.3980882"
inkscape:cy="9.6750041"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1874"
inkscape:window-height="1050"
inkscape:window-x="46"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="false"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
<sodipodi:guide
position="3.175,7.1437467"
orientation="0,1"
id="guide840"
inkscape:locked="false" />
<sodipodi:guide
position="2.1166665,5.8189079"
orientation="0,1"
id="guide842"
inkscape:locked="false" />
<sodipodi:guide
position="2.6458333,3.175"
orientation="0,1"
id="guide1086"
inkscape:locked="false" />
<sodipodi:guide
position="2.6458333,3.4395833"
orientation="0,1"
id="guide1088"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)"
style="opacity:1">
<g
id="g1116">
<path
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
id="path1214-6"
d="M 9.5898438 4 L 4 9.5898438 L 4.0039062 10 L 4.0039062 25 L 11 25 L 11 24 L 5.0039062 24 L 5.0039062 10 L 10.003906 10 L 10.003906 5 L 20.003906 5 L 20.003906 10.007812 L 21.003906 10.007812 L 21.003906 4 L 10.003906 4 L 9.5898438 4 z M 9.0039062 6 L 9.0039062 9 L 6.0039062 9 L 9.0039062 6 z "
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path1032"
d="m 22.822914,228.37868 a 0.79374999,0.79374999 0 0 0 -0.79375,0.79375 v 0.79375 a 0.52916663,0.52916663 0 0 1 -0.529167,0.52916 v 0.26459 a 0.52916663,0.52916663 0 0 1 0.529167,0.52916 v 0.79375 a 0.79374999,0.79374999 0 0 0 0.79375,0.79375 v -0.26458 a 0.52916663,0.52916663 0 0 1 -0.529167,-0.52917 v -0.79375 a 0.79374999,0.79374999 0 0 0 -0.35605,-0.66145 0.79374999,0.79374999 0 0 0 0.35605,-0.66146 v -0.79375 a 0.52916663,0.52916663 0 0 1 0.529167,-0.52917 z"
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path1032-1"
d="m 24.93958,228.37867 a 0.79375,0.79375 0 0 1 0.79375,0.79375 v 0.79375 a 0.52916664,0.52916664 0 0 0 0.529167,0.52917 v 0.26458 a 0.52916664,0.52916664 0 0 0 -0.529167,0.52917 v 0.79375 a 0.79375,0.79375 0 0 1 -0.79375,0.79375 V 232.612 a 0.52916664,0.52916664 0 0 0 0.529167,-0.52916 v -0.79375 a 0.79375,0.79375 0 0 1 0.356051,-0.66146 0.79375,0.79375 0 0 1 -0.356051,-0.66146 v -0.79375 a 0.52916664,0.52916664 0 0 0 -0.529167,-0.52917 z"
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
inkscape:connector-curvature="0" />
<g
id="g1108">
<circle
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path1067"
cx="23.881247"
cy="229.96617"
r="0.26458332" />
<path
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 19 21 A 0.99999994 0.99999994 0 0 0 18 22 A 0.99999994 0.99999994 0 0 0 18.722656 22.958984 C 18.426399 23.545698 18 24 18 24 C 18 24 19.261784 23.422924 19.775391 22.630859 A 0.99999994 0.99999994 0 0 0 19.914062 22.402344 A 0.99999994 0.99999994 0 0 0 20 22 A 0.99999994 0.99999994 0 0 0 19 21 z "
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
id="path1067-2" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -0,0 +1,162 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="netspeed-arrows.svg"
inkscape:export-filename="/home/axionl/Desktop/Qv2ray_Design/duplicate_connection_btn.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="45.254833"
inkscape:cx="12.163083"
inkscape:cy="11.227074"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1874"
inkscape:window-height="1050"
inkscape:window-x="46"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="false"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,6.6145834"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
<sodipodi:guide
position="3.0380535,7.4083327"
orientation="1,0"
id="guide859"
inkscape:locked="false" />
<sodipodi:guide
position="1.4336343,5.2927882"
orientation="0,1"
id="guide864"
inkscape:locked="false" />
<sodipodi:guide
position="4.6517755,5.2927883"
orientation="1,0"
id="guide890"
inkscape:locked="false" />
<sodipodi:guide
position="2.504455,5.5525067"
orientation="0,1"
id="guide944"
inkscape:locked="false" />
<sodipodi:guide
position="4.4979167,6.0854167"
orientation="1,0"
id="guide967"
inkscape:locked="false" />
<sodipodi:guide
position="3.96875,3.175"
orientation="1,0"
id="guide969"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)">
<path
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 13.582031 19 L 14.582031 19 L 14.582031 11.996094 L 16 11.996094 L 16 11.013672 L 13.582031 11.013672 L 13.582031 19 z "
id="path1005"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
<path
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 12.064453,4 4,11.996094 H 9.5820312 V 25 L 14,25 V 24 H 10.582031 V 11.013672 L 6.4648438,11.011719 12.064453,5.4140625 16,9.3496094 V 7.9355469 Z"
id="path842"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccc" />
<path
id="path842-6"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 17.519531,6.9980469 V 20.001953 H 15 v 0.982422 h 3.519531 V 7.9980469 h 3 V 20.984375 h 4.082031 L 20.001953,26.583984 15,21.580078 v 1.458984 l 5.001953,4.958985 7.996094,-7.996094 H 22.519531 V 6.9980469 Z M 15,23.039062 V 21.580078 L 14.404297,20.984375 H 15 v -0.982422 h -3.0625 z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -0,0 +1,180 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="ping_connection_btn.svg"
inkscape:export-filename="/home/axionl/Desktop/Qv2ray_Design/duplicate_connection_btn.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="45.254833"
inkscape:cx="20.545509"
inkscape:cy="11.164374"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1874"
inkscape:window-height="1050"
inkscape:window-x="46"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-grids="false"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,6.6145834"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
<sodipodi:guide
position="4.2333333,0.79375"
orientation="1,0"
id="guide862"
inkscape:locked="false" />
<sodipodi:guide
position="1.058333,4.2333126"
orientation="0,1"
id="guide896"
inkscape:locked="false" />
<sodipodi:guide
position="5.4787523,1.9843804"
orientation="0,1"
id="guide1290"
inkscape:locked="false" />
<sodipodi:guide
position="5.4787523,1.719793"
orientation="0,1"
id="guide1292"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)">
<circle
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="path1148"
cx="23.087498"
cy="229.7016"
r="0.26458338" />
<path
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.25420347px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 23.087497,229.51453 2.245078,-2.24507 0.187089,0.18709 -2.245064,2.24506 z"
id="path1150"
inkscape:connector-curvature="0" />
<rect
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1222"
width="0.26458332"
height="0.26458332"
x="-147.91432"
y="179.55203"
transform="rotate(-45)" />
<path
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 21.499997,231.95055 0.474373,0 0.583961,-0.58396 1.05833,1.05833 0.474377,-0.47437 h 0.588094 v 0.26458 h -0.478511 l -0.583962,0.58397 -1.058328,-1.05833 -0.474368,0.47436 h -0.582932 z"
id="path1298"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccc" />
<path
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 16 4 A 11.999921 11.999921 0 0 0 4 16 A 11.999921 11.999921 0 0 0 7.5195312 24.480469 L 11.052734 21.267578 L 11.759766 20.560547 A 5.9999984 5.9999984 0 0 1 10 16.320312 A 5.9999984 5.9999984 0 0 1 16 10.320312 A 5.9999984 5.9999984 0 0 1 18.841797 11.037109 L 19.570312 10.308594 A 6.9999998 6.9999998 0 0 0 16 9.3203125 A 6.9999998 6.9999998 0 0 0 9 16.320312 A 6.9999998 6.9999998 0 0 0 10.375 20.46875 L 7.5566406 23.033203 A 10.999999 10.999999 0 0 1 5 16 A 10.999999 10.999999 0 0 1 16 5 A 10.999999 10.999999 0 0 1 22.634766 7.2421875 L 23.353516 6.5234375 A 11.999921 11.999921 0 0 0 16 4 z "
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
id="path951" />
<path
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 20.427734 12.279297 L 21.132812 11.574219 A 6.9999999 6.9999999 0 0 0 20.408203 10.884766 L 19.693359 11.599609 A 5.9999985 5.9999985 0 0 1 20.427734 12.279297 z "
id="path947"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
<path
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 25.46875 8.6523438 L 24.759766 9.3632812 A 10.999999 10.999999 0 0 1 27 16 A 10.999999 10.999999 0 0 1 24.445312 23.033203 L 21.623047 20.46875 A 6.9999998 6.9999998 0 0 0 23 16.320312 A 6.9999998 6.9999998 0 0 0 21.767578 12.353516 L 21.046875 13.076172 A 5.9999984 5.9999984 0 0 1 22 16.320312 A 5.9999984 5.9999984 0 0 1 20.240234 20.560547 L 20.947266 21.267578 L 24.480469 24.480469 A 11.999921 11.999921 0 0 0 28 16 A 11.999921 11.999921 0 0 0 25.46875 8.6523438 z "
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
id="path943" />
<path
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.03779528;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 24.115234 7.1777344 L 23.408203 7.8847656 A 10.999999 10.999999 0 0 1 24.117188 8.5917969 L 24.822266 7.8867188 A 11.999921 11.999921 0 0 0 24.115234 7.1777344 z "
id="path937"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@ -0,0 +1,160 @@
<?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://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="32"
height="32"
viewBox="0 0 8.4666667 8.4666667"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="share_connectio_btn.svg"
inkscape:export-filename="/tmp/makepkg/qv2ray-dev-git/src/qv2ray-dev-git/icons/add_connection_btn.png"
inkscape:export-xdpi="144.00002"
inkscape:export-ydpi="144.00002">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
inkscape:cx="17.784325"
inkscape:cy="12.106514"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1874"
inkscape:window-height="1050"
inkscape:window-x="46"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-center="true"
inkscape:snap-smooth-nodes="true"
inkscape:snap-intersection-paths="true"
inkscape:object-paths="true"
inkscape:snap-bbox="true"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-bottom="20"
fit-margin-right="20"
guidecolor="#00dcff"
guideopacity="0.49803922"
guidehicolor="#1ce300"
guidehiopacity="0.49803922"
units="px"
inkscape:snap-nodes="true"
inkscape:snap-others="true"
inkscape:bbox-paths="false"
inkscape:bbox-nodes="true"
inkscape:snap-grids="true"
inkscape:snap-midpoints="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="false">
<inkscape:grid
type="xygrid"
id="grid822"
color="#3f4842"
opacity="0.02745098"
empcolor="#3f1212"
empopacity="0.05098039"
spacingx="0"
spacingy="0" />
<sodipodi:guide
position="1.0583333,1.8520833"
orientation="1,0"
id="guide824"
inkscape:locked="false" />
<sodipodi:guide
position="0,7.4083334"
orientation="0,1"
id="guide826"
inkscape:locked="false" />
<sodipodi:guide
position="7.4083334,0.79375"
orientation="1,0"
id="guide828"
inkscape:locked="false" />
<sodipodi:guide
position="1.3229167,1.0583333"
orientation="0,1"
id="guide830"
inkscape:locked="false" />
<sodipodi:guide
position="2.1166665,5.8189079"
orientation="0,1"
id="guide842"
inkscape:locked="false" />
<sodipodi:guide
position="4.4368395,3.1750017"
orientation="1,0"
id="guide961"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-18.854164,-225.46826)"
style="opacity:1">
<path
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.07559059;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 20,13.292969 V 14.707031 18 l -3.230469,0 h -2.683593 c -1.598676,0.07502 -2.856968,1.391754 -2.859376,2.992188 V 21 28 h 4.566407 V 27 23 L 20,23 v 3.292969 1.414062 l 1,-1 5.5,-5.5 L 27.207031,20.5 26.5,19.792969 l -5.5,-5.5 z M 21,15.707031 25.792969,20.5 21,25.292969 V 22 l -5.207031,0 -0.02344,-2 v -0.002 c -3.54e-4,-0.03325 9.5e-4,-0.06649 0.0039,-0.09961 0.0035,-0.03345 0.0087,-0.06669 0.01562,-0.09961 0.0069,-0.0323 0.01535,-0.06424 0.02539,-0.0957 0.0095,-0.03178 0.02059,-0.06307 0.0332,-0.09375 0.01346,-0.03068 0.02845,-0.06067 0.04492,-0.08984 0.01549,-0.02947 0.03243,-0.05815 0.05078,-0.08594 0.01883,-0.02769 0.03904,-0.05442 0.06055,-0.08008 0.02157,-0.02521 0.04439,-0.04933 0.06836,-0.07227 0.02426,-0.02341 0.04968,-0.04557 0.07617,-0.06641 0.02571,-0.02084 0.05243,-0.0404 0.08008,-0.05859 0.02846,-0.01774 0.05779,-0.03404 0.08789,-0.04883 0.02925,-0.01514 0.05924,-0.02883 0.08984,-0.04102 0.03136,-0.01202 0.0633,-0.02245 0.0957,-0.03125 0.03217,-0.0088 0.06477,-0.01596 0.09766,-0.02148 0.03299,-0.0056 0.06623,-0.0095 0.09961,-0.01172 0.02341,-0.0015 0.04686,-0.0021 0.07031,-0.002 L 21,19 Z M 14.085938,19 h 0.955078 c -0.176442,0.303122 -0.270068,0.647315 -0.271485,0.998047 V 20 l 0.02344,2 v 5 h -2.566407 v -6 -0.0059 c -5.6e-5,-0.06653 0.0032,-0.133016 0.0098,-0.199219 0.0065,-0.0662 0.01626,-0.132039 0.0293,-0.197266 0.01363,-0.06592 0.03058,-0.131104 0.05078,-0.195312 0.01965,-0.0636 0.04247,-0.126177 0.06836,-0.1875 0.02564,-0.06129 0.05432,-0.121256 0.08594,-0.179688 0.0323,-0.05836 0.0675,-0.115076 0.105469,-0.169922 0.0376,-0.05605 0.07802,-0.11015 0.121094,-0.162109 0.0431,-0.05108 0.08873,-0.09997 0.136718,-0.146484 0.04729,-0.04604 0.09683,-0.08972 0.148438,-0.13086 0.05268,-0.0418 0.107439,-0.08091 0.164062,-0.117187 0.05624,-0.03609 0.114262,-0.06933 0.173828,-0.09961 0.05918,-0.02968 0.119806,-0.05641 0.181641,-0.08008 0.06204,-0.02463 0.125266,-0.04614 0.189453,-0.06445 0.06435,-0.01757 0.129533,-0.03191 0.195313,-0.04297 0.06601,-0.01048 0.132495,-0.01766 0.199219,-0.02148 z"
transform="matrix(0.26458333,0,0,0.26458333,18.854164,225.46826)"
id="path966"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
<path
inkscape:connector-curvature="0"
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 21.391477,226.52659 -1.47898,1.47898 0.001,0.10852 v 3.96875 h 1.5865 v -0.26458 H 20.17808 v -3.70417 h 1.322917 v -1.32291 h 2.645833 v 1.85208 h 0.264583 v -2.11667 h -2.910416 z m -0.15503,0.52917 v 0.79375 h -0.79375 z"
id="path1214-6"
sodipodi:nodetypes="cccccccccccccccccccc" />
<rect
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect846"
width="2.9104166"
height="0.26458332"
x="20.706247"
y="228.64326" />
<rect
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect846-3"
width="2.9104166"
height="0.26458332"
x="20.706247"
y="229.43701" />
<rect
style="opacity:1;fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.01;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect846-3-6"
width="1.0583333"
height="0.2645874"
x="20.706247"
y="230.23076" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@ -0,0 +1,344 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="22"
height="22"
viewBox="0 0 5.8208333 5.8208333"
version="1.1"
id="svg8"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="qv2ray_tray.svg"
inkscape:export-filename="/media/Storage/Projects/Qv2ray/icons/ui_components/qv2ray_tray.png"
inkscape:export-xdpi="558.54999"
inkscape:export-ydpi="558.54999">
<defs
id="defs2">
<linearGradient
inkscape:collect="always"
id="linearGradient876">
<stop
style="stop-color:#31363b;stop-opacity:0.58823532"
offset="0"
id="stop872" />
<stop
style="stop-color:#31363b;stop-opacity:0;"
offset="1"
id="stop874" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient866">
<stop
style="stop-color:#31363b;stop-opacity:0.58823532"
offset="0"
id="stop862" />
<stop
style="stop-color:#31363b;stop-opacity:0;"
offset="1"
id="stop864" />
</linearGradient>
<linearGradient
id="linearGradient841"
osb:paint="solid">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop839" />
</linearGradient>
<linearGradient
id="linearGradient5057"
inkscape:collect="always">
<stop
id="stop5053"
offset="0"
style="stop-color:#3c3c3c;stop-opacity:1;" />
<stop
id="stop5055"
offset="1"
style="stop-color:#282728;stop-opacity:0.6574803" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient4713">
<stop
style="stop-color:#3de256;stop-opacity:1"
offset="0"
id="stop4709" />
<stop
style="stop-color:#2fbeba;stop-opacity:1"
offset="1"
id="stop4711" />
</linearGradient>
<linearGradient
gradientTransform="translate(38.574145,1.3181723)"
gradientUnits="userSpaceOnUse"
y2="39.934193"
x2="108.00179"
y1="19.458199"
x1="89.965836"
id="linearGradient4707"
xlink:href="#linearGradient4713"
inkscape:collect="always" />
<linearGradient
gradientUnits="userSpaceOnUse"
y2="94.022179"
x2="140.26065"
y1="48.940449"
x1="92.227142"
id="linearGradient5059"
xlink:href="#linearGradient5057"
inkscape:collect="always" />
<clipPath
id="clipPath922"
clipPathUnits="userSpaceOnUse">
<rect
ry="1.0638391"
y="284.56458"
x="9.5367426e-08"
height="12.170834"
width="12.7"
id="rect924"
style="fill:none;fill-opacity:1;stroke:#23d829;stroke-width:0.044;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.72265625" />
</clipPath>
<clipPath
id="clipPath922-6"
clipPathUnits="userSpaceOnUse">
<rect
ry="1.0638391"
y="284.56458"
x="9.5367426e-08"
height="12.170834"
width="12.7"
id="rect924-2"
style="fill:none;fill-opacity:1;stroke:#23d829;stroke-width:0.044;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.72265625" />
</clipPath>
<filter
style="color-interpolation-filters:sRGB"
inkscape:label="Drop Shadow"
id="filter1510">
<feFlood
flood-opacity="0.976471"
flood-color="rgb(0,0,0)"
result="flood"
id="feFlood1500" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite1502" />
<feGaussianBlur
in="composite1"
stdDeviation="0.1"
result="blur"
id="feGaussianBlur1504" />
<feOffset
dx="0"
dy="0"
result="offset"
id="feOffset1506" />
<feComposite
in="offset"
in2="SourceGraphic"
operator="out"
result="composite2"
id="feComposite1508" />
</filter>
<filter
style="color-interpolation-filters:sRGB"
inkscape:label="Drop Shadow"
id="filter1859">
<feFlood
flood-opacity="0.266667"
flood-color="rgb(0,0,0)"
result="flood"
id="feFlood1849" />
<feComposite
in="flood"
in2="SourceGraphic"
operator="in"
result="composite1"
id="feComposite1851" />
<feGaussianBlur
in="composite1"
stdDeviation="0.2"
result="blur"
id="feGaussianBlur1853" />
<feOffset
dx="0"
dy="0"
result="offset"
id="feOffset1855" />
<feComposite
in="offset"
in2="SourceGraphic"
operator="out"
result="composite2"
id="feComposite1857" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient866"
id="linearGradient868"
x1="4.2985892"
y1="292.06757"
x2="7.7381635"
y2="295.50714"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient876"
id="linearGradient878"
x1="5.6215057"
y1="294.44879"
x2="6.6798391"
y2="295.50714"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="32"
inkscape:cx="2.5129442"
inkscape:cy="10.477946"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="true"
units="px"
inkscape:window-width="1920"
inkscape:window-height="1001"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true"
fit-margin-top="5"
fit-margin-left="5"
fit-margin-bottom="5"
fit-margin-right="5"
inkscape:snap-global="true"
inkscape:object-paths="false"
inkscape:snap-intersection-paths="false"
inkscape:snap-smooth-nodes="true"
inkscape:snap-midpoints="true"
inkscape:snap-grids="false"
inkscape:snap-object-midpoints="true"
showguides="true"
inkscape:guide-bbox="true"
scale-x="1"
guidecolor="#00ffff"
guideopacity="0.49803922"
guidehicolor="#ff5184"
guidehiopacity="0.62745098"
inkscape:snap-nodes="true"
inkscape:snap-others="false">
<inkscape:grid
type="xygrid"
id="grid815"
originx="0"
originy="0"
color="#3f513e"
opacity="0.04313725"
empcolor="#3f3742"
empopacity="0.16470588"
empspacing="5"
dotted="false" />
<sodipodi:guide
position="11.244792,0.79375"
orientation="1,0"
id="guide924"
inkscape:locked="false" />
<sodipodi:guide
position="-1.6867187,5.0270833"
orientation="1,0"
id="guide932"
inkscape:locked="false"
inkscape:label=""
inkscape:color="rgb(0,255,236)" />
<sodipodi:guide
position="0.79375,4.4979166"
orientation="1,0"
id="guide1884"
inkscape:locked="false" />
<sodipodi:guide
position="3.96875,5.0270833"
orientation="0,1"
id="guide1886"
inkscape:locked="false" />
<sodipodi:guide
position="5.0270833,0.26458333"
orientation="1,0"
id="guide1888"
inkscape:locked="false" />
<sodipodi:guide
position="4.4979166,0.79375"
orientation="0,1"
id="guide1890"
inkscape:locked="false" />
</sodipodi:namedview>
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-1.9173392,-290.74464)">
<path
style="fill:url(#linearGradient878);stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;opacity:0.65"
d="m 5.6215058,295.50714 v -0.79375 l 0.2645833,-0.26458 0.79375,0.79375 v 0.26458 z"
id="path870"
inkscape:connector-curvature="0" />
<path
style="fill:url(#linearGradient868);stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1;opacity:0.65"
d="m 4.2985892,292.86131 2.3812499,2.38125 v -1.32292 l -1.3229166,-1.32292 -0.79375,-0.52916 -0.2645833,0.26458 z"
id="path860"
inkscape:connector-curvature="0" />
<path
id="path1962"
transform="matrix(0.26458333,0,0,0.26458333,1.9173392,290.74464)"
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 7,11 6.2929688,11.707031 8.5859375,14 H 18 V 13 H 9 Z M 6.2929688,11.707031 5,13 H 4 v 1 H 5.4140625 L 7,12.414062 Z M 3,3 V 18.999988 H 19 V 3 Z M 3.9999999,3.9999875 H 18 V 18 H 3.9999999 Z" />
<rect
style="opacity:0.5;fill:none;fill-opacity:1;stroke:none;stroke-width:0.04583338;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect844"
width="5.8208332"
height="5.8208447"
x="1.9173392"
y="290.74463"
inkscape:export-xdpi="64"
inkscape:export-ydpi="64" />
<path
style="fill:#31363b;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 4.5631726,292.06756 -0.2645834,0.26459 v 0.52916 l 0.2645834,-0.26458 v 0.26458 0.52917 l 0.5291666,0.79375 0.5291667,1.32291 v -0.79374 l 0.2645833,-0.26459 -0.2645833,-0.52916 v -0.79375 l -0.2645833,-0.52917 z"
id="path1934"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccccc" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 927 B

BIN
icons/ui_light/edit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
icons/ui_light/import.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 818 B

BIN
icons/ui_light/json.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
icons/ui_light/share.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
icons/ui_light/tray.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -1,10 +1,27 @@
<RCC> <RCC>
<qresource prefix="/"> <qresource prefix="/">
<file>icons/qv2ray.icns</file>
<file>icons/qv2ray.png</file>
<file>icons/qv2ray.ico</file> <file>icons/qv2ray.ico</file>
<file>icons/add_connection_btn.png</file> <file>icons/ui_dark/add.png</file>
<file>icons/import_connection_btn.png</file> <file>icons/ui_dark/delete.png</file>
<file>icons/remove_connection_btn.png</file> <file>icons/ui_dark/duplicate.png</file>
<file>icons/edit_connection_btn.png</file> <file>icons/ui_dark/edit.png</file>
<file>icons/netspeed-arrows.svg</file> <file>icons/ui_dark/import.png</file>
<file>icons/ui_dark/json.png</file>
<file>icons/ui_dark/netspeed_arrow.png</file>
<file>icons/ui_dark/ping_gauge.png</file>
<file>icons/ui_dark/share.png</file>
<file>icons/ui_light/add.png</file>
<file>icons/ui_light/delete.png</file>
<file>icons/ui_light/duplicate.png</file>
<file>icons/ui_light/edit.png</file>
<file>icons/ui_light/import.png</file>
<file>icons/ui_light/json.png</file>
<file>icons/ui_light/netspeed_arrow.png</file>
<file>icons/ui_light/ping_gauge.png</file>
<file>icons/ui_light/share.png</file>
<file>icons/ui_light/tray.png</file>
<file>icons/ui_dark/tray.png</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@ -1,14 +1,22 @@
#ifndef QV2RAYBASE_H #ifndef QV2RAYBASE_H
#define QV2RAYBASE_H #define QV2RAYBASE_H
#include <QtCore> #include <QtCore>
#include <QtGui>
#include <QMap> #include <QMap>
#include <vector>
#include "QvTinyLog.hpp" #include "QvTinyLog.hpp"
#include "QvCoreConfigObjects.hpp" #include "QvCoreConfigObjects.hpp"
#include "QvNetSpeedPlugin.hpp"
#include "QObjectMessageProxy.hpp" #include "QObjectMessageProxy.hpp"
#define QV2RAY_CONFIG_VERSION 9 #define QV2RAY_CONFIG_VERSION 9
// Linux DEs should handle the ui schemes themselves.
// --> Or.. should we change this into a modifyable setting?
#ifdef Q_OS_LINUX
#define QV2RAY_USE_BUILTIN_DARKTHEME false
#else
#define QV2RAY_USE_BUILTIN_DARKTHEME true #define QV2RAY_USE_BUILTIN_DARKTHEME true
#endif
// Base folder suffix. // Base folder suffix.
#ifdef QT_DEBUG #ifdef QT_DEBUG
@ -39,19 +47,21 @@
#define QV2RAY_VCORE_ERROR_LOG_FILENAME "error.log" #define QV2RAY_VCORE_ERROR_LOG_FILENAME "error.log"
// GUI TOOLS // GUI TOOLS
#define QV2RAY_IS_DARKTHEME (GetGlobalConfig().UISettings.useDarkTheme)
#define RED(obj) \ #define RED(obj) \
auto _temp = obj->palette(); \ auto _temp = obj->palette(); \
_temp.setColor(QPalette::Text, Qt::red); \ _temp.setColor(QPalette::Text, Qt::red); \
obj->setPalette(_temp); obj->setPalette(_temp);
// TODO: Dark mode support.
#define BLACK(obj) \ #define BLACK(obj) \
auto _temp = obj->palette(); \ auto _temp = obj->palette(); \
_temp.setColor(QPalette::Text, Qt::blue); \ _temp.setColor(QPalette::Text, QV2RAY_IS_DARKTHEME ? Qt::white : Qt::black); \
obj->setPalette(_temp); obj->setPalette(_temp);
#define QSTRING(std_string) QString::fromStdString(std_string) #define QV2RAY_UI_RESOURCES_ROOT QSTRING(QV2RAY_IS_DARKTHEME ? ":/icons/ui_dark/" : ":/icons/ui_light/")
#define QICON_R(file) QIcon(QV2RAY_UI_RESOURCES_ROOT + file)
#define QSTRING(std_string) QString::fromStdString(std_string)
#define NEWLINE "\r\n" #define NEWLINE "\r\n"
#ifndef MAX #ifndef MAX
@ -60,6 +70,44 @@
namespace Qv2ray namespace Qv2ray
{ {
// Extra header for QvConfigUpgrade.cpp
QJsonObject UpgradeConfig(int fromVersion, int toVersion, QJsonObject root);
struct QvBarLine {
std::string Family;
bool Bold;
bool Italic;
int ColorA;
int ColorR;
int ColorG;
int ColorB;
int ContentType;
double Size;
std::string Message;
QvBarLine()
: Family("Consolas")
, Bold(true)
, Italic(false)
, ColorA(255), ColorR(255), ColorG(255), ColorB(255)
, ContentType(0)
, Size(9),
Message() { }
XTOSTRUCT(O(Bold, Italic, ColorA, ColorR, ColorG, ColorB, Size, Family, Message, ContentType))
};
struct QvBarPage {
int OffsetYpx;
vector<QvBarLine> Lines;
XTOSTRUCT(O(OffsetYpx, Lines))
QvBarPage() : OffsetYpx(5) { }
};
struct QvNetSpeedBarConfig {
std::vector<QvBarPage> Pages;
XTOSTRUCT(O(Pages))
};
namespace QvConfigModels namespace QvConfigModels
{ {
struct Qv2rayCoreInboundsConfig { struct Qv2rayCoreInboundsConfig {
@ -90,7 +138,8 @@ namespace Qv2ray
string theme; string theme;
string language; string language;
bool useDarkTheme; bool useDarkTheme;
XTOSTRUCT(O(theme, language, useDarkTheme)) bool useDarkTrayIcon;
XTOSTRUCT(O(theme, language, useDarkTheme, useDarkTrayIcon))
}; };
struct Qv2rayConfig { struct Qv2rayConfig {
@ -182,8 +231,6 @@ namespace Qv2ray
speedBarConfig)) speedBarConfig))
}; };
// Extra header for QvConfigUpgrade.cpp
QJsonObject UpgradeConfig(int fromVersion, int toVersion, QJsonObject root);
} }
} }

View File

@ -9,110 +9,106 @@
namespace Qv2ray namespace Qv2ray
{ {
namespace QvConfigModels // Private member
QJsonObject UpgradeConfig_Inc(int fromVersion, QJsonObject root)
{ {
// Private member switch (fromVersion) {
QJsonObject UpgradeConfig_Inc(int fromVersion, QJsonObject root) case 1: {
{ auto v1_oldConfigVersion = root["config_version"].toString();
switch (fromVersion) { // From 1 to 2, we changed the config_version from 'string' to 'int'
case 1: { root.remove("config_version");
auto v1_oldConfigVersion = root["config_version"].toString(); root["config_version"] = 2;
// From 1 to 2, we changed the config_version from 'string' to 'int' UPDATELOG("Upgrading config_version from old value " + v1_oldConfigVersion.toStdString() + " to 2")
root.remove("config_version"); break;
root["config_version"] = 2; }
UPDATELOG("Upgrading config_version from old value " + v1_oldConfigVersion.toStdString() + " to 2")
break;
}
case 2 : { case 2 : {
// We copied those files. // We copied those files.
auto vCoreFilePath = root["v2CorePath"].toString(); auto vCoreFilePath = root["v2CorePath"].toString();
auto vCoreDestPath = QV2RAY_DEFAULT_VCORE_PATH; auto vCoreDestPath = QV2RAY_DEFAULT_VCORE_PATH;
// We also need v2ctl // We also need v2ctl
auto v2CtlFilePath = QFileInfo(vCoreFilePath).dir().path() + "/v2ctl"; auto v2CtlFilePath = QFileInfo(vCoreFilePath).dir().path() + "/v2ctl";
auto v2CtlDestPath = QFileInfo(vCoreDestPath).dir().path() + "/v2ctl"; auto v2CtlDestPath = QFileInfo(vCoreDestPath).dir().path() + "/v2ctl";
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
v2CtlFilePath = v2CtlFilePath.append(".exe"); v2CtlFilePath = v2CtlFilePath.append(".exe");
v2CtlDestPath = v2CtlDestPath.append(".exe"); v2CtlDestPath = v2CtlDestPath.append(".exe");
#endif #endif
QFile::copy(vCoreFilePath, vCoreDestPath); QFile::copy(vCoreFilePath, vCoreDestPath);
QFile::copy(v2CtlFilePath, v2CtlDestPath); QFile::copy(v2CtlFilePath, v2CtlDestPath);
root.remove("v2CorePath"); root.remove("v2CorePath");
UPDATELOG("v2CorePath value from: " + vCoreFilePath.toStdString() + " to " + vCoreDestPath.toStdString()) UPDATELOG("v2CorePath value from: " + vCoreFilePath.toStdString() + " to " + vCoreDestPath.toStdString())
UPDATELOG("v2CtlFilePath value from: " + v2CtlFilePath.toStdString() + " to " + v2CtlDestPath.toStdString()) UPDATELOG("v2CtlFilePath value from: " + v2CtlFilePath.toStdString() + " to " + v2CtlDestPath.toStdString())
break; break;
}
case 3 : {
// We changed a key name in the config file.
//proxyDefault
auto oldProxyDefault = root["proxyDefault"].toBool();
root.remove("proxyDefault");
root["enableProxy"] = oldProxyDefault;
//enableProxy
UPDATELOG("key: proxyDefault->enableProxy, value from: " + to_string(oldProxyDefault) + " to " + to_string(oldProxyDefault))
break;
}
// --------------------------------------------------------------------------------------
// Below is for version 2
case 4: {
// From 2 to 3, we changed the "proxyCN" to "bypassCN" as it's easier to understand....
auto v2_oldProxyCN = root["proxyCN"].toBool();
root.remove("proxyCN");
root.insert("bypassCN", !v2_oldProxyCN);
UPDATELOG("Upgrading proxyCN to bypassCN and changed the value to " + to_string(!v2_oldProxyCN))
break;
}
case 5: {
auto v3_oldrunAsRoot = root["runAsRoot"].toBool();
// From 3 to 4, we changed 'runAsRoot' to 'tProxySupport'
root.remove("runAsRoot");
root.insert("tProxySupport", v3_oldrunAsRoot);
UPDATELOG("Upgrading runAsRoot to tProxySupport, the value is not changed: " + to_string(v3_oldrunAsRoot))
break;
}
case 6: {
root["enableStats"] = true;
UPDATELOG("Default statistics enabled.")
break;
}
case 7: {
QString path;
path = QV2RAY_DEFAULT_VCORE_PATH;
root["v2CorePath"] = path;
UPDATELOG("Added v2CorePath to the config file.")
break;
}
case 8: {
auto lang = root["language"].toString();
QJsonObject uiSettings;
uiSettings["language"] = lang;
root["UISettings"] = uiSettings;
UPDATELOG("Reconstructing config file.")
break;
}
} }
root["config_version"] = root["config_version"].toInt() + 1; case 3 : {
return root; // We changed a key name in the config file.
} //proxyDefault
auto oldProxyDefault = root["proxyDefault"].toBool();
// Exported function root.remove("proxyDefault");
QJsonObject UpgradeConfig(int fromVersion, int toVersion, QJsonObject root) root["enableProxy"] = oldProxyDefault;
{ //enableProxy
LOG(MODULE_CONFIG, "Migrating config from version " + to_string(fromVersion) + " to " + to_string(toVersion)) UPDATELOG("key: proxyDefault->enableProxy, value from: " + to_string(oldProxyDefault) + " to " + to_string(oldProxyDefault))
break;
for (int i = fromVersion; i < toVersion; i++) {
root = UpgradeConfig_Inc(i, root);
} }
return root; // --------------------------------------------------------------------------------------
// Below is for version 2
case 4: {
// From 2 to 3, we changed the "proxyCN" to "bypassCN" as it's easier to understand....
auto v2_oldProxyCN = root["proxyCN"].toBool();
root.remove("proxyCN");
root.insert("bypassCN", !v2_oldProxyCN);
UPDATELOG("Upgrading proxyCN to bypassCN and changed the value to " + to_string(!v2_oldProxyCN))
break;
}
case 5: {
auto v3_oldrunAsRoot = root["runAsRoot"].toBool();
// From 3 to 4, we changed 'runAsRoot' to 'tProxySupport'
root.remove("runAsRoot");
root.insert("tProxySupport", v3_oldrunAsRoot);
UPDATELOG("Upgrading runAsRoot to tProxySupport, the value is not changed: " + to_string(v3_oldrunAsRoot))
break;
}
case 6: {
root["enableStats"] = true;
UPDATELOG("Default statistics enabled.")
break;
}
case 7: {
QString path;
path = QV2RAY_DEFAULT_VCORE_PATH;
root["v2CorePath"] = path;
UPDATELOG("Added v2CorePath to the config file.")
break;
}
case 8: {
auto lang = root["language"].toString();
QJsonObject uiSettings;
uiSettings["language"] = lang;
root["UISettings"] = uiSettings;
UPDATELOG("Reconstructing config file.")
break;
}
} }
root["config_version"] = root["config_version"].toInt() + 1;
return root;
}
// Exported function
QJsonObject UpgradeConfig(int fromVersion, int toVersion, QJsonObject root)
{
LOG(MODULE_CONFIG, "Migrating config from version " + to_string(fromVersion) + " to " + to_string(toVersion))
for (int i = fromVersion; i < toVersion; i++) {
root = UpgradeConfig_Inc(i, root);
}
return root;
} }
} }

View File

@ -2,6 +2,7 @@
#include <QStandardPaths> #include <QStandardPaths>
#include <QTranslator> #include <QTranslator>
#include <QStyle> #include <QStyle>
#include <QLocale>
#include <QStyleFactory> #include <QStyleFactory>
#include "QvUtils.hpp" #include "QvUtils.hpp"
@ -136,32 +137,40 @@ int main(int argc, char *argv[])
{ {
// This line must be called before any other ones. // This line must be called before any other ones.
QApplication _qApp(argc, argv); QApplication _qApp(argc, argv);
//
// Install a default translater. From the OS/DE
auto _lang = QLocale::system().name().replace("_", "-");
bool _result_ = qApp->installTranslator(getTranslator(_lang));
LOG(MODULE_UI, "Installing a tranlator from OS: " + _lang.toStdString() + " -- " + (_result_ ? "OK" : "Failed"))
//
LOG("LICENCE", NEWLINE "This program comes with ABSOLUTELY NO WARRANTY." NEWLINE LOG("LICENCE", NEWLINE "This program comes with ABSOLUTELY NO WARRANTY." NEWLINE
"This is free software, and you are welcome to redistribute it" NEWLINE "This is free software, and you are welcome to redistribute it" NEWLINE
"under certain conditions." NEWLINE "under certain conditions." NEWLINE NEWLINE
NEWLINE NEWLINE "Copyright (C) 2019 Leroy.H.Y (@lhy0403): Qv2ray Current Developer" NEWLINE
"Libraries that are used in Qv2ray and their authors are listed below:" NEWLINE "Copyright (C) 2019 Hork (@aliyuchang33): Hv2ray Initial Designs & gRPC implementation " NEWLINE
"QJsonModel: Copyright (c) 2011 SCHUTZ Sacha" NEWLINE "Copyright (C) 2019 SOneWinstone (@SoneWinstone): Hv2ray/Qv2ray HTTP Request Helper" NEWLINE
"Qv2ray Current Developer Copyright (C) 2019 Leroy.H.Y (@lhy0403)" NEWLINE
"Hv2ray Initial Designs & gRPC implementation Copyright (C) 2019 Hork (@aliyuchang33)" NEWLINE
"Hv2ray/Qv2ray HTTP Request Helper (partial) Copyright 2019 (C) SOneWinstone (@SoneWinstone)" NEWLINE
"Qv2ray ArtWork Done By ArielAxionL (@axionl)" NEWLINE "Qv2ray ArtWork Done By ArielAxionL (@axionl)" NEWLINE
"Qv2ray Russian Translations By TheBadGateway (@thebadgateway)" NEWLINE "TheBadGateway (@thebadgateway): Qv2ray Russian Translations" NEWLINE
"Qv2ray patch 8a8c1a By Riko (@rikakomoe)" NEWLINE "Riko (@rikakomoe): Qv2ray patch 8a8c1a/PR115"
NEWLINE NEWLINE
"Libraries that have been used in Qv2ray are listed below (Sorted by date added):" NEWLINE
"Copyright (c) 2019 dridk (@dridk): X2Struct (Apache)" NEWLINE
"Copyright (c) 2011 SCHUTZ Sacha (@dridk): QJsonModel (MIT)" NEWLINE
"Copyright (c) 2019 Nikolaos Ftylitakis (@ftylitak): QZXing (Apache2)" NEWLINE
"Copyright (c) 2016 Singein (@Singein): ScreenShot (MIT)" NEWLINE
NEWLINE NEWLINE
"Qv2ray " QV2RAY_VERSION_STRING " running on " + "Qv2ray " QV2RAY_VERSION_STRING " running on " +
(QSysInfo::prettyProductName() + " " + QSysInfo::currentCpuArchitecture()).toStdString() + (QSysInfo::prettyProductName() + " " + QSysInfo::currentCpuArchitecture()).toStdString() + NEWLINE)
NEWLINE)
// //
LOG(MODULE_INIT, "Qv2ray Start Time: " + QString::number(QTime::currentTime().msecsSinceStartOfDay()).toStdString()) LOG(MODULE_INIT, "Qv2ray Start Time: " + QString::number(QTime::currentTime().msecsSinceStartOfDay()).toStdString())
DEBUG("DEBUG", "============================== This is a debug build, many features are not stable enough. ==============================") DEBUG("DEBUG", "WARNING: ============================== This is a debug build, many features are not stable enough. ==============================")
// //
// Initialise the language list. // Initialise the language list.
auto langs = GetFileList(QDir(":/translations")); auto langs = GetFileList(QDir(":/translations"));
if (langs.empty()) { if (langs.empty()) {
LOG(MODULE_INIT, "FAILED to find any translations. THIS IS A BUILD ERROR.") LOG(MODULE_INIT, "FAILED to find any translations. THIS IS A BUILD ERROR.")
QvMessageBox(nullptr, "Cannot load languages", "Qv2ray will continue running, but you cannot change the UI language."); QvMessageBox(nullptr, QObject::tr("Cannot load languages"), QObject::tr("Qv2ray will continue running, but you cannot change the UI language."));
} else { } else {
for (auto lang : langs) { for (auto lang : langs) {
LOG(MODULE_INIT, "Found Translator: " + lang.toStdString()) LOG(MODULE_INIT, "Found Translator: " + lang.toStdString())
@ -201,7 +210,7 @@ int main(int argc, char *argv[])
QObject::tr("Qv2ray will now exit.")); QObject::tr("Qv2ray will now exit."));
return -3; return -3;
} else if (confVersion != newVersion) { } else if (confVersion != newVersion) {
conf = UpgradeConfig(confVersion.toInt(), QV2RAY_CONFIG_VERSION, conf); conf = Qv2ray::UpgradeConfig(confVersion.toInt(), QV2RAY_CONFIG_VERSION, conf);
} }
auto confObject = StructFromJsonString<Qv2rayConfig>(JsonToString(conf)); auto confObject = StructFromJsonString<Qv2rayConfig>(JsonToString(conf));
@ -291,6 +300,7 @@ int main(int argc, char *argv[])
MainWindow w; MainWindow w;
return _qApp.exec(); return _qApp.exec();
} catch (std::exception *ex) { } catch (std::exception *ex) {
QvMessageBox(nullptr, "ERROR", QSTRING(ex->what()));
LOG(MODULE_INIT, ex->what()) LOG(MODULE_INIT, ex->what())
return -9; return -9;
} }

View File

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>549</width> <width>532</width>
<height>493</height> <height>666</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -23,7 +23,7 @@
<string/> <string/>
</property> </property>
<property name="pixmap"> <property name="pixmap">
<pixmap resource="../../resources.qrc">:/icons/qv2ray.ico</pixmap> <pixmap resource="../../resources.qrc">:/icons/qv2ray.png</pixmap>
</property> </property>
<property name="scaledContents"> <property name="scaledContents">
<bool>false</bool> <bool>false</bool>

View File

@ -39,7 +39,7 @@ void ImportConfigWindow::on_qrFromScreenBtn_clicked()
{ {
// QRubberBand // QRubberBand
QThread::msleep(static_cast<ulong>(doubleSpinBox->value() * 1000)); QThread::msleep(static_cast<ulong>(doubleSpinBox->value() * 1000));
bool hasVmessDetected = false; //bool hasVmessDetected = false;
//for (auto screen : qApp->screens()) { //for (auto screen : qApp->screens()) {
// if (!screen) { // if (!screen) {
// LOG(MODULE_UI, "Cannot even find a screen. RARE") // LOG(MODULE_UI, "Cannot even find a screen. RARE")
@ -54,8 +54,9 @@ void ImportConfigWindow::on_qrFromScreenBtn_clicked()
if (w.result() == QDialog::Accepted) { if (w.result() == QDialog::Accepted) {
auto str = QZXing().decodeImage(pix); auto str = QZXing().decodeImage(pix);
if (str.isEmpty()) { if (str.trimmed().isEmpty()) {
LOG(MODULE_UI, "Cannot decode QR Code from an image, size: h=" + to_string(pix.width()) + ", v=" + to_string(pix.height())) LOG(MODULE_UI, "Cannot decode QR Code from an image, size: h=" + to_string(pix.width()) + ", v=" + to_string(pix.height()))
QvMessageBox(this, tr("Capture QRCode"), tr("Cannot find a valid QRCode from this region."));
// continue; // continue;
} else { } else {
vmessConnectionStringTxt->appendPlainText(str.trimmed() + NEWLINE); vmessConnectionStringTxt->appendPlainText(str.trimmed() + NEWLINE);
@ -240,3 +241,31 @@ void ImportConfigWindow::on_editFileBtn_clicked()
LOG(MODULE_FILE, "Canceled saving a file.") LOG(MODULE_FILE, "Canceled saving a file.")
} }
} }
void ImportConfigWindow::on_connectionEditBtn_clicked()
{
OutboundEditor *w = new OutboundEditor(this);
auto outboundEntry = w->OpenEditor();
bool isChanged = w->result() == QDialog::Accepted;
QString alias = w->GetFriendlyName();
delete w;
if (isChanged) {
QJsonArray outboundsList;
outboundsList.push_back(outboundEntry);
QJsonObject root;
root.insert("outbounds", outboundsList);
//
// WARN This one will change the connection name, because of some duplicates.
SaveConnectionConfig(root, &alias, false);
//
auto conf = GetGlobalConfig();
auto connectionList = conf.configs;
connectionList.push_back(alias.toStdString());
conf.configs = connectionList;
SetGlobalConfig(conf);
close();
} else {
return;
}
}

View File

@ -25,6 +25,8 @@ class ImportConfigWindow : public QDialog, private Ui::ImportConfigWindow
void on_editFileBtn_clicked(); void on_editFileBtn_clicked();
void on_connectionEditBtn_clicked();
private: private:
QMap<QString, QString> vmessErrors; QMap<QString, QString> vmessErrors;
}; };

View File

@ -68,6 +68,11 @@
<string>Subscription Link</string> <string>Subscription Link</string>
</property> </property>
</item> </item>
<item>
<property name="text">
<string>Manually Input</string>
</property>
</item>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -154,7 +159,7 @@
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label_5"> <widget class="QLabel" name="label_5">
<property name="text"> <property name="text">
<string>From QRCode</string> <string>From QRCode File</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -278,14 +283,14 @@
<item row="0" column="1"> <item row="0" column="1">
<widget class="QLabel" name="label_7"> <widget class="QLabel" name="label_7">
<property name="text"> <property name="text">
<string>TextLabel</string> <string>Error List</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label_8"> <widget class="QLabel" name="label_8">
<property name="text"> <property name="text">
<string>TextLabel</string> <string>VMess</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -325,6 +330,31 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="page_2">
<layout class="QFormLayout" name="formLayout_4">
<item row="1" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Connection Editor</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="connectionEditBtn">
<property name="text">
<string>Open Connection Editor</string>
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="label_13">
<property name="text">
<string>Maunally input connection details</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget> </widget>
</item> </item>
</layout> </layout>

View File

@ -37,8 +37,20 @@ MainWindow::MainWindow(QWidget *parent)
auto conf = GetGlobalConfig(); auto conf = GetGlobalConfig();
vinstance = new Qv2Instance(this); vinstance = new Qv2Instance(this);
setupUi(this); setupUi(this);
this->setWindowIcon(QIcon(":/icons/qv2ray.ico")); //
hTray->setIcon(this->windowIcon()); this->setWindowIcon(QIcon(":/icons/qv2ray.png"));
hTray->setIcon(QIcon(conf.UISettings.useDarkTrayIcon ? ":/icons/ui_dark/tray.png" : ":/icons/ui_light/tray.png"));
importConfigButton->setIcon(QICON_R("import.png"));
duplicateBtn->setIcon(QICON_R("duplicate.png"));
removeConfigButton->setIcon(QICON_R("delete.png"));
editConfigButton->setIcon(QICON_R("edit.png"));
editJsonBtn->setIcon(QICON_R("json.png"));
//
pingTestBtn->setIcon(QICON_R("ping_gauge.png"));
shareBtn->setIcon(QICON_R("share.png"));
updownImageBox->setStyleSheet("image: url(" + QV2RAY_UI_RESOURCES_ROOT + "netspeed_arrow.png)");
updownImageBox_2->setStyleSheet("image: url(" + QV2RAY_UI_RESOURCES_ROOT + "netspeed_arrow.png)");
//
hTray->setToolTip(TRAY_TOOLTIP_PREFIX); hTray->setToolTip(TRAY_TOOLTIP_PREFIX);
// //
QAction *action_Tray_ShowHide = new QAction(this->windowIcon(), tr("Hide"), this); QAction *action_Tray_ShowHide = new QAction(this->windowIcon(), tr("Hide"), this);
@ -49,8 +61,8 @@ MainWindow::MainWindow(QWidget *parent)
// //
QAction *action_RCM_RenameConnection = new QAction(tr("Rename"), this); QAction *action_RCM_RenameConnection = new QAction(tr("Rename"), this);
QAction *action_RCM_StartThis = new QAction(tr("Connect to this"), this); QAction *action_RCM_StartThis = new QAction(tr("Connect to this"), this);
QAction *action_RCM_EditJson = new QAction(tr("Edit as Json"), this); QAction *action_RCM_EditJson = new QAction(QICON_R("json.png"), tr("Edit as Json"), this);
QAction *action_RCM_ShareQR = new QAction(tr("Share as QRCode/vmess Uri"), this); QAction *action_RCM_ShareQR = new QAction(QICON_R("share.png"), tr("Share as QRCode/VMess URL"), this);
// //
action_Tray_Start->setEnabled(true); action_Tray_Start->setEnabled(true);
action_Tray_Stop->setEnabled(false); action_Tray_Stop->setEnabled(false);
@ -91,7 +103,7 @@ MainWindow::MainWindow(QWidget *parent)
LoadConnections(); LoadConnections();
QObject::connect(&HTTPRequestHelper, &QvHttpRequestHelper::httpRequestFinished, this, &MainWindow::VersionUpdate); QObject::connect(&HTTPRequestHelper, &QvHttpRequestHelper::httpRequestFinished, this, &MainWindow::VersionUpdate);
HTTPRequestHelper.get("https://api.github.com/repos/lhy0403/Qv2ray/releases/latest"); HTTPRequestHelper.get("https://api.github.com/repos/lhy0403/Qv2ray/releases/latest");
bool hasAutoStart = false; bool hasAutoStart = false;
// //
// For charts // For charts
uploadSerie = new QSplineSeries(this); uploadSerie = new QSplineSeries(this);
@ -571,40 +583,11 @@ void MainWindow::on_removeConfigButton_clicked()
void MainWindow::on_importConfigButton_clicked() void MainWindow::on_importConfigButton_clicked()
{ {
// TODO
ImportConfigWindow *w = new ImportConfigWindow(this); ImportConfigWindow *w = new ImportConfigWindow(this);
w->exec(); w->exec();
OnConfigListChanged(false); OnConfigListChanged(false);
} }
void MainWindow::on_addConfigButton_clicked()
{
OutboundEditor *w = new OutboundEditor(this);
connect(w, &OutboundEditor::s_reload_config, this, &MainWindow::OnConfigListChanged);
auto outboundEntry = w->OpenEditor();
bool isChanged = w->result() == QDialog::Accepted;
QString alias = w->GetFriendlyName();
delete w;
if (isChanged) {
QJsonArray outboundsList;
outboundsList.push_back(outboundEntry);
QJsonObject root;
root.insert("outbounds", outboundsList);
//
// WARN This one will change the connection name, because of some duplicates.
SaveConnectionConfig(root, &alias, false);
//
auto conf = GetGlobalConfig();
auto connectionList = conf.configs;
connectionList.push_back(alias.toStdString());
conf.configs = connectionList;
SetGlobalConfig(conf);
OnConfigListChanged(false);
ShowAndSetConnection(CurrentConnectionName, false, false);
}
}
void MainWindow::on_editConfigButton_clicked() void MainWindow::on_editConfigButton_clicked()
{ {
// Check if we have a connection selected... // Check if we have a connection selected...
@ -705,7 +688,7 @@ void MainWindow::on_shareBtn_clicked()
} }
} }
void MainWindow::on_action_RCM_ShareQR_triggered() void MainWindow::on_action_RCM_ShareQR_triggered(bool checked)
{ {
on_shareBtn_clicked(); on_shareBtn_clicked();
} }

View File

@ -27,7 +27,7 @@ class MainWindow : public QMainWindow, Ui::MainWindow
void UpdateLog(); void UpdateLog();
void OnConfigListChanged(bool need_restart); void OnConfigListChanged(bool need_restart);
private slots: private slots:
void on_action_RCM_ShareQR_triggered(); void on_action_RCM_ShareQR_triggered(bool checked = false);
void on_startButton_clicked(); void on_startButton_clicked();
void on_stopButton_clicked(); void on_stopButton_clicked();
void on_reconnectButton_clicked(); void on_reconnectButton_clicked();
@ -56,8 +56,6 @@ class MainWindow : public QMainWindow, Ui::MainWindow
void on_importConfigButton_clicked(); void on_importConfigButton_clicked();
void on_addConfigButton_clicked();
void on_editConfigButton_clicked(); void on_editConfigButton_clicked();
void on_editJsonBtn_clicked(); void on_editJsonBtn_clicked();

View File

@ -9,8 +9,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>680</width> <width>740</width>
<height>585</height> <height>590</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
@ -21,8 +21,8 @@
</property> </property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>680</width> <width>740</width>
<height>585</height> <height>590</height>
</size> </size>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -41,7 +41,7 @@
<height>530</height> <height>530</height>
</size> </size>
</property> </property>
<layout class="QGridLayout" name="gridLayout_2" rowstretch="0,5,4,0" columnstretch="4,3"> <layout class="QGridLayout" name="gridLayout_2" rowstretch="0,6,4,0" columnstretch="6,4">
<item row="0" column="0" colspan="2"> <item row="0" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1,0,1,0,0,0"> <layout class="QHBoxLayout" name="horizontalLayout" stretch="1,1,0,1,0,0,0">
<property name="spacing"> <property name="spacing">
@ -175,27 +175,7 @@
</spacer> </spacer>
</item> </item>
<item> <item>
<widget class="QToolButton" name="addConfigButton"> <widget class="QPushButton" name="importConfigButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Add new connection manually</string>
</property>
<property name="text">
<string>A</string>
</property>
<property name="icon">
<iconset resource="../../resources.qrc">
<normaloff>:/icons/add_connection_btn.png</normaloff>:/icons/add_connection_btn.png</iconset>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="importConfigButton">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -206,26 +186,34 @@
<string>Import connection</string> <string>Import connection</string>
</property> </property>
<property name="text"> <property name="text">
<string>I</string> <string>Add</string>
</property> </property>
<property name="icon"> <property name="iconSize">
<iconset resource="../../resources.qrc"> <size>
<normaloff>:/icons/import_connection_btn.png</normaloff>:/icons/import_connection_btn.png</iconset> <width>22</width>
<height>22</height>
</size>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QToolButton" name="duplicateBtn"> <widget class="QPushButton" name="duplicateBtn">
<property name="toolTip"> <property name="toolTip">
<string>Duplicate connection</string> <string>Duplicate connection</string>
</property> </property>
<property name="text"> <property name="text">
<string>D</string> <string>Duplicate</string>
</property>
<property name="iconSize">
<size>
<width>22</width>
<height>22</height>
</size>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QToolButton" name="removeConfigButton"> <widget class="QPushButton" name="removeConfigButton">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -236,35 +224,29 @@
<string>Delete a connection</string> <string>Delete a connection</string>
</property> </property>
<property name="text"> <property name="text">
<string>R</string> <string>Delete</string>
</property> </property>
<property name="icon"> <property name="iconSize">
<iconset resource="../../resources.qrc"> <size>
<normaloff>:/icons/remove_connection_btn.png</normaloff>:/icons/remove_connection_btn.png</iconset> <width>22</width>
<height>22</height>
</size>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QToolButton" name="editConfigButton"> <widget class="QPushButton" name="editConfigButton">
<property name="toolTip"> <property name="toolTip">
<string>Edit connection</string> <string>Edit connection</string>
</property> </property>
<property name="text"> <property name="text">
<string>...</string> <string>Edit</string>
</property> </property>
<property name="icon"> <property name="iconSize">
<iconset resource="../../resources.qrc"> <size>
<normaloff>:/icons/edit_connection_btn.png</normaloff>:/icons/edit_connection_btn.png</iconset> <width>22</width>
</property> <height>22</height>
</widget> </size>
</item>
<item>
<widget class="QToolButton" name="editJsonBtn">
<property name="toolTip">
<string>Edit connection as JSON</string>
</property>
<property name="text">
<string>{ }</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -290,7 +272,7 @@
<property name="title"> <property name="title">
<string>Config Details</string> <string>Config Details</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2" stretch="1,0"> <layout class="QVBoxLayout" name="verticalLayout_2" stretch="1,0,0">
<item> <item>
<layout class="QFormLayout" name="formLayout"> <layout class="QFormLayout" name="formLayout">
<item row="0" column="0"> <item row="0" column="0">
@ -365,6 +347,13 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<widget class="QLabel" name="label_7">
<property name="text">
<string>Actions</string>
</property>
</widget>
</item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_4"> <layout class="QHBoxLayout" name="horizontalLayout_4">
<item> <item>
@ -381,17 +370,45 @@
</spacer> </spacer>
</item> </item>
<item> <item>
<widget class="QToolButton" name="pingTestBtn"> <widget class="QPushButton" name="editJsonBtn">
<property name="toolTip">
<string>Edit connection as JSON</string>
</property>
<property name="text"> <property name="text">
<string>Ping</string> <string>Edit JSON</string>
</property>
<property name="iconSize">
<size>
<width>22</width>
<height>22</height>
</size>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QToolButton" name="shareBtn"> <widget class="QPushButton" name="pingTestBtn">
<property name="text">
<string>Ping Test</string>
</property>
<property name="iconSize">
<size>
<width>22</width>
<height>22</height>
</size>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="shareBtn">
<property name="text"> <property name="text">
<string>Share</string> <string>Share</string>
</property> </property>
<property name="iconSize">
<size>
<width>22</width>
<height>22</height>
</size>
</property>
</widget> </widget>
</item> </item>
<item> <item>
@ -462,134 +479,124 @@
</layout> </layout>
</item> </item>
<item row="3" column="0" colspan="2"> <item row="3" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_6" stretch="1,1">
<item> <item>
<widget class="QLabel" name="label_5"> <layout class="QHBoxLayout" name="horizontalLayout_5">
<property name="text"> <item>
<string>Speed</string> <widget class="QLabel" name="label_5">
</property> <property name="text">
</widget> <string>Speed</string>
</item> </property>
<item> </widget>
<widget class="QFrame" name="updownImageBox"> </item>
<property name="sizePolicy"> <item>
<sizepolicy hsizetype="Fixed" vsizetype="Fixed"> <widget class="QWidget" name="updownImageBox" native="true">
<horstretch>32</horstretch> <property name="sizePolicy">
<verstretch>32</verstretch> <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
</sizepolicy> <horstretch>32</horstretch>
</property> <verstretch>32</verstretch>
<property name="minimumSize"> </sizepolicy>
<size> </property>
<width>25</width> <property name="minimumSize">
<height>25</height> <size>
</size> <width>25</width>
</property> <height>25</height>
<property name="styleSheet"> </size>
<string notr="true">border-image: url(:/icons/netspeed-arrows.svg) 0 0 0 0 stretch stretch;background-repeat: no-repeat;</string> </property>
</property> </widget>
<property name="frameShape"> </item>
<enum>QFrame::StyledPanel</enum> <item>
</property> <widget class="QLabel" name="netspeedLabel">
<property name="frameShadow"> <property name="font">
<enum>QFrame::Raised</enum> <font>
</property> <pointsize>8</pointsize>
</widget> </font>
</item> </property>
<item> <property name="text">
<widget class="QLabel" name="netspeedLabel"> <string>0.00 B/s
<property name="font">
<font>
<pointsize>8</pointsize>
</font>
</property>
<property name="text">
<string>0.00 B/s
0.00 B/s</string> 0.00 B/s</string>
</property> </property>
</widget> </widget>
</item>
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item> </item>
<item> <item>
<spacer name="horizontalSpacer_6"> <layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="orientation"> <item>
<enum>Qt::Horizontal</enum> <widget class="QLabel" name="label_6">
</property> <property name="sizePolicy">
<property name="sizeHint" stdset="0"> <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<size> <horstretch>0</horstretch>
<width>40</width> <verstretch>0</verstretch>
<height>20</height> </sizepolicy>
</size> </property>
</property> <property name="minimumSize">
</spacer> <size>
</item> <width>0</width>
<item> <height>0</height>
<widget class="QLabel" name="label_6"> </size>
<property name="sizePolicy"> </property>
<sizepolicy hsizetype="Minimum" vsizetype="Minimum"> <property name="text">
<horstretch>0</horstretch> <string>Data</string>
<verstretch>0</verstretch> </property>
</sizepolicy> </widget>
</property> </item>
<property name="minimumSize"> <item>
<size> <widget class="QWidget" name="updownImageBox_2" native="true">
<width>0</width> <property name="sizePolicy">
<height>0</height> <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
</size> <horstretch>32</horstretch>
</property> <verstretch>32</verstretch>
<property name="text"> </sizepolicy>
<string>Data</string> </property>
</property> <property name="minimumSize">
</widget> <size>
</item> <width>25</width>
<item> <height>25</height>
<widget class="QFrame" name="updownImageBox_2"> </size>
<property name="sizePolicy"> </property>
<sizepolicy hsizetype="Fixed" vsizetype="Fixed"> </widget>
<horstretch>32</horstretch> </item>
<verstretch>32</verstretch> <item>
</sizepolicy> <widget class="QLabel" name="dataamountLabel">
</property> <property name="font">
<property name="minimumSize"> <font>
<size> <pointsize>8</pointsize>
<width>25</width> </font>
<height>25</height> </property>
</size> <property name="text">
</property> <string>0.00 B
<property name="styleSheet">
<string notr="true">border-image: url(:/icons/netspeed-arrows.svg) 0 0 0 0 stretch stretch;background-repeat: no-repeat;</string>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="dataamountLabel">
<property name="font">
<font>
<pointsize>8</pointsize>
</font>
</property>
<property name="text">
<string>0.00 B
0.00 B</string> 0.00 B</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<spacer name="horizontalSpacer_7"> <spacer name="horizontalSpacer_7">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>40</width> <width>40</width>
<height>20</height> <height>20</height>
</size> </size>
</property> </property>
</spacer> </spacer>
</item>
</layout>
</item> </item>
</layout> </layout>
</item> </item>
@ -637,8 +644,6 @@
<tabstop>stopButton</tabstop> <tabstop>stopButton</tabstop>
<tabstop>clearlogButton</tabstop> <tabstop>clearlogButton</tabstop>
</tabstops> </tabstops>
<resources> <resources/>
<include location="../../resources.qrc"/>
</resources>
<connections/> <connections/>
</ui> </ui>

View File

@ -5,8 +5,9 @@
#include "QvUtils.hpp" #include "QvUtils.hpp"
#include "QvCoreInteractions.hpp" #include "QvCoreInteractions.hpp"
#include "w_PrefrencesWindow.hpp" #include "QvNetSpeedPlugin.hpp"
#include "w_PrefrencesWindow.hpp"
#define LOADINGCHECK if(!finishedLoading) return; #define LOADINGCHECK if(!finishedLoading) return;
#define NEEDRESTART if(finishedLoading) IsConnectionPropertyChanged = true; #define NEEDRESTART if(finishedLoading) IsConnectionPropertyChanged = true;
@ -29,13 +30,16 @@ PrefrencesWindow::PrefrencesWindow(QWidget *parent) : QDialog(parent),
themeCombo->addItems(QStyleFactory::keys()); themeCombo->addItems(QStyleFactory::keys());
// //
qvVersion->setText(QV2RAY_VERSION_STRING); qvVersion->setText(QV2RAY_VERSION_STRING);
qvBuildTime->setText(__DATE__ " " __TIME__);
CurrentConfig = GetGlobalConfig(); CurrentConfig = GetGlobalConfig();
// //
themeCombo->setCurrentText(QSTRING(CurrentConfig.UISettings.theme)); themeCombo->setCurrentText(QSTRING(CurrentConfig.UISettings.theme));
darkChartThemeCB->setChecked(CurrentConfig.UISettings.useDarkTheme); darkThemeCB->setChecked(CurrentConfig.UISettings.useDarkTheme);
darkTrayCB->setChecked(CurrentConfig.UISettings.useDarkTrayIcon);
#if QV2RAY_USE_BUILTIN_DARKTHEME #if QV2RAY_USE_BUILTIN_DARKTHEME
// If we use built in theme, it should always be fusion. // If we use built in theme, it should always be fusion.
themeCombo->setEnabled(!CurrentConfig.UISettings.useDarkTheme); themeCombo->setEnabled(!CurrentConfig.UISettings.useDarkTheme);
darkThemeLabel->setText(tr("Use Dark Theme"));
#endif #endif
languageComboBox->setCurrentText(QSTRING(CurrentConfig.UISettings.language)); languageComboBox->setCurrentText(QSTRING(CurrentConfig.UISettings.language));
logLevelComboBox->setCurrentIndex(CurrentConfig.logLevel); logLevelComboBox->setCurrentIndex(CurrentConfig.logLevel);
@ -339,7 +343,7 @@ void PrefrencesWindow::on_tProxyCheckBox_stateChanged(int arg1)
auto v2ctlPath = QFileInfo(QSTRING(CurrentConfig.v2CorePath)).path() + "/v2ctl"; auto v2ctlPath = QFileInfo(QSTRING(CurrentConfig.v2CorePath)).path() + "/v2ctl";
auto newPath = QFileInfo(QV2RAY_DEFAULT_VCORE_PATH).path(); auto newPath = QFileInfo(QV2RAY_DEFAULT_VCORE_PATH).path();
// //
LOG(MODULE_FILE, " --> Origin v2ray core file is at: " + v2ctlPath.toStdString() + "/v2ctl") LOG(MODULE_FILE, " --> Origin v2ctl file is at: " + v2ctlPath.toStdString())
LOG(MODULE_FILE, " --> New v2ray files will be placed in: " << newPath.toStdString()) LOG(MODULE_FILE, " --> New v2ray files will be placed in: " << newPath.toStdString())
// //
LOG(MODULE_FILE, " --> Copying files....") LOG(MODULE_FILE, " --> Copying files....")
@ -712,10 +716,11 @@ void PrefrencesWindow::on_themeCombo_currentTextChanged(const QString &arg1)
CurrentConfig.UISettings.theme = arg1.toStdString(); CurrentConfig.UISettings.theme = arg1.toStdString();
} }
void PrefrencesWindow::on_darkChartThemeCB_stateChanged(int arg1) void PrefrencesWindow::on_darkThemeCB_stateChanged(int arg1)
{ {
LOADINGCHECK LOADINGCHECK
CurrentConfig.UISettings.useDarkTheme = arg1 == Qt::Checked; CurrentConfig.UISettings.useDarkTheme = arg1 == Qt::Checked;
QvMessageBox(this, tr("Dark Mode"), tr("Please restart Qv2ray to fully apply this feature."));
#if QV2RAY_USE_BUILTIN_DARKTHEME #if QV2RAY_USE_BUILTIN_DARKTHEME
themeCombo->setEnabled(arg1 != Qt::Checked); themeCombo->setEnabled(arg1 != Qt::Checked);
@ -726,3 +731,8 @@ void PrefrencesWindow::on_darkChartThemeCB_stateChanged(int arg1)
#endif #endif
} }
void PrefrencesWindow::on_darkTrayCB_stateChanged(int arg1)
{
CurrentConfig.UISettings.useDarkTrayIcon = arg1 == Qt::Checked;
}

View File

@ -116,7 +116,9 @@ class PrefrencesWindow : public QDialog, private Ui::PrefrencesWindow
void on_themeCombo_currentTextChanged(const QString &arg1); void on_themeCombo_currentTextChanged(const QString &arg1);
void on_darkChartThemeCB_stateChanged(int arg1); void on_darkThemeCB_stateChanged(int arg1);
void on_darkTrayCB_stateChanged(int arg1);
private: private:
// Set ui parameters for a line; // Set ui parameters for a line;

View File

@ -6,20 +6,14 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>789</width> <width>797</width>
<height>500</height> <height>560</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>780</width> <width>780</width>
<height>500</height> <height>560</height>
</size> </size>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -70,27 +64,27 @@
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QLabel" name="label_36"> <widget class="QLabel" name="darkThemeLabel">
<property name="text"> <property name="text">
<string>Use Dark Theme</string> <string>Dark Theme Support</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="1" column="1">
<widget class="QCheckBox" name="darkChartThemeCB"> <widget class="QCheckBox" name="darkThemeCB">
<property name="text"> <property name="text">
<string>Enabled</string> <string>Enabled</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="3" column="0">
<widget class="QLabel" name="label_6"> <widget class="QLabel" name="label_6">
<property name="text"> <property name="text">
<string>Language</string> <string>Language</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item row="3" column="1">
<widget class="QComboBox" name="languageComboBox"> <widget class="QComboBox" name="languageComboBox">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@ -116,14 +110,14 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="5" column="0">
<widget class="QLabel" name="label"> <widget class="QLabel" name="label">
<property name="text"> <property name="text">
<string>Log Level</string> <string>Log Level</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="1"> <item row="5" column="1">
<widget class="QComboBox" name="logLevelComboBox"> <widget class="QComboBox" name="logLevelComboBox">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed"> <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
@ -164,14 +158,14 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="4" column="0"> <item row="6" column="0">
<widget class="QLabel" name="label_19"> <widget class="QLabel" name="label_19">
<property name="text"> <property name="text">
<string>Automatically Connect To</string> <string>Automatically Connect To</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="1"> <item row="6" column="1">
<widget class="QComboBox" name="autoStartCombo"> <widget class="QComboBox" name="autoStartCombo">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
@ -186,28 +180,28 @@
</item> </item>
</widget> </widget>
</item> </item>
<item row="5" column="0"> <item row="7" column="0">
<widget class="QLabel" name="label_7"> <widget class="QLabel" name="label_7">
<property name="text"> <property name="text">
<string>Transparent Proxy Support</string> <string>Transparent Proxy Support</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="1"> <item row="7" column="1">
<widget class="QCheckBox" name="tProxyCheckBox"> <widget class="QCheckBox" name="tProxyCheckBox">
<property name="text"> <property name="text">
<string>Enabled</string> <string>Enabled</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="0"> <item row="8" column="0">
<widget class="QLabel" name="label_46"> <widget class="QLabel" name="label_46">
<property name="text"> <property name="text">
<string>v2ray Core Path</string> <string>v2ray Core Path</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="6" column="1"> <item row="8" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_12"> <layout class="QHBoxLayout" name="horizontalLayout_12">
<item> <item>
<widget class="QLineEdit" name="vCorePathTxt"/> <widget class="QLineEdit" name="vCorePathTxt"/>
@ -221,14 +215,14 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="7" column="0"> <item row="9" column="0">
<widget class="QLabel" name="label_15"> <widget class="QLabel" name="label_15">
<property name="text"> <property name="text">
<string>v2ray Assets Path</string> <string>v2ray Assets Path</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="7" column="1"> <item row="9" column="1">
<layout class="QHBoxLayout" name="horizontalLayout_5"> <layout class="QHBoxLayout" name="horizontalLayout_5">
<item> <item>
<widget class="QLineEdit" name="vCoreAssetsPathTxt"/> <widget class="QLineEdit" name="vCoreAssetsPathTxt"/>
@ -242,6 +236,27 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="2" column="0">
<widget class="QLabel" name="label_36">
<property name="text">
<string>Dark Tray Icon</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QCheckBox" name="darkTrayCB">
<property name="text">
<string>Enabled</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QCheckBox" name="checkBox_3">
<property name="text">
<string>CheckBox</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="tab_3"> <widget class="QWidget" name="tab_3">
@ -757,23 +772,39 @@
<layout class="QGridLayout" name="gridLayout_2" rowstretch="2,2,3,2,1,1,1" columnstretch="0,0,1,0"> <layout class="QGridLayout" name="gridLayout_2" rowstretch="2,2,3,2,1,1,1" columnstretch="0,0,1,0">
<item row="1" column="3"> <item row="1" column="3">
<widget class="QToolButton" name="nsBarPageDelBTN"> <widget class="QToolButton" name="nsBarPageDelBTN">
<property name="text"> <property name="sizePolicy">
<string>...</string> <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
<property name="icon"> <property name="minimumSize">
<iconset resource="../../resources.qrc"> <size>
<normaloff>:/icons/remove_connection_btn.png</normaloff>:/icons/remove_connection_btn.png</iconset> <width>26</width>
<height>26</height>
</size>
</property>
<property name="text">
<string>-</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="3"> <item row="0" column="3">
<widget class="QToolButton" name="nsBarPageAddBTN"> <widget class="QToolButton" name="nsBarPageAddBTN">
<property name="text"> <property name="sizePolicy">
<string>...</string> <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
<property name="icon"> <property name="minimumSize">
<iconset resource="../../resources.qrc"> <size>
<normaloff>:/icons/add_connection_btn.png</normaloff>:/icons/add_connection_btn.png</iconset> <width>26</width>
<height>26</height>
</size>
</property>
<property name="text">
<string>+</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -820,23 +851,39 @@
</item> </item>
<item row="5" column="3"> <item row="5" column="3">
<widget class="QToolButton" name="nsBarLineDelBTN"> <widget class="QToolButton" name="nsBarLineDelBTN">
<property name="text"> <property name="sizePolicy">
<string>...</string> <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
<property name="icon"> <property name="minimumSize">
<iconset resource="../../resources.qrc"> <size>
<normaloff>:/icons/remove_connection_btn.png</normaloff>:/icons/remove_connection_btn.png</iconset> <width>26</width>
<height>26</height>
</size>
</property>
<property name="text">
<string>-</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="4" column="3"> <item row="4" column="3">
<widget class="QToolButton" name="nsBarLineAddBTN"> <widget class="QToolButton" name="nsBarLineAddBTN">
<property name="text"> <property name="sizePolicy">
<string>...</string> <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
<property name="icon"> <property name="minimumSize">
<iconset resource="../../resources.qrc"> <size>
<normaloff>:/icons/add_connection_btn.png</normaloff>:/icons/add_connection_btn.png</iconset> <width>26</width>
<height>26</height>
</size>
</property>
<property name="text">
<string>+</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -1051,31 +1098,42 @@
<attribute name="title"> <attribute name="title">
<string>About</string> <string>About</string>
</attribute> </attribute>
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,0"> <layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>
<widget class="QFrame" name="img"> <layout class="QVBoxLayout" name="verticalLayout_5">
<property name="sizePolicy"> <item>
<sizepolicy hsizetype="Minimum" vsizetype="Minimum"> <widget class="QWidget" name="img" native="true">
<horstretch>0</horstretch> <property name="sizePolicy">
<verstretch>0</verstretch> <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
</sizepolicy> <horstretch>0</horstretch>
</property> <verstretch>0</verstretch>
<property name="minimumSize"> </sizepolicy>
<size> </property>
<width>256</width> <property name="minimumSize">
<height>256</height> <size>
</size> <width>256</width>
</property> <height>256</height>
<property name="styleSheet"> </size>
<string notr="true">background-image: url(:/icons/qv2ray.ico);background-repeat: no-repeat;</string> </property>
</property> <property name="styleSheet">
<property name="frameShape"> <string notr="true">image: url(:/icons/qv2ray.ico);</string>
<enum>QFrame::StyledPanel</enum> </property>
</property> </widget>
<property name="frameShadow"> </item>
<enum>QFrame::Raised</enum> <item>
</property> <spacer name="verticalSpacer_2">
</widget> <property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item> </item>
<item> <item>
<widget class="QFrame" name="formFrame"> <widget class="QFrame" name="formFrame">
@ -1084,7 +1142,7 @@
<widget class="QLabel" name="label_20"> <widget class="QLabel" name="label_20">
<property name="font"> <property name="font">
<font> <font>
<pointsize>17</pointsize> <pointsize>24</pointsize>
</font> </font>
</property> </property>
<property name="text"> <property name="text">
@ -1096,6 +1154,11 @@
<layout class="QHBoxLayout" name="horizontalLayout_6"> <layout class="QHBoxLayout" name="horizontalLayout_6">
<item> <item>
<widget class="QLabel" name="label_24"> <widget class="QLabel" name="label_24">
<property name="font">
<font>
<pointsize>15</pointsize>
</font>
</property>
<property name="text"> <property name="text">
<string>Version:</string> <string>Version:</string>
</property> </property>
@ -1105,7 +1168,7 @@
<widget class="QLabel" name="qvVersion"> <widget class="QLabel" name="qvVersion">
<property name="font"> <property name="font">
<font> <font>
<pointsize>10</pointsize> <pointsize>15</pointsize>
</font> </font>
</property> </property>
</widget> </widget>
@ -1126,51 +1189,29 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_7"> <layout class="QGridLayout" name="gridLayout_5" columnstretch="0,1">
<item> <item row="0" column="1">
<widget class="QLabel" name="qvBuildTime">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_26"> <widget class="QLabel" name="label_26">
<property name="text"> <property name="text">
<string>Built Time</string> <string>Built Time</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item row="1" column="0">
<widget class="QLabel" name="qvBuildTime">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text">
<string>TIME</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_8">
<item>
<widget class="QLabel" name="label_27"> <widget class="QLabel" name="label_27">
<property name="text"> <property name="text">
<string>Official Repo:</string> <string>Official Repo</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item row="1" column="1">
<widget class="QLabel" name="label_28"> <widget class="QLabel" name="label_28">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred"> <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
@ -1178,11 +1219,6 @@
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="text"> <property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/lhy0403/Qv2ray&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#2980b9;&quot;&gt;https://github.com/lhy0403/Qv2ray&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string> <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/lhy0403/Qv2ray&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#2980b9;&quot;&gt;https://github.com/lhy0403/Qv2ray&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property> </property>
@ -1197,21 +1233,21 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout> </layout>
</item> </item>
<item>
<spacer name="verticalSpacer_6">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_9"> <layout class="QHBoxLayout" name="horizontalLayout_9">
<item> <item>
@ -1264,24 +1300,41 @@
</layout> </layout>
</item> </item>
<item> <item>
<spacer name="verticalSpacer1_2"> <widget class="QTextEdit" name="textEdit">
<property name="orientation"> <property name="lineWrapMode">
<enum>Qt::Vertical</enum> <enum>QTextEdit::NoWrap</enum>
</property> </property>
<property name="sizeHint" stdset="0"> <property name="readOnly">
<size> <bool>true</bool>
<width>20</width>
<height>40</height>
</size>
</property> </property>
</spacer> <property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Noto Sans'; font-size:10pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Noto Sans'; color:#d69545;&quot;&gt;This&lt;/span&gt;&lt;span style=&quot; font-family:'Noto Sans'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Noto Sans'; color:#d69545;&quot;&gt;program&lt;/span&gt;&lt;span style=&quot; font-family:'Noto Sans'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Noto Sans'; color:#d69545;&quot;&gt;comes&lt;/span&gt;&lt;span style=&quot; font-family:'Noto Sans'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Noto Sans'; color:#d69545;&quot;&gt;with&lt;/span&gt;&lt;span style=&quot; font-family:'Noto Sans'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Noto Sans'; color:#d69545;&quot;&gt;ABSOLUTELY&lt;/span&gt;&lt;span style=&quot; font-family:'Noto Sans'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Noto Sans'; color:#d69545;&quot;&gt;NO&lt;/span&gt;&lt;span style=&quot; font-family:'Noto Sans'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Noto Sans'; color:#d69545;&quot;&gt;WARRANTY.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;This&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;is&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;free&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;software,&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;and&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;you&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;are&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;welcome&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;to&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;redistribute&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;it under&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;certain&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;conditions.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Copyright&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(C)&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;2019&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Leroy.H.Y&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(@lhy0403):&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Qv2ray&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Current&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Developer&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Copyright&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(C)&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;2019&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Hork&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(@aliyuchang33):&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Hv2ray&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Initial&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Designs&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;gRPC&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;implementation&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Copyright&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(C)&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;2019&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;SOneWinstone&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(@SoneWinstone):&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Hv2ray/Qv2ray&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;HTTP&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Request&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Helper&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Qv2ray&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;ArtWork&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Done&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;By&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;ArielAxionL&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(@axionl)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;TheBadGateway&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(@thebadgateway):&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Qv2ray&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Russian&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Translations&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Riko&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(@rikakomoe):&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Qv2ray&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;patch&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;8a8c1a/PR115&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Hack';&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Libraries&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;that&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;have&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;been&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;used&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Qv2ray&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;are&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;listed&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;below&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(Sorted&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;by&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;date&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;added):&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Copyright&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(c)&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;2019&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;dridk&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(@dridk):&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;X2Struct&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(Apache)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Copyright&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(c)&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;2011&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;SCHUTZ&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Sacha&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(@dridk):&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;QJsonModel&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(MIT)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Copyright&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(c)&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;2019&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Nikolaos&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Ftylitakis&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(@ftylitak):&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;QZXing&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(Apache2)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Copyright&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(c)&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;2016&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;Singein&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(@Singein):&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;ScreenShot&lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#bec0c2;&quot;&gt; &lt;/span&gt;&lt;span style=&quot; font-family:'Hack'; color:#d69545;&quot;&gt;(MIT)&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item> </item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_10"> <layout class="QHBoxLayout" name="horizontalLayout_10">
<item> <item>
<widget class="QLabel" name="label_23"> <widget class="QLabel" name="label_23">
<property name="text"> <property name="text">
<string>Ingore Next Version</string> <string>Ignore Next Version</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -1336,9 +1389,7 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<resources> <resources/>
<include location="../../resources.qrc"/>
</resources>
<connections> <connections>
<connection> <connection>
<sender>buttonBox</sender> <sender>buttonBox</sender>

View File

@ -12,8 +12,13 @@ RouteEditor::RouteEditor(QJsonObject connection, QWidget *parent) :
root(connection), root(connection),
original(connection) original(connection)
{ {
// TODO Balancer will not be removed if an rule has been removed.
setupUi(this); setupUi(this);
addInboundBtn->setIcon(QICON_R("add.png"));
addOutboundBtn->setIcon(QICON_R("add.png"));
editInboundBtn->setIcon(QICON_R("edit.png"));
editOutboundBtn->setIcon(QICON_R("edit.png"));
delInboundBtn->setIcon(QICON_R("delete.png"));
delOutboundBtn->setIcon(QICON_R("delete.png"));
// //
inbounds = root["inbounds"].toArray(); inbounds = root["inbounds"].toArray();
outbounds = root["outbounds"].toArray(); outbounds = root["outbounds"].toArray();

View File

@ -67,33 +67,21 @@
<item> <item>
<widget class="QToolButton" name="addInboundBtn"> <widget class="QToolButton" name="addInboundBtn">
<property name="text"> <property name="text">
<string>...</string> <string>A</string>
</property>
<property name="icon">
<iconset resource="../../resources.qrc">
<normaloff>:/icons/add_connection_btn.png</normaloff>:/icons/add_connection_btn.png</iconset>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QToolButton" name="delInboundBtn"> <widget class="QToolButton" name="delInboundBtn">
<property name="text"> <property name="text">
<string>...</string> <string>D</string>
</property>
<property name="icon">
<iconset resource="../../resources.qrc">
<normaloff>:/icons/remove_connection_btn.png</normaloff>:/icons/remove_connection_btn.png</iconset>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QToolButton" name="editInboundBtn"> <widget class="QToolButton" name="editInboundBtn">
<property name="text"> <property name="text">
<string/> <string>E</string>
</property>
<property name="icon">
<iconset resource="../../resources.qrc">
<normaloff>:/icons/edit_connection_btn.png</normaloff>:/icons/edit_connection_btn.png</iconset>
</property> </property>
</widget> </widget>
</item> </item>
@ -218,33 +206,21 @@
<item> <item>
<widget class="QToolButton" name="addOutboundBtn"> <widget class="QToolButton" name="addOutboundBtn">
<property name="text"> <property name="text">
<string>...</string> <string>A</string>
</property>
<property name="icon">
<iconset resource="../../resources.qrc">
<normaloff>:/icons/add_connection_btn.png</normaloff>:/icons/add_connection_btn.png</iconset>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QToolButton" name="delOutboundBtn"> <widget class="QToolButton" name="delOutboundBtn">
<property name="text"> <property name="text">
<string>...</string> <string>D</string>
</property>
<property name="icon">
<iconset resource="../../resources.qrc">
<normaloff>:/icons/remove_connection_btn.png</normaloff>:/icons/remove_connection_btn.png</iconset>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QToolButton" name="editOutboundBtn"> <widget class="QToolButton" name="editOutboundBtn">
<property name="text"> <property name="text">
<string/> <string>E</string>
</property>
<property name="icon">
<iconset resource="../../resources.qrc">
<normaloff>:/icons/edit_connection_btn.png</normaloff>:/icons/edit_connection_btn.png</iconset>
</property> </property>
</widget> </widget>
</item> </item>
@ -441,7 +417,7 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="../../resources.qrc"> <iconset>
<normaloff>:/icons/add_connection_btn.png</normaloff>:/icons/add_connection_btn.png</iconset> <normaloff>:/icons/add_connection_btn.png</normaloff>:/icons/add_connection_btn.png</iconset>
</property> </property>
</widget> </widget>
@ -452,7 +428,7 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="../../resources.qrc"> <iconset>
<normaloff>:/icons/remove_connection_btn.png</normaloff>:/icons/remove_connection_btn.png</iconset> <normaloff>:/icons/remove_connection_btn.png</normaloff>:/icons/remove_connection_btn.png</iconset>
</property> </property>
</widget> </widget>
@ -669,7 +645,7 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="../../resources.qrc"> <iconset>
<normaloff>:/icons/remove_connection_btn.png</normaloff>:/icons/remove_connection_btn.png</iconset> <normaloff>:/icons/remove_connection_btn.png</normaloff>:/icons/remove_connection_btn.png</iconset>
</property> </property>
</widget> </widget>
@ -693,7 +669,7 @@
<string>...</string> <string>...</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="../../resources.qrc"> <iconset>
<normaloff>:/icons/add_connection_btn.png</normaloff>:/icons/add_connection_btn.png</iconset> <normaloff>:/icons/add_connection_btn.png</normaloff>:/icons/add_connection_btn.png</iconset>
</property> </property>
</widget> </widget>
@ -726,9 +702,7 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<resources> <resources/>
<include location="../../resources.qrc"/>
</resources>
<connections> <connections>
<connection> <connection>
<sender>buttonBox</sender> <sender>buttonBox</sender>

View File

@ -2,19 +2,45 @@
#include "QvUtils.hpp" #include "QvUtils.hpp"
#include <QMessageBox> #include <QMessageBox>
#include <QThread> #include <QThread>
#include <QStyleFactory>
#define QV2RAY_SCREENSHOT_DIM_RATIO 0.6f
ScreenShotWindow::ScreenShotWindow() : QDialog(), rubber(new QRubberBand(QRubberBand::Rectangle, this)) ScreenShotWindow::ScreenShotWindow() : QDialog(), rubber(new QRubberBand(QRubberBand::Rectangle, this))
{ {
setupUi(this); setupUi(this);
// Fusion prevents the KDE Plasma Breeze's "Move window when dragging in the empty area" issue
this->setStyle(QStyleFactory::create("Fusion"));
//
LOG(MODULE_IMPORT, "We currently only support the primary screen.")
QRect deskRect = qApp->screens().first()->geometry(); QRect deskRect = qApp->screens().first()->geometry();
width = deskRect.width();
height = deskRect.height();
// //
setMouseTracking(true); setMouseTracking(true);
resize(width, height); resize(deskRect.size());
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::WindowType::Dialog); setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
//
desktopImage = QGuiApplication::primaryScreen()->grabWindow(0);
int w = desktopImage.width();
int h = desktopImage.height();
QImage bg_grey(w, h, QImage::Format_RGB32);
//
int r, g, b;
auto _xdesktopImg = desktopImage.toImage();
for (int i = 0; i < w; i++) {
for (int j = 0; j < h; j++) {
r = static_cast<int>(qRed(_xdesktopImg.pixel(i, j)) * QV2RAY_SCREENSHOT_DIM_RATIO);
g = static_cast<int>(qGreen(_xdesktopImg.pixel(i, j)) * QV2RAY_SCREENSHOT_DIM_RATIO);
b = static_cast<int>(qBlue(_xdesktopImg.pixel(i, j)) * QV2RAY_SCREENSHOT_DIM_RATIO);
bg_grey.setPixel(i, j, qRgb(r, g, b));
}
}
this->showFullScreen();
auto p = this->palette();
p.setBrush(QPalette::Background, bg_grey);
setPalette(p);
// //
setBackground(width, height, 0.6f);
label->setAttribute(Qt::WA_TranslucentBackground); label->setAttribute(Qt::WA_TranslucentBackground);
startBtn->setAttribute(Qt::WA_TranslucentBackground); startBtn->setAttribute(Qt::WA_TranslucentBackground);
// //
@ -23,8 +49,8 @@ ScreenShotWindow::ScreenShotWindow() : QDialog(), rubber(new QRubberBand(QRubber
label->setPalette(pal); label->setPalette(pal);
startBtn->setPalette(pal); startBtn->setPalette(pal);
// //
label->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); label->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint);
startBtn->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); startBtn->setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint);
// //
label->hide(); label->hide();
startBtn->hide(); startBtn->hide();
@ -37,55 +63,61 @@ QImage ScreenShotWindow::DoScreenShot()
return resultImage; return resultImage;
} }
void ScreenShotWindow::pSize() //获取截图位置坐标 void ScreenShotWindow::pSize()
{ {
pw = abs(end.x() - origin.x()); imgW = abs(end.x() - origin.x());
ph = abs(end.y() - origin.y()); imgH = abs(end.y() - origin.y());
px = origin.x() < end.x() ? origin.x() : end.x(); imgX = origin.x() < end.x() ? origin.x() : end.x();
py = origin.y() < end.y() ? origin.y() : end.y(); imgY = origin.y() < end.y() ? origin.y() : end.y();
DEBUG("Capture Mouse Position", to_string(imgW) + " " + to_string(imgH) + " " + to_string(imgX) + " " + to_string(imgY))
fg->setPixmap(desktopImage.copy(imgX, imgY, imgW, imgH));
fg->setGeometry(imgX, imgY, imgW, imgH);
rubber->setGeometry(imgX, imgY, imgW, imgH);
} }
void ScreenShotWindow::keyPressEvent(QKeyEvent *e) void ScreenShotWindow::keyPressEvent(QKeyEvent *e)
{ {
if (e->key() == Qt::Key_Escape) { if (e->key() == Qt::Key_Escape) {
this->close(); reject();
} else if (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return) {
on_startBtn_clicked();
} }
} }
void ScreenShotWindow::mousePressEvent(QMouseEvent *e) //鼠标按下 void ScreenShotWindow::mousePressEvent(QMouseEvent *e)
{ {
origin = e->pos(); origin = e->pos();
LOG(MODULE_UI, "Start capturing mouse") LOG(MODULE_UI, "Start capturing mouse")
rubber->setGeometry(origin.x(), origin.y(), 0, 0); rubber->setGeometry(origin.x(), origin.y(), 0, 0);
rubber->show(); rubber->show();
label->show(); rubber->raise();
startBtn->show(); label->hide();
startBtn->hide();
} }
void ScreenShotWindow::mouseMoveEvent(QMouseEvent *e) //鼠标移动 void ScreenShotWindow::mouseMoveEvent(QMouseEvent *e)
{ {
if (e->buttons() & Qt::LeftButton) { if (e->buttons() & Qt::LeftButton) {
end = e->pos(); end = e->pos();
pSize(); pSize();
rubber->setGeometry(px, py, pw, ph);
// //
QString size = QString("%1x%2").arg(pw).arg(ph); label->setText(QString("%1x%2").arg(imgW).arg(imgH));
label->setText(size); //
// //
QRect labelRect(label->contentsRect()); QRect labelRect(label->contentsRect());
QRect btnRect(startBtn->contentsRect()); QRect btnRect(startBtn->contentsRect());
if (py > labelRect.height()) { if (imgY > labelRect.height()) {
label->move(QPoint(px, py - labelRect.height())); label->move(QPoint(imgX, imgY - labelRect.height()));
} else { } else {
label->move(QPoint(px, py)); label->move(QPoint(imgX, imgY));
} }
if (height - py - ph > btnRect.height()) { if (height() - imgY - imgH > btnRect.height()) {
startBtn->move(QPoint(px + pw - btnRect.width(), py + ph)); startBtn->move(QPoint(imgX + imgW - btnRect.width(), imgY + imgH));
} else { } else {
startBtn->move(QPoint(px + pw - btnRect.width(), py + ph - btnRect.height())); startBtn->move(QPoint(imgX + imgW - btnRect.width(), imgY + imgH - btnRect.height()));
} }
label->show(); label->show();
@ -94,41 +126,17 @@ void ScreenShotWindow::mouseMoveEvent(QMouseEvent *e) //鼠标移动
} }
void ScreenShotWindow::mouseReleaseEvent(QMouseEvent *e) //鼠标松开 void ScreenShotWindow::mouseReleaseEvent(QMouseEvent *e)
{ {
if (e->button() == Qt::RightButton) { if (e->button() == Qt::RightButton) {
close(); reject();
} }
} }
void ScreenShotWindow::setBackground(int w, int h, float n) //定格当前屏幕
{
QScreen *screen = QGuiApplication::primaryScreen();
bg = screen->grabWindow(0).toImage();
QImage bg_grey(w, h, QImage::Format_RGB32);
//
int r, g, b;
for (int i = 0; i < w; i++) {
for (int j = 0; j < h; j++) {
//
r = static_cast<int>(qRed(bg.pixel(i, j)) * n);
g = static_cast<int>(qGreen(bg.pixel(i, j)) * n);
b = static_cast<int>(qBlue(bg.pixel(i, j)) * n);
//
bg_grey.setPixel(i, j, qRgb(r, g, b));
}
}
QPalette palette;
palette.setBrush(this->backgroundRole(), QBrush(bg_grey));
this->setPalette(palette);
this->showFullScreen();
}
void ScreenShotWindow::on_startBtn_clicked() void ScreenShotWindow::on_startBtn_clicked()
{ {
resultImage = bg.copy(px, py, pw, ph); resultImage = desktopImage.copy(imgX, imgY, imgW, imgH).toImage();
rubber->hide(); rubber->hide();
close(); accept();
} }

View File

@ -25,23 +25,21 @@ class ScreenShotWindow : public QDialog, private Ui::ScreenShot
void mousePressEvent(QMouseEvent *e) override; void mousePressEvent(QMouseEvent *e) override;
void mouseReleaseEvent(QMouseEvent *e) override; void mouseReleaseEvent(QMouseEvent *e) override;
void keyPressEvent(QKeyEvent *e) override; void keyPressEvent(QKeyEvent *e) override;
void setBackground(int w, int h, float n);
private slots: private slots:
void on_startBtn_clicked(); void on_startBtn_clicked();
private: private:
QRubberBand *rubber;
// Desktop Image
QPixmap desktopImage;
QImage windowBg;
QImage resultImage; QImage resultImage;
// //
QRubberBand *rubber; QPoint origin;
// QPoint end;
QPoint origin;//鼠标起始位置 int imgW, imgH, imgX, imgY;
QPoint end;//鼠标结束位置
QImage bg;//存贮当前桌面截图
int width, height;
int pw, ph, px, py;
void pSize(); void pSize();
}; };

View File

@ -32,14 +32,14 @@
</rect> </rect>
</property> </property>
<property name="text"> <property name="text">
<string>TextLabel</string> <string>Size</string>
</property> </property>
</widget> </widget>
<widget class="QPushButton" name="startBtn"> <widget class="QPushButton" name="startBtn">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>20</x> <x>20</x>
<y>40</y> <y>60</y>
<width>80</width> <width>80</width>
<height>26</height> <height>26</height>
</rect> </rect>
@ -48,6 +48,19 @@
<string>Screen Shot</string> <string>Screen Shot</string>
</property> </property>
</widget> </widget>
<widget class="QLabel" name="fg">
<property name="geometry">
<rect>
<x>30</x>
<y>140</y>
<width>58</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>FG</string>
</property>
</widget>
</widget> </widget>
<layoutdefault spacing="6" margin="11"/> <layoutdefault spacing="6" margin="11"/>
<resources/> <resources/>

View File

@ -1,8 +1,7 @@
#ifndef QVNETSPEEDBARJSON_H #ifndef QVNETSPEEDBARJSON_H
#define QVNETSPEEDBARJSON_H #define QVNETSPEEDBARJSON_H
#include "x2struct/x2struct.hpp" #include "Qv2rayBase.hpp"
#include <QtGui>
// //
// For Windows // For Windows
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
@ -58,40 +57,6 @@ namespace Qv2ray
} }
#endif #endif
struct QvBarLine {
std::string Family;
bool Bold;
bool Italic;
int ColorA;
int ColorR;
int ColorG;
int ColorB;
int ContentType;
double Size;
std::string Message;
QvBarLine()
: Family("Consolas")
, Bold(true)
, Italic(false)
, ColorA(255), ColorR(255), ColorG(255), ColorB(255)
, ContentType(0)
, Size(9),
Message() { }
XTOSTRUCT(O(Bold, Italic, ColorA, ColorR, ColorG, ColorB, Size, Family, Message, ContentType))
};
struct QvBarPage {
int OffsetYpx;
std::vector<QvBarLine> Lines;
XTOSTRUCT(O(OffsetYpx, Lines))
QvBarPage() : OffsetYpx(5) { }
};
struct QvNetSpeedBarConfig {
std::vector<QvBarPage> Pages;
XTOSTRUCT(O(Pages))
};
QString GetAnswerToRequest(const QString &pchRequest); QString GetAnswerToRequest(const QString &pchRequest);
} }

View File

@ -11,7 +11,7 @@ using namespace std;
#define XLOG(module, level, msg) LOG(module, level << msg) #define XLOG(module, level, msg) LOG(module, level << msg)
#ifdef QT_DEBUG #ifdef QT_DEBUG
#define DEBUG(module, msg) LOG(module, msg) #define DEBUG(module, msg) LOG("[DEBUG] - " module, msg)
#else #else
#define DEBUG(module, msg) #define DEBUG(module, msg)
#endif #endif

File diff suppressed because it is too large Load Diff