diff options
author | Kaj Grönholm <kaj.gronholm@qt.io> | 2020-09-18 14:40:33 +0300 |
---|---|---|
committer | Kaj Grönholm <kaj.gronholm@qt.io> | 2020-09-25 11:04:22 +0300 |
commit | 98d888b6beeda9e301625ecba8e377cf552e7231 (patch) | |
tree | 2201c7ee29accc46d78816c2f047b1e784a73df0 /src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp | |
parent | 3bcbc804004d293eba409b5e65ff5c5e38c572fe (diff) |
Improve timeline signal actionsv2.8.0-beta1
- Support new signal type object with icons. Bump generated UIP
version to 7.
- When creating a signal, also create initial onActivate action.
- Don't show basic node properties for signals, only the name.
- When adding new action to signal, default to onActivate and
emit signal.
- Show small ticks on timeline bar if onActivate or onDeactivate
actions have been set to the object.
Task-number: QT3DS-4165
Change-Id: I16d1129536ac4d22c23c27bbc95741aa66adf597
Reviewed-by: Antti Määttä <antti.maatta@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp')
-rw-r--r-- | src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp b/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp index 744c53a0..58529ad4 100644 --- a/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp +++ b/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp @@ -234,6 +234,34 @@ bool Qt3DSDMTimelineItemBinding::HasAction(bool inMaster) return theActions.size() > 0; } +ITimelineItem::ActivateActions Qt3DSDMTimelineItemBinding::getActivateActions() +{ + TActionHandleList theActions; + CDoc *theDoc = g_StudioApp.GetCore()->GetDoc(); + + Qt3DSDMSlideHandle theSlide = theDoc->GetActiveSlide(); + qt3dsdm::ISlideCore &theSlideCore(*m_StudioSystem->GetSlideCore()); + if (theSlideCore.IsSlide(theSlide)) { + m_StudioSystem->GetActionCore()->GetActions(theSlide, m_DataHandle, theActions); + // Check also master slide, to get actions inside component + TActionHandleList masterActions; + Qt3DSDMSlideHandle masterSlide = m_StudioSystem->GetSlideSystem()->GetMasterSlide(theSlide); + m_StudioSystem->GetActionCore()->GetActions(masterSlide, m_DataHandle, masterActions); + theActions.insert(theActions.end(), masterActions.begin(), masterActions.end()); + } + + ITimelineItem::ActivateActions activateActions = ITimelineItem::ActivateAction::None; + for (auto theIter = theActions.begin(); theIter != theActions.end(); ++theIter) { + auto info = m_StudioSystem->GetActionCore()->GetActionInfo(*theIter); + if (info.m_Event == L"onActivate") + activateActions |= ITimelineItem::ActivateAction::Activate; + else if (info.m_Event == L"onDeactivate") + activateActions |= ITimelineItem::ActivateAction::Deactivate; + } + + return activateActions; +} + bool Qt3DSDMTimelineItemBinding::ChildrenHasAction(bool inMaster) { // Get all the instances in this slidegraph |