mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-12-14 04:42:03 +08:00
添加“手动安装”按钮
添加手动安装按钮来处理部分 gdebi 无法正确安装的应用(主要是 wine 应用)。
This commit is contained in:
@@ -17,6 +17,7 @@ downloadlist::downloadlist(QWidget *parent) :
|
||||
ui->progressBar->setValue(0);
|
||||
ui->label_filename->hide();
|
||||
ui->pushButton_install->hide();
|
||||
ui->pushButton_maninst->hide();
|
||||
ui->pushButton_3->hide();
|
||||
ui->widget_spinner->start();
|
||||
ui->widget_spinner->hide();
|
||||
@@ -133,15 +134,16 @@ void downloadlist::on_pushButton_install_clicked()
|
||||
ui->pushButton_3->show();
|
||||
}else {
|
||||
ui->pushButton_install->show();
|
||||
ui->pushButton_install->show();
|
||||
ui->pushButton_maninst->show();
|
||||
ui->pushButton_install->setText("重装");
|
||||
ui->pushButton_maninst->setText("手动重装");
|
||||
ui->label_2->setText("安装出现错误,可重新安装");
|
||||
ui->pushButton_3->show();
|
||||
}
|
||||
if(notRoot){
|
||||
ui->label_2->setText("安装被终止,可重新安装");
|
||||
ui->pushButton_install->show();
|
||||
ui->pushButton_install->show();
|
||||
ui->pushButton_maninst->show();
|
||||
ui->pushButton_3->hide();
|
||||
}
|
||||
ui->widget_spinner->hide();
|
||||
@@ -154,6 +156,80 @@ void downloadlist::on_pushButton_install_clicked()
|
||||
|
||||
}
|
||||
|
||||
void downloadlist::on_pushButton_maninst_clicked()
|
||||
{
|
||||
if(!isInstall)
|
||||
{
|
||||
isInstall = true;
|
||||
ui->pushButton_install->hide();
|
||||
ui->pushButton_maninst->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->pushButton_maninst->hide();
|
||||
ui->label_2->setText("安装完成");
|
||||
ui->pushButton_3->show();
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->pushButton_install->show();
|
||||
ui->pushButton_maninst->show();
|
||||
ui->pushButton_install->setText("重装");
|
||||
ui->pushButton_maninst->setText("手动重装");
|
||||
ui->label_2->setText("安装出现错误,可重新安装");
|
||||
ui->pushButton_3->show();
|
||||
}
|
||||
if(notRoot)
|
||||
{
|
||||
ui->label_2->setText("安装被终止,可重新安装");
|
||||
ui->pushButton_install->show();
|
||||
ui->pushButton_maninst->show();
|
||||
ui->pushButton_3->hide();
|
||||
}
|
||||
ui->widget_spinner->hide();
|
||||
downloadlist::isInstall = false;
|
||||
});
|
||||
qDebug() << ui->label_filename->text().toUtf8();
|
||||
}
|
||||
}
|
||||
|
||||
void downloadlist::on_pushButton_2_clicked()
|
||||
{
|
||||
ui->label_2->setText("已取消下载");
|
||||
@@ -164,8 +240,6 @@ void downloadlist::on_pushButton_2_clicked()
|
||||
|
||||
void downloadlist::on_pushButton_3_clicked()
|
||||
{
|
||||
|
||||
|
||||
output_w.layout()->addWidget(textbrowser);
|
||||
textbrowser->setLineWidth(0);
|
||||
textbrowser->setText(out);
|
||||
|
||||
Reference in New Issue
Block a user