started zoom tool

This commit is contained in:
itsmattkc
2019-09-19 00:28:38 +10:00
parent cdcfd59ec5
commit a059e9f72b
4 changed files with 61 additions and 1 deletions
+2 -1
View File
@@ -39,6 +39,7 @@ TimelineView::TimelineView(QWidget *parent) :
ripple_tool_(this),
razor_tool_(this),
hand_tool_(this),
zoom_tool_(this),
playhead_(0)
{
setScene(&scene_);
@@ -220,7 +221,7 @@ TimelineView::Tool *TimelineView::GetActiveTool()
case olive::tool::kHand:
return &hand_tool_;
case olive::tool::kZoom:
return nullptr; // FIXME: Implement
return &zoom_tool_;
case olive::tool::kTransition:
return nullptr; // FIXME: Implement
case olive::tool::kRecord:
+11
View File
@@ -227,6 +227,16 @@ private:
QPoint scrollbar_start_;
};
class ZoomTool : public Tool
{
public:
ZoomTool(TimelineView* parent);
virtual void MousePress(QMouseEvent *event);
virtual void MouseMove(QMouseEvent *event);
virtual void MouseRelease(QMouseEvent *event);
};
Tool* GetActiveTool();
int GetTrackY(int track_index);
@@ -237,6 +247,7 @@ private:
RippleTool ripple_tool_;
RazorTool razor_tool_;
HandTool hand_tool_;
ZoomTool zoom_tool_;
void AddGhost(TimelineViewGhostItem* ghost);
@@ -22,5 +22,6 @@ set(OLIVE_SOURCES
widget/timelineview/tool/razor.cpp
widget/timelineview/tool/ripple.cpp
widget/timelineview/tool/tool.cpp
widget/timelineview/tool/zoom.cpp
PARENT_SCOPE
)
+47
View File
@@ -0,0 +1,47 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "widget/timelineview/timelineview.h"
TimelineView::ZoomTool::ZoomTool(TimelineView* parent) :
Tool(parent)
{
}
void TimelineView::ZoomTool::MousePress(QMouseEvent *event)
{
Q_UNUSED(event)
}
void TimelineView::ZoomTool::MouseMove(QMouseEvent *event)
{
Q_UNUSED(event)
}
void TimelineView::ZoomTool::MouseRelease(QMouseEvent *event)
{
if (event->modifiers() & Qt::AltModifier) {
// Zoom out if the user clicks while holding Alt
parent()->SetScale(parent()->scale_ * 0.5);
} else {
// Otherwise zoom in
parent()->SetScale(parent()->scale_ * 2);
}
}