diff options
| author | Dominik Holland <dominik.holland@qt.io> | 2024-05-14 11:40:43 +0200 |
|---|---|---|
| committer | Dominik Holland <dominik.holland@qt.io> | 2024-05-22 15:30:41 +0200 |
| commit | 08a72e2f653df9840a4d664afb8cac623296cb94 (patch) | |
| tree | 43cde8bb9d2ecc74415eca0d1110ef1a971c5880 /src/interfaceframework/qifconfiguration.cpp | |
| parent | 2c134de7c2f8761d2d6cd74b4fe11fd1ff650545 (diff) | |
QIfConfiguration: Add a function to trigger the auto discovery
We already allow to change the discovery mode, preferredBackends and
the ServiceObject itself. Allowing to start the auto discovery as well
makes it possible to control the complete backend selection of multiple
features using the QIfConfiguration.
Change-Id: Iffc475b6bfcd1e027d4a744d94ce6137165924e1
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
Diffstat (limited to 'src/interfaceframework/qifconfiguration.cpp')
| -rw-r--r-- | src/interfaceframework/qifconfiguration.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/interfaceframework/qifconfiguration.cpp b/src/interfaceframework/qifconfiguration.cpp index 18e064e9..c99b54f7 100644 --- a/src/interfaceframework/qifconfiguration.cpp +++ b/src/interfaceframework/qifconfiguration.cpp @@ -328,6 +328,19 @@ bool QIfConfigurationManager::setServiceObject(QIfSettingsObject *so, QIfService return true; } +bool QIfConfigurationManager::startAutoDiscovery(QIfSettingsObject *so) +{ + Q_ASSERT(so); + for (auto &feature : std::as_const(so->features)) { + if (!feature) + continue; + qCDebug(qLcIfConfig) << "Starting auto discovery of " << feature; + feature->startAutoDiscovery(); + } + + return true; +} + void QIfConfigurationManager::parseEnv(const QByteArray &rulesSrc, const std::function<void(const QString &, const QString &)> &func) { const QString content = QString::fromLocal8Bit(rulesSrc); @@ -1069,6 +1082,25 @@ bool QIfConfiguration::setServiceObject(QIfServiceObject *serviceObject) return false; } +/*! + Starts the auto discovery of all QIfAbstractFeature or QIfAbstractFeatureListModel instances + of this configuration. + + Returns \c false if starting the auto discovery failed because an override was active, returns + \c true otherwise. + + \since 6.8 + \sa {QIfAbstractFeature::startAutoDiscovery()} {Environment Overrides} +*/ +bool QIfConfiguration::startAutoDiscovery() +{ + Q_D(QIfConfiguration); + + Q_CHECK_SETTINGSOBJECT(false); + + return QIfConfigurationManager::instance()->startAutoDiscovery(d->m_settingsObject); +} + void QIfConfiguration::classBegin() { Q_D(QIfConfiguration); @@ -1370,6 +1402,22 @@ bool QIfConfiguration::isServiceObjectSet(const QString &group) return so ? so->serviceObjectSet : false; } +/*! + Starts the auto discovery of all QIfAbstractFeature or QIfAbstractFeatureListModel instances + in the configuration \a group. + + Returns \c false if starting the auto discovery failed because an override was active, returns + \c true otherwise. + + \since 6.8 + \sa {QIfAbstractFeature::startAutoDiscovery()} {Environment Overrides} +*/ +bool QIfConfiguration::startAutoDiscovery(const QString &group) +{ + QIfSettingsObject *so = QIfConfigurationManager::instance()->settingsObject(group, true); + return QIfConfigurationManager::instance()->startAutoDiscovery(so); +} + QT_END_NAMESPACE |
