diff --git a/src/appmanagermodel.cpp b/src/appmanagermodel.cpp index 9feac2043490ad644e7a3b100ce0b1d1451ed35d..6ede31c03e9d771390f349d40aa11a621012407e 100644 --- a/src/appmanagermodel.cpp +++ b/src/appmanagermodel.cpp @@ -92,6 +92,11 @@ void AppManagerModel::openStoreAppDetailPage(const QString &pkgName) void AppManagerModel::openSpkStoreAppDetailPage(const QString &pkgName) { + if (isPkgInstalled("spark-store")) { + Q_EMIT notifyOpenSparkStoreNeedBeInstallDlg(); + return; + } + QProcess proc; proc.startDetached("spark-store", {QString("spk://search/%1").arg(pkgName)}); proc.waitForStarted(); @@ -295,8 +300,6 @@ void AppManagerModel::initConnection() connect(this, &AppManagerModel::notifyThreadInstallOhMyDDE, m_appManagerJob, &AppManagerJob::installOhMyDDE); // 安装oh-my-dde完成 connect(m_appManagerJob, &AppManagerJob::installOhMyDDEFinished, this, &AppManagerModel::installOhMyDDEFinished); - // 安装proc-info-plugin完成 - connect(m_appManagerJob, &AppManagerJob::installProcInfoPluginFinished, this, &AppManagerModel::installProcInfoPluginFinished); // 包安装变动 connect(m_appManagerJob, &AppManagerJob::appInstalled, this, &AppManagerModel::onAppInstalled); diff --git a/src/appmanagermodel.h b/src/appmanagermodel.h index 0be5c0fa278ceeb29499c682791348a240b76868..d6c1d254f64ccb38e736d623d46c9bd9f634de47 100644 --- a/src/appmanagermodel.h +++ b/src/appmanagermodel.h @@ -60,8 +60,8 @@ Q_SIGNALS: void notifyThreadInstallOhMyDDE(); // 安装oh-my-dde完成 void installOhMyDDEFinished(bool successed, const QString &err); - // 安装proc-info-plugin完成 - void installProcInfoPluginFinished(bool successed, const QString &err); + // 通知打开星火应用商店需要安装对话框 + void notifyOpenSparkStoreNeedBeInstallDlg(); // 软件安装变动 void appInstalled(const AM::AppInfo &appInfo); void appUpdated(const AM::AppInfo &appInfo); diff --git a/src/appmanagerwidget.cpp b/src/appmanagerwidget.cpp index 879655390d9ce271b422e1036902d821f20975d9..b7b8d0a3135c973c36322daed4edecc73c2b7c19 100644 --- a/src/appmanagerwidget.cpp +++ b/src/appmanagerwidget.cpp @@ -425,7 +425,7 @@ AppManagerWidget::AppManagerWidget(AppManagerModel *model, QWidget *parent) // 离线获取安装包 connect(getPkgFromLocalBtn, &QPushButton::clicked, this, [this](bool) { // 确认窗口 - DDialog confirmDlg; + DDialog confirmDlg(this); confirmDlg.setMessage("是否开始离线获取安装包?"); // 取消按钮 diff --git a/src/job/appmanagerjob.h b/src/job/appmanagerjob.h index 6cfb5ee3ff01179ed436ed9863efdd05d3a5afe7..3c97ed652a14735965d3c75dc14e0ea0b2eb8205 100644 --- a/src/job/appmanagerjob.h +++ b/src/job/appmanagerjob.h @@ -78,7 +78,6 @@ Q_SIGNALS: // 构建安装包任务完成 void buildPkgTaskFinished(bool successed, const AM::AppInfo &info); void installOhMyDDEFinished(bool successed, const QString &err); - void installProcInfoPluginFinished(bool successed, const QString &err); // 软件安装变动 void appInstalled(const AM::AppInfo &appInfo); void appUpdated(const AM::AppInfo &appInfo); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 9b02c6a1fc654116212d69e5b5b6f10f2a50d235..3272d0e07edee83f002bbc64d2f91204d8649683 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include #include @@ -22,7 +23,7 @@ MainWindow::MainWindow(QWidget *parent) { setMinimumSize(500, 300); QRect primaryScreenGeometry = qApp->primaryScreen()->geometry(); - int resizedWidth = int(primaryScreenGeometry.width() * 0.7); + int resizedWidth = int(primaryScreenGeometry.width() * 0.65); int resizedHeight = int(resizedWidth * 3 / 5); resize(resizedWidth, resizedHeight); // 设置背景 @@ -149,7 +150,8 @@ MainWindow::MainWindow(QWidget *parent) // 安装完成时 connect(m_appManagerModel, &AppManagerModel::installOhMyDDEFinished, this, &MainWindow::onPkgInstallFinished); - connect(m_appManagerModel, &AppManagerModel::installProcInfoPluginFinished, this, &MainWindow::onPkgInstallFinished); + connect(m_appManagerModel, &AppManagerModel::notifyOpenSparkStoreNeedBeInstallDlg, + this, &MainWindow::openSparkStoreNeedBeInstallDlg); // 下载失败 connect(m_appManagerModel, &AppManagerModel::pkgFileDownloadFailed, this, [this](const PkgInfo &info) { @@ -213,6 +215,31 @@ void MainWindow::onPkgInstallFinished(bool successed, const QString &err) dlg->deleteLater(); } +void MainWindow::openSparkStoreNeedBeInstallDlg() +{ + DDialog *dlg = new DDialog(this); + dlg->setIcon(QIcon::fromTheme("dialog-warning")); + + QLabel *tipLabel = new QLabel(dlg); + tipLabel->setWordWrap(true); + tipLabel->setOpenExternalLinks(true); + tipLabel->setText("本功能需要使用星火应用商店,请前往下面的网址下载安装星火应用商店后,再重试此功能"); + dlg->addContent(tipLabel); + + //超链接标签 + QLabel *linkLabel = new QLabel(dlg); + linkLabel->setWordWrap(true); + linkLabel->setOpenExternalLinks(true);//设置点击连接自动打开((跳转到浏览器) + linkLabel->setTextInteractionFlags(Qt::TextInteractionFlag::TextBrowserInteraction); + const QString websiteLink = "https://gitee.com/deepin-community-store/spark-store/releases"; + QString text = QString("%2").arg(websiteLink).arg(websiteLink); + linkLabel->setText(text); + dlg->addContent(linkLabel); + + dlg->exec(); + dlg->deleteLater(); +} + void MainWindow::updateUIByRunningStatus() { bool enable = (RunningStatus::Normal == m_appManagerModel->getRunningStatus()); diff --git a/src/mainwindow.h b/src/mainwindow.h index 6a4ba94417be710829b56953f15ba63d9d5fdba4..d73da5f327f7ae200442647a497f9a6a2261a366 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -24,6 +24,7 @@ protected: private Q_SLOTS: // 安装包安装完成时 void onPkgInstallFinished(bool successed, const QString &err); + void openSparkStoreNeedBeInstallDlg(); private: void updateUIByRunningStatus();