added some more timeline functions

This commit is contained in:
itsmattkc
2019-08-13 21:50:39 +10:00
parent 737442e513
commit 4f4737a395
21 changed files with 291 additions and 87 deletions
+8 -1
View File
@@ -59,9 +59,16 @@ const rational &Block::out()
return out_point_;
}
const rational& Block::length()
{
return length_;
}
void Block::set_length(const rational &length)
{
Q_UNUSED(length)
length_ = length;
RefreshFollowing();
}
Block *Block::previous()
+6 -2
View File
@@ -41,6 +41,8 @@ public:
kEnd
};
virtual Block* copy() = 0;
virtual Type type() = 0;
virtual QString Category() override;
@@ -48,8 +50,8 @@ public:
const rational& in();
const rational& out();
virtual rational length() = 0;
virtual void set_length(const rational& length);
virtual const rational &length();
virtual void set_length(const rational &length);
virtual Block* previous();
virtual Block* next();
@@ -106,6 +108,8 @@ private:
rational in_point_;
rational out_point_;
rational length_;
private slots:
void BlockOrderChanged(NodeEdgePtr edge);
+13 -12
View File
@@ -29,6 +29,19 @@ ClipBlock::ClipBlock()
AddParameter(texture_input_);
}
Block *ClipBlock::copy()
{
ClipBlock* c = new ClipBlock();
// Duplicate connection
// FIXME: This behavior should probably be configurable
if (texture_input()->IsConnected()) {
NodeParam::ConnectEdge(texture_input()->edges().first()->output(), c->texture_input());
}
return new ClipBlock();
}
Block::Type ClipBlock::type()
{
return kClip;
@@ -49,18 +62,6 @@ QString ClipBlock::Description()
return tr("A time-based node that represents a media source.");
}
rational ClipBlock::length()
{
return length_;
}
void ClipBlock::set_length(const rational &length)
{
length_ = length;
RefreshFollowing();
}
NodeInput *ClipBlock::texture_input()
{
return texture_input_;
+2 -4
View File
@@ -32,15 +32,14 @@ class ClipBlock : public Block
public:
ClipBlock();
virtual Block* copy() override;
virtual Type type() override;
virtual QString Name() override;
virtual QString id() override;
virtual QString Description() override;
virtual rational length() override;
virtual void set_length(const rational &length) override;
NodeInput* texture_input();
public slots:
@@ -51,7 +50,6 @@ private:
rational media_in_;
rational length_;
};
#endif // TIMELINEBLOCK_H
+5 -12
View File
@@ -24,6 +24,11 @@ GapBlock::GapBlock()
{
}
Block *GapBlock::copy()
{
return new GapBlock();
}
Block::Type GapBlock::type()
{
return kGap;
@@ -43,15 +48,3 @@ QString GapBlock::Description()
{
return tr("A time-based node that represents an empty space.");
}
rational GapBlock::length()
{
return length_;
}
void GapBlock::set_length(const rational &length)
{
length_ = length;
RefreshFollowing();
}
+3 -4
View File
@@ -32,17 +32,16 @@ class GapBlock : public Block
public:
GapBlock();
virtual Block * copy() override;
virtual Type type() override;
virtual QString Name() override;
virtual QString id() override;
virtual QString Description() override;
virtual rational length() override;
virtual void set_length(const rational &length) override;
private:
rational length_;
};
#endif // TIMELINEBLOCK_H