Compare commits

..
Author SHA1 Message Date
gfdgd-xi 13708434c9 测试demo 2024-01-29 19:19:36 +08:00
3025613752@qq.com 67e8e18237 初步 2024-01-29 09:12:31 +08:00
3025613752@qq.com 58f2d5229a 创建分支 2024-01-29 09:03:05 +08:00
24 changed files with 36 additions and 740 deletions
+3 -73
View File
@@ -1,73 +1,3 @@
# This file is used to ignore files which are generated *.user*
# ---------------------------------------------------------------------------- .qmake.stash
__pycache__
*~
*.autosave
*.a
*.core
*.moc
*.o
*.obj
*.orig
*.rej
*.so
*.so.*
*_pch.h.cpp
*_resource.rc
*.qm
.#*
*.*#
core
!core/
tags
.DS_Store
.directory
*.debug
Makefile*
*.prl
*.app
moc_*.cpp
ui_*.h
qrc_*.cpp
Thumbs.db
*.res
*.rc
/.qmake.cache
/.qmake.stash
# qtcreator generated files
*.pro.user*
# xemacs temporary files
*.flc
# Vim temporary files
.*.swp
# Visual Studio generated files
*.ib_pdb_index
*.idb
*.ilk
*.pdb
*.sln
*.suo
*.vcproj
*vcproj.*.*.user
*.ncb
*.sdf
*.opensdf
*.vcxproj
*vcxproj.*
# MinGW generated files
*.Debug
*.Release
# Python byte code
*.pyc
# Binaries
# --------
*.dll
*.exe
+22
View File
@@ -0,0 +1,22 @@
import time
import socket
import traceback
while True:
try:
s = socket.socket()
s.connect(("127.0.0.1", 8080))
info = "Apple".encode("utf-8")
len = s.send(info)
ret = s.recv(1024)
if info == ret:
print("success")
break
except:
traceback.print_exc()
time.sleep(0.1)
exit()
while True:
if not ret:
s.close()
-15
View File
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="64px" height="64px" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch -->
<title>dialog-apply</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="dialog-apply">
<image id="Bitmap" x="1" y="2" width="62" height="62" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAYAAABzwahEAAAABGdBTUEAA1teXP8meAAABQhJREFUaAXlmol2ozAMANu973v//yv3ProammEVAwWT5hVcvacaHFvWSLKhaS8vziuXhfnyvvj44qroKO+Lj9ffzjlSaznb47pU7DnGVrjccp2VeYhjru9O+OniJ5jopmqHVn0Q1ygixN+4RhEhnOt45zPG8c53ji1jVomLrpock5yvszj/8GDsT7S/Q9c6ic1HodkegTAIcbnadu84RmqkBMY5FMd+Hdpobk0I6ONQWgKKnhQAAcLOYnGOpWlGfoYFy3ixscqBrPnkMAd4twJdVZWl0wdbsw3QKPMsQzKMVi0c49cIa7h9qACTUG2rBjxDsyhOfD+01QufOMEAEHwUqQr8EnCBzTTQlBmlfdeCH+5/wIWfrYQacCILNMCU9lbEg869L/yN/s2Bm21LitJmoa0Jhxx+LYa/CVxoxmCQTG8ROtzqxFLHV68PHw2bKfAMTXlzkm6pvIck1z1kHt89fCfLfgyciQifaeBH17OPH1QlvqNmXqaegBNxTOhnIi37em+Cz5lh4D9wWXKJs1fI9LnfxvL6t3lNtp8e/B+U/FjGgecUZzB7e6/iGx4sN5Z6zjaD91jiZZJggIXKlq8bU2acDxnEAbHlR1fn/IIfcgjeTxHcaDCglWwLOZp1wRkEvPd7PdCEza0ssMHYiaDc0Em29/Cigr81AhNsA3CzTalv4beuGqglY2GCrc+6F4LzCLM0lhjcyxiZel5LXXAH7AWoxk9OeMH7w+w+gJPUSfAWnt1TVTDIONlGiMZ9AIf1Mu9xAjB4mWdUIwIbjF2iBYeNjpYPN9g6aGAF7zvobFwGGYfXQLTIfsTmjXu75czL1rEKTobp4LWuVYHNBPelTQfKl4util+cdvBk3Chw6rWecZ9aV5Y68HTyq1urAhuMfcYBFZxAGAz6WxG5JsF5ZX3eCm3igAm2I3Cybcb58FloawJTBh/scT7kgGvpkJMngx/tZ7LOl/Do69BWBBa5YOwkH2SWO1/MURotnPAwwAJTv7/jerSkebWjPJjwLXTP8j6cB5i/AfonpS7rOeMA0sle4FtJ3nT8D4O43J3gOwz+Q0Nf5pBMHWJknaDwGPgaukf5EE6TZcCPsg1MmXH6iIwTCMA7Oncm+IzvGfoIYSrjDmLyi1CCsZe/sLwMX1+F8jezXOazpQ7s0aCDIY3E7WaFfwTgQAPaA43DbSBTGQdeIQjc8zzklB81FP13LTy6PocCDDjbVV/LRE4ebjGnEyaonAdvQreYeTINNL4Bzbbk6aTvcXksUxnPo4wWLZl/G0okWWQLwn7+GGqmZ6Fxegk444ycpUPZM5fo3qWwn6lCtqCZHjy6xhxcAu5+z/AEgGc8J6gRHrN/rj5Lm5cU3jOEtrxn110Cno2U8Myn9Hm9pfStiLg8i/Am9imUNcksmfb0FhofZ6UWHIMlPLCcqLw00BKARYvHuKWCXcqatzHWI8Moa3l661d0zYtlPD/y/wjncMqjOIVSdvn9+EvcU4ZkYo2QFF6e2E7YZUsBKqzAVllVsIUIe1XiPFoUJ1ECQDmq9OEgzuo49wRDhwmecw0cLbYYxzzVuWVZV0GHvc5p2rVSBiBD5GBwbYUYLOdaorQEAwUsQ3rNZ46Py/VbysUxcopoJ0MJWraOyesJI3jZ+jktYnt9t+KnDq+YOjol2xMwt0xyjK0QueU6q4s5xvvVrYuvNjAzsbRf3pfTS7Dyvhy/+v4fra1pWYxQ1MYAAAAASUVORK5CYII="></image>
<ellipse id="Oval" fill="#59D2C6" cx="32" cy="32" rx="28" ry="28"></ellipse>
<polyline id="Path-5" stroke="#FFFFFF" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" points="44 22 44 34 27 34"></polyline>
<path d="M15.5810585,35.2161988 C14.707864,34.5445108 14.7174539,33.4481124 15.5810585,32.7838012 L25.4189415,25.2161988 C26.292136,24.5445108 27,24.8982124 27,25.9907951 L27,42.0092049 C27,43.1086907 26.2825461,43.4481124 25.4189415,42.7838012 L15.5810585,35.2161988 Z" id="Triangle" fill="#FFFFFF"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

-15
View File
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="64px" height="64px" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch -->
<title>dialog-cancel</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="dialog-cancel">
<image id="Bitmap" x="1" y="2" width="62" height="62" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAYAAABzwahEAAAABGdBTUEAA1teXP8meAAABQhJREFUaAXlmol2ozAMANu973v//yv3ProammEVAwWT5hVcvacaHFvWSLKhaS8vziuXhfnyvvj44qroKO+Lj9ffzjlSaznb47pU7DnGVrjccp2VeYhjru9O+OniJ5jopmqHVn0Q1ygixN+4RhEhnOt45zPG8c53ji1jVomLrpock5yvszj/8GDsT7S/Q9c6ic1HodkegTAIcbnadu84RmqkBMY5FMd+Hdpobk0I6ONQWgKKnhQAAcLOYnGOpWlGfoYFy3ixscqBrPnkMAd4twJdVZWl0wdbsw3QKPMsQzKMVi0c49cIa7h9qACTUG2rBjxDsyhOfD+01QufOMEAEHwUqQr8EnCBzTTQlBmlfdeCH+5/wIWfrYQacCILNMCU9lbEg869L/yN/s2Bm21LitJmoa0Jhxx+LYa/CVxoxmCQTG8ROtzqxFLHV68PHw2bKfAMTXlzkm6pvIck1z1kHt89fCfLfgyciQifaeBH17OPH1QlvqNmXqaegBNxTOhnIi37em+Cz5lh4D9wWXKJs1fI9LnfxvL6t3lNtp8e/B+U/FjGgecUZzB7e6/iGx4sN5Z6zjaD91jiZZJggIXKlq8bU2acDxnEAbHlR1fn/IIfcgjeTxHcaDCglWwLOZp1wRkEvPd7PdCEza0ssMHYiaDc0Em29/Cigr81AhNsA3CzTalv4beuGqglY2GCrc+6F4LzCLM0lhjcyxiZel5LXXAH7AWoxk9OeMH7w+w+gJPUSfAWnt1TVTDIONlGiMZ9AIf1Mu9xAjB4mWdUIwIbjF2iBYeNjpYPN9g6aGAF7zvobFwGGYfXQLTIfsTmjXu75czL1rEKTobp4LWuVYHNBPelTQfKl4util+cdvBk3Chw6rWecZ9aV5Y68HTyq1urAhuMfcYBFZxAGAz6WxG5JsF5ZX3eCm3igAm2I3Cybcb58FloawJTBh/scT7kgGvpkJMngx/tZ7LOl/Do69BWBBa5YOwkH2SWO1/MURotnPAwwAJTv7/jerSkebWjPJjwLXTP8j6cB5i/AfonpS7rOeMA0sle4FtJ3nT8D4O43J3gOwz+Q0Nf5pBMHWJknaDwGPgaukf5EE6TZcCPsg1MmXH6iIwTCMA7Oncm+IzvGfoIYSrjDmLyi1CCsZe/sLwMX1+F8jezXOazpQ7s0aCDIY3E7WaFfwTgQAPaA43DbSBTGQdeIQjc8zzklB81FP13LTy6PocCDDjbVV/LRE4ebjGnEyaonAdvQreYeTINNL4Bzbbk6aTvcXksUxnPo4wWLZl/G0okWWQLwn7+GGqmZ6Fxegk444ycpUPZM5fo3qWwn6lCtqCZHjy6xhxcAu5+z/AEgGc8J6gRHrN/rj5Lm5cU3jOEtrxn110Cno2U8Myn9Hm9pfStiLg8i/Am9imUNcksmfb0FhofZ6UWHIMlPLCcqLw00BKARYvHuKWCXcqatzHWI8Moa3l661d0zYtlPD/y/wjncMqjOIVSdvn9+EvcU4ZkYo2QFF6e2E7YZUsBKqzAVllVsIUIe1XiPFoUJ1ECQDmq9OEgzuo49wRDhwmecw0cLbYYxzzVuWVZV0GHvc5p2rVSBiBD5GBwbYUYLOdaorQEAwUsQ3rNZ46Py/VbysUxcopoJ0MJWraOyesJI3jZ+jktYnt9t+KnDq+YOjol2xMwt0xyjK0QueU6q4s5xvvVrYuvNjAzsbRf3pfTS7Dyvhy/+v4fra1pWYxQ1MYAAAAASUVORK5CYII="></image>
<ellipse id="Oval" fill="#E04141" cx="32" cy="32" rx="28" ry="28"></ellipse>
<path d="M42.4871169,40.0184985 C43.1684837,40.6998652 43.1732122,41.7998504 42.4870678,42.4859947 C41.805674,43.1673886 40.7030688,43.1695411 40.0195716,42.4860438 L21.5128831,23.9793553 C20.8315163,23.2979886 20.8267878,22.1980034 21.5129322,21.5118591 C22.194326,20.8304652 23.2969312,20.8283127 23.9804284,21.5118099 L42.4871169,40.0184985 Z" id="Rectangle" fill="#FFFFFF"></path>
<circle id="Oval-3" stroke="#FFFFFF" stroke-width="3" cx="32" cy="32" r="14.5"></circle>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

-15
View File
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="64px" height="64px" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch -->
<title>dialog-error</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="dialog-error">
<image id="Bitmap" x="1" y="2" width="62" height="62" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAYAAABzwahEAAAABGdBTUEAA1teXP8meAAABQhJREFUaAXlmol2ozAMANu973v//yv3ProammEVAwWT5hVcvacaHFvWSLKhaS8vziuXhfnyvvj44qroKO+Lj9ffzjlSaznb47pU7DnGVrjccp2VeYhjru9O+OniJ5jopmqHVn0Q1ygixN+4RhEhnOt45zPG8c53ji1jVomLrpock5yvszj/8GDsT7S/Q9c6ic1HodkegTAIcbnadu84RmqkBMY5FMd+Hdpobk0I6ONQWgKKnhQAAcLOYnGOpWlGfoYFy3ixscqBrPnkMAd4twJdVZWl0wdbsw3QKPMsQzKMVi0c49cIa7h9qACTUG2rBjxDsyhOfD+01QufOMEAEHwUqQr8EnCBzTTQlBmlfdeCH+5/wIWfrYQacCILNMCU9lbEg869L/yN/s2Bm21LitJmoa0Jhxx+LYa/CVxoxmCQTG8ROtzqxFLHV68PHw2bKfAMTXlzkm6pvIck1z1kHt89fCfLfgyciQifaeBH17OPH1QlvqNmXqaegBNxTOhnIi37em+Cz5lh4D9wWXKJs1fI9LnfxvL6t3lNtp8e/B+U/FjGgecUZzB7e6/iGx4sN5Z6zjaD91jiZZJggIXKlq8bU2acDxnEAbHlR1fn/IIfcgjeTxHcaDCglWwLOZp1wRkEvPd7PdCEza0ssMHYiaDc0Em29/Cigr81AhNsA3CzTalv4beuGqglY2GCrc+6F4LzCLM0lhjcyxiZel5LXXAH7AWoxk9OeMH7w+w+gJPUSfAWnt1TVTDIONlGiMZ9AIf1Mu9xAjB4mWdUIwIbjF2iBYeNjpYPN9g6aGAF7zvobFwGGYfXQLTIfsTmjXu75czL1rEKTobp4LWuVYHNBPelTQfKl4util+cdvBk3Chw6rWecZ9aV5Y68HTyq1urAhuMfcYBFZxAGAz6WxG5JsF5ZX3eCm3igAm2I3Cybcb58FloawJTBh/scT7kgGvpkJMngx/tZ7LOl/Do69BWBBa5YOwkH2SWO1/MURotnPAwwAJTv7/jerSkebWjPJjwLXTP8j6cB5i/AfonpS7rOeMA0sle4FtJ3nT8D4O43J3gOwz+Q0Nf5pBMHWJknaDwGPgaukf5EE6TZcCPsg1MmXH6iIwTCMA7Oncm+IzvGfoIYSrjDmLyi1CCsZe/sLwMX1+F8jezXOazpQ7s0aCDIY3E7WaFfwTgQAPaA43DbSBTGQdeIQjc8zzklB81FP13LTy6PocCDDjbVV/LRE4ebjGnEyaonAdvQreYeTINNL4Bzbbk6aTvcXksUxnPo4wWLZl/G0okWWQLwn7+GGqmZ6Fxegk444ycpUPZM5fo3qWwn6lCtqCZHjy6xhxcAu5+z/AEgGc8J6gRHrN/rj5Lm5cU3jOEtrxn110Cno2U8Myn9Hm9pfStiLg8i/Am9imUNcksmfb0FhofZ6UWHIMlPLCcqLw00BKARYvHuKWCXcqatzHWI8Moa3l661d0zYtlPD/y/wjncMqjOIVSdvn9+EvcU4ZkYo2QFF6e2E7YZUsBKqzAVllVsIUIe1XiPFoUJ1ECQDmq9OEgzuo49wRDhwmecw0cLbYYxzzVuWVZV0GHvc5p2rVSBiBD5GBwbYUYLOdaorQEAwUsQ3rNZ46Py/VbysUxcopoJ0MJWraOyesJI3jZ+jktYnt9t+KnDq+YOjol2xMwt0xyjK0QueU6q4s5xvvVrYuvNjAzsbRf3pfTS7Dyvhy/+v4fra1pWYxQ1MYAAAAASUVORK5CYII="></image>
<ellipse id="Oval" fill="#C51818" cx="32" cy="32" rx="28" ry="28"></ellipse>
<path d="M40.7494771,20.5594658 C41.4928588,19.8160841 42.6929596,19.8109252 43.4415538,20.5595194 C44.1849651,21.3029306 44.1873135,22.50589 43.4416074,23.2515961 L23.2505229,43.4426806 C22.5071412,44.1860623 21.3070404,44.1912212 20.5584462,43.442627 C19.8150349,42.6992158 19.8126865,41.4962564 20.5583926,40.7505503 L40.7494771,20.5594658 Z" id="Rectangle" fill="#FFFFFF"></path>
<path d="M43.4405842,40.7476216 C44.1838994,41.4909368 44.1890579,42.6909303 43.4405307,43.4394576 C42.6971859,44.1828023 41.4943341,44.1851506 40.7486947,43.4395111 L20.5594158,23.2502322 C19.8161006,22.506917 19.8109421,21.3069235 20.5594693,20.5583962 C21.3028141,19.8150515 22.5056659,19.8127032 23.2513053,20.5583427 L43.4405842,40.7476216 Z" id="Rectangle" fill="#FFFFFF"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

-15
View File
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="64px" height="64px" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch -->
<title>dialog-information</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="dialog-information">
<image id="Bitmap" x="1" y="2" width="62" height="62" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAYAAABzwahEAAAABGdBTUEAA1teXP8meAAABQhJREFUaAXlmol2ozAMANu973v//yv3ProammEVAwWT5hVcvacaHFvWSLKhaS8vziuXhfnyvvj44qroKO+Lj9ffzjlSaznb47pU7DnGVrjccp2VeYhjru9O+OniJ5jopmqHVn0Q1ygixN+4RhEhnOt45zPG8c53ji1jVomLrpock5yvszj/8GDsT7S/Q9c6ic1HodkegTAIcbnadu84RmqkBMY5FMd+Hdpobk0I6ONQWgKKnhQAAcLOYnGOpWlGfoYFy3ixscqBrPnkMAd4twJdVZWl0wdbsw3QKPMsQzKMVi0c49cIa7h9qACTUG2rBjxDsyhOfD+01QufOMEAEHwUqQr8EnCBzTTQlBmlfdeCH+5/wIWfrYQacCILNMCU9lbEg869L/yN/s2Bm21LitJmoa0Jhxx+LYa/CVxoxmCQTG8ROtzqxFLHV68PHw2bKfAMTXlzkm6pvIck1z1kHt89fCfLfgyciQifaeBH17OPH1QlvqNmXqaegBNxTOhnIi37em+Cz5lh4D9wWXKJs1fI9LnfxvL6t3lNtp8e/B+U/FjGgecUZzB7e6/iGx4sN5Z6zjaD91jiZZJggIXKlq8bU2acDxnEAbHlR1fn/IIfcgjeTxHcaDCglWwLOZp1wRkEvPd7PdCEza0ssMHYiaDc0Em29/Cigr81AhNsA3CzTalv4beuGqglY2GCrc+6F4LzCLM0lhjcyxiZel5LXXAH7AWoxk9OeMH7w+w+gJPUSfAWnt1TVTDIONlGiMZ9AIf1Mu9xAjB4mWdUIwIbjF2iBYeNjpYPN9g6aGAF7zvobFwGGYfXQLTIfsTmjXu75czL1rEKTobp4LWuVYHNBPelTQfKl4util+cdvBk3Chw6rWecZ9aV5Y68HTyq1urAhuMfcYBFZxAGAz6WxG5JsF5ZX3eCm3igAm2I3Cybcb58FloawJTBh/scT7kgGvpkJMngx/tZ7LOl/Do69BWBBa5YOwkH2SWO1/MURotnPAwwAJTv7/jerSkebWjPJjwLXTP8j6cB5i/AfonpS7rOeMA0sle4FtJ3nT8D4O43J3gOwz+Q0Nf5pBMHWJknaDwGPgaukf5EE6TZcCPsg1MmXH6iIwTCMA7Oncm+IzvGfoIYSrjDmLyi1CCsZe/sLwMX1+F8jezXOazpQ7s0aCDIY3E7WaFfwTgQAPaA43DbSBTGQdeIQjc8zzklB81FP13LTy6PocCDDjbVV/LRE4ebjGnEyaonAdvQreYeTINNL4Bzbbk6aTvcXksUxnPo4wWLZl/G0okWWQLwn7+GGqmZ6Fxegk444ycpUPZM5fo3qWwn6lCtqCZHjy6xhxcAu5+z/AEgGc8J6gRHrN/rj5Lm5cU3jOEtrxn110Cno2U8Myn9Hm9pfStiLg8i/Am9imUNcksmfb0FhofZ6UWHIMlPLCcqLw00BKARYvHuKWCXcqatzHWI8Moa3l661d0zYtlPD/y/wjncMqjOIVSdvn9+EvcU4ZkYo2QFF6e2E7YZUsBKqzAVllVsIUIe1XiPFoUJ1ECQDmq9OEgzuo49wRDhwmecw0cLbYYxzzVuWVZV0GHvc5p2rVSBiBD5GBwbYUYLOdaorQEAwUsQ3rNZ46Py/VbysUxcopoJ0MJWraOyesJI3jZ+jktYnt9t+KnDq+YOjol2xMwt0xyjK0QueU6q4s5xvvVrYuvNjAzsbRf3pfTS7Dyvhy/+v4fra1pWYxQ1MYAAAAASUVORK5CYII="></image>
<ellipse id="Oval" fill="#988AD3" cx="32" cy="32" rx="28" ry="28"></ellipse>
<path d="M39,41.5 C39.1075261,41.9690455 38.3560093,42.5622173 36.5,44 C34.0039875,45.9532142 32.633344,46.5 30.5,46.5 C28.9426589,46.5 27.936,45.3421565 27.936,44.0264496 C27.936,41 31,31.0055951 31,29.5 C31,27.6918926 26,32 25.5,30.5 C25.2400137,29.720041 25.199988,29.4927164 27.6,28.0956256 C30.000012,26.6985349 31.9146595,26 33.344,26 C34.944008,26 35.744,26.7053168 35.744,28.1159715 C35.744,31 31.628,43 33.344,43 C34.544,43.9994914 38.5,39.3189217 39,41.5 Z" id="i" fill="#FFFFFF"></path>
<circle id="Oval-2" fill="#FFFFFF" cx="33" cy="20" r="3"></circle>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.0 KiB

-14
View File
@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="64px" height="64px" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch -->
<title>dialog-ok</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="dialog-ok">
<image id="Bitmap" x="1" y="2" width="62" height="62" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAYAAABzwahEAAAABGdBTUEAA1teXP8meAAABQhJREFUaAXlmol2ozAMANu973v//yv3ProammEVAwWT5hVcvacaHFvWSLKhaS8vziuXhfnyvvj44qroKO+Lj9ffzjlSaznb47pU7DnGVrjccp2VeYhjru9O+OniJ5jopmqHVn0Q1ygixN+4RhEhnOt45zPG8c53ji1jVomLrpock5yvszj/8GDsT7S/Q9c6ic1HodkegTAIcbnadu84RmqkBMY5FMd+Hdpobk0I6ONQWgKKnhQAAcLOYnGOpWlGfoYFy3ixscqBrPnkMAd4twJdVZWl0wdbsw3QKPMsQzKMVi0c49cIa7h9qACTUG2rBjxDsyhOfD+01QufOMEAEHwUqQr8EnCBzTTQlBmlfdeCH+5/wIWfrYQacCILNMCU9lbEg869L/yN/s2Bm21LitJmoa0Jhxx+LYa/CVxoxmCQTG8ROtzqxFLHV68PHw2bKfAMTXlzkm6pvIck1z1kHt89fCfLfgyciQifaeBH17OPH1QlvqNmXqaegBNxTOhnIi37em+Cz5lh4D9wWXKJs1fI9LnfxvL6t3lNtp8e/B+U/FjGgecUZzB7e6/iGx4sN5Z6zjaD91jiZZJggIXKlq8bU2acDxnEAbHlR1fn/IIfcgjeTxHcaDCglWwLOZp1wRkEvPd7PdCEza0ssMHYiaDc0Em29/Cigr81AhNsA3CzTalv4beuGqglY2GCrc+6F4LzCLM0lhjcyxiZel5LXXAH7AWoxk9OeMH7w+w+gJPUSfAWnt1TVTDIONlGiMZ9AIf1Mu9xAjB4mWdUIwIbjF2iBYeNjpYPN9g6aGAF7zvobFwGGYfXQLTIfsTmjXu75czL1rEKTobp4LWuVYHNBPelTQfKl4util+cdvBk3Chw6rWecZ9aV5Y68HTyq1urAhuMfcYBFZxAGAz6WxG5JsF5ZX3eCm3igAm2I3Cybcb58FloawJTBh/scT7kgGvpkJMngx/tZ7LOl/Do69BWBBa5YOwkH2SWO1/MURotnPAwwAJTv7/jerSkebWjPJjwLXTP8j6cB5i/AfonpS7rOeMA0sle4FtJ3nT8D4O43J3gOwz+Q0Nf5pBMHWJknaDwGPgaukf5EE6TZcCPsg1MmXH6iIwTCMA7Oncm+IzvGfoIYSrjDmLyi1CCsZe/sLwMX1+F8jezXOazpQ7s0aCDIY3E7WaFfwTgQAPaA43DbSBTGQdeIQjc8zzklB81FP13LTy6PocCDDjbVV/LRE4ebjGnEyaonAdvQreYeTINNL4Bzbbk6aTvcXksUxnPo4wWLZl/G0okWWQLwn7+GGqmZ6Fxegk444ycpUPZM5fo3qWwn6lCtqCZHjy6xhxcAu5+z/AEgGc8J6gRHrN/rj5Lm5cU3jOEtrxn110Cno2U8Myn9Hm9pfStiLg8i/Am9imUNcksmfb0FhofZ6UWHIMlPLCcqLw00BKARYvHuKWCXcqatzHWI8Moa3l661d0zYtlPD/y/wjncMqjOIVSdvn9+EvcU4ZkYo2QFF6e2E7YZUsBKqzAVllVsIUIe1XiPFoUJ1ECQDmq9OEgzuo49wRDhwmecw0cLbYYxzzVuWVZV0GHvc5p2rVSBiBD5GBwbYUYLOdaorQEAwUsQ3rNZ46Py/VbysUxcopoJ0MJWraOyesJI3jZ+jktYnt9t+KnDq+YOjol2xMwt0xyjK0QueU6q4s5xvvVrYuvNjAzsbRf3pfTS7Dyvhy/+v4fra1pWYxQ1MYAAAAASUVORK5CYII="></image>
<ellipse id="Oval" fill="#7ED321" cx="32" cy="32" rx="28" ry="28"></ellipse>
<polyline id="Path-4" stroke="#FFFFFF" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" points="18 32 27.5104121 42.0104121 46 23"></polyline>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

-15
View File
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="64px" height="64px" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch -->
<title>dialog-question</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="dialog-question">
<image id="Bitmap" x="1" y="2" width="62" height="62" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAYAAABzwahEAAAABGdBTUEAA1teXP8meAAABQhJREFUaAXlmol2ozAMANu973v//yv3ProammEVAwWT5hVcvacaHFvWSLKhaS8vziuXhfnyvvj44qroKO+Lj9ffzjlSaznb47pU7DnGVrjccp2VeYhjru9O+OniJ5jopmqHVn0Q1ygixN+4RhEhnOt45zPG8c53ji1jVomLrpock5yvszj/8GDsT7S/Q9c6ic1HodkegTAIcbnadu84RmqkBMY5FMd+Hdpobk0I6ONQWgKKnhQAAcLOYnGOpWlGfoYFy3ixscqBrPnkMAd4twJdVZWl0wdbsw3QKPMsQzKMVi0c49cIa7h9qACTUG2rBjxDsyhOfD+01QufOMEAEHwUqQr8EnCBzTTQlBmlfdeCH+5/wIWfrYQacCILNMCU9lbEg869L/yN/s2Bm21LitJmoa0Jhxx+LYa/CVxoxmCQTG8ROtzqxFLHV68PHw2bKfAMTXlzkm6pvIck1z1kHt89fCfLfgyciQifaeBH17OPH1QlvqNmXqaegBNxTOhnIi37em+Cz5lh4D9wWXKJs1fI9LnfxvL6t3lNtp8e/B+U/FjGgecUZzB7e6/iGx4sN5Z6zjaD91jiZZJggIXKlq8bU2acDxnEAbHlR1fn/IIfcgjeTxHcaDCglWwLOZp1wRkEvPd7PdCEza0ssMHYiaDc0Em29/Cigr81AhNsA3CzTalv4beuGqglY2GCrc+6F4LzCLM0lhjcyxiZel5LXXAH7AWoxk9OeMH7w+w+gJPUSfAWnt1TVTDIONlGiMZ9AIf1Mu9xAjB4mWdUIwIbjF2iBYeNjpYPN9g6aGAF7zvobFwGGYfXQLTIfsTmjXu75czL1rEKTobp4LWuVYHNBPelTQfKl4util+cdvBk3Chw6rWecZ9aV5Y68HTyq1urAhuMfcYBFZxAGAz6WxG5JsF5ZX3eCm3igAm2I3Cybcb58FloawJTBh/scT7kgGvpkJMngx/tZ7LOl/Do69BWBBa5YOwkH2SWO1/MURotnPAwwAJTv7/jerSkebWjPJjwLXTP8j6cB5i/AfonpS7rOeMA0sle4FtJ3nT8D4O43J3gOwz+Q0Nf5pBMHWJknaDwGPgaukf5EE6TZcCPsg1MmXH6iIwTCMA7Oncm+IzvGfoIYSrjDmLyi1CCsZe/sLwMX1+F8jezXOazpQ7s0aCDIY3E7WaFfwTgQAPaA43DbSBTGQdeIQjc8zzklB81FP13LTy6PocCDDjbVV/LRE4ebjGnEyaonAdvQreYeTINNL4Bzbbk6aTvcXksUxnPo4wWLZl/G0okWWQLwn7+GGqmZ6Fxegk444ycpUPZM5fo3qWwn6lCtqCZHjy6xhxcAu5+z/AEgGc8J6gRHrN/rj5Lm5cU3jOEtrxn110Cno2U8Myn9Hm9pfStiLg8i/Am9imUNcksmfb0FhofZ6UWHIMlPLCcqLw00BKARYvHuKWCXcqatzHWI8Moa3l661d0zYtlPD/y/wjncMqjOIVSdvn9+EvcU4ZkYo2QFF6e2E7YZUsBKqzAVllVsIUIe1XiPFoUJ1ECQDmq9OEgzuo49wRDhwmecw0cLbYYxzzVuWVZV0GHvc5p2rVSBiBD5GBwbYUYLOdaorQEAwUsQ3rNZ46Py/VbysUxcopoJ0MJWraOyesJI3jZ+jktYnt9t+KnDq+YOjol2xMwt0xyjK0QueU6q4s5xvvVrYuvNjAzsbRf3pfTS7Dyvhy/+v4fra1pWYxQ1MYAAAAASUVORK5CYII="></image>
<ellipse id="Oval" fill="#11B5FF" cx="32" cy="32" rx="28" ry="28"></ellipse>
<path d="M32,40 C30.3153053,40 29,41.3153053 29,43 C29,44.6605881 30.3264079,46 32,46 C33.6735921,46 35,44.6605881 35,43 C35,41.3153053 33.6846947,40 32,40 Z" id="Path" fill="#FFFFFF"></path>
<path d="M32.468,16.96 C27.4238833,16.96 23.58,20.0244775 23.58,24.1702907 C23.58,26.1861804 25.003148,27.77337 27.032,27.77337 C28.9057249,27.77337 30.124,26.4889526 30.124,24.7281068 C30.124,23.0803988 29.3642533,22.3265653 27.8296148,21.9566688 C27.4706135,21.8638914 27.316,21.7167857 27.316,21.4183975 C27.316,20.1849102 29.1314221,18.7367478 31.64,18.7367478 C34.4418576,18.7367478 36.072,20.4206734 36.072,23.4265357 C36.072,25.5483621 35.3753311,26.8992916 33.4522353,29.2779172 C33.2518819,29.5253283 30,32.5 30,35 C30,35.916658 30,37 31,37.5 C32,38 32.1923697,36.5680604 32.6329793,35.0204247 C33.0706287,34.087734 34.2408493,32.7804809 37.3328167,31.0068188 C40.882884,28.675952 41.968,26.858853 41.968,23.9843519 C41.968,19.7046154 38.1785728,16.96 32.468,16.96 Z" id="Path" fill="#FFFFFF"></path>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

-15
View File
@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="64px" height="64px" viewBox="0 0 64 64" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 41.2 (35397) - http://www.bohemiancoding.com/sketch -->
<title>dialog-warning</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="dialog-warning">
<image id="Bitmap" x="1" y="2" width="62" height="62" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD4AAAA+CAYAAABzwahEAAAABGdBTUEAA1teXP8meAAABQhJREFUaAXlmol2ozAMANu973v//yv3ProammEVAwWT5hVcvacaHFvWSLKhaS8vziuXhfnyvvj44qroKO+Lj9ffzjlSaznb47pU7DnGVrjccp2VeYhjru9O+OniJ5jopmqHVn0Q1ygixN+4RhEhnOt45zPG8c53ji1jVomLrpock5yvszj/8GDsT7S/Q9c6ic1HodkegTAIcbnadu84RmqkBMY5FMd+Hdpobk0I6ONQWgKKnhQAAcLOYnGOpWlGfoYFy3ixscqBrPnkMAd4twJdVZWl0wdbsw3QKPMsQzKMVi0c49cIa7h9qACTUG2rBjxDsyhOfD+01QufOMEAEHwUqQr8EnCBzTTQlBmlfdeCH+5/wIWfrYQacCILNMCU9lbEg869L/yN/s2Bm21LitJmoa0Jhxx+LYa/CVxoxmCQTG8ROtzqxFLHV68PHw2bKfAMTXlzkm6pvIck1z1kHt89fCfLfgyciQifaeBH17OPH1QlvqNmXqaegBNxTOhnIi37em+Cz5lh4D9wWXKJs1fI9LnfxvL6t3lNtp8e/B+U/FjGgecUZzB7e6/iGx4sN5Z6zjaD91jiZZJggIXKlq8bU2acDxnEAbHlR1fn/IIfcgjeTxHcaDCglWwLOZp1wRkEvPd7PdCEza0ssMHYiaDc0Em29/Cigr81AhNsA3CzTalv4beuGqglY2GCrc+6F4LzCLM0lhjcyxiZel5LXXAH7AWoxk9OeMH7w+w+gJPUSfAWnt1TVTDIONlGiMZ9AIf1Mu9xAjB4mWdUIwIbjF2iBYeNjpYPN9g6aGAF7zvobFwGGYfXQLTIfsTmjXu75czL1rEKTobp4LWuVYHNBPelTQfKl4util+cdvBk3Chw6rWecZ9aV5Y68HTyq1urAhuMfcYBFZxAGAz6WxG5JsF5ZX3eCm3igAm2I3Cybcb58FloawJTBh/scT7kgGvpkJMngx/tZ7LOl/Do69BWBBa5YOwkH2SWO1/MURotnPAwwAJTv7/jerSkebWjPJjwLXTP8j6cB5i/AfonpS7rOeMA0sle4FtJ3nT8D4O43J3gOwz+Q0Nf5pBMHWJknaDwGPgaukf5EE6TZcCPsg1MmXH6iIwTCMA7Oncm+IzvGfoIYSrjDmLyi1CCsZe/sLwMX1+F8jezXOazpQ7s0aCDIY3E7WaFfwTgQAPaA43DbSBTGQdeIQjc8zzklB81FP13LTy6PocCDDjbVV/LRE4ebjGnEyaonAdvQreYeTINNL4Bzbbk6aTvcXksUxnPo4wWLZl/G0okWWQLwn7+GGqmZ6Fxegk444ycpUPZM5fo3qWwn6lCtqCZHjy6xhxcAu5+z/AEgGc8J6gRHrN/rj5Lm5cU3jOEtrxn110Cno2U8Myn9Hm9pfStiLg8i/Am9imUNcksmfb0FhofZ6UWHIMlPLCcqLw00BKARYvHuKWCXcqatzHWI8Moa3l661d0zYtlPD/y/wjncMqjOIVSdvn9+EvcU4ZkYo2QFF6e2E7YZUsBKqzAVllVsIUIe1XiPFoUJ1ECQDmq9OEgzuo49wRDhwmecw0cLbYYxzzVuWVZV0GHvc5p2rVSBiBD5GBwbYUYLOdaorQEAwUsQ3rNZ46Py/VbysUxcopoJ0MJWraOyesJI3jZ+jktYnt9t+KnDq+YOjol2xMwt0xyjK0QueU6q4s5xvvVrYuvNjAzsbRf3pfTS7Dyvhy/+v4fra1pWYxQ1MYAAAAASUVORK5CYII="></image>
<ellipse id="Oval" fill="#F39800" cx="32" cy="32" rx="28" ry="28"></ellipse>
<path d="M32.041368,39 L32.041368,39 C30.7366037,39 29.6679395,38.0426848 29.6260007,36.8352603 L29.0015777,18.8661959 C28.9472125,17.2994188 30.3047888,16 31.9994292,16 L31.9994292,16 C33.6894097,16 35.0454327,17.2907943 34.998834,18.8532592 L34.4567354,36.823761 C34.4210097,38.0369352 33.3507923,39 32.041368,39 L32.041368,39 Z" id="Shape" fill="#FFFFFF"></path>
<ellipse id="Oval" fill="#FFFFFF" cx="32" cy="46" rx="3" ry="3"></ellipse>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 11 KiB

-18
View File
@@ -1,18 +0,0 @@
<p width=100px align="center"><img src="https://storage.deepin.org/thread/202208031419283599_deepin-wine-runner.png"></p>
<h1 align="center">Wine 运行器 Aptss 安装器</h1>
<hr>
<a href='https://gitee.com/gfdgd-xi/deep-wine-runner/stargazers'><img src='https://gitee.com/gfdgd-xi/deep-wine-runner/badge/star.svg?theme=dark' alt='star'></img></a>
<a href='https://gitee.com/gfdgd-xi/deep-wine-runner/members'><img src='https://gitee.com/gfdgd-xi/deep-wine-runner/badge/fork.svg?theme=dark' alt='fork'></img></a>
## 介绍
此工具用于在 Debian 发行版调试/安装Wine运行器打包的应用,不需要手动输入星火的命令/等上架商店就可以安装来自星火应用商店的依赖如 deepin-wine6-stable、spark-dwine-helper 等常用打包依赖
## 如何编译
```
sudo apt install qtbase5-dev qttools5-dev-tools
git clone https://gitee.com/gfdgd-xi/deep-wine-runner
cd deep-wine-runner
git checkout AptssInstaller
qmake .
make -j4
./aptss-installer
```
-12
View File
@@ -1,12 +0,0 @@
<RCC>
<qresource prefix="/">
<file>Icon/MessageBox/dialog-apply.svg</file>
<file>Icon/MessageBox/dialog-cancel.svg</file>
<file>Icon/MessageBox/dialog-error.svg</file>
<file>Icon/MessageBox/dialog-information.svg</file>
<file>Icon/MessageBox/dialog-ok.svg</file>
<file>Icon/MessageBox/dialog-question.svg</file>
<file>Icon/MessageBox/dialog-warning.svg</file>
<file>Icon/deepin-wine-runner.svg</file>
</qresource>
</RCC>
+11
View File
@@ -0,0 +1,11 @@
import socket
s = socket.socket()
host = socket.gethostname()
port = 8020
s.bind((host, port))
s.listen(5)
while True:
client, addr = s.accept()
print(addr)
client.send("A".encode("utf-8"))
client.close()
-38
View File
@@ -1,38 +0,0 @@
QT += core gui
PKGCONFIG += dtkcore dtkgui dtkwidget
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
VERSION = 1.0.0
CONFIG += c++17 link_pkgconfig
# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
installdeb.cpp \
main.cpp \
mainwindow.cpp \
messagebox.cpp
HEADERS += \
installdeb.h \
mainwindow.h \
messagebox.h
FORMS += \
mainwindow.ui
TRANSLATIONS += \
aptss-installer_zh_CN.ts
CONFIG += lrelease
CONFIG += embed_translations
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
unix:!macx: LIBS += -lqtermwidget5 -lapt-pkg # 这一行让我查了好久
RESOURCES += \
Resources.qrc
-27
View File
@@ -1,27 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<context>
<name>MainWindow</name>
<message>
<location filename="mainwindow.ui" line="14"/>
<source>MainWindow</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="30"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="37"/>
<source></source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.ui" line="60"/>
<source>1</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 11 KiB

-74
View File
@@ -1,74 +0,0 @@
#include "installdeb.h"
#include "messagebox.h"
#include <QDateTime>
#include <QObject>
#include <QMessageBox>
#include <QMainWindow>
InstallDEB::InstallDEB(QTermWidget *terminal, DMainWindow *mainWindow)
{
this->terminal = terminal;
this->mainWindow = mainWindow;
}
void InstallDEB::AddCommand(QString command){
this->commandList.append(command);
}
void InstallDEB::SetCommandAfterRootRun(QString command){
commandAfterRootRun = command;
}
void InstallDEB::RunCommand(bool withRoot){
this->terminal->setEnabled(true);
this->runStatus = true;
// 写入为 Bash 文件,方便执行
QString commandCode = "#!/bin/bash\n";
QString bashPath = "/tmp/deepin-wine-runner-aptss-installer-" + QString::number(QDateTime::currentMSecsSinceEpoch()) + ".sh";
for(int i = 0; i < this->commandList.size(); i++){
commandCode += this->commandList.at(i) + "\n";
}
commandCode += "rm -rfv '" + bashPath + "'";
QFile file(bashPath);
file.open(QFile::WriteOnly);
if(!file.isWritable()){
throw "Can't write the file!";
}
file.write(commandCode.toUtf8());
file.close();
system(("chmod +x '" + bashPath + "'").toUtf8()); // 赋予运行权限
this->terminal->setColorScheme("DarkPastels");
if(withRoot){
QString bashMainPath = "/tmp/deepin-wine-runner-aptss-installer-root-" + QString::number(QDateTime::currentMSecsSinceEpoch()) + ".sh";
QString commandCode = "#!/bin/bash\n"\
"pkexec env DISPLAY=$DISPLAY bash '" + bashPath + "'\n" +
this->commandAfterRootRun +
"\nrm -rfv '" + bashMainPath + "'\n"
"rm -rfv '" + bashPath + "'";
QFile file(bashMainPath);
file.open(QFile::WriteOnly);
if(!file.isWritable()){
throw "Can't write the file!";
}
file.write(commandCode.toUtf8());
file.close();
system(("chmod +x '" + bashMainPath + "'").toUtf8()); // 赋予运行权限
this->terminal->setShellProgram("/usr/bin/bash");
this->terminal->setArgs(QStringList() << bashMainPath);
}
else{
this->terminal->setShellProgram("/usr/bin/bash");
this->terminal->setArgs(QStringList() << bashPath);
}
//this->terminal->setAutoClose(1);
//this->terminal->setAutoFillBackground(1);
/*QObject::connect(this->terminal, &QTermWidget::finished, this->mainWindow, [this](){
MessageBox *message = new MessageBox();
message->information("提示", "应用安装完成");
this->mainWindow->sendMessage(QIcon(":/Icon/MessageBox/dialog-information.svg"), "应用安装完成");
});*/
this->terminal->startShellProgram();
}
-24
View File
@@ -1,24 +0,0 @@
#ifndef INSTALLDEB_H
#define INSTALLDEB_H
#include <QObject>
#include <qtermwidget5/qtermwidget.h>
#include <DMainWindow>
DWIDGET_USE_NAMESPACE
class InstallDEB
{
public:
InstallDEB(QTermWidget *terminal, DMainWindow *mainWindow = NULL);
void AddCommand(QString command);
void RunCommand(bool withRoot=false);
void SetCommandAfterRootRun(QString command);
QStringList commandList;
private:
QTermWidget *terminal;
QString commandAfterRootRun;
DMainWindow *mainWindow = NULL;
bool runStatus;
};
#endif // INSTALLDEB_H
-78
View File
@@ -1,78 +0,0 @@
#include "mainwindow.h"
#include <QLocale>
#include <QTranslator>
#include <DApplication>
#include <DMessageBox>
#include <iostream>
#include <DApplicationSettings>
#include "messagebox.h"
DWIDGET_USE_NAMESPACE
using namespace std;
int main(int argc, char *argv[])
{
// 强制使用 DTK 平台插件
QVector<char *> fakeArgs(argc + 2);
fakeArgs[0] = argv[0];
fakeArgs[1] = const_cast<char *>("-platformtheme");
fakeArgs[2] = const_cast<char *>("deepin");
for(int i = 1; i < argc; i++){
fakeArgs[i + 2] = argv[i];
}
int fakeArgc = argc + 2;
DApplication a(fakeArgc, fakeArgs.data());
a.setApplicationLicense("GPLV3");
a.setOrganizationName("gfdgd_xi");
a.setApplicationName("deepin-wine-runner-aptss-installer");
a.setWindowIcon(QIcon(":/Icon/deepin-wine-runner.svg"));
a.setApplicationDescription("Wine运行器是一个能让Linux用户更加方便地运行Windows应用的程序。原版的 Wine 只能使用命令操作,且安装过程较为繁琐,对小白不友好。于是该运行器为了解决该痛点,内置了对Wine图形化的支持、Wine 安装器、微型应用商店、各种Wine工具、自制的Wine程序打包器、运行库安装工具等。");
a.setApplicationVersion("3.6.1");
a.setProductIcon(QIcon(":/Icon/deepin-wine-runner.svg"));
a.setProductName("aptss 应用安装器");
a.setApplicationHomePage("https://gitee.com/gfdgd-xi/deep-wine-runner");
//DApplication::setApplicationHomePage("https://gitee.com/gfdgd-xi/deep-wine-runner");
DApplication::setOrganizationName("gfdgd_xi");
DApplication::setApplicationName("deepin-wine-runner-aptss-installer");
if(argc > 0){
// 用于显示对话框
qDebug() << argv[1];
if(QString(argv[1]) == "--messagebox-information"){
if(argc < 4){
qDebug() << "参数有误!";
return 1;
}
MessageBox().information(argv[2], argv[3]);
return a.exec();
}
if(QString(argv[1]) == "--messagebox-error"){
if(argc < 4){
qDebug() << "参数有误!";
return 1;
}
MessageBox().critical(argv[2], argv[3]);
return a.exec();
}
}
if(system("which aptss")){
MessageBox().critical("错误", "无法检测到 aptss\n请确保您已安装星火应用商店并更新至最新版本");
a.exec();
return 1;
}
QTranslator translator;
const QStringList uiLanguages = QLocale::system().uiLanguages();
for (const QString &locale : uiLanguages) {
const QString baseName = "aptss-installer_" + QLocale(locale).name();
if (translator.load(":/i18n/" + baseName)) {
a.installTranslator(&translator);
break;
}
}
DApplicationSettings settings; // 定义 DApplicationSettings,自动保存主题设置
MainWindow w;
w.show();
return a.exec();
}
-86
View File
@@ -1,86 +0,0 @@
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "installdeb.h"
#include "messagebox.h"
#include <qtermwidget5/qtermwidget.h>
#include <QMessageBox>
#include <QFile>
#include <DTitlebar>
#include <QDesktopServices>
#include <DApplication>
#include <DFileDialog>
MainWindow::MainWindow(QWidget *parent)
: DMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 自定义标题栏
DTitlebar *bar = this->titlebar();
bar->setTitle("aptss 应用安装器");
bar->setIcon(QIcon(":/Icon/deepin-wine-runner.svg"));
bar->setBackgroundTransparent(true);
QMenu *openProgramWebsite = bar->menu()->addMenu("项目地址");
QAction *openProgramGitee = new QAction(DApplication::style()->standardIcon(QStyle::SP_DirLinkOpenIcon), "Gitee");
QAction *openProgramGithub = new QAction("Github");
QAction *openProgramSourceforge = new QAction("Sourceforge");
openProgramWebsite->addAction(openProgramGitee);
openProgramWebsite->addAction(openProgramGithub);
openProgramWebsite->addAction(openProgramSourceforge);
connect(openProgramGitee, &QAction::triggered, this, [](){
QDesktopServices::openUrl(QUrl("https://gitee.com/gfdgd-xi/deep-wine-runner"));
});
connect(openProgramGithub, &QAction::triggered, this, [](){
QDesktopServices::openUrl(QUrl("https://github.com/gfdgd-xi/deep-wine-runner"));
});
connect(openProgramSourceforge, &QAction::triggered, this, [](){
QDesktopServices::openUrl(QUrl("https://sourceforge.net/project/deep-wine-runner"));
});
terminal = new QTermWidget(0);
terminal->setColorScheme("DarkPastels");
terminal->setAutoClose(0);
ui->gridLayout->addWidget(terminal, 1, 0);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_installPath_clicked()
{
if(ui->debPath->text().replace(" ", "") == ""){
MessageBox *message = new MessageBox(this);
message->critical("提示", "您没有输入 deb 包,无法继续");
return;
}
if(!QFile::exists(ui->debPath->text())){
MessageBox *message = new MessageBox(this);
message->critical("提示", "您选择的 deb 包不存在");
return;
}
InstallDEB *deb = new InstallDEB(terminal, this);
deb->AddCommand("set -e");
deb->AddCommand("aptss update");
deb->AddCommand("aptss install \"" + ui->debPath->text() + "\" -y");
deb->SetCommandAfterRootRun("if [[ $? != 0 ]]; then \n"\
" '" + QCoreApplication::applicationFilePath() + "' --messagebox-error 错误 安装失败! > /dev/null 2>&1 \n"\
"else \n"
" '" + QCoreApplication::applicationFilePath() + "' --messagebox-information 提示 安装完成! > /dev/null 2>&1 \n"\
"fi");
deb->RunCommand(1);
}
void MainWindow::on_browserButton_clicked()
{
QString filePath = DFileDialog::getOpenFileName(this, "选择 deb 包", QDir::homePath(), "deb 包(*.deb);;所有文件(*.*)");
if(filePath != ""){
ui->debPath->setText(filePath);
}
}
-28
View File
@@ -1,28 +0,0 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <DMainWindow>
#include <qtermwidget5/qtermwidget.h>
DWIDGET_USE_NAMESPACE
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public DMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void on_installPath_clicked();
void on_browserButton_clicked();
private:
QTermWidget *terminal = new QTermWidget(0);
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
-68
View File
@@ -1,68 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>aptss 应用安装器</string>
</property>
<property name="windowIcon">
<iconset resource="Resources.qrc">
<normaloff>:/Icon/deepin-wine-runner.svg</normaloff>:/Icon/deepin-wine-runner.svg</iconset>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLineEdit" name="debPath"/>
</item>
<item>
<widget class="QPushButton" name="browserButton">
<property name="text">
<string>浏览</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="installPath">
<property name="text">
<string>安装</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer">
<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>
</widget>
<action name="action1">
<property name="text">
<string>1</string>
</property>
</action>
</widget>
<resources>
<include location="Resources.qrc"/>
</resources>
<connections/>
</ui>
-86
View File
@@ -1,86 +0,0 @@
#include "messagebox.h"
#include <QGridLayout>
#include <DLabel>
#include <DPushButton>
#include <DTitlebar>
#include <QScreen>
MessageBox::MessageBox(DWidget *parent){
this->parent = parent;
}
void MessageBox::ShowMessageBox(QString iconPath, QString title, QString text){
DMainWindow *messageBox = new DMainWindow();
DWidget *widget = new DWidget();
QGridLayout *layout = new QGridLayout();
DPushButton *ok = new DPushButton("确定");
QObject::connect(ok, &DPushButton::clicked, messageBox, [messageBox](){
messageBox->close();
});
DTitlebar *bar = messageBox->titlebar();
bar->setTitle(title);
bar->setIcon(QIcon(":/Icon/deepin-wine-runner.svg"));
bar->setMenuVisible(false);
bar->setBackgroundTransparent(true);
layout->addWidget(new DLabel("<img src='" + iconPath + "'>"));
layout->addWidget(new DLabel(text), 0, 1);
layout->addWidget(ok, 1, 0, 1, 2);
widget->setLayout(layout);
messageBox->setEnableBlurWindow(false);
messageBox->setEnableSystemResize(false);
messageBox->setWindowFlags(messageBox->windowFlags() &~ Qt::WindowMaximizeButtonHint &~ Qt::Dialog &~ Qt::WindowMinimizeButtonHint);
messageBox->setCentralWidget(widget);
messageBox->setWindowTitle(title);
// 设置窗口顶置
messageBox->setWindowFlag(Qt::WindowStaysOnTopHint);
messageBox->show();
messageBox->resize(messageBox->frameSize().width(), messageBox->frameSize().height());
//// 根据窗口信息获取中点
if(this->parent == NULL){
/// 如果没有传入窗口
// 获取主屏幕信息
int screenWidth = QGuiApplication::primaryScreen()->geometry().width();
int screenHeight = QGuiApplication::primaryScreen()->geometry().height();
// 获取对话框信息
int messageBoxWidth = messageBox->frameSize().width();
int messageBoxHeight = messageBox->frameSize().height();
// 计算坐标
int x = (screenWidth / 2) - (messageBoxWidth / 2);
int y = (screenHeight / 2) - (messageBoxHeight / 2);
messageBox->move(x, y);
qDebug() << screenWidth;
qDebug() << screenHeight;
qDebug() << messageBoxWidth;
qDebug() << messageBoxHeight;
qDebug() << x << y;
return;
}
// 获取窗口信息
int parentWindowX = this->parent->frameGeometry().x();
int parentWindowY = this->parent->frameGeometry().y();
int parentWindowWidth = this->parent->frameGeometry().width();
int parentWindowHeight = this->parent->frameGeometry().height();
int messageBoxWidth = messageBox->frameSize().width();
int messageBoxHeight = messageBox->frameSize().height();
// 计算坐标
int x = parentWindowX + ((parentWindowWidth / 2) - (messageBoxWidth / 2));
int y = parentWindowY + ((parentWindowHeight / 2) - (messageBoxHeight / 2));
messageBox->move(x, y);
qDebug() << parentWindowX;
qDebug() << parentWindowY;
qDebug() << parentWindowWidth;
qDebug() << parentWindowHeight;
qDebug() << messageBoxWidth;
qDebug() << messageBoxHeight;
qDebug() << x << y;
}
void MessageBox::information(QString title, QString text){
ShowMessageBox(":/Icon/MessageBox/dialog-information.svg", title, text);
}
void MessageBox::critical(QString title, QString text){
ShowMessageBox(":/Icon/MessageBox/dialog-error.svg", title, text);
}
-22
View File
@@ -1,22 +0,0 @@
#ifndef MESSAGEBOX_H
#define MESSAGEBOX_H
#include <DMainWindow>
#include <QObject>
#include <DWidget>
DWIDGET_USE_NAMESPACE
class MessageBox
{
//Q_OBJECT
public:
explicit MessageBox(DWidget *parent = nullptr);
void information(QString title, QString text);
void critical(QString title, QString text);
private:
void ShowMessageBox(QString iconPath, QString title, QString text);
DWidget *parent;
signals:
};
#endif // MESSAGEBOX_H