summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/packagemanagercore_p.cpp
diff options
context:
space:
mode:
authorKonstantin Podsvirov <konstantin@podsvirov.pro>2017-08-28 14:25:27 +0300
committerKonstantin Podsvirov <konstantin@podsvirov.pro>2017-12-05 07:26:41 +0000
commit977610bfb490690310d72a7f8a0a02cf4e5ea278 (patch)
tree7d5629a907c56577083f38c5cc521cd72b906c45 /src/libs/installer/packagemanagercore_p.cpp
parent1f3eded578314fb903bf50447d614fd314bd0eec (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.cpp9
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();