diff options
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 40 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 40 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.h | 6 |
3 files changed, 27 insertions, 59 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 39a8ad343..de1e4122d 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -1552,12 +1552,7 @@ bool PackageManagerCore::isPackageManager() const */ bool PackageManagerCore::runInstaller() { - try { - d->runInstaller(); - return true; - } catch (...) { - return false; - } + return d->runInstaller(); } /*! @@ -1565,12 +1560,7 @@ bool PackageManagerCore::runInstaller() */ bool PackageManagerCore::runUninstaller() { - try { - d->runUninstaller(); - return true; - } catch (...) { - return false; - } + return d->runUninstaller(); } /*! @@ -1578,12 +1568,7 @@ bool PackageManagerCore::runUninstaller() */ bool PackageManagerCore::runPackageUpdater() { - try { - d->runPackageUpdater(); - return true; - } catch (...) { - return false; - } + return d->runPackageUpdater(); } /*! @@ -1601,18 +1586,13 @@ void PackageManagerCore::languageChanged() */ bool PackageManagerCore::run() { - try { - if (isInstaller()) - d->runInstaller(); - else if (isUninstaller()) - d->runUninstaller(); - else if (isPackageManager() || isUpdater()) - d->runPackageUpdater(); - return true; - } catch (const Error &err) { - qDebug() << "Caught Installer Error:" << err.message(); - return false; - } + if (isInstaller()) + return d->runInstaller(); + else if (isUninstaller()) + return d->runUninstaller(); + else if (isPackageManager() || isUpdater()) + return d->runPackageUpdater(); + return false; } /*! diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index e7a267469..ccb16d971 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -1340,7 +1340,7 @@ QString PackageManagerCorePrivate::registerPath() const return QString(); } -void PackageManagerCorePrivate::runInstaller() +bool PackageManagerCorePrivate::runInstaller() { bool adminRightsGained = false; try { @@ -1399,12 +1399,7 @@ void PackageManagerCorePrivate::runInstaller() stopProcessesForUpdates(componentsToInstall); if (m_dependsOnLocalInstallerBinary && !KDUpdater::pathIsOnLocalDevice(qApp->applicationFilePath())) { - setStatus(PackageManagerCore::Failure); - ProgressCoordinator::instance()->emitLabelAndDetailTextChanged(tr("\nInstallation aborted!")); - MessageBoxHandler::critical(MessageBoxHandler::currentBestSuitParent(), - QLatin1String("installationError"), tr("Error"), tr("It is not possible to install from network location")); - emit installationFinished(); - throw; + throw Error(tr("It is not possible to install from network location")); } if (!adminRightsGained) { @@ -1509,20 +1504,18 @@ void PackageManagerCorePrivate::runInstaller() if (adminRightsGained) m_core->dropAdminRights(); emit installationFinished(); - - throw; + return false; } + return true; } -void PackageManagerCorePrivate::runPackageUpdater() +bool PackageManagerCorePrivate::runPackageUpdater() { bool adminRightsGained = false; + if (m_completeUninstall) { + return runUninstaller(); + } try { - if (m_completeUninstall) { - runUninstaller(); - return; - } - setStatus(PackageManagerCore::Running); emit installationStarted(); //resets also the ProgressCoordninator @@ -1541,12 +1534,7 @@ void PackageManagerCorePrivate::runPackageUpdater() stopProcessesForUpdates(componentsToInstall); if (m_dependsOnLocalInstallerBinary && !KDUpdater::pathIsOnLocalDevice(qApp->applicationFilePath())) { - setStatus(PackageManagerCore::Failure); - ProgressCoordinator::instance()->emitLabelAndDetailTextChanged(tr("\nInstallation aborted!")); - MessageBoxHandler::critical(MessageBoxHandler::currentBestSuitParent(), - QLatin1String("installationError"), tr("Error"), tr("It is not possible to install from network location")); - emit installationFinished(); - throw; + throw Error(tr("It is not possible to run that opertion from a network location")); } bool updateAdminRights = false; @@ -1681,12 +1669,12 @@ void PackageManagerCorePrivate::runPackageUpdater() if (adminRightsGained) m_core->dropAdminRights(); emit installationFinished(); - - throw; + return false; } + return true; } -void PackageManagerCorePrivate::runUninstaller() +bool PackageManagerCorePrivate::runUninstaller() { bool adminRightsGained = false; try { @@ -1755,9 +1743,9 @@ void PackageManagerCorePrivate::runUninstaller() if (adminRightsGained) m_core->dropAdminRights(); emit uninstallationFinished(); - - throw; + return false; } + return true; } void PackageManagerCorePrivate::installComponent(Component *component, double progressOperationSize, diff --git a/src/libs/installer/packagemanagercore_p.h b/src/libs/installer/packagemanagercore_p.h index ecf2f38d4..d2d97e115 100644 --- a/src/libs/installer/packagemanagercore_p.h +++ b/src/libs/installer/packagemanagercore_p.h @@ -115,16 +115,16 @@ public: bool appendComponentToInstall(Component *components); QString installReason(Component *component); - void runInstaller(); + bool runInstaller(); bool isInstaller() const; - void runUninstaller(); + bool runUninstaller(); bool isUninstaller() const; void runUpdater(); bool isUpdater() const; - void runPackageUpdater(); + bool runPackageUpdater(); bool isPackageManager() const; QString replaceVariables(const QString &str) const; |