mirror of
https://gitee.com/gfdgd-xi/deep-wine-runner
synced 2025-06-05 22:59:50 +08:00
87 lines
3.0 KiB
C++
87 lines
3.0 KiB
C++
#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);
|
|
}
|
|
}
|
|
|