diff options
Diffstat (limited to 'src/sdk')
-rw-r--r-- | src/sdk/commandlineinterface.cpp | 26 | ||||
-rw-r--r-- | src/sdk/commandlineinterface.h | 3 | ||||
-rw-r--r-- | src/sdk/tabcontroller.cpp | 19 |
3 files changed, 28 insertions, 20 deletions
diff --git a/src/sdk/commandlineinterface.cpp b/src/sdk/commandlineinterface.cpp index 69aa36c43..a6cd22151 100644 --- a/src/sdk/commandlineinterface.cpp +++ b/src/sdk/commandlineinterface.cpp @@ -132,7 +132,7 @@ int CommandLineInterface::searchAvailablePackages() QString regexp; if (!m_positionalArguments.isEmpty()) regexp = m_positionalArguments.first(); - m_core->listAvailablePackages(regexp); + m_core->listAvailablePackages(regexp, parsePackageFilters()); return EXIT_SUCCESS; } @@ -271,3 +271,27 @@ bool CommandLineInterface::setTargetDir() } return false; } + +QHash<QString, QString> CommandLineInterface::parsePackageFilters() +{ + QHash<QString, QString> filterHash; + if (m_parser.isSet(CommandLineOptions::scFilterPackagesLong)) { + const QStringList filterList = m_parser.value(CommandLineOptions::scFilterPackagesLong) + .split(QLatin1Char(',')); + + for (auto &filter : filterList) { + const int i = filter.indexOf(QLatin1Char('=')); + const QString element = filter.left(i).trimmed(); + const QString value = filter.mid(i + 1).trimmed(); + + if ((i == -1) || (filter.count(QLatin1Char('=') > 1)) + || element.isEmpty() || value.isEmpty()) { + qCWarning(QInstaller::lcInstallerInstallLog).nospace() << "Ignoring unknown entry " + << filter << "in package filter arguments. Please use syntax \"element=regex,...\"."; + continue; + } + filterHash.insert(element, value); + } + } + return filterHash; +} diff --git a/src/sdk/commandlineinterface.h b/src/sdk/commandlineinterface.h index 2627bc6f8..29bae74a4 100644 --- a/src/sdk/commandlineinterface.h +++ b/src/sdk/commandlineinterface.h @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2020 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -54,6 +54,7 @@ private: bool initialize(); bool checkLicense(); bool setTargetDir(); + QHash<QString, QString> parsePackageFilters(); QStringList m_positionalArguments; }; diff --git a/src/sdk/tabcontroller.cpp b/src/sdk/tabcontroller.cpp index 5e2f1ed13..3bcb3f11a 100644 --- a/src/sdk/tabcontroller.cpp +++ b/src/sdk/tabcontroller.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -166,23 +166,6 @@ void TabController::restartWizard() void TabController::onSettingsButtonClicked() { SettingsDialog dialog(d->m_core); - // set custom stylesheet - const QString styleSheetFile = d->m_core->settings().styleSheet(); - if (!styleSheetFile.isEmpty()) { - QFile sheet(styleSheetFile); - if (sheet.exists()) { - if (sheet.open(QIODevice::ReadOnly)) { - dialog.setStyleSheet(QString::fromLatin1(sheet.readAll())); - } else { - qCWarning(QInstaller::lcDeveloperBuild) << "The specified style sheet file " - "can not be opened."; - } - } else { - qCWarning(QInstaller::lcDeveloperBuild) << "A style sheet file is specified, " - "but it does not exist."; - } - } - connect(&dialog, &SettingsDialog::networkSettingsChanged, this, &TabController::onNetworkSettingsChanged); dialog.exec(); |