diff options
author | Konstantin Podsvirov <konstantin@podsvirov.pro> | 2017-08-28 14:25:27 +0300 |
---|---|---|
committer | Konstantin Podsvirov <konstantin@podsvirov.pro> | 2017-12-05 07:26:41 +0000 |
commit | 977610bfb490690310d72a7f8a0a02cf4e5ea278 (patch) | |
tree | 7d5629a907c56577083f38c5cc521cd72b906c45 /src/libs/installer/packagemanagercore_p.cpp | |
parent | 1f3eded578314fb903bf50447d614fd314bd0eec (diff) |
Add support dash (-) symbol in component name
Add colon (:) symbol as alternative separator beetwen
component name and version to use dash (-) symbol in
component name.
For names with dash (-) symbol use colon (:) symbol
as separator in dependencies between name and version,
even if you do not specify a version.
Requirement example: package-with-dash:>=1.2.3, stable:1.x,
demo:v1.0-rc1, backward-compatibility:.
Also add test 'tst_ComponentIdentifier' for check new feature.
Task-number: QTIFW-948
Change-Id: I6340c8001dec369ed8d33fcc4a92c7bce660aec1
Reviewed-by: Katja Marttila <katja.marttila@qt.io>
Diffstat (limited to 'src/libs/installer/packagemanagercore_p.cpp')
-rw-r--r-- | src/libs/installer/packagemanagercore_p.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/libs/installer/packagemanagercore_p.cpp b/src/libs/installer/packagemanagercore_p.cpp index fb802ef8b..ef288c1f2 100644 --- a/src/libs/installer/packagemanagercore_p.cpp +++ b/src/libs/installer/packagemanagercore_p.cpp @@ -529,7 +529,7 @@ UninstallerCalculator *PackageManagerCorePrivate::uninstallerCalculator() const QList<Component*> installedComponents; foreach (const QString &name, pmcp->localInstalledPackages().keys()) { - if (Component *component = m_core->componentByName(name)) { + if (Component *component = m_core->componentByName(PackageManagerCore::checkableName(name))) { if (!component->uninstallationRequested()) installedComponents.append(component); } @@ -1651,7 +1651,7 @@ bool PackageManagerCorePrivate::runPackageUpdater() const QString &name = operation->value(QLatin1String("component")).toString(); Component *component = componentsByName.value(name, 0); if (!component) - component = m_core->componentByName(name); + component = m_core->componentByName(PackageManagerCore::checkableName(name)); if (component) componentsByName.insert(name, component); @@ -2089,7 +2089,7 @@ void PackageManagerCorePrivate::runUndoOperations(const OperationList &undoOpera else if (button == QMessageBox::Ignore) ignoreError = true; } - Component *component = m_core->componentByName(componentName); + Component *component = m_core->componentByName(PackageManagerCore::checkableName(componentName)); if (!component) component = componentsToReplace().value(componentName).second; if (component) { @@ -2389,11 +2389,10 @@ OperationList PackageManagerCorePrivate::sortOperationsBasedOnComponentDependenc componentOperationHash[componentName].append(operation); } - const QRegExp dash(QLatin1String("-.*")); Graph<QString> componentGraph; // create the complete component graph foreach (const Component* node, m_core->components(PackageManagerCore::ComponentType::All)) { componentGraph.addNode(node->name()); - componentGraph.addEdges(node->name(), node->dependencies().replaceInStrings(dash, QString())); + componentGraph.addEdges(node->name(), m_core->parseNames(node->dependencies())); } const QStringList resolvedComponents = componentGraph.sort(); |