began timeline edit tool
This commit is contained in:
@@ -54,19 +54,23 @@ TimelineWidget::TimelineWidget(QWidget *parent) :
|
||||
tools_.resize(::Tool::kCount);
|
||||
tools_.fill(nullptr);
|
||||
|
||||
tools_.replace(::Tool::kPointer, std::make_shared<PointerTool>(this));
|
||||
// tools_.replace(::Tool::kEdit, new PointerTool(this)); FIXME: Implement
|
||||
tools_.replace(::Tool::kRipple, std::make_shared<RippleTool>(this));
|
||||
tools_.replace(::Tool::kRolling, std::make_shared<RollingTool>(this));
|
||||
tools_.replace(::Tool::kRazor, std::make_shared<RazorTool>(this));
|
||||
tools_.replace(::Tool::kSlip, std::make_shared<SlipTool>(this));
|
||||
tools_.replace(::Tool::kSlide, std::make_shared<SlideTool>(this));
|
||||
tools_.replace(::Tool::kZoom, std::make_shared<ZoomTool>(this));
|
||||
tools_.replace(::Tool::kTransition, std::make_shared<TransitionTool>(this));
|
||||
tools_.replace(::Tool::kPointer, new PointerTool(this));
|
||||
tools_.replace(::Tool::kEdit, new EditTool(this));
|
||||
tools_.replace(::Tool::kRipple, new RippleTool(this));
|
||||
tools_.replace(::Tool::kRolling, new RollingTool(this));
|
||||
tools_.replace(::Tool::kRazor, new RazorTool(this));
|
||||
tools_.replace(::Tool::kSlip, new SlipTool(this));
|
||||
tools_.replace(::Tool::kSlide, new SlideTool(this));
|
||||
tools_.replace(::Tool::kZoom, new ZoomTool(this));
|
||||
tools_.replace(::Tool::kTransition, new TransitionTool(this));
|
||||
//tools_.replace(::Tool::kRecord, new PointerTool(this)); FIXME: Implement
|
||||
tools_.replace(::Tool::kAdd, std::make_shared<AddTool>(this));
|
||||
tools_.replace(::Tool::kAdd, new AddTool(this));
|
||||
|
||||
import_tool_ = std::make_shared<ImportTool>(this);
|
||||
import_tool_ = new ImportTool(this);
|
||||
|
||||
// We add this to the list to make deleting all tools easier, it should never get accessed through the list under
|
||||
// normal circumstances (but *technically* its index would be Tool::kCount)
|
||||
tools_.append(import_tool_);
|
||||
|
||||
// Global scrollbar
|
||||
horizontal_scroll_ = new QScrollBar(Qt::Horizontal);
|
||||
@@ -119,6 +123,11 @@ TimelineWidget::TimelineWidget(QWidget *parent) :
|
||||
SetScale(90.0);
|
||||
}
|
||||
|
||||
TimelineWidget::~TimelineWidget()
|
||||
{
|
||||
qDeleteAll(tools_);
|
||||
}
|
||||
|
||||
void TimelineWidget::Clear()
|
||||
{
|
||||
SetTimebase(0);
|
||||
@@ -639,7 +648,7 @@ void TimelineWidget::UpdateTimelineLength(const rational &length)
|
||||
|
||||
TimelineWidget::Tool *TimelineWidget::GetActiveTool()
|
||||
{
|
||||
return tools_.at(Core::instance()->tool()).get();
|
||||
return tools_.at(Core::instance()->tool());
|
||||
}
|
||||
|
||||
void TimelineWidget::ViewMousePressed(TimelineViewMouseEvent *event)
|
||||
|
||||
@@ -22,6 +22,8 @@ class TimelineWidget : public QWidget, public TimelineScaledObject
|
||||
public:
|
||||
TimelineWidget(QWidget* parent = nullptr);
|
||||
|
||||
virtual ~TimelineWidget() override;
|
||||
|
||||
void Clear();
|
||||
|
||||
void SetTime(int64_t timestamp);
|
||||
@@ -216,6 +218,16 @@ private:
|
||||
int import_pre_buffer_;
|
||||
};
|
||||
|
||||
class EditTool : public Tool
|
||||
{
|
||||
public:
|
||||
EditTool(TimelineWidget* parent);
|
||||
|
||||
virtual void MousePress(TimelineViewMouseEvent *event) override;
|
||||
virtual void MouseMove(TimelineViewMouseEvent *event) override;
|
||||
virtual void MouseRelease(TimelineViewMouseEvent *event) override;
|
||||
};
|
||||
|
||||
class RazorTool : public Tool
|
||||
{
|
||||
public:
|
||||
@@ -314,7 +326,6 @@ private:
|
||||
virtual void MousePress(TimelineViewMouseEvent *event) override;
|
||||
virtual void MouseMove(TimelineViewMouseEvent *event) override;
|
||||
virtual void MouseRelease(TimelineViewMouseEvent *event) override;
|
||||
protected:
|
||||
private:
|
||||
bool dual_transition_;
|
||||
};
|
||||
@@ -333,9 +344,9 @@ private:
|
||||
|
||||
Tool* GetActiveTool();
|
||||
|
||||
QVector< std::shared_ptr<Tool> > tools_;
|
||||
QVector<Tool*> tools_;
|
||||
|
||||
std::shared_ptr<ImportTool> import_tool_;
|
||||
Tool* import_tool_;
|
||||
|
||||
Tool* active_tool_;
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
set(OLIVE_SOURCES
|
||||
${OLIVE_SOURCES}
|
||||
widget/timelinewidget/tool/add.cpp
|
||||
widget/timelinewidget/tool/edit.cpp
|
||||
widget/timelinewidget/tool/import.cpp
|
||||
widget/timelinewidget/tool/pointer.cpp
|
||||
widget/timelinewidget/tool/razor.cpp
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
#include "widget/timelinewidget/timelinewidget.h"
|
||||
|
||||
TimelineWidget::EditTool::EditTool(TimelineWidget* parent) :
|
||||
Tool(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void TimelineWidget::EditTool::MousePress(TimelineViewMouseEvent *event)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void TimelineWidget::EditTool::MouseMove(TimelineViewMouseEvent *event)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void TimelineWidget::EditTool::MouseRelease(TimelineViewMouseEvent *event)
|
||||
{
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user