diff --git a/app/core.cpp b/app/core.cpp index 1e8f650bf..24b2b92d0 100644 --- a/app/core.cpp +++ b/app/core.cpp @@ -300,6 +300,7 @@ void Core::CreateNewSequence() Block::ConnectBlocks(gb, cb); Block::ConnectBlocks(cb, to); Block::ConnectBlocks(cb2, to2); + NodeParam::ConnectEdge(to2->track_output(), to->track_input()); NodeParam::ConnectEdge(to->texture_output(), vo->texture_input()); NodeParam::ConnectEdge(to->track_output(), tb->track_input()); diff --git a/app/node/output/timeline/timeline.cpp b/app/node/output/timeline/timeline.cpp index 07777ddb9..1eb1aaf24 100644 --- a/app/node/output/timeline/timeline.cpp +++ b/app/node/output/timeline/timeline.cpp @@ -75,9 +75,9 @@ void TimelineOutput::AttachTimeline(TimelinePanel *timeline) attached_timeline_->SetTimebase(rational(1001, 30000)); // END TEST CODE - if (attached_track() != nullptr) { + foreach (TrackOutput* track, track_cache_) { // Defer to the track to make all the block UI items necessary - attached_track()->GenerateBlockWidgets(); + track->GenerateBlockWidgets(); } //TimelineView* view = attached_timeline_->view(); @@ -97,6 +97,22 @@ void TimelineOutput::Process(const rational &time) Q_UNUSED(time) } +int TimelineOutput::GetTrackIndex(TrackOutput *track) +{ + return track_cache_.indexOf(track); +} + +rational TimelineOutput::GetSequenceLength() +{ + rational length = 0; + + foreach (TrackOutput* track, track_cache_) { + length = qMax(length, track->in()); + } + + return length; +} + TrackOutput *TimelineOutput::attached_track() { return ValueToPtr(track_input_->get_value(0)); @@ -150,6 +166,8 @@ void TimelineOutput::TrackConnectionRemoved(NodeEdgePtr edge) void TimelineOutput::TrackAddedBlock(Block *block) { if (attached_timeline_ != nullptr) { + qDebug() << "track index lmao:" << GetTrackIndex(static_cast(sender())); + attached_timeline_->view()->AddBlock(block); } } diff --git a/app/node/output/timeline/timeline.h b/app/node/output/timeline/timeline.h index 523a875f4..38ee873ab 100644 --- a/app/node/output/timeline/timeline.h +++ b/app/node/output/timeline/timeline.h @@ -47,6 +47,10 @@ public slots: virtual void Process(const rational &time) override; private: + int GetTrackIndex(TrackOutput* track); + + rational GetSequenceLength(); + TrackOutput* attached_track(); TimelinePanel* attached_timeline_; diff --git a/app/node/output/track/track.cpp b/app/node/output/track/track.cpp index a12b44020..fef20c61b 100644 --- a/app/node/output/track/track.cpp +++ b/app/node/output/track/track.cpp @@ -111,6 +111,11 @@ TrackOutput *TrackOutput::next_track() return ValueToPtr(track_input_->get_value(0)); } +NodeInput *TrackOutput::track_input() +{ + return track_input_; +} + NodeOutput* TrackOutput::track_output() { return track_output_; diff --git a/app/node/output/track/track.h b/app/node/output/track/track.h index 6638c4160..fa30489c7 100644 --- a/app/node/output/track/track.h +++ b/app/node/output/track/track.h @@ -50,7 +50,9 @@ public: TrackOutput* next_track(); - NodeOutput *track_output(); + NodeInput* track_input(); + + NodeOutput* track_output(); signals: /** diff --git a/app/widget/timelineview/timelineviewclipitem.cpp b/app/widget/timelineview/timelineviewclipitem.cpp index 429ec809d..211f8e405 100644 --- a/app/widget/timelineview/timelineviewclipitem.cpp +++ b/app/widget/timelineview/timelineviewclipitem.cpp @@ -55,7 +55,7 @@ void TimelineViewClipItem::UpdateRect() double item_left = TimeToScreenCoord(clip_->in()); double item_width = TimeToScreenCoord(clip_->length()); - setRect(0, 0, item_width - 1, 100); + setRect(0, 0, item_width - 1, 64); setPos(item_left, 0.0); } diff --git a/app/widget/timelineview/timelineviewghostitem.cpp b/app/widget/timelineview/timelineviewghostitem.cpp index a1e1f77b3..7b1d9c41e 100644 --- a/app/widget/timelineview/timelineviewghostitem.cpp +++ b/app/widget/timelineview/timelineviewghostitem.cpp @@ -102,7 +102,7 @@ void TimelineViewGhostItem::UpdateRect() { rational length = GetAdjustedOut() - GetAdjustedIn(); - setRect(0, 0, TimeToScreenCoord(length), 100); + setRect(0, 0, TimeToScreenCoord(length), 64); setPos(TimeToScreenCoord(GetAdjustedIn()), 0); }