44
55#include " addonconditionwatcherfeaturesenabled.h"
66
7- #include " feature/feature.h"
7+ #include " feature/featuremodel.h"
8+ #include " feature/featureproxy.h"
89#include " leakdetector.h"
910
1011// static
@@ -15,8 +16,7 @@ AddonConditionWatcher* AddonConditionWatcherFeaturesEnabled::maybeCreate(
1516 }
1617
1718 for (const QString& featureName : features) {
18- const Feature* feature = Feature::getOrNull (featureName);
19- if (!feature) {
19+ if (!FeatureModel::instance ()->get (featureName)) {
2020 return nullptr ;
2121 }
2222 }
@@ -32,10 +32,11 @@ AddonConditionWatcherFeaturesEnabled::AddonConditionWatcherFeaturesEnabled(
3232 m_currentStatus = conditionApplied ();
3333
3434 for (const QString& featureName : m_features) {
35- const Feature* feature = Feature::get (featureName);
36- Q_ASSERT (feature);
35+ auto * proxy =
36+ qobject_cast<FeatureProxy*>(FeatureModel::instance ()->get (featureName));
37+ Q_ASSERT (proxy);
3738
38- connect (feature , &Feature ::supportedChanged, this , [this ]() {
39+ connect (proxy , &FeatureProxy ::supportedChanged, this , [this ]() {
3940 bool newStatus = conditionApplied ();
4041 if (m_currentStatus != newStatus) {
4142 m_currentStatus = newStatus;
@@ -51,11 +52,7 @@ AddonConditionWatcherFeaturesEnabled::~AddonConditionWatcherFeaturesEnabled() {
5152
5253bool AddonConditionWatcherFeaturesEnabled::conditionApplied () const {
5354 for (const QString& featureName : m_features) {
54- // If the feature doesn't exist, we crash.
55- const Feature* feature = Feature::get (featureName);
56- Q_ASSERT (feature);
57-
58- if (!feature->isSupported ()) {
55+ if (!FeatureModel::instance ()->isEnabledById (featureName)) {
5956 return false ;
6057 }
6158 }
0 commit comments