forked from qt-creator/qt-creator
Utils: Make AspectContainer a QObject
... and add a 'void applied()' signal. I actually wanted to avoid that, but it seems to be a recurring pattern of usage to do something on top of plain apply for all children, like triggering IVersionControl::configurationChanged in the VCS plugins. Change-Id: Ib64c3147c6ba30b178237e51a3a377a291c550f2 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -2089,8 +2089,8 @@ public:
|
|||||||
|
|
||||||
} // Internal
|
} // Internal
|
||||||
|
|
||||||
AspectContainer::AspectContainer()
|
AspectContainer::AspectContainer(QObject *parent)
|
||||||
: d(new Internal::AspectContainerPrivate)
|
: QObject(parent), d(new Internal::AspectContainerPrivate)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -2192,6 +2192,8 @@ void AspectContainer::apply()
|
|||||||
{
|
{
|
||||||
for (BaseAspect *aspect : qAsConst(d->m_items))
|
for (BaseAspect *aspect : qAsConst(d->m_items))
|
||||||
aspect->apply();
|
aspect->apply();
|
||||||
|
|
||||||
|
emit applied();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AspectContainer::cancel()
|
void AspectContainer::cancel()
|
||||||
|
|||||||
@@ -483,10 +483,12 @@ private:
|
|||||||
std::unique_ptr<Internal::TextDisplayPrivate> d;
|
std::unique_ptr<Internal::TextDisplayPrivate> d;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QTCREATOR_UTILS_EXPORT AspectContainer
|
class QTCREATOR_UTILS_EXPORT AspectContainer : public QObject
|
||||||
{
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
AspectContainer();
|
AspectContainer(QObject *parent = nullptr);
|
||||||
~AspectContainer();
|
~AspectContainer();
|
||||||
|
|
||||||
AspectContainer(const AspectContainer &) = delete;
|
AspectContainer(const AspectContainer &) = delete;
|
||||||
@@ -547,6 +549,9 @@ public:
|
|||||||
const_iterator begin() const;
|
const_iterator begin() const;
|
||||||
const_iterator end() const;
|
const_iterator end() const;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void applied();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<Internal::AspectContainerPrivate> d;
|
std::unique_ptr<Internal::AspectContainerPrivate> d;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
namespace Docker {
|
namespace Docker {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
class DockerSettings : public QObject, public Utils::AspectContainer
|
class DockerSettings : public Utils::AspectContainer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DockerSettings();
|
DockerSettings();
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
namespace QmakeProjectManager {
|
namespace QmakeProjectManager {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
class QmakeSettings : public QObject, public Utils::AspectContainer
|
class QmakeSettings : public Utils::AspectContainer
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user