summaryrefslogtreecommitdiffstats
path: root/src/Authoring/Studio/Palettes/TimelineGraphicsView/ui/RowTree.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Authoring/Studio/Palettes/TimelineGraphicsView/ui/RowTree.h')
-rw-r--r--src/Authoring/Studio/Palettes/TimelineGraphicsView/ui/RowTree.h228
1 files changed, 0 insertions, 228 deletions
diff --git a/src/Authoring/Studio/Palettes/TimelineGraphicsView/ui/RowTree.h b/src/Authoring/Studio/Palettes/TimelineGraphicsView/ui/RowTree.h
deleted file mode 100644
index b028e94d..00000000
--- a/src/Authoring/Studio/Palettes/TimelineGraphicsView/ui/RowTree.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef ROWTREE_H
-#define ROWTREE_H
-
-#include "InteractiveTimelineItem.h"
-#include "TimelineConstants.h"
-#include "RowTypes.h"
-#include "StudioObjectTypes.h"
-#include "RowTreeLabelItem.h"
-#include "Qt3DSDMHandles.h"
-
-#include <QtCore/qpropertyanimation.h>
-#include <QtCore/qparallelanimationgroup.h>
-
-class RowTimeline;
-class Ruler;
-class ITimelineItemBinding;
-class TimelineGraphicsScene;
-class ITimelineItemProperty;
-
-class RowTree : public InteractiveTimelineItem
-{
- Q_OBJECT
-
-public:
- enum class ExpandState {
- Unknown,
- Collapsed,
- Expanded,
- HiddenCollapsed,
- HiddenExpanded
- };
-
- enum class DnDState {
- None,
- Source, // the row being dragged while DnD-ing
- Parent, // parent of the insertion point
- SP_TARGET, // drop target for a subpresentation (layer, material or image rows)
- Any // accept any state (default value in setDnDState() method)
- };
-
- enum class ActionState {
- None = 0,
- Action = 1,
- ChildAction = 2,
- ComponentAction = 4,
- MasterAction = 8,
- MasterChildAction = 16,
- MasterComponentAction = 32
- };
- Q_DECLARE_FLAGS(ActionStates, ActionState)
-
- explicit RowTree(TimelineGraphicsScene *timelineScene,
- EStudioObjectType objectType = OBJTYPE_UNKNOWN, const QString &label = {});
- // property row constructor
- explicit RowTree(TimelineGraphicsScene *timelineScene, const QString &propType);
- ~RowTree();
-
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
- QWidget *widget = nullptr) override;
- void setState(State state) override;
- void setTimelineRow(RowTimeline *rowTimeline);
- void setParentRow(RowTree *parent);
- void addChild(RowTree *child);
- void addChildAt(RowTree *child, int index);
- void removeChild(RowTree *child);
- void setDnDState(DnDState state, DnDState onlyIfState = DnDState::Any, bool recursive = false);
- void setActionStates(ActionStates states);
- void setTreeWidth(double w);
- void setBinding(ITimelineItemBinding *binding);
- void setPropBinding(ITimelineItemProperty *binding); // for property rows
- void selectLabel();
- void togglePropertyExpanded();
- void setPropertyExpanded(bool expand);
- void showDataInputSelector(const QString &propertyname, const QPoint &pos);
- ITimelineItemProperty *propBinding();
- TreeControlType getClickedControl(const QPointF &scenePos);
- bool shy() const;
- bool visible() const;
- bool locked() const;
- bool expanded() const;
- bool expandHidden() const;
- ExpandState expandState() const { return m_expandState; }
- bool isDecendentOf(RowTree *row) const;
- bool isContainer() const;
- bool isProperty() const;
- bool isPropertyOrMaterial() const;
- bool isComponent() const;
- bool isComponentRoot() const;
- bool isMaster() const;
- bool isDefaultMaterial() const;
- bool hasPropertyChildren() const;
- bool empty() const; // has zero child rows (and zero properties)
- bool selected() const;
- bool draggable() const;
- bool hasDurationBar() const;
- bool propertyExpanded() const;
- int depth() const;
- int type() const override;
- int index() const;
- int indexInLayout() const;
- int treeWidth() const;
- EStudioObjectType objectType() const;
- QString propertyType() const;
- RowTree *getChildAt(int index) const;
- RowTree *parentRow() const;
- RowTree *getPropertyRow(const QString &type) const;
- QList<RowTree *> childRows() const;
- QList<RowTree *> childProps() const;
- RowTimeline *rowTimeline() const;
- QString label() const;
- void toggleShy();
- void toggleVisible();
- void toggleLocked();
- void updateFromBinding();
- void updateLabel();
- void setRowVisible(bool visible);
- void setDnDHover(bool val);
- void updateVariants(const QStringList &groups);
- DnDState getDnDState() const;
-
- ITimelineItemBinding *getBinding() const;
- void updateExpandStatus(ExpandState state, bool animate = true, bool forceChildUpdate = false);
- void updateArrowVisibility();
- void updateFilter();
- void updateLock(bool state);
- void updateSubpresentations(int updateParentsOnlyVal = 0);
- int clipX() const;
- qt3dsdm::Qt3DSDMInstanceHandle instance() const;
-
-protected:
- void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override;
-
-private:
- void initialize();
- void initializeAnimations();
- void animateExpand(ExpandState state);
- void updateDepthRecursive();
- void updateLockRecursive(bool state);
- void updateLabelPosition();
- void updateIndices(bool isInsertion, int startIndex, int startIndexInLayout, bool isProperty);
- bool hasActionButtons() const;
- bool hasComponentAncestor() const;
- bool isInVariantsFilter() const;
- int removeChildFromLayout(RowTree *child) const;
- int getCountDecendentsRecursive() const;
- int addToLayout(int indexInLayout);
- int getLastChildIndex(bool isProperty) const;
-
- RowTree *m_parentRow = nullptr;
- RowTimeline *m_rowTimeline = nullptr;
- int m_depth = 1;
- int m_index = 0;
- int m_indexInLayout = 1;
- bool m_shy = false;
- bool m_visible = true;
- bool m_locked = false;
- bool m_isProperty = false;
- bool m_isPropertyExpanded = false;
- bool m_master = false;
- bool m_filtered = false;
- bool m_arrowVisible = false;
- bool m_dndHover = false;
- bool m_visibilityCtrld = false;
- bool m_onMasterSlide = false;
- DnDState m_dndState = DnDState::None;
- ActionStates m_actionStates = ActionState::None;
- bool m_hasSubpresentation = false;
- int m_numDescendantSubpresentations = 0;
- ExpandState m_expandState = ExpandState::HiddenCollapsed;
- TimelineGraphicsScene *m_scene;
- RowTreeLabelItem m_labelItem;
- EStudioObjectType m_objectType = OBJTYPE_UNKNOWN;
- QString m_propertyType; // for property rows
- QString m_label;
- QList<RowTree *> m_childRows;
- QList<RowTree *> m_childProps;
- QStringList m_variantsGroups;
- ITimelineItemBinding *m_binding = nullptr;
- ITimelineItemProperty *m_PropBinding = nullptr; // for property rows
-
- QRect m_rectArrow;
- QRect m_rectShy;
- QRect m_rectVisible;
- QRect m_rectLocked;
- QRect m_rectType;
-
- QParallelAnimationGroup m_expandAnimation;
- QPropertyAnimation *m_expandHeightAnimation;
- QPropertyAnimation *m_expandTimelineHeightAnimation;
- QPropertyAnimation *m_expandOpacityAnimation;
- QPropertyAnimation *m_expandTimelineOpacityAnimation;
-
- friend class RowTimeline;
- friend class RowTimelinePropertyGraph;
- friend class RowTimelineContextMenu;
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(RowTree::ActionStates)
-
-#endif // ROWTREE_H