summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Qt3DStudio
diff options
context:
space:
mode:
Diffstat (limited to 'src/Authoring/Qt3DStudio')
-rw-r--r--src/Authoring/Qt3DStudio/DragAndDrop/BasicObjectDropSource.cpp14
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Action/ActionView.cpp13
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/BasicObjects/BasicObjectsModel.cpp1
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.cpp4
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/ITimelineItem.h10
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.cpp28
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.h1
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/TimelineTranslationManager.cpp2
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineConstants.h1
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineWidget.cpp13
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineWidget.h1
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTimeline.cpp12
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTree.cpp16
-rw-r--r--src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTree.h3
-rw-r--r--src/Authoring/Qt3DStudio/Render/StudioRendererTranslation.cpp1
-rw-r--r--src/Authoring/Qt3DStudio/images.qrc6
-rw-r--r--src/Authoring/Qt3DStudio/images/Asset-Signal-Normal.pngbin0 -> 424 bytes
-rw-r--r--src/Authoring/Qt3DStudio/images/Asset-Signal-Normal@2x.pngbin0 -> 915 bytes
-rw-r--r--src/Authoring/Qt3DStudio/images/Objects-Signal-Disabled.pngbin0 -> 1562 bytes
-rw-r--r--src/Authoring/Qt3DStudio/images/Objects-Signal-Disabled@2x.pngbin0 -> 1829 bytes
-rw-r--r--src/Authoring/Qt3DStudio/images/Objects-Signal-Normal.pngbin0 -> 2099 bytes
-rw-r--r--src/Authoring/Qt3DStudio/images/Objects-Signal-Normal@2x.pngbin0 -> 2466 bytes
22 files changed, 121 insertions, 5 deletions
diff --git a/src/Authoring/Qt3DStudio/DragAndDrop/BasicObjectDropSource.cpp b/src/Authoring/Qt3DStudio/DragAndDrop/BasicObjectDropSource.cpp
index d99bd9a5..ecaae33a 100644
--- a/src/Authoring/Qt3DStudio/DragAndDrop/BasicObjectDropSource.cpp
+++ b/src/Authoring/Qt3DStudio/DragAndDrop/BasicObjectDropSource.cpp
@@ -163,6 +163,9 @@ CCmd *CBasicObjectDropSource::GenerateAssetCommand(qt3dsdm::Qt3DSDMInstanceHandl
case OBJTYPE_GROUP:
theComposerType = ComposerObjectTypes::Group;
break;
+ case OBJTYPE_SIGNAL:
+ theComposerType = ComposerObjectTypes::Signal;
+ break;
case OBJTYPE_IMAGE:
theComposerType = ComposerObjectTypes::Image;
break;
@@ -254,10 +257,17 @@ CCmd *CBasicObjectDropSource::GenerateAssetCommand(qt3dsdm::Qt3DSDMInstanceHandl
Q3DStudio::ImportUtils::GetInsertTypeForDropType(inDestType), thePoint,
theStartTime);
} else {
- SCOPED_DOCUMENT_EDITOR(*theDoc, QObject::tr("Add Instance"))
- ->CreateSceneGraphInstance(theComposerType, inTarget, inSlide, theInsertType,
+ ScopedDocumentEditor editor(
+ SCOPED_DOCUMENT_EDITOR(*theDoc, QObject::tr("Add Instance")));
+ Qt3DSDMInstanceHandle newHandle =
+ editor->CreateSceneGraphInstance(theComposerType, inTarget, inSlide, theInsertType,
thePoint, (EPrimitiveType)m_PrimitiveType, theStartTime,
false);
+
+ if (theComposerType == ComposerObjectTypes::Signal) {
+ // When creating a signal, automatically create also onActivate action
+ editor->AddAction(inSlide, newHandle, L"onActivate", L"Emit Signal");
+ }
}
}
return nullptr;
diff --git a/src/Authoring/Qt3DStudio/Palettes/Action/ActionView.cpp b/src/Authoring/Qt3DStudio/Palettes/Action/ActionView.cpp
index 56bd80dc..cd4c4fb6 100644
--- a/src/Authoring/Qt3DStudio/Palettes/Action/ActionView.cpp
+++ b/src/Authoring/Qt3DStudio/Palettes/Action/ActionView.cpp
@@ -394,8 +394,17 @@ void ActionView::addAction()
// Query data model bridge to see the applicable events and actions for this instance.
CClientDataModelBridge *theBridge = GetBridge();
- std::wstring theEventName = theBridge->GetDefaultEvent(m_itemHandle);
- std::wstring theHandlerName = theBridge->GetDefaultHandler(m_itemHandle);
+ // For signals, default to onActivate and emitting signal
+ std::wstring preferredEvent = L"";
+ std::wstring preferredHandler = L"";
+ auto info = m_objRefHelper->GetInfo(m_itemHandle);
+ if (info.m_Type == OBJTYPE_SIGNAL) {
+ preferredEvent = L"onActivate";
+ preferredHandler = L"Emit Signal";
+ }
+
+ std::wstring theEventName = theBridge->GetDefaultEvent(m_itemHandle, preferredEvent);
+ std::wstring theHandlerName = theBridge->GetDefaultHandler(m_itemHandle, preferredHandler);
Q3DStudio::SCOPED_DOCUMENT_EDITOR(*GetDoc(), QObject::tr("Add Action"))
->AddAction(GetDoc()->GetActiveSlide(), m_itemHandle, theEventName,
diff --git a/src/Authoring/Qt3DStudio/Palettes/BasicObjects/BasicObjectsModel.cpp b/src/Authoring/Qt3DStudio/Palettes/BasicObjects/BasicObjectsModel.cpp
index 8694fda7..65274d7b 100644
--- a/src/Authoring/Qt3DStudio/Palettes/BasicObjects/BasicObjectsModel.cpp
+++ b/src/Authoring/Qt3DStudio/Palettes/BasicObjects/BasicObjectsModel.cpp
@@ -55,6 +55,7 @@ const QVector<BasicObjectItem> BasicObjectsModel::InitializeObjectModel()
{tr("Cone"), "Asset-Cone-Normal.png"_L1, OBJTYPE_MODEL, PRIMITIVETYPE_CONE},
{tr("Component"), "Asset-Component-Normal.png"_L1, OBJTYPE_COMPONENT, PRIMITIVETYPE_UNKNOWN},
{tr("Group"), "Asset-Group-Normal.png"_L1, OBJTYPE_GROUP, PRIMITIVETYPE_UNKNOWN},
+ {tr("Signal"), "Asset-Signal-Normal.png"_L1, OBJTYPE_SIGNAL, PRIMITIVETYPE_UNKNOWN},
{tr("Text"), "Asset-Text-Normal.png"_L1, OBJTYPE_TEXT, PRIMITIVETYPE_UNKNOWN},
{tr("Camera"), "Asset-Camera-Normal.png"_L1, OBJTYPE_CAMERA, PRIMITIVETYPE_UNKNOWN},
{tr("Light"), "Asset-Light-Normal.png"_L1, OBJTYPE_LIGHT, PRIMITIVETYPE_UNKNOWN},
diff --git a/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.cpp b/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.cpp
index 06fc9ce6..b6225dff 100644
--- a/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.cpp
+++ b/src/Authoring/Qt3DStudio/Palettes/Inspector/InspectorControlModel.cpp
@@ -782,6 +782,10 @@ InspectorControlBase* InspectorControlModel::createItem(Qt3DSDMInspectable *insp
if (title == "Name" && isBasicMaterial())
return nullptr;
+ // Hide everything else than name for signals
+ if (title != "Name" && getBridge()->IsSignalInstance(inspectable->getInstance()))
+ return nullptr;
+
InspectorControlBase *item = new InspectorControlBase;
item->m_property = metaProperty.m_Property;
item->m_instance = inspectable->GetGroupInstance(groupIndex);
diff --git a/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/ITimelineItem.h b/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/ITimelineItem.h
index 4308fb2b..2c8b6ecc 100644
--- a/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/ITimelineItem.h
+++ b/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/ITimelineItem.h
@@ -47,6 +47,13 @@ class ITimelineTimebar;
class ITimelineItem : public INamable
{
public:
+ enum class ActivateAction {
+ None = 0,
+ Activate = 1,
+ Deactivate = 2
+ };
+ Q_DECLARE_FLAGS(ActivateActions, ActivateAction)
+
virtual ~ITimelineItem() {}
virtual EStudioObjectType GetObjectType() const = 0;
@@ -65,6 +72,7 @@ public:
virtual bool HasAction(bool inMaster) = 0;
virtual bool ChildrenHasAction(bool inMaster) = 0;
virtual bool ComponentHasAction(bool inMaster) = 0;
+ virtual ActivateActions getActivateActions() = 0;
// subpresentations
virtual bool hasSubpresentation() const = 0;
@@ -72,4 +80,6 @@ public:
virtual ITimelineTimebar *GetTimebar() = 0;
};
+Q_DECLARE_OPERATORS_FOR_FLAGS(ITimelineItem::ActivateActions)
+
#endif // INCLUDED_ITIMELINE_ITEM_H
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
diff --git a/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.h b/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.h
index 3980c0e1..4f7084d2 100644
--- a/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.h
+++ b/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/Qt3DSDMTimelineItemBinding.h
@@ -107,6 +107,7 @@ public:
bool IsVisible() const override;
void SetVisible(bool) override;
bool HasAction(bool inMaster) override;
+ ITimelineItem::ActivateActions getActivateActions() override;
bool IsVisibilityControlled() const override;
bool ChildrenHasAction(bool inMaster) override;
bool ComponentHasAction(bool inMaster) override;
diff --git a/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/TimelineTranslationManager.cpp b/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/TimelineTranslationManager.cpp
index c03867a7..2264d232 100644
--- a/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/TimelineTranslationManager.cpp
+++ b/src/Authoring/Qt3DStudio/Palettes/Timeline/Bindings/TimelineTranslationManager.cpp
@@ -82,7 +82,7 @@ ITimelineItemBinding *CTimelineTranslationManager::GetOrCreate(Qt3DSDMInstanceHa
theReturn = new CLayerTimelineItemBinding(this, inInstance);
} else if (objType & (OBJTYPE_MODEL | OBJTYPE_TEXT | OBJTYPE_CAMERA | OBJTYPE_EFFECT
| OBJTYPE_LIGHT | OBJTYPE_RENDERPLUGIN | OBJTYPE_ALIAS
- | OBJTYPE_SUBPATH))
+ | OBJTYPE_SUBPATH | OBJTYPE_SIGNAL))
theReturn = new Qt3DSDMTimelineItemBinding(this, inInstance);
else {
// Add support for additional DataModel types here.
diff --git a/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineConstants.h b/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineConstants.h
index 02d08141..365bb88b 100644
--- a/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineConstants.h
+++ b/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineConstants.h
@@ -62,6 +62,7 @@ namespace TimelineConstants
const int DURATION_HANDLE_W = 14; // width of duration end handles in a timeline row
const int NAVIGATION_BAR_H = 30; // height of navigation/breadcrumb bar
const int TIMEBAR_TOOLTIP_OFFSET_V = 10;
+ const int ACTION_W = 4;
// Other
const int EXPAND_ANIMATION_DURATION = 200;
diff --git a/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineWidget.cpp b/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineWidget.cpp
index d05fe12d..4b599cbf 100644
--- a/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineWidget.cpp
+++ b/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineWidget.cpp
@@ -385,6 +385,9 @@ void TimelineWidget::OnNewPresentation()
m_connections.push_back(theSignalProvider->ConnectActionDeleted(
std::bind(&TimelineWidget::onActionEvent, this,
std::placeholders::_1, std::placeholders::_2, std::placeholders::_3)));
+ m_connections.push_back(theSignalProvider->ConnectEventSet(
+ std::bind(&TimelineWidget::onActionModifiedEvent, this,
+ std::placeholders::_1)));
// connect property linked/unlinked
m_connections.push_back(theSignalProvider->ConnectPropertyLinked(
@@ -741,6 +744,7 @@ void TimelineWidget::updateActionStates(const QSet<RowTree *> &rows)
states |= RowTree::ActionState::ComponentAction;
}
row->setActionStates(states);
+ row->setActivateActions(binding->getActivateActions());
}
}
@@ -994,6 +998,15 @@ void TimelineWidget::onAsyncUpdate()
m_graphicsScene->rowManager()->finalizeRowDeletions();
}
+void TimelineWidget::onActionModifiedEvent(qt3dsdm::Qt3DSDMActionHandle inAction)
+{
+ // We don't have action owner here, so just do full reconstruct as action
+ // event types are anyway rarely changed.
+ m_fullReconstruct = true;
+ if (!m_asyncUpdateTimer.isActive())
+ m_asyncUpdateTimer.start();
+}
+
void TimelineWidget::onActionEvent(qt3dsdm::Qt3DSDMActionHandle inAction,
qt3dsdm::Qt3DSDMSlideHandle inSlide,
qt3dsdm::Qt3DSDMInstanceHandle inOwner)
diff --git a/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineWidget.h b/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineWidget.h
index ed27f924..9804a03e 100644
--- a/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineWidget.h
+++ b/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/TimelineWidget.h
@@ -117,6 +117,7 @@ protected:
qt3dsdm::Qt3DSDMPropertyHandle property);
void onActionEvent(qt3dsdm::Qt3DSDMActionHandle inAction, qt3dsdm::Qt3DSDMSlideHandle inSlide,
qt3dsdm::Qt3DSDMInstanceHandle inOwner);
+ void onActionModifiedEvent(qt3dsdm::Qt3DSDMActionHandle inAction);
void onPropertyLinked(qt3dsdm::Qt3DSDMInstanceHandle inInstance,
qt3dsdm::Qt3DSDMPropertyHandle inProperty);
void onPropertyUnlinked(qt3dsdm::Qt3DSDMInstanceHandle inInstance,
diff --git a/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTimeline.cpp b/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTimeline.cpp
index 2d7cf19d..b2a8f6dc 100644
--- a/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTimeline.cpp
+++ b/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTimeline.cpp
@@ -219,6 +219,18 @@ void RowTimeline::paint(QPainter *painter, const QStyleOptionGraphicsItem *optio
painter->drawLine(startXActual, 0, startXActual, currHeight);
painter->drawLine(edgeOffset + m_endX, 0, edgeOffset + m_endX, currHeight);
}
+
+ // Paint possible timeline actions
+ auto actions = m_rowTree->m_activateActions;
+ bool paintActivate = actions.testFlag(ITimelineItem::ActivateAction::Activate);
+ bool paintDeactivate = actions.testFlag(ITimelineItem::ActivateAction::Deactivate);
+ int aw = TimelineConstants::ACTION_W;
+ QColor aColor = CStudioPreferences::timelineActionColor();
+ if (paintActivate)
+ painter->fillRect(QRect(x - aw/2, 0, aw, currHeight), aColor);
+ if (paintDeactivate)
+ painter->fillRect(QRect(x + w - aw/2, 0, aw, currHeight), aColor);
+
}
painter->restore();
diff --git a/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTree.cpp b/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTree.cpp
index bc9f7a63..aca0ef3c 100644
--- a/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTree.cpp
+++ b/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTree.cpp
@@ -424,6 +424,7 @@ void RowTree::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, Q
static const QPixmap pixTextNormal(":/images/Objects-Text-Normal.png");
static const QPixmap pixAliasNormal(":/images/Objects-Alias-Normal.png");
static const QPixmap pixGroupNormal(":/images/Objects-Group-Normal.png");
+ static const QPixmap pixSignalNormal(":/images/Objects-Signal-Normal.png");
static const QPixmap pixComponentNormal(":/images/Objects-Component-Normal.png");
static const QPixmap pixMaterialNormal(":/images/Objects-Material-Normal.png");
static const QPixmap pixPropertyNormal(":/images/Objects-Property-Normal.png");
@@ -438,6 +439,7 @@ void RowTree::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, Q
static const QPixmap pixTextNormal2x(":/images/Objects-Text-Normal@2x.png");
static const QPixmap pixAliasNormal2x(":/images/Objects-Alias-Normal@2x.png");
static const QPixmap pixGroupNormal2x(":/images/Objects-Group-Normal@2x.png");
+ static const QPixmap pixSignalNormal2x(":/images/Objects-Signal-Normal@2x.png");
static const QPixmap pixComponentNormal2x(":/images/Objects-Component-Normal@2x.png");
static const QPixmap pixMaterialNormal2x(":/images/Objects-Material-Normal@2x.png");
static const QPixmap pixPropertyNormal2x(":/images/Objects-Property-Normal@2x.png");
@@ -453,6 +455,7 @@ void RowTree::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, Q
static const QPixmap pixTextDisabled(":/images/Objects-Text-Disabled.png");
static const QPixmap pixAliasDisabled(":/images/Objects-Alias-Disabled.png");
static const QPixmap pixGroupDisabled(":/images/Objects-Group-Disabled.png");
+ static const QPixmap pixSignalDisabled(":/images/Objects-Signal-Disabled.png");
static const QPixmap pixComponentDisabled(":/images/Objects-Component-Disabled.png");
static const QPixmap pixMaterialDisabled(":/images/Objects-Material-Disabled.png");
static const QPixmap pixPropertyDisabled(":/images/Objects-Property-Disabled.png");
@@ -467,6 +470,7 @@ void RowTree::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, Q
static const QPixmap pixTextDisabled2x(":/images/Objects-Text-Disabled@2x.png");
static const QPixmap pixAliasDisabled2x(":/images/Objects-Alias-Disabled@2x.png");
static const QPixmap pixGroupDisabled2x(":/images/Objects-Group-Disabled@2x.png");
+ static const QPixmap pixSignalDisabled2x(":/images/Objects-Signal-Disabled@2x.png");
static const QPixmap pixComponentDisabled2x(":/images/Objects-Component-Disabled@2x.png");
static const QPixmap pixMaterialDisabled2x(":/images/Objects-Material-Disabled@2x.png");
static const QPixmap pixPropertyDisabled2x(":/images/Objects-Property-Disabled@2x.png");
@@ -512,6 +516,10 @@ void RowTree::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, Q
pixRowType = hiResIcons ? (m_locked ? pixGroupDisabled2x : pixGroupNormal2x)
: (m_locked ? pixGroupDisabled : pixGroupNormal);
break;
+ case OBJTYPE_SIGNAL:
+ pixRowType = hiResIcons ? (m_locked ? pixSignalDisabled2x : pixSignalNormal2x)
+ : (m_locked ? pixSignalDisabled : pixSignalNormal);
+ break;
case OBJTYPE_COMPONENT:
pixRowType = hiResIcons ? (m_locked ? pixComponentDisabled2x : pixComponentNormal2x)
: (m_locked ? pixComponentDisabled : pixComponentNormal);
@@ -1336,6 +1344,14 @@ void RowTree::setActionStates(ActionStates states)
}
}
+void RowTree::setActivateActions(ITimelineItem::ActivateActions activateActions)
+{
+ if (activateActions != m_activateActions) {
+ m_activateActions = activateActions;
+ update();
+ }
+}
+
bool RowTree::isContainer() const
{
return !m_isProperty && m_objectType & OBJTYPE_IS_CONTAINER;
diff --git a/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTree.h b/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTree.h
index 34a851b7..179292c9 100644
--- a/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTree.h
+++ b/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView/ui/RowTree.h
@@ -35,6 +35,7 @@
#include "StudioObjectTypes.h"
#include "RowTreeLabel.h"
#include "Qt3DSDMHandles.h"
+#include "Bindings/ITimelineItem.h"
#include <QtCore/qpropertyanimation.h>
#include <QtCore/qparallelanimationgroup.h>
@@ -93,6 +94,7 @@ public:
void removeChild(RowTree *child);
void setDnDState(DnDState state, DnDState onlyIfState = DnDState::Any, bool recursive = false);
void setActionStates(ActionStates states);
+ void setActivateActions(ITimelineItem::ActivateActions activateActions);
void setTreeWidth(double w);
void setBinding(ITimelineItemBinding *binding);
void setPropBinding(ITimelineItemProperty *binding); // for property rows
@@ -196,6 +198,7 @@ private:
bool m_onMasterSlide = false;
DnDState m_dndState = DnDState::None;
ActionStates m_actionStates = ActionState::None;
+ ITimelineItem::ActivateActions m_activateActions = ITimelineItem::ActivateAction::None;
bool m_hasSubpresentation = false;
int m_numDescendantSubpresentations = 0;
ExpandState m_expandState = ExpandState::HiddenCollapsed;
diff --git a/src/Authoring/Qt3DStudio/Render/StudioRendererTranslation.cpp b/src/Authoring/Qt3DStudio/Render/StudioRendererTranslation.cpp
index dcbcc83e..b07d01ed 100644
--- a/src/Authoring/Qt3DStudio/Render/StudioRendererTranslation.cpp
+++ b/src/Authoring/Qt3DStudio/Render/StudioRendererTranslation.cpp
@@ -1718,6 +1718,7 @@ SGraphObjectTranslator *STranslation::CreateTranslator(qt3dsdm::Qt3DSDMInstanceH
// For the subset of possible instances, pick out the valid translators.
switch (theType) {
case qt3dsdm::ComposerObjectTypes::Group:
+ case qt3dsdm::ComposerObjectTypes::Signal:
case qt3dsdm::ComposerObjectTypes::Component:
case qt3dsdm::ComposerObjectTypes::Node:
theNewTranslator = QT3DS_NEW(m_Allocator, SNodeTranslator)(inInstance, m_Allocator);
diff --git a/src/Authoring/Qt3DStudio/images.qrc b/src/Authoring/Qt3DStudio/images.qrc
index b808711e..9dfdee3b 100644
--- a/src/Authoring/Qt3DStudio/images.qrc
+++ b/src/Authoring/Qt3DStudio/images.qrc
@@ -331,6 +331,12 @@
<file>images/gradient@2x.png</file>
<file>images/gradient_disabled.png</file>
<file>images/gradient_disabled@2x.png</file>
+ <file>images/Asset-Signal-Normal.png</file>
+ <file>images/Asset-Signal-Normal@2x.png</file>
+ <file>images/Objects-Signal-Normal.png</file>
+ <file>images/Objects-Signal-Normal@2x.png</file>
+ <file>images/Objects-Signal-Disabled.png</file>
+ <file>images/Objects-Signal-Disabled@2x.png</file>
</qresource>
<qresource prefix="/startup">
<file alias="open_dialog.png">images/open_dialog.png</file>
diff --git a/src/Authoring/Qt3DStudio/images/Asset-Signal-Normal.png b/src/Authoring/Qt3DStudio/images/Asset-Signal-Normal.png
new file mode 100644
index 00000000..dda0e2c3
--- /dev/null
+++ b/src/Authoring/Qt3DStudio/images/Asset-Signal-Normal.png
Binary files differ
diff --git a/src/Authoring/Qt3DStudio/images/Asset-Signal-Normal@2x.png b/src/Authoring/Qt3DStudio/images/Asset-Signal-Normal@2x.png
new file mode 100644
index 00000000..04f34fd1
--- /dev/null
+++ b/src/Authoring/Qt3DStudio/images/Asset-Signal-Normal@2x.png
Binary files differ
diff --git a/src/Authoring/Qt3DStudio/images/Objects-Signal-Disabled.png b/src/Authoring/Qt3DStudio/images/Objects-Signal-Disabled.png
new file mode 100644
index 00000000..e1301aa4
--- /dev/null
+++ b/src/Authoring/Qt3DStudio/images/Objects-Signal-Disabled.png
Binary files differ
diff --git a/src/Authoring/Qt3DStudio/images/Objects-Signal-Disabled@2x.png b/src/Authoring/Qt3DStudio/images/Objects-Signal-Disabled@2x.png
new file mode 100644
index 00000000..905e23a1
--- /dev/null
+++ b/src/Authoring/Qt3DStudio/images/Objects-Signal-Disabled@2x.png
Binary files differ
diff --git a/src/Authoring/Qt3DStudio/images/Objects-Signal-Normal.png b/src/Authoring/Qt3DStudio/images/Objects-Signal-Normal.png
new file mode 100644
index 00000000..2463c2f1
--- /dev/null
+++ b/src/Authoring/Qt3DStudio/images/Objects-Signal-Normal.png
Binary files differ
diff --git a/src/Authoring/Qt3DStudio/images/Objects-Signal-Normal@2x.png b/src/Authoring/Qt3DStudio/images/Objects-Signal-Normal@2x.png
new file mode 100644
index 00000000..50932af4
--- /dev/null
+++ b/src/Authoring/Qt3DStudio/images/Objects-Signal-Normal@2x.png
Binary files differ