diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index e2dda5e31cb..7baa9ba38ce 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -92,9 +92,11 @@ public: /*! Constructs a BaseAspect. */ -BaseAspect::BaseAspect() +BaseAspect::BaseAspect(AspectContainer *container) : d(new Internal::BaseAspectPrivate) { + if (container) + container->registerAspect(this); addDataExtractor(this, &BaseAspect::value, &Data::value); } @@ -766,8 +768,8 @@ public: Constructs a StringAspect. */ -StringAspect::StringAspect() - : d(new Internal::StringAspectPrivate) +StringAspect::StringAspect(AspectContainer *container) + : BaseAspect(container), d(new Internal::StringAspectPrivate) { setDefaultValue(QString()); setSpan(2, 1); // Default: Label + something @@ -1359,8 +1361,8 @@ FilePathAspect::FilePathAspect() The color aspect is displayed using a QtColorButton. */ -ColorAspect::ColorAspect() - : d(new Internal::ColorAspectPrivate) +ColorAspect::ColorAspect(AspectContainer *container) + : BaseAspect(container), d(new Internal::ColorAspectPrivate) { setDefaultValue(QColor::fromRgb(0, 0, 0)); setSpan(1, 1); @@ -1426,8 +1428,8 @@ void ColorAspect::setVolatileValue(const QVariant &val) */ -BoolAspect::BoolAspect() - : d(new Internal::BoolAspectPrivate) +BoolAspect::BoolAspect(AspectContainer *container) + : BaseAspect(container), d(new Internal::BoolAspectPrivate) { setDefaultValue(false); setSpan(2, 1); @@ -1605,8 +1607,8 @@ CheckableDecider BoolAspect::checkableDecider() QRadioButtons in a QButtonGroup. */ -SelectionAspect::SelectionAspect() - : d(new Internal::SelectionAspectPrivate) +SelectionAspect::SelectionAspect(AspectContainer *container) + : BaseAspect(container), d(new Internal::SelectionAspectPrivate) { setSpan(2, 1); } @@ -1808,8 +1810,8 @@ QVariant SelectionAspect::itemValueForIndex(int index) const checkable items. */ -MultiSelectionAspect::MultiSelectionAspect() - : d(new Internal::MultiSelectionAspectPrivate(this)) +MultiSelectionAspect::MultiSelectionAspect(AspectContainer *container) + : BaseAspect(container), d(new Internal::MultiSelectionAspectPrivate(this)) { setDefaultValue(QStringList()); setSpan(2, 1); @@ -1915,8 +1917,8 @@ void MultiSelectionAspect::setValue(const QStringList &value) // IntegerAspect -IntegerAspect::IntegerAspect() - : d(new Internal::IntegerAspectPrivate) +IntegerAspect::IntegerAspect(AspectContainer *container) + : BaseAspect(container), d(new Internal::IntegerAspectPrivate) { setDefaultValue(qint64(0)); setSpan(2, 1); @@ -2051,8 +2053,8 @@ void IntegerAspect::setSingleStep(qint64 step) the display of the spin box. */ -DoubleAspect::DoubleAspect() - : d(new Internal::DoubleAspectPrivate) +DoubleAspect::DoubleAspect(AspectContainer *container) + : BaseAspect(container), d(new Internal::DoubleAspectPrivate) { setDefaultValue(double(0)); setSpan(2, 1); @@ -2206,8 +2208,8 @@ TriState TriState::fromVariant(const QVariant &variant) that is a list of strings. */ -StringListAspect::StringListAspect() - : d(new Internal::StringListAspectPrivate) +StringListAspect::StringListAspect(AspectContainer *container) + : BaseAspect(container), d(new Internal::StringListAspectPrivate) { setDefaultValue(QStringList()); } diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index ecfc9ee86bf..5fb16356ce3 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -45,7 +45,7 @@ class QTCREATOR_UTILS_EXPORT BaseAspect : public QObject Q_OBJECT public: - BaseAspect(); + BaseAspect(AspectContainer *container = nullptr); ~BaseAspect() override; Id id() const; @@ -213,7 +213,7 @@ class QTCREATOR_UTILS_EXPORT BoolAspect : public BaseAspect Q_OBJECT public: - BoolAspect(); + BoolAspect(AspectContainer *container = nullptr); ~BoolAspect() override; struct Data : BaseAspect::Data @@ -257,7 +257,7 @@ class QTCREATOR_UTILS_EXPORT ColorAspect : public BaseAspect Q_OBJECT public: - ColorAspect(); + ColorAspect(AspectContainer *container = nullptr); ~ColorAspect() override; struct Data : BaseAspect::Data @@ -282,7 +282,7 @@ class QTCREATOR_UTILS_EXPORT SelectionAspect : public BaseAspect Q_OBJECT public: - SelectionAspect(); + SelectionAspect(AspectContainer *container = nullptr); ~SelectionAspect() override; void addToLayout(Layouting::LayoutItem &parent) override; @@ -336,7 +336,7 @@ class QTCREATOR_UTILS_EXPORT MultiSelectionAspect : public BaseAspect Q_OBJECT public: - MultiSelectionAspect(); + MultiSelectionAspect(AspectContainer *container = nullptr); ~MultiSelectionAspect() override; void addToLayout(Layouting::LayoutItem &parent) override; @@ -359,7 +359,7 @@ class QTCREATOR_UTILS_EXPORT StringAspect : public BaseAspect Q_OBJECT public: - StringAspect(); + StringAspect(AspectContainer *container = nullptr); ~StringAspect() override; struct Data : BaseAspect::Data @@ -456,7 +456,7 @@ class QTCREATOR_UTILS_EXPORT IntegerAspect : public BaseAspect Q_OBJECT public: - IntegerAspect(); + IntegerAspect(AspectContainer *container = nullptr); ~IntegerAspect() override; void addToLayout(Layouting::LayoutItem &parent) override; @@ -494,7 +494,7 @@ class QTCREATOR_UTILS_EXPORT DoubleAspect : public BaseAspect Q_OBJECT public: - DoubleAspect(); + DoubleAspect(AspectContainer *container = nullptr); ~DoubleAspect() override; void addToLayout(Layouting::LayoutItem &parent) override; @@ -563,7 +563,7 @@ class QTCREATOR_UTILS_EXPORT StringListAspect : public BaseAspect Q_OBJECT public: - StringListAspect(); + StringListAspect(AspectContainer *container = nullptr); ~StringListAspect() override; void addToLayout(Layouting::LayoutItem &parent) override;