增强 稳定性

This commit is contained in:
Maicss 2020-08-10 09:27:07 +08:00
parent f9b8faa638
commit a75ecd3a9a
4 changed files with 74 additions and 132 deletions

View File

@ -25,9 +25,15 @@ downloadlist::downloadlist(QWidget *parent) :
connect(action_dpkg,&QAction::triggered,[=](){downloadlist::install(1);}); connect(action_dpkg,&QAction::triggered,[=](){downloadlist::install(1);});
connect(action_gdebi,&QAction::triggered,[=](){downloadlist::install(0);}); connect(action_gdebi,&QAction::triggered,[=](){downloadlist::install(0);});
menu_install->addAction(action_gdebi); menu_install->addAction(action_gdebi);
//ssinstall命令存在时再加入该选项
QFile ssinstall("/bin/ssinstall");
ssinstall.open(QIODevice::ReadOnly);
if(ssinstall.isOpen()){
menu_install->addAction(action_dpkg); menu_install->addAction(action_dpkg);
} }
}
downloadlist::~downloadlist() downloadlist::~downloadlist()
{ {
delete ui; delete ui;
@ -170,77 +176,8 @@ void downloadlist::install(int t)
void downloadlist::on_pushButton_install_clicked() void downloadlist::on_pushButton_install_clicked()
{ {
//弹出菜单 //弹出菜单
// menu_install->show();
menu_install->exec(cursor().pos()); menu_install->exec(cursor().pos());
} }
void downloadlist::on_pushButton_maninst_clicked()
{
if(!isInstall)
{
isInstall = true;
ui->pushButton_install->hide();
ui->widget_spinner->show();
qDebug() << "/tmp/spark-store/" + ui->label_filename->text().toUtf8();
ui->label_2->setText("正在安装,请稍候");
QtConcurrent::run([=]()
{
QProcess installer;
if(reinstall)
{
installer.start("pkexec apt reinstall /tmp/spark-store/" + ui->label_filename->text().toUtf8());
}
else
{
installer.start("pkexec apt install /tmp/spark-store/" + ui->label_filename->text().toUtf8());
}
installer.waitForFinished();
out = installer.readAllStandardOutput();
installer.close();
QStringList everyOut = out.split("\n");
bool haveError = false;
bool notRoot = false;
for (int i = 0; i < everyOut.size(); i++)
{
qDebug() << everyOut[i].left(2);
if(everyOut[i].left(2) == "E:")
{
haveError = true;
}
if(everyOut[i].right(14) == "Not authorized")
{
notRoot = true;
}
}
QProcess isInstall;
isInstall.start("dpkg -s " + pkgName);
isInstall.waitForFinished();
int error = QString::fromStdString(isInstall.readAllStandardError().toStdString()).length();
isInstall.close();
if(error == 0)
{
ui->pushButton_install->hide();
ui->label_2->setText("安装完成");
ui->pushButton_3->show();
}
else
{
ui->pushButton_install->show();
ui->pushButton_install->setText("重装");
ui->label_2->setText("安装出现错误,可重新安装");
ui->pushButton_3->show();
}
if(notRoot)
{
ui->label_2->setText("安装被终止,可重新安装");
ui->pushButton_install->show();
ui->pushButton_3->hide();
}
ui->widget_spinner->hide();
downloadlist::isInstall = false;
});
qDebug() << ui->label_filename->text().toUtf8();
}
}
void downloadlist::on_pushButton_2_clicked() void downloadlist::on_pushButton_2_clicked()
{ {

View File

@ -41,7 +41,7 @@ public:
void install(int); void install(int);
private slots: private slots:
void on_pushButton_install_clicked(); void on_pushButton_install_clicked();
void on_pushButton_maninst_clicked(); // void on_pushButton_maninst_clicked();
void on_pushButton_2_clicked(); void on_pushButton_2_clicked();
void on_pushButton_3_clicked(); void on_pushButton_3_clicked();

View File

@ -186,6 +186,7 @@ void Widget::initUI()
m_loaderror->setAlignment(Qt::AlignCenter); m_loaderror->setAlignment(Qt::AlignCenter);
ui->webView->setLayout(m_weblayout); ui->webView->setLayout(m_weblayout);
// ui->stackedWidget->setLayout(m_weblayout);
ui->label_show->hide(); ui->label_show->hide();
} }
@ -271,7 +272,6 @@ void Widget::setTheme(bool isDark,QColor color)
ui->scrollArea->setStyleSheet("#scrollArea{background-color:#252525}"); ui->scrollArea->setStyleSheet("#scrollArea{background-color:#252525}");
ui->label_show->setStyleSheet("background-color:#252525"); ui->label_show->setStyleSheet("background-color:#252525");
ui->pushButton_return->setIcon(QIcon(":/icons/icons/category_active_dark.svg")); ui->pushButton_return->setIcon(QIcon(":/icons/icons/category_active_dark.svg"));
//菜单图标 //菜单图标
@ -317,19 +317,7 @@ void Widget::on_webView_loadStarted()
//如果是app.json就打开详情页 //如果是app.json就打开详情页
if(arg1.path().right(8)=="app.json"){ if(arg1.path().right(8)=="app.json"){
load.cancel();//打开并发加载线程前关闭正在执行的线程 load.cancel();//打开并发加载线程前关闭正在执行的线程
QPixmap pixmap_null;//一个空的图片,用来清空现有内容
ui->label_appicon->setPixmap(pixmap_null);
ui->screen_0->setImage(pixmap_null);
ui->screen_1->setImage(pixmap_null);
ui->screen_2->setImage(pixmap_null);
ui->screen_3->setImage(pixmap_null);
ui->screen_4->setImage(pixmap_null);
//先隐藏详情页负责显示截图的label
ui->screen_0->hide();
ui->screen_1->hide();
ui->screen_2->hide();
ui->screen_3->hide();
ui->screen_4->hide();
ui->label_more->setText("");//清空详情介绍 ui->label_more->setText("");//清空详情介绍
ui->label_info->setText(""); ui->label_info->setText("");
ui->label_appname->setText(""); ui->label_appname->setText("");
@ -343,13 +331,7 @@ void Widget::on_webView_loadStarted()
} }
void Widget::updateUI() void Widget::updateUI()
{ {
for (int i=0;i<14;i++) {
// left_list[i]->setStyleSheet("border:0px");
left_list[i]->setFont(QFont("",11));
left_list[i]->setFixedHeight(38);
if(themeIsDark){ if(themeIsDark){
left_list[i]->setStyleSheet("color:#FFFFFF;border:0px");
left_list[0]->setIcon(QIcon(":/icons/icons/homepage_dark.svg")); left_list[0]->setIcon(QIcon(":/icons/icons/homepage_dark.svg"));
left_list[1]->setIcon(QIcon(":/icons/icons/category_network_dark.svg")); left_list[1]->setIcon(QIcon(":/icons/icons/category_network_dark.svg"));
left_list[2]->setIcon(QIcon(":/icons/icons/category_chat_dark.svg")); left_list[2]->setIcon(QIcon(":/icons/icons/category_chat_dark.svg"));
@ -365,8 +347,6 @@ void Widget::updateUI()
left_list[12]->setIcon(QIcon(":/icons/icons/category_others_dark.svg")); left_list[12]->setIcon(QIcon(":/icons/icons/category_others_dark.svg"));
left_list[13]->setIcon(QIcon(":/icons/icons/downloads-symbolic_dark.svg")); left_list[13]->setIcon(QIcon(":/icons/icons/downloads-symbolic_dark.svg"));
}else { }else {
left_list[i]->setStyleSheet("color:#252525;border:0px");
left_list[0]->setIcon(QIcon(":/icons/icons/homepage.svg")); left_list[0]->setIcon(QIcon(":/icons/icons/homepage.svg"));
left_list[1]->setIcon(QIcon(":/icons/icons/category_network.svg")); left_list[1]->setIcon(QIcon(":/icons/icons/category_network.svg"));
left_list[2]->setIcon(QIcon(":/icons/icons/category_chat.svg")); left_list[2]->setIcon(QIcon(":/icons/icons/category_chat.svg"));
@ -382,6 +362,14 @@ void Widget::updateUI()
left_list[12]->setIcon(QIcon(":/icons/icons/category_others.svg")); left_list[12]->setIcon(QIcon(":/icons/icons/category_others.svg"));
left_list[13]->setIcon(QIcon(":/icons/icons/downloads-symbolic.svg")); left_list[13]->setIcon(QIcon(":/icons/icons/downloads-symbolic.svg"));
} }
for (int i=0;i<14;i++) {
left_list[i]->setFont(QFont("",11));
left_list[i]->setFixedHeight(38);
if(themeIsDark){
left_list[i]->setStyleSheet("color:#FFFFFF;border:0px");
}else {
left_list[i]->setStyleSheet("color:#252525;border:0px");
}
} }
left_list[nowMenu]->setStyleSheet("color:#FFFFFF;background-color:"+main_color.name()+";border-radius:8;border:0px"); left_list[nowMenu]->setStyleSheet("color:#FFFFFF;background-color:"+main_color.name()+";border-radius:8;border:0px");
switch (nowMenu) { switch (nowMenu) {
@ -476,6 +464,18 @@ void Widget::updatefoot()
void Widget::loadappinfo(QUrl arg1) void Widget::loadappinfo(QUrl arg1)
{ {
if(arg1.isEmpty()){
return;
}
//先隐藏详情页负责显示截图的label
ui->screen_0->hide();
ui->screen_1->hide();
ui->screen_2->hide();
ui->screen_3->hide();
ui->screen_4->hide();
//置UI状态 //置UI状态
ui->pushButton_uninstall->hide(); ui->pushButton_uninstall->hide();
ui->label_show->setText("正在加载,请稍候"); ui->label_show->setText("正在加载,请稍候");
@ -486,6 +486,7 @@ void Widget::loadappinfo(QUrl arg1)
QDir dir("/tmp"); QDir dir("/tmp");
dir.mkdir("spark-store"); dir.mkdir("spark-store");
QDir::setCurrent("/tmp/spark-store"); QDir::setCurrent("/tmp/spark-store");
get_json.start("curl -o app.json "+arg1.toString()); get_json.start("curl -o app.json "+arg1.toString());
get_json.waitForFinished(); get_json.waitForFinished();
QFile app_json("app.json"); QFile app_json("app.json");
@ -497,7 +498,9 @@ void Widget::loadappinfo(QUrl arg1)
QStringList downloadurl=urladdress.split("/"); QStringList downloadurl=urladdress.split("/");
urladdress=ui->comboBox_server->currentText(); urladdress=ui->comboBox_server->currentText();
QString deburl=urladdress; QString deburl=urladdress;
deburl=deburl.left(urladdress.length()-1);
urladdress="http://img.shenmo.tech:38324/";//使用图片专用服务器请保留这行,删除后将使用源服务器 urladdress="http://img.shenmo.tech:38324/";//使用图片专用服务器请保留这行,删除后将使用源服务器
urladdress=urladdress.left(urladdress.length()-1);
for (int i=3;i<downloadurl.size();i++) { for (int i=3;i<downloadurl.size();i++) {
urladdress+="/"+downloadurl[i]; urladdress+="/"+downloadurl[i];
@ -548,17 +551,13 @@ void Widget::loadappinfo(QUrl arg1)
ui->label_appicon->setPixmap(appicon); ui->label_appicon->setPixmap(appicon);
ui->pushButton_download->setEnabled(true); ui->pushButton_download->setEnabled(true);
//截图展示加载 //截图展示加载
image_show *label_screen[5]; image_show *label_screen[5];
label_screen[0]=ui->screen_0; label_screen[0]=ui->screen_0;
label_screen[1]=ui->screen_1; label_screen[1]=ui->screen_1;
label_screen[2]=ui->screen_2; label_screen[2]=ui->screen_2;
label_screen[3]=ui->screen_3; label_screen[3]=ui->screen_3;
label_screen[4]=ui->screen_4; label_screen[4]=ui->screen_4;
ui->screen_0->hide();
ui->screen_1->hide();
ui->screen_2->hide();
ui->screen_3->hide();
ui->screen_4->hide();
for (int i=0;i<5;i++) { for (int i=0;i<5;i++) {
get_json.start("curl -o screen_"+QString::number(i+1)+".png "+urladdress+"screen_"+QString::number(i+1)+".png"); get_json.start("curl -o screen_"+QString::number(i+1)+".png "+urladdress+"screen_"+QString::number(i+1)+".png");
get_json.waitForFinished(); get_json.waitForFinished();
@ -907,6 +906,9 @@ void Widget::on_webView_loadFinished(bool arg1)
void Widget::on_webView_loadProgress(int progress) void Widget::on_webView_loadProgress(int progress)
{ {
m_loadweb->setValue(progress); m_loadweb->setValue(progress);
if(progress>=90){
m_loadweb->hide();
}
} }
void Widget::on_pushButton_clicked() void Widget::on_pushButton_clicked()

View File

@ -287,7 +287,7 @@
<number>0</number> <number>0</number>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>2</number> <number>0</number>
</property> </property>
<widget class="QWidget" name="page"> <widget class="QWidget" name="page">
<layout class="QVBoxLayout" name="verticalLayout_4"> <layout class="QVBoxLayout" name="verticalLayout_4">
@ -590,13 +590,6 @@
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<item>
<widget class="QListWidget" name="listWidget">
<property name="lineWidth">
<number>0</number>
</property>
</widget>
</item>
<item> <item>
<widget class="QLabel" name="label"> <widget class="QLabel" name="label">
<property name="font"> <property name="font">
@ -618,6 +611,16 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QListWidget" name="listWidget">
<property name="frameShadow">
<enum>QFrame::Plain</enum>
</property>
<property name="lineWidth">
<number>0</number>
</property>
</widget>
</item>
<item> <item>
<widget class="QPushButton" name="btn_openDir"> <widget class="QPushButton" name="btn_openDir">
<property name="maximumSize"> <property name="maximumSize">
@ -669,7 +672,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>901</width> <width>404</width>
<height>849</height> <height>849</height>
</rect> </rect>
</property> </property>
@ -965,8 +968,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>867</width> <width>98</width>
<height>325</height> <height>28</height>
</rect> </rect>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_4"> <layout class="QHBoxLayout" name="horizontalLayout_4">