From dce608e6a9671a39b408bb1059745e87b1daefa6 Mon Sep 17 00:00:00 2001 From: renbin Date: Fri, 27 Sep 2024 14:50:47 +0800 Subject: [PATCH] refactor: update uab append fails tips As title. Log: update uab append fails tips Influence: uab-package --- src/deb-installer/manager/AddPackageThread.h | 2 +- src/deb-installer/manager/packagesmanager.cpp | 22 ++----------------- src/deb-installer/manager/packagesmanager.h | 2 +- .../model/abstract_package_list_model.h | 2 +- .../uab/uab_package_list_model.cpp | 8 +++---- src/deb-installer/view/pages/debinstaller.cpp | 20 ++++++++--------- src/deb-installer/view/pages/debinstaller.h | 6 ++--- tests/src/view/pages/ut_debinstaller.cpp | 4 ++-- 8 files changed, 24 insertions(+), 42 deletions(-) diff --git a/src/deb-installer/manager/AddPackageThread.h b/src/deb-installer/manager/AddPackageThread.h index ae0b84c3..a44549ce 100644 --- a/src/deb-installer/manager/AddPackageThread.h +++ b/src/deb-installer/manager/AddPackageThread.h @@ -59,7 +59,7 @@ class AddPackageThread : public QThread void signalAppendFinished(); // Manange package insert failed reason. - void signalAppendFailMessage(Pkg::AppendFailReason reason); + void signalAppendFailMessage(Pkg::AppendFailReason reason, Pkg::PackageType type = Pkg::Deb); private: // 要添加的软件包列表 diff --git a/src/deb-installer/manager/packagesmanager.cpp b/src/deb-installer/manager/packagesmanager.cpp index 90fcfd64..a2a7402d 100644 --- a/src/deb-installer/manager/packagesmanager.cpp +++ b/src/deb-installer/manager/packagesmanager.cpp @@ -832,7 +832,7 @@ PackageDependsStatus PackagesManager::getPackageDependsStatus(const int index) break; } - if (!m_dependInstallMark.contains(currentPackageMd5)) { + if (!m_dependInstallMark.contains(currentPackageMd5)) { // replace the marker that the depends error GlobalStatus::setWinePreDependsInstalling(true); @@ -1537,25 +1537,7 @@ void PackagesManager::appendNoThread(const QStringList &packages, int allPackage void PackagesManager::refreshPage(int validPkgCount) { // 获取当前已经添加到程序中的包的数量 - int packageCount = m_preparedPackages.size(); - // if (1 == packageCount) { //当前程序中只添加了一个包 - // if (1 == validPkgCount) { //此次只有一个包将会被添加的程序中 - // emit signalRefreshSinglePage(); //刷新单包安装界面 - - // } else if (validPkgCount > 1) { //当前程序中值添加了一个包,但是这次有不止一个包将会被添加到程序中 - // emit signalSingle2MultiPage(); //刷新批量安装界面 - // emit signalAppendStart(); //开始批量添加 - // } - // } else if (2 == packageCount) { - // //当前程序中已经添加了两个包 - // //1.第一次是添加了一个包,第二次又添加了多于一个包 - // emit signalSingle2MultiPage(); //刷新批量安装界面 - // emit signalAppendStart(); //发送批量添加信号 - // } else { - // //此时批量安装界面已经刷新过。如果再添加,就只刷新model - // emit signalRefreshMultiPage(); - // emit signalAppendStart(); - // } + const int packageCount = m_preparedPackages.size(); Q_EMIT signalPackageCountChanged(packageCount); // If current first append and only one package, will append directly. diff --git a/src/deb-installer/manager/packagesmanager.h b/src/deb-installer/manager/packagesmanager.h index 5bd77fe4..d6706e2e 100644 --- a/src/deb-installer/manager/packagesmanager.h +++ b/src/deb-installer/manager/packagesmanager.h @@ -115,7 +115,7 @@ public slots: ////添加包相关信号 signals: // Manange package insert failed reason. - void signalAppendFailMessage(Pkg::AppendFailReason reason); + void signalAppendFailMessage(Pkg::AppendFailReason reason, Pkg::PackageType type = Pkg::Deb); /** * @brief appendStart 批量安装开始添加包的信号 diff --git a/src/deb-installer/model/abstract_package_list_model.h b/src/deb-installer/model/abstract_package_list_model.h index 2abcd22a..029be04f 100644 --- a/src/deb-installer/model/abstract_package_list_model.h +++ b/src/deb-installer/model/abstract_package_list_model.h @@ -90,7 +90,7 @@ class AbstractPackageListModel : public QAbstractListModel void signalAppendStart(); void signalAppendFinished(); // manange package insert failed reason - void signalAppendFailMessage(Pkg::AppendFailReason reason); + void signalAppendFailMessage(Pkg::AppendFailReason reason, Pkg::PackageType type = Pkg::Deb); // manage package appended and remove void signalPackageCountChanged(int count); diff --git a/src/deb-installer/uab/uab_package_list_model.cpp b/src/deb-installer/uab/uab_package_list_model.cpp index cd75ab99..d99924a3 100644 --- a/src/deb-installer/uab/uab_package_list_model.cpp +++ b/src/deb-installer/uab/uab_package_list_model.cpp @@ -447,10 +447,10 @@ UabPackage::Ptr UabPackageListModel::preCheckPackage(const QString &packagePath) auto readablilty = Utils::checkPackageReadable(packagePath); switch (readablilty) { case Pkg::PkgNotInLocal: - Q_EMIT signalAppendFailMessage(Pkg::PackageNotLocal); + Q_EMIT signalAppendFailMessage(Pkg::PackageNotLocal, Pkg::Uab); return {}; case Pkg::PkgNoPermission: - Q_EMIT signalAppendFailMessage(Pkg::PackageNotInstallable); + Q_EMIT signalAppendFailMessage(Pkg::PackageNotInstallable, Pkg::Uab); return {}; default: break; @@ -458,12 +458,12 @@ UabPackage::Ptr UabPackageListModel::preCheckPackage(const QString &packagePath) auto uabPtr = Uab::UabPackage::fromFilePath(packagePath); if (!uabPtr || !uabPtr->isValid()) { - Q_EMIT signalAppendFailMessage(Pkg::PackageInvalid); + Q_EMIT signalAppendFailMessage(Pkg::PackageInvalid, Pkg::Uab); return {}; } if (packageExists(uabPtr)) { - Q_EMIT signalAppendFailMessage(Pkg::PackageAlreadyExists); + Q_EMIT signalAppendFailMessage(Pkg::PackageAlreadyExists, Pkg::Uab); return {}; } diff --git a/src/deb-installer/view/pages/debinstaller.cpp b/src/deb-installer/view/pages/debinstaller.cpp index 9c8bf59b..36b1b9e9 100644 --- a/src/deb-installer/view/pages/debinstaller.cpp +++ b/src/deb-installer/view/pages/debinstaller.cpp @@ -691,17 +691,17 @@ void DebInstaller::refreshMulti() MulRefreshPage(); } -void DebInstaller::slotReceiveAppendFailed(Pkg::AppendFailReason reason) +void DebInstaller::slotReceiveAppendFailed(Pkg::AppendFailReason reason, Pkg::PackageType type) { switch (reason) { case Pkg::PackageInvalid: - slotShowInvalidePackageMessage(); + slotShowInvalidePackageMessage(type); break; case Pkg::PackageNotDdim: slotShowDdimFloatingMessage(tr("Installing other packages... Please open it later.")); break; case Pkg::PackageNotLocal: - slotShowNotLocalPackageMessage(); + slotShowNotLocalPackageMessage(type); break; case Pkg::PackageNotInstallable: slotShowNotInstallablePackageMessage(); @@ -714,20 +714,20 @@ void DebInstaller::slotReceiveAppendFailed(Pkg::AppendFailReason reason) } } -void DebInstaller::slotShowInvalidePackageMessage() +void DebInstaller::slotShowInvalidePackageMessage(Pkg::PackageType type) { DFloatingMessage *floatingMsg = new DFloatingMessage; - floatingMsg->setMessage(tr("The deb package may be broken")); + floatingMsg->setMessage(tr("The %1 package may be broken").arg(Pkg::Uab == type ? "uab" : "deb")); floatingMsg->setIcon(QIcon::fromTheme("di_warning")); - DMessageManager::instance()->sendMessage(this, floatingMsg); // 如果损坏,提示 + DMessageManager::instance()->sendMessage(this, floatingMsg); } -void DebInstaller::slotShowNotLocalPackageMessage() +void DebInstaller::slotShowNotLocalPackageMessage(Pkg::PackageType type) { DFloatingMessage *floatingMsg = new DFloatingMessage; - floatingMsg->setMessage(tr("You can only install local deb packages")); + floatingMsg->setMessage(tr("You can only install local %1 packages").arg(Pkg::Uab == type ? "uab" : "deb")); floatingMsg->setIcon(QIcon::fromTheme("di_warning")); - DMessageManager::instance()->sendMessage(this, floatingMsg); // 如果损坏,提示 + DMessageManager::instance()->sendMessage(this, floatingMsg); } void DebInstaller::slotShowNotInstallablePackageMessage() @@ -735,7 +735,7 @@ void DebInstaller::slotShowNotInstallablePackageMessage() DFloatingMessage *floatingMsg = new DFloatingMessage; floatingMsg->setMessage(tr("No permission to access this folder")); floatingMsg->setIcon(QIcon::fromTheme("di_warning")); - DMessageManager::instance()->sendMessage(this, floatingMsg); // 如果损坏,提示 + DMessageManager::instance()->sendMessage(this, floatingMsg); } void DebInstaller::slotShowPkgExistMessage() diff --git a/src/deb-installer/view/pages/debinstaller.h b/src/deb-installer/view/pages/debinstaller.h index 1cfc3062..a9adcdd4 100644 --- a/src/deb-installer/view/pages/debinstaller.h +++ b/src/deb-installer/view/pages/debinstaller.h @@ -71,17 +71,17 @@ private slots: void slotDdimSelected(const QStringList &ddimFiles); // Append package failed, show floating message based on diff error. - void slotReceiveAppendFailed(Pkg::AppendFailReason reason); + void slotReceiveAppendFailed(Pkg::AppendFailReason reason, Pkg::PackageType type); /** * @brief slotShowInvalidePackageMessage 弹出无效包的消息通知 */ - void slotShowInvalidePackageMessage(); + void slotShowInvalidePackageMessage(Pkg::PackageType type); /** * @brief slotShowNotLocalPackageMessage 弹出不是本地包的消息通知 */ - void slotShowNotLocalPackageMessage(); + void slotShowNotLocalPackageMessage(Pkg::PackageType type); /** * @brief slotShowNotInstallablePackageMessage 弹出无安装权限的消息通知 diff --git a/tests/src/view/pages/ut_debinstaller.cpp b/tests/src/view/pages/ut_debinstaller.cpp index 04c1bf8f..95bd191f 100644 --- a/tests/src/view/pages/ut_debinstaller.cpp +++ b/tests/src/view/pages/ut_debinstaller.cpp @@ -136,9 +136,9 @@ void stub_enableCloseAndExit() TEST_F(UT_Debinstaller, UT_Debinstaller_total) { - deb->slotShowInvalidePackageMessage(); + deb->slotShowInvalidePackageMessage(Pkg::Deb); deb->slotShowPkgExistMessage(); - deb->slotShowNotLocalPackageMessage(); + deb->slotShowNotLocalPackageMessage(Pkg::Deb); deb->slotShowPkgRemovedMessage("00"); EXPECT_EQ(deb->backToSinglePage(), nullptr); }