1 /**************************************************************************
3 * Copyright 2013-2014 RAD Game Tools and Valve Software
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 **************************************************************************/
27 #include "vogleditor_timelineitem.h"
29 vogleditor_timelineItem::vogleditor_timelineItem(float time, vogleditor_timelineItem* parent)
34 m_maxChildDuration(0),
41 vogleditor_timelineItem::vogleditor_timelineItem(float begin, float end, vogleditor_timelineItem* parent)
44 m_duration(end - begin),
46 m_maxChildDuration(end - begin),
53 vogleditor_timelineItem::~vogleditor_timelineItem()
57 void vogleditor_timelineItem::appendChild(vogleditor_timelineItem* child)
59 childItems.append(child);
61 if (childItems.size() == 1)
63 // just added the first child, so overwrite the current maxChildDuration
64 m_maxChildDuration = child->getMaxChildDuration();
68 // update the maxChildDuration if needed
69 m_maxChildDuration = std::max(m_maxChildDuration, child->getMaxChildDuration());
73 vogleditor_timelineItem* vogleditor_timelineItem::child(int row)
75 return childItems[row];
78 int vogleditor_timelineItem::childCount() const
80 return childItems.size();
83 vogleditor_timelineItem* vogleditor_timelineItem::parent()
88 QBrush* vogleditor_timelineItem::getBrush()
90 // if a local brush isn't set, use the parent's brush as a default
95 return parent()->getBrush();
106 void vogleditor_timelineItem::setBrush(QBrush* brush)
111 float vogleditor_timelineItem::getBeginTime() const
116 float vogleditor_timelineItem::getEndTime() const
121 float vogleditor_timelineItem::getDuration() const
126 bool vogleditor_timelineItem::isSpan() const
131 bool vogleditor_timelineItem::isMarker() const
136 float vogleditor_timelineItem::getMaxChildDuration() const
138 return m_maxChildDuration;