summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView
diff options
context:
space:
mode:
authorKaj Grönholm <kaj.gronholm@qt.io>2020-09-18 14:40:33 +0300
committerKaj Grönholm <kaj.gronholm@qt.io>2020-09-25 11:04:22 +0300
commit98d888b6beeda9e301625ecba8e377cf552e7231 (patch)
tree2201c7ee29accc46d78816c2f047b1e784a73df0 /src/Authoring/Qt3DStudio/Palettes/TimelineGraphicsView
parent3bcbc804004d293eba409b5e65ff5c5e38c572fe (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/TimelineGraphicsView')
-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
6 files changed, 46 insertions, 0 deletions
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;