diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/installer/globals.cpp | 9 | ||||
-rw-r--r-- | src/libs/installer/globals.h | 2 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 10 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 28 | ||||
-rw-r--r-- | src/libs/installer/packagemanagercore_p.h | 3 | ||||
-rw-r--r-- | src/sdk/installerbase.cpp | 18 | ||||
-rw-r--r-- | src/sdk/installerbase.h | 1 |
7 files changed, 55 insertions, 16 deletions
diff --git a/src/libs/installer/globals.cpp b/src/libs/installer/globals.cpp index c059b6630..48195f0dd 100644 --- a/src/libs/installer/globals.cpp +++ b/src/libs/installer/globals.cpp @@ -25,6 +25,8 @@ ** $QT_END_LICENSE$ ** **************************************************************************/ +#include <QTextDocument> + #include "globals.h" const char IFW_COMPONENT_CHECKER[] = "ifw.componentChecker"; @@ -56,5 +58,12 @@ QRegExp commaRegExp() return *staticCommaRegExp(); } +QString htmlToString(const QString &html) +{ + QTextDocument doc; + doc.setHtml(html); + return doc.toPlainText(); +} + } // namespace QInstaller diff --git a/src/libs/installer/globals.h b/src/libs/installer/globals.h index a5bd47ac8..b92dfd1bb 100644 --- a/src/libs/installer/globals.h +++ b/src/libs/installer/globals.h @@ -44,6 +44,8 @@ QStringList INSTALLER_EXPORT loggingCategories(); QRegExp INSTALLER_EXPORT commaRegExp(); +QString htmlToString(const QString &html); + } // QInstaller #endif // GLOBALS_H diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 6c30208db..2be6eaeb0 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -1837,16 +1837,8 @@ void PackageManagerCore::listInstalledPackages() void PackageManagerCore::updateComponentsSilently() { - //Check if there are processes running in the install - QStringList excludeFiles; - excludeFiles.append(maintenanceToolName()); - - QStringList runningProcesses = d->runningInstallerProcesses(excludeFiles); - if (!runningProcesses.isEmpty()) { - qDebug() << "Unable to update components. Please stop these processes: " - << runningProcesses << " and try again."; + if (d->runningProcessesFound()) return; - } autoAcceptMessageBoxes(); diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index 308bfa097..f33d03bec 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -1981,6 +1981,20 @@ void PackageManagerCorePrivate::installComponent(Component *component, double pr ProgressCoordinator::instance()->emitDetailTextChanged(tr("Done")); } +bool PackageManagerCorePrivate::runningProcessesFound() +{ + //Check if there are processes running in the install + QStringList excludeFiles; + excludeFiles.append(maintenanceToolName()); + QStringList runningProcesses = runningInstallerProcesses(excludeFiles); + if (!runningProcesses.isEmpty()) { + qDebug() << "Unable to update components. Please stop these processes: " + << runningProcesses << " and try again."; + return true; + } + return false; +} + // -- private void PackageManagerCorePrivate::deleteMaintenanceTool() @@ -2498,5 +2512,19 @@ QStringList PackageManagerCorePrivate::runningInstallerProcesses(const QStringLi return checkRunningProcessesFromList(resultFiles); } +bool PackageManagerCorePrivate::calculateComponentsAndRun() +{ + QString htmlOutput; + bool componentsOk = m_core->calculateComponents(&htmlOutput); + qDebug().noquote() << htmlToString(htmlOutput); + if (componentsOk) { + if (m_core->run()) { + m_core->writeMaintenanceTool(); + return true; + } + } + return false; +} + } // namespace QInstaller diff --git a/src/libs/installer/packagemanagercore_p.h b/src/libs/installer/packagemanagercore_p.h index 3e8f831a3..c7b657eb8 100644 --- a/src/libs/installer/packagemanagercore_p.h +++ b/src/libs/installer/packagemanagercore_p.h @@ -165,6 +165,8 @@ public: void installComponent(Component *component, double progressOperationSize, bool adminRightsGained = false); + bool runningProcessesFound(); + signals: void installationStarted(); void installationFinished(); @@ -239,6 +241,7 @@ private: void processFilesForDelayedDeletion(); void findExecutablesRecursive(const QString &path, const QStringList &excludeFiles, QStringList *result); QStringList runningInstallerProcesses(const QStringList &exludeFiles); + bool calculateComponentsAndRun(); private: PackageManagerCore *m_core; diff --git a/src/sdk/installerbase.cpp b/src/sdk/installerbase.cpp index 5c8478036..918a846fc 100644 --- a/src/sdk/installerbase.cpp +++ b/src/sdk/installerbase.cpp @@ -296,19 +296,14 @@ int InstallerBase::run() if (parser.isSet(QLatin1String(CommandLineOptions::SilentUpdate))) { if (m_core->isInstaller()) throw QInstaller::Error(QLatin1String("Cannot start installer binary as updater.")); - const ProductKeyCheck *const productKeyCheck = ProductKeyCheck::instance(); - if (!productKeyCheck->hasValidLicense()) - throw QInstaller::Error(QLatin1String("Silent update not allowed.")); + checkLicense(); m_core->setUpdater(); m_core->updateComponentsSilently(); } else if (parser.isSet(QLatin1String(CommandLineOptions::ListInstalledPackages))){ if (m_core->isInstaller()) throw QInstaller::Error(QLatin1String("Cannot start installer binary as package manager.")); + checkLicense(); m_core->setPackageManager(); - - const ProductKeyCheck *const productKeyCheck = ProductKeyCheck::instance(); - if (!productKeyCheck->hasValidLicense()) - throw QInstaller::Error(QLatin1String("No valid license found.")); m_core->listInstalledPackages(); } else { //create the wizard GUI @@ -384,3 +379,12 @@ QStringList InstallerBase::repositories(const QString &list) const qDebug().noquote() << "Adding custom repository:" << item; return items; } + +void InstallerBase::checkLicense() +{ + const ProductKeyCheck *const productKeyCheck = ProductKeyCheck::instance(); + if (!productKeyCheck->hasValidLicense()) { + qDebug() << "No valid license found."; + throw QInstaller::Error(QLatin1String("No valid license found.")); + } +} diff --git a/src/sdk/installerbase.h b/src/sdk/installerbase.h index 677f567ee..3f51331cd 100644 --- a/src/sdk/installerbase.h +++ b/src/sdk/installerbase.h @@ -49,6 +49,7 @@ public: private: void dumpResourceTree() const; QStringList repositories(const QString &list) const; + void checkLicense(); private: QInstaller::PackageManagerCore *m_core; |