diff options
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index 3cc44a7e5..652ecb88a 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -43,10 +43,12 @@ #include "adminauthorization.h" #include "binaryformat.h" #include "component.h" +#include "scriptengine.h" #include "componentmodel.h" #include "errors.h" #include "fileutils.h" #include "fsengineclient.h" +#include "globals.h" #include "messageboxhandler.h" #include "packagemanagercore.h" #include "progresscoordinator.h" @@ -58,7 +60,6 @@ #include "kdupdaterfiledownloaderfactory.h" #include "kdupdaterupdatesourcesinfo.h" #include "kdupdaterupdateoperationfactory.h" -#include "kdupdaterupdatefinder.h" #include <productkeycheck.h> @@ -201,6 +202,7 @@ static void deferredRename(const QString &oldName, const QString &newName, bool PackageManagerCorePrivate::PackageManagerCorePrivate(PackageManagerCore *core) : m_updateFinder(0) + , m_updaterApplication(new DummyConfigurationInterface) , m_FSEngineClientHandler(0) , m_core(core) , m_repoMetaInfoJob(0) @@ -208,6 +210,7 @@ PackageManagerCorePrivate::PackageManagerCorePrivate(PackageManagerCore *core) , m_repoFetched(false) , m_updateSourcesAdded(false) , m_componentsToInstallCalculated(false) + , m_scriptEngine(0) , m_proxyFactory(0) , m_defaultModel(0) , m_updaterModel(0) @@ -217,6 +220,7 @@ PackageManagerCorePrivate::PackageManagerCorePrivate(PackageManagerCore *core) PackageManagerCorePrivate::PackageManagerCorePrivate(PackageManagerCore *core, qint64 magicInstallerMaker, const OperationList &performedOperations) : m_updateFinder(0) + , m_updaterApplication(new DummyConfigurationInterface) , m_FSEngineClientHandler(initFSEngineClientHandler()) , m_status(PackageManagerCore::Unfinished) , m_forceRestart(false) @@ -233,6 +237,7 @@ PackageManagerCorePrivate::PackageManagerCorePrivate(PackageManagerCore *core, q , m_updateSourcesAdded(false) , m_magicBinaryMarker(magicInstallerMaker) , m_componentsToInstallCalculated(false) + , m_scriptEngine(0) , m_proxyFactory(0) , m_defaultModel(0) , m_updaterModel(0) @@ -258,6 +263,7 @@ PackageManagerCorePrivate::~PackageManagerCorePrivate() m_FSEngineClientHandler->setActive(false); delete m_updateFinder; + delete m_scriptEngine; delete m_proxyFactory; delete m_defaultModel; @@ -384,6 +390,13 @@ bool PackageManagerCorePrivate::buildComponentTree(QHash<QString, Component*> &c return true; } +ScriptEngine *PackageManagerCorePrivate::scriptEngine() +{ + if (!m_scriptEngine) + m_scriptEngine = new ScriptEngine(m_core); + return m_scriptEngine; +} + void PackageManagerCorePrivate::clearAllComponentLists() { qDeleteAll(m_rootComponents); @@ -422,14 +435,14 @@ void PackageManagerCorePrivate::clearUpdaterComponentLists() m_componentsToInstallCalculated = false; } -QList<Component *> &PackageManagerCorePrivate::replacementDependencyComponents(RunMode mode) +QList<Component *> &PackageManagerCorePrivate::replacementDependencyComponents() { - return mode == AllMode ? m_rootDependencyReplacements : m_updaterDependencyReplacements; + return (!isUpdater()) ? m_rootDependencyReplacements : m_updaterDependencyReplacements; } -QHash<QString, QPair<Component*, Component*> > &PackageManagerCorePrivate::componentsToReplace(RunMode mode) +QHash<QString, QPair<Component*, Component*> > &PackageManagerCorePrivate::componentsToReplace() { - return mode == AllMode ? m_componentsToReplaceAllMode : m_componentsToReplaceUpdaterMode; + return (!isUpdater()) ? m_componentsToReplaceAllMode : m_componentsToReplaceUpdaterMode; } void PackageManagerCorePrivate::clearComponentsToInstall() @@ -453,7 +466,7 @@ bool PackageManagerCorePrivate::appendComponentsToInstall(const QList<Component relevantComponentForAutoDependOn = m_updaterComponents + m_updaterComponentsDeps; else { foreach (QInstaller::Component *component, m_rootComponents) - relevantComponentForAutoDependOn += component->childComponents(true, AllMode); + relevantComponentForAutoDependOn += component->childComponents(Component::Descendants); } QList<Component*> notAppendedComponents; // for example components with unresolved dependencies @@ -557,13 +570,13 @@ QString PackageManagerCorePrivate::installReason(Component *component) void PackageManagerCorePrivate::initialize(const QHash<QString, QString> ¶ms) { - if (!ProductKeyCheck::instance()->hasValidKey()) { + if (!ProductKeyCheck::instance(m_core)->hasValidKey()) { if (m_core->isInstaller()) { - setStatus(PackageManagerCore::Failure, ProductKeyCheck::instance()->lastErrorString()); + setStatus(PackageManagerCore::Failure, ProductKeyCheck::instance(m_core)->lastErrorString()); } else { MessageBoxHandler::warning(MessageBoxHandler::currentBestSuitParent(), - QLatin1String("ProductKeyCheckError"), ProductKeyCheck::instance()->lastErrorString(), - ProductKeyCheck::instance()->maintainanceToolDetailErrorNotice(), QMessageBox::Ok); + QLatin1String("ProductKeyCheckError"), ProductKeyCheck::instance(m_core)->lastErrorString(), + ProductKeyCheck::instance(m_core)->maintainanceToolDetailErrorNotice(), QMessageBox::Ok); } } @@ -775,7 +788,7 @@ void PackageManagerCorePrivate::writeMaintenanceConfigFiles() QVariantHash variables; QSettingsWrapper cfg(iniPath, QSettingsWrapper::IniFormat); foreach (const QString &key, m_data.keys()) { - if (key != scRunProgramDescription && key != scRunProgram) + if (key != scRunProgramDescription && key != scRunProgram && key != scRunProgramArguments) variables.insert(key, m_data.value(key)); } cfg.setValue(QLatin1String("Variables"), variables); @@ -2008,7 +2021,7 @@ void PackageManagerCorePrivate::runUndoOperations(const OperationList &undoOpera if (!componentName.isEmpty()) { Component *component = m_core->componentByName(componentName); if (!component) - component = componentsToReplace(m_core->runMode()).value(componentName).second; + component = componentsToReplace().value(componentName).second; if (component) { component->setUninstalled(); packages.removePackage(component->name()); @@ -2041,7 +2054,6 @@ PackagesList PackageManagerCorePrivate::remotePackages() m_updateFinder = new KDUpdater::UpdateFinder(&m_updaterApplication); m_updateFinder->setAutoDelete(false); - m_updateFinder->setUpdateType(KDUpdater::PackageUpdate | KDUpdater::NewPackage); m_updateFinder->run(); if (m_updateFinder->updates().isEmpty()) { @@ -2285,8 +2297,8 @@ bool PackageManagerCorePrivate::appendComponentsToUninstall(const QList<Componen foreach (Component *c, installedComponents) { const QString replaces = c->value(scReplaces); - QStringList possibleNames = replaces.split(scCommaRegExp, QString::SkipEmptyParts); - possibleNames.append(c->name()); + const QStringList possibleNames = replaces.split(QInstaller::commaRegExp(), + QString::SkipEmptyParts) << c->name(); foreach (const QString &possibleName, possibleNames) autoDependencies.removeAll(possibleName); } |