diff options
author | Mike Krus <mike.krus@kdab.com> | 2019-12-05 15:07:58 +0000 |
---|---|---|
committer | Mike Krus <mike.krus@kdab.com> | 2019-12-13 19:23:18 +0000 |
commit | 7d62c1448721a261c053a3d8adabc21787f1d955 (patch) | |
tree | 020564a5eb5b8a2ad216e663357c14736186c499 /src/core/aspects | |
parent | 0d16efe6ec938d672f6f442e63cb850eb847a5e6 (diff) |
Implement getting list of aspects from system information class
Change-Id: I999dfbb5c139ff8af2b1de9255f76ac132ae2dc0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/core/aspects')
-rw-r--r-- | src/core/aspects/qaspectengine.cpp | 14 | ||||
-rw-r--r-- | src/core/aspects/qaspectmanager.cpp | 5 | ||||
-rw-r--r-- | src/core/aspects/qaspectmanager_p.h | 4 |
3 files changed, 10 insertions, 13 deletions
diff --git a/src/core/aspects/qaspectengine.cpp b/src/core/aspects/qaspectengine.cpp index 426741a61..e16635cb2 100644 --- a/src/core/aspects/qaspectengine.cpp +++ b/src/core/aspects/qaspectengine.cpp @@ -55,6 +55,7 @@ #include <Qt3DCore/private/qpostman_p.h> #include <Qt3DCore/private/qscene_p.h> #include <Qt3DCore/private/qservicelocator_p.h> +#include <Qt3DCore/private/qsysteminformationservice_p.h> #include <Qt3DCore/qt3dcore-config.h> #if QT_CONFIG(qt3d_profile_jobs) @@ -276,6 +277,7 @@ void QAspectEnginePrivate::initialize() arbiter->setScene(m_scene); m_initialized = true; m_aspectManager->setPostConstructorInit(m_scene->postConstructorInit()); + Q_Q(QAspectEngine); #if QT_CONFIG(qt3d_profile_jobs) m_commandDebugger->setAspectEngine(q_func()); m_commandDebugger->initialize(); @@ -419,16 +421,8 @@ QVariant QAspectEngine::executeCommand(const QString &command) if (d->m_aspects.isEmpty()) return QLatin1String("No loaded aspect"); - QString reply; - reply += QLatin1String("Loaded aspects:"); - for (QAbstractAspect *aspect : qAsConst(d->m_aspects)) { - const QString name = d->m_factory.aspectName(aspect); - if (!name.isEmpty()) - reply += QLatin1String("\n * ") + name; - else - reply += QLatin1String("\n * <unnamed>"); - } - return reply; + const QStringList names = d->m_aspectManager->serviceLocator()->systemInformation()->aspectNames(); + return names.join(QLatin1String("\n")); } QStringList args = command.split(QLatin1Char(' ')); diff --git a/src/core/aspects/qaspectmanager.cpp b/src/core/aspects/qaspectmanager.cpp index 240955a06..df90fd57c 100644 --- a/src/core/aspects/qaspectmanager.cpp +++ b/src/core/aspects/qaspectmanager.cpp @@ -99,13 +99,14 @@ int RequestFrameEvent::requestEventType = QEvent::registerEventType(); \class Qt3DCore::QAspectManager \internal */ -QAspectManager::QAspectManager(QObject *parent) +QAspectManager::QAspectManager(QAspectEngine *parent) : QObject(parent) + , m_engine(parent) , m_root(nullptr) , m_scheduler(new QScheduler(this)) , m_jobManager(new QAspectJobManager(this)) , m_changeArbiter(new QChangeArbiter(this)) - , m_serviceLocator(new QServiceLocator()) + , m_serviceLocator(new QServiceLocator(parent)) , m_simulationLoopRunning(false) , m_driveMode(QAspectEngine::Automatic) , m_postConstructorInit(nullptr) diff --git a/src/core/aspects/qaspectmanager_p.h b/src/core/aspects/qaspectmanager_p.h index ebc148324..64c75586a 100644 --- a/src/core/aspects/qaspectmanager_p.h +++ b/src/core/aspects/qaspectmanager_p.h @@ -73,6 +73,7 @@ class QScheduler; class QChangeArbiter; class QAbstractAspect; class QAbstractAspectJobManager; +class QAspectEngine; class QServiceLocator; class NodePostConstructorInit; struct NodeTreeChange; @@ -81,7 +82,7 @@ class Q_3DCORE_PRIVATE_EXPORT QAspectManager : public QObject { Q_OBJECT public: - explicit QAspectManager(QObject *parent = nullptr); + explicit QAspectManager(QAspectEngine *parent = nullptr); ~QAspectManager(); void setRunMode(QAspectEngine::RunMode mode); @@ -115,6 +116,7 @@ private: bool event(QEvent *event) override; void requestNextFrame(); + QAspectEngine *m_engine; QVector<QAbstractAspect *> m_aspects; QEntity *m_root; QVariantMap m_data; |