added some more timeline functions
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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_;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user