diff options
author | Christian Strømme <christian.stromme@qt.io> | 2018-02-27 16:50:20 +0100 |
---|---|---|
committer | Christian Stromme <christian.stromme@qt.io> | 2018-03-07 10:32:27 +0000 |
commit | 144b199e44269473b88a85f26a31895e98104922 (patch) | |
tree | d6a184b346e724a3d6a8e8f1b5cfcedd8309ff23 /src/runtime/q3dsslideplayer_p.h | |
parent | e61d954e332c65fe5087d7a91e049e0fa9571a4b (diff) |
Minor clean-up of the slide deck and player code
- Keep track of a component's parent slide in the slide deck.
- Set the slide player on all slides attached data - we already
allocate and drag the pointer for it around, so let's use it for
something useful.
Change-Id: Iefcc4e5cd171f397381686cbca00f699611d8447
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/runtime/q3dsslideplayer_p.h')
-rw-r--r-- | src/runtime/q3dsslideplayer_p.h | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/runtime/q3dsslideplayer_p.h b/src/runtime/q3dsslideplayer_p.h index eca3d20..ba22538 100644 --- a/src/runtime/q3dsslideplayer_p.h +++ b/src/runtime/q3dsslideplayer_p.h @@ -125,11 +125,8 @@ private: Q3DSSlidePlayer(Q3DSAnimationManager *animationManager, Q3DSSceneManager *sceneManager, Q3DSComponentNode *component, - Q3DSSlide *parentSlide, QObject *parent = nullptr); - Q3DSSlidePlayer *aquireComponentPlayer(Q3DSComponentNode *component, Q3DSSlide *parent); - void init(); void reset(); void setInternalState(PlayerState state); @@ -155,7 +152,6 @@ private: Q3DSSceneManager *m_sceneManager; Q3DSComponentNode *m_component = nullptr; - Q3DSSlide *m_parent = nullptr; Q3DSAnimationManager *m_animationManager; PlayerMode m_mode = PlayerMode::Viewer; PlayerType m_type = PlayerType::Slide; @@ -164,10 +160,12 @@ private: class Q3DSV_PRIVATE_EXPORT Q3DSSlideDeck { public: - Q3DSSlideDeck(Q3DSSlide *masterSlide) + Q3DSSlideDeck(Q3DSSlide *masterSlide, Q3DSSlide *parent = nullptr) : m_masterSlide(masterSlide) + , m_parent(parent) { Q_ASSERT(masterSlide); + Q_ASSERT_X(!masterSlide->parent(), Q_FUNC_INFO, "Slide is not a master slide!"); if (!masterSlide->firstChild()) { qWarning("No slides?"); return; @@ -304,21 +302,24 @@ public: return found ? index : -1; } -private: + Q3DSSlide *parentSlide() const { return m_parent; } + Q3DSSlide *masterSlide() const { return m_masterSlide; } + void bind(Q3DSSlidePlayer *player) { - if (player == m_player) - return; + if (player == m_player) + return; - if (m_player) - m_player->setSlideDeck(nullptr); + if (m_player) + m_player->setSlideDeck(nullptr); - m_player = player; + m_player = player; } - friend class Q3DSSlidePlayer; +private: Q3DSSlidePlayer *m_player = nullptr; Q3DSSlide *m_masterSlide = nullptr; + Q3DSSlide *m_parent = nullptr; int m_index = -1; }; |