From c61e2369ef68211d84307f3b31234093823dacfc Mon Sep 17 00:00:00 2001 From: keke <243768648@qq.com> Date: Thu, 29 Sep 2022 21:09:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=89=93=E5=8C=85=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 离线打包开始前增加确认对话框 --- src/appmanagerwidget.cpp | 41 +++++++++++++++++++++++++++++++-------- src/job/appmanagerjob.cpp | 2 ++ 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/appmanagerwidget.cpp b/src/appmanagerwidget.cpp index 90006c1..3b03480 100644 --- a/src/appmanagerwidget.cpp +++ b/src/appmanagerwidget.cpp @@ -352,30 +352,55 @@ AppManagerWidget::AppManagerWidget(AppManagerModel *model, QWidget *parent) // 离线获取安装包 connect(getPkgFromLocalBtn, &QPushButton::clicked, this, [this](bool) { + // 确认窗口 + DDialog confirmDlg; + confirmDlg.setMessage("是否开始离线获取安装包?"); + + // 取消按钮 + confirmDlg.addButton("取消", false); + // 确定按钮 + confirmDlg.addButton("确定", true); + int ret = confirmDlg.exec(); + if (1 == ret) { + confirmDlg.deleteLater(); + } else { + return; + } + Q_EMIT this->m_model->notifyThreadBuildPkg(m_showingAppInfo); DDialog *dlg = new DDialog(this); dlg->setCloseButtonVisible(false); QString title = QString("%1安装包构建中...").arg(m_showingAppInfo.pkgName); dlg->setTitle(title); + + // 窗口内容控件 + QWidget *contentWidget = new QWidget(dlg); + QVBoxLayout *contentLayout = new QVBoxLayout; + contentWidget->setLayout(contentLayout); + dlg->addContent(contentWidget); + // 构建目录 - QLabel *buildDirLabel = new QLabel(this); + QLabel *buildDirLabel = new QLabel(dlg); QString buildDirLabelStr = QString("生成目录: %1").arg(m_model->getPkgBuildDirPath()); buildDirLabel->setText(buildDirLabelStr); - dlg->addContent(buildDirLabel); + contentLayout->addWidget(buildDirLabel); // 构建目录打开按钮 - QPushButton *dirOpenBtn = new QPushButton(this); + QPushButton *dirOpenBtn = new QPushButton(dlg); dirOpenBtn->setText("打开目录"); - dlg->addContent(dirOpenBtn); + contentLayout->addWidget(dirOpenBtn); connect(dirOpenBtn, &QPushButton::clicked, this, [this](bool checked) { Q_UNUSED(checked); QDesktopServices::openUrl(m_model->getPkgBuildDirPath()); }); // 确定按钮 - dlg->addButton("确定", true); + QPushButton *okBtn = new QPushButton(dlg); + okBtn->setText("确定"); + connect(okBtn, &QPushButton::clicked, dlg, &DDialog::close); + contentLayout->addWidget(okBtn); // 构建完成 - connect(this->m_model, &AppManagerModel::buildPkgTaskFinished, dlg, [this, dlg](bool successed, const AM::AppInfo info) { - dlg->setEnabled(true); + connect(this->m_model, &AppManagerModel::buildPkgTaskFinished, dlg, [this, contentWidget, dlg](bool successed, const AM::AppInfo info) { + contentWidget->setEnabled(true); QString resultTitle; if (successed) { resultTitle = QString("%1安装包构建成功").arg(m_showingAppInfo.pkgName); @@ -385,7 +410,7 @@ AppManagerWidget::AppManagerWidget(AppManagerModel *model, QWidget *parent) dlg->setTitle(resultTitle); }); - dlg->setEnabled(false); + contentWidget->setEnabled(false); dlg->exec(); // 释放内存 dlg->deleteLater(); diff --git a/src/job/appmanagerjob.cpp b/src/job/appmanagerjob.cpp index 4cb4fbd..1d49e59 100644 --- a/src/job/appmanagerjob.cpp +++ b/src/job/appmanagerjob.cpp @@ -979,10 +979,12 @@ bool AppManagerJob::buildPkg(const AppInfo &info) QDir pkgBuildCacheDir(m_pkgBuildCacheDirPath); if (pkgBuildCacheDir.exists()) { if (!pkgBuildCacheDir.removeRecursively()) { + qCritical() << Q_FUNC_INFO << m_pkgBuildCacheDirPath << "removeRecursively failed!"; return false; } } if (!pkgBuildCacheDir.mkdir(m_pkgBuildCacheDirPath)) { + qCritical() << Q_FUNC_INFO << m_pkgBuildCacheDirPath << "create failed!"; return false; } -- Gitee