From 374fa3f75caa69bd0e5ecbcc435378a7466f2bc2 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Wed, 16 Dec 2020 19:05:22 +1100 Subject: [PATCH] moved some files around for better organization --- app/node/CMakeLists.txt | 2 + .../nodecopypaste => node}/nodecopypaste.cpp | 8 +-- .../nodecopypaste => node}/nodecopypaste.h | 4 +- app/panel/timebased/timebased.h | 2 +- app/widget/CMakeLists.txt | 2 +- app/widget/curvewidget/curvewidget.h | 2 +- app/widget/handmovableview/CMakeLists.txt | 22 ++++++++ .../handmovableview.cpp | 0 .../handmovableview.h | 0 app/widget/keyframeview/keyframeviewbase.cpp | 4 +- app/widget/keyframeview/keyframeviewbase.h | 4 +- app/widget/nodeparamview/nodeparamview.cpp | 2 +- app/widget/nodeparamview/nodeparamview.h | 2 +- app/widget/nodetableview/nodetablewidget.h | 2 +- app/widget/nodeview/nodeview.h | 6 +-- .../resizabletimelinescrollbar.h | 4 +- .../CMakeLists.txt | 4 +- .../snapservice.cpp | 0 .../snapservice.h | 0 app/widget/timebased/CMakeLists.txt | 8 ++- .../timebasedview.cpp} | 50 +++++++++---------- .../timebasedview.h} | 10 ++-- .../{timebased.cpp => timebasedwidget.cpp} | 6 +-- .../{timebased.h => timebasedwidget.h} | 6 +-- .../timescaledobject.cpp} | 32 ++++++------ .../timescaledobject.h} | 11 ++-- app/widget/timelinewidget/CMakeLists.txt | 4 -- app/widget/timelinewidget/timelinewidget.cpp | 2 +- app/widget/timelinewidget/timelinewidget.h | 8 +-- app/widget/timelinewidget/tool/zoom.cpp | 2 +- app/widget/timelinewidget/view/CMakeLists.txt | 14 ++---- .../timelinewidget/view/timelineview.cpp | 10 ++-- app/widget/timelinewidget/view/timelineview.h | 4 +- .../view/timelineviewmouseevent.cpp | 6 +-- .../view/timelineviewmouseevent.h | 2 +- .../timelinewidget/view/timelineviewrect.cpp | 4 +- .../timelinewidget/view/timelineviewrect.h | 4 +- app/widget/timeruler/seekablewidget.h | 4 +- app/widget/viewer/viewer.h | 2 +- 39 files changed, 141 insertions(+), 118 deletions(-) rename app/{widget/nodecopypaste => node}/nodecopypaste.cpp (92%) rename app/{widget/nodecopypaste => node}/nodecopypaste.h (95%) create mode 100644 app/widget/handmovableview/CMakeLists.txt rename app/widget/{timelinewidget/view => handmovableview}/handmovableview.cpp (100%) rename app/widget/{timelinewidget/view => handmovableview}/handmovableview.h (100%) rename app/widget/{nodecopypaste => snapservice}/CMakeLists.txt (90%) rename app/widget/{timelinewidget => snapservice}/snapservice.cpp (100%) rename app/widget/{timelinewidget => snapservice}/snapservice.h (100%) rename app/widget/{timelinewidget/view/timelineviewbase.cpp => timebased/timebasedview.cpp} (83%) rename app/widget/{timelinewidget/view/timelineviewbase.h => timebased/timebasedview.h} (91%) rename app/widget/timebased/{timebased.cpp => timebasedwidget.cpp} (99%) rename app/widget/timebased/{timebased.h => timebasedwidget.h} (97%) rename app/widget/{timelinewidget/timelinescaledobject.cpp => timebased/timescaledobject.cpp} (66%) rename app/widget/{timelinewidget/timelinescaledobject.h => timebased/timescaledobject.h} (89%) diff --git a/app/node/CMakeLists.txt b/app/node/CMakeLists.txt index a39950a51..e74c12f5b 100644 --- a/app/node/CMakeLists.txt +++ b/app/node/CMakeLists.txt @@ -41,6 +41,8 @@ set(OLIVE_SOURCES node/keyframe.cpp node/node.h node/node.cpp + node/nodecopypaste.h + node/nodecopypaste.cpp node/output.h node/output.cpp node/param.h diff --git a/app/widget/nodecopypaste/nodecopypaste.cpp b/app/node/nodecopypaste.cpp similarity index 92% rename from app/widget/nodecopypaste/nodecopypaste.cpp rename to app/node/nodecopypaste.cpp index c46a5efda..f78db63ff 100644 --- a/app/widget/nodecopypaste/nodecopypaste.cpp +++ b/app/node/nodecopypaste.cpp @@ -29,7 +29,7 @@ namespace olive { -void NodeCopyPasteWidget::CopyNodesToClipboard(const QVector &nodes, void *userdata) +void NodeCopyPasteService::CopyNodesToClipboard(const QVector &nodes, void *userdata) { QString copy_str; @@ -56,7 +56,7 @@ void NodeCopyPasteWidget::CopyNodesToClipboard(const QVector &nodes, voi Core::CopyStringToClipboard(copy_str); } -QVector NodeCopyPasteWidget::PasteNodesFromClipboard(Sequence *graph, QUndoCommand* command, void *userdata) +QVector NodeCopyPasteService::PasteNodesFromClipboard(Sequence *graph, QUndoCommand* command, void *userdata) { QString clipboard = Core::PasteStringFromClipboard(); @@ -166,11 +166,11 @@ QVector NodeCopyPasteWidget::PasteNodesFromClipboard(Sequence *graph, QU return pasted_nodes; } -void NodeCopyPasteWidget::CopyNodesToClipboardInternal(QXmlStreamWriter*, void*) +void NodeCopyPasteService::CopyNodesToClipboardInternal(QXmlStreamWriter*, void*) { } -void NodeCopyPasteWidget::PasteNodesFromClipboardInternal(QXmlStreamReader* reader, XMLNodeData &xml_node_data, void*) +void NodeCopyPasteService::PasteNodesFromClipboardInternal(QXmlStreamReader* reader, XMLNodeData &xml_node_data, void*) { reader->skipCurrentElement(); } diff --git a/app/widget/nodecopypaste/nodecopypaste.h b/app/node/nodecopypaste.h similarity index 95% rename from app/widget/nodecopypaste/nodecopypaste.h rename to app/node/nodecopypaste.h index 00b7c30a0..456e46bb9 100644 --- a/app/widget/nodecopypaste/nodecopypaste.h +++ b/app/node/nodecopypaste.h @@ -29,10 +29,10 @@ namespace olive { -class NodeCopyPasteWidget +class NodeCopyPasteService { public: - NodeCopyPasteWidget() = default; + NodeCopyPasteService() = default; protected: void CopyNodesToClipboard(const QVector &nodes, void* userdata = nullptr); diff --git a/app/panel/timebased/timebased.h b/app/panel/timebased/timebased.h index ef0690652..2484a3183 100644 --- a/app/panel/timebased/timebased.h +++ b/app/panel/timebased/timebased.h @@ -22,7 +22,7 @@ #define TIMEBASEDPANEL_H #include "widget/panel/panel.h" -#include "widget/timebased/timebased.h" +#include "widget/timebased/timebasedwidget.h" namespace olive { diff --git a/app/widget/CMakeLists.txt b/app/widget/CMakeLists.txt index 32c4c88cd..83659ae8e 100644 --- a/app/widget/CMakeLists.txt +++ b/app/widget/CMakeLists.txt @@ -24,11 +24,11 @@ add_subdirectory(curvewidget) add_subdirectory(flowlayout) add_subdirectory(focusablelineedit) add_subdirectory(footagecombobox) +add_subdirectory(handmovableview) add_subdirectory(keyframeview) add_subdirectory(manageddisplay) add_subdirectory(menu) add_subdirectory(nodecombobox) -add_subdirectory(nodecopypaste) add_subdirectory(nodetableview) add_subdirectory(nodetreeview) add_subdirectory(nodeparamview) diff --git a/app/widget/curvewidget/curvewidget.h b/app/widget/curvewidget/curvewidget.h index 127987289..da930b09c 100644 --- a/app/widget/curvewidget/curvewidget.h +++ b/app/widget/curvewidget/curvewidget.h @@ -31,7 +31,7 @@ #include "widget/nodeparamview/nodeparamviewkeyframecontrol.h" #include "widget/nodeparamview/nodeparamviewwidgetbridge.h" #include "widget/nodetreeview/nodetreeview.h" -#include "widget/timebased/timebased.h" +#include "widget/timebased/timebasedwidget.h" namespace olive { diff --git a/app/widget/handmovableview/CMakeLists.txt b/app/widget/handmovableview/CMakeLists.txt new file mode 100644 index 000000000..d586c64fd --- /dev/null +++ b/app/widget/handmovableview/CMakeLists.txt @@ -0,0 +1,22 @@ +# Olive - Non-Linear Video Editor +# Copyright (C) 2020 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 . + +set(OLIVE_SOURCES + ${OLIVE_SOURCES} + widget/handmovableview/handmovableview.h + widget/handmovableview/handmovableview.cpp + PARENT_SCOPE +) diff --git a/app/widget/timelinewidget/view/handmovableview.cpp b/app/widget/handmovableview/handmovableview.cpp similarity index 100% rename from app/widget/timelinewidget/view/handmovableview.cpp rename to app/widget/handmovableview/handmovableview.cpp diff --git a/app/widget/timelinewidget/view/handmovableview.h b/app/widget/handmovableview/handmovableview.h similarity index 100% rename from app/widget/timelinewidget/view/handmovableview.h rename to app/widget/handmovableview/handmovableview.h diff --git a/app/widget/keyframeview/keyframeviewbase.cpp b/app/widget/keyframeview/keyframeviewbase.cpp index 7850ada79..e2b6888e3 100644 --- a/app/widget/keyframeview/keyframeviewbase.cpp +++ b/app/widget/keyframeview/keyframeviewbase.cpp @@ -33,7 +33,7 @@ namespace olive { KeyframeViewBase::KeyframeViewBase(QWidget *parent) : - TimelineViewBase(parent), + TimeBasedView(parent), dragging_bezier_point_(nullptr), currently_autoselecting_(false) { @@ -275,7 +275,7 @@ void KeyframeViewBase::mouseReleaseEvent(QMouseEvent *event) void KeyframeViewBase::ScaleChangedEvent(const double &scale) { - TimelineViewBase::ScaleChangedEvent(scale); + TimeBasedView::ScaleChangedEvent(scale); QMap::const_iterator iterator; diff --git a/app/widget/keyframeview/keyframeviewbase.h b/app/widget/keyframeview/keyframeviewbase.h index 113a14895..c81686a96 100644 --- a/app/widget/keyframeview/keyframeviewbase.h +++ b/app/widget/keyframeview/keyframeviewbase.h @@ -25,12 +25,12 @@ #include "node/keyframe.h" #include "widget/curvewidget/beziercontrolpointitem.h" #include "widget/menu/menu.h" -#include "widget/timelinewidget/view/timelineviewbase.h" +#include "widget/timebased/timebasedview.h" #include "widget/timetarget/timetarget.h" namespace olive { -class KeyframeViewBase : public TimelineViewBase, public TimeTargetObject +class KeyframeViewBase : public TimeBasedView, public TimeTargetObject { Q_OBJECT public: diff --git a/app/widget/nodeparamview/nodeparamview.cpp b/app/widget/nodeparamview/nodeparamview.cpp index 597ef7d61..69b37a310 100644 --- a/app/widget/nodeparamview/nodeparamview.cpp +++ b/app/widget/nodeparamview/nodeparamview.cpp @@ -125,7 +125,7 @@ NodeParamView::NodeParamView(QWidget *parent) : // Set a default scale - FIXME: Hardcoded SetScale(120); - SetMaximumScale(TimelineViewBase::kMaximumScale); + SetMaximumScale(TimeBasedView::kMaximumScale); // Pickup on widget focus changes connect(qApp, diff --git a/app/widget/nodeparamview/nodeparamview.h b/app/widget/nodeparamview/nodeparamview.h index 1bbefbf52..9c45fadfb 100644 --- a/app/widget/nodeparamview/nodeparamview.h +++ b/app/widget/nodeparamview/nodeparamview.h @@ -28,7 +28,7 @@ #include "node/node.h" #include "nodeparamviewitem.h" #include "widget/keyframeview/keyframeview.h" -#include "widget/timebased/timebased.h" +#include "widget/timebased/timebasedwidget.h" namespace olive { diff --git a/app/widget/nodetableview/nodetablewidget.h b/app/widget/nodetableview/nodetablewidget.h index b2e39210a..a68db7371 100644 --- a/app/widget/nodetableview/nodetablewidget.h +++ b/app/widget/nodetableview/nodetablewidget.h @@ -22,7 +22,7 @@ #define NODETABLEWIDGET_H #include "nodetableview.h" -#include "widget/timebased/timebased.h" +#include "widget/timebased/timebasedwidget.h" namespace olive { diff --git a/app/widget/nodeview/nodeview.h b/app/widget/nodeview/nodeview.h index 09c255468..9341cac9d 100644 --- a/app/widget/nodeview/nodeview.h +++ b/app/widget/nodeview/nodeview.h @@ -25,9 +25,9 @@ #include #include "node/graph.h" +#include "node/nodecopypaste.h" #include "nodeviewscene.h" -#include "widget/timelinewidget/view/handmovableview.h" -#include "widget/nodecopypaste/nodecopypaste.h" +#include "widget/handmovableview/handmovableview.h" namespace olive { @@ -37,7 +37,7 @@ namespace olive { * This widget takes a NodeGraph object and constructs a QGraphicsScene representing its data, viewing and allowing * the user to make modifications to it. */ -class NodeView : public HandMovableView, public NodeCopyPasteWidget +class NodeView : public HandMovableView, public NodeCopyPasteService { Q_OBJECT public: diff --git a/app/widget/resizablescrollbar/resizabletimelinescrollbar.h b/app/widget/resizablescrollbar/resizabletimelinescrollbar.h index 6c82a5dd9..034509174 100644 --- a/app/widget/resizablescrollbar/resizabletimelinescrollbar.h +++ b/app/widget/resizablescrollbar/resizabletimelinescrollbar.h @@ -23,11 +23,11 @@ #include "resizablescrollbar.h" #include "timeline/timelinepoints.h" -#include "widget/timelinewidget/timelinescaledobject.h" +#include "widget/timebased/timescaledobject.h" namespace olive { -class ResizableTimelineScrollBar : public ResizableScrollBar, public TimelineScaledObject +class ResizableTimelineScrollBar : public ResizableScrollBar, public TimeScaledObject { Q_OBJECT public: diff --git a/app/widget/nodecopypaste/CMakeLists.txt b/app/widget/snapservice/CMakeLists.txt similarity index 90% rename from app/widget/nodecopypaste/CMakeLists.txt rename to app/widget/snapservice/CMakeLists.txt index 808abbac5..f98998c57 100644 --- a/app/widget/nodecopypaste/CMakeLists.txt +++ b/app/widget/snapservice/CMakeLists.txt @@ -16,7 +16,7 @@ set(OLIVE_SOURCES ${OLIVE_SOURCES} - widget/nodecopypaste/nodecopypaste.h - widget/nodecopypaste/nodecopypaste.cpp + widget/snapservice/snapservice.cpp + widget/snapservice/snapservice.h PARENT_SCOPE ) diff --git a/app/widget/timelinewidget/snapservice.cpp b/app/widget/snapservice/snapservice.cpp similarity index 100% rename from app/widget/timelinewidget/snapservice.cpp rename to app/widget/snapservice/snapservice.cpp diff --git a/app/widget/timelinewidget/snapservice.h b/app/widget/snapservice/snapservice.h similarity index 100% rename from app/widget/timelinewidget/snapservice.h rename to app/widget/snapservice/snapservice.h diff --git a/app/widget/timebased/CMakeLists.txt b/app/widget/timebased/CMakeLists.txt index 8719d0f0a..1a13a2123 100644 --- a/app/widget/timebased/CMakeLists.txt +++ b/app/widget/timebased/CMakeLists.txt @@ -16,7 +16,11 @@ set(OLIVE_SOURCES ${OLIVE_SOURCES} - widget/timebased/timebased.h - widget/timebased/timebased.cpp + widget/timebased/timebasedview.cpp + widget/timebased/timebasedview.h + widget/timebased/timebasedwidget.cpp + widget/timebased/timebasedwidget.h + widget/timebased/timescaledobject.cpp + widget/timebased/timescaledobject.h PARENT_SCOPE ) diff --git a/app/widget/timelinewidget/view/timelineviewbase.cpp b/app/widget/timebased/timebasedview.cpp similarity index 83% rename from app/widget/timelinewidget/view/timelineviewbase.cpp rename to app/widget/timebased/timebasedview.cpp index a252a867a..54ad04826 100644 --- a/app/widget/timelinewidget/view/timelineviewbase.cpp +++ b/app/widget/timebased/timebasedview.cpp @@ -18,7 +18,7 @@ ***/ -#include "timelineviewbase.h" +#include "timebasedview.h" #include #include @@ -30,9 +30,9 @@ namespace olive { -const double TimelineViewBase::kMaximumScale = 8192; +const double TimeBasedView::kMaximumScale = 8192; -TimelineViewBase::TimelineViewBase(QWidget *parent) : +TimeBasedView::TimeBasedView(QWidget *parent) : HandMovableView(parent), playhead_(0), playhead_scene_left_(-1), @@ -53,7 +53,7 @@ TimelineViewBase::TimelineViewBase(QWidget *parent) : SetDefaultDragMode(NoDrag); // Signal to update bounding rect when the scene changes - connect(&scene_, &QGraphicsScene::changed, this, &TimelineViewBase::UpdateSceneRect); + connect(&scene_, &QGraphicsScene::changed, this, &TimeBasedView::UpdateSceneRect); // Always enforce maximum scale SetMaximumScale(kMaximumScale); @@ -64,13 +64,13 @@ TimelineViewBase::TimelineViewBase(QWidget *parent) : setViewportUpdateMode(QGraphicsView::FullViewportUpdate); } -void TimelineViewBase::TimebaseChangedEvent(const rational &) +void TimeBasedView::TimebaseChangedEvent(const rational &) { // Timebase influences position/visibility of playhead viewport()->update(); } -void TimelineViewBase::EnableSnap(const QList &points) +void TimeBasedView::EnableSnap(const QList &points) { snapped_ = true; snap_time_ = points; @@ -78,28 +78,28 @@ void TimelineViewBase::EnableSnap(const QList &points) viewport()->update(); } -void TimelineViewBase::DisableSnap() +void TimeBasedView::DisableSnap() { snapped_ = false; viewport()->update(); } -void TimelineViewBase::SetSnapService(SnapService *service) +void TimeBasedView::SetSnapService(SnapService *service) { snap_service_ = service; } -const double &TimelineViewBase::GetYScale() const +const double &TimeBasedView::GetYScale() const { return y_scale_; } -void TimelineViewBase::VerticalScaleChangedEvent(double) +void TimeBasedView::VerticalScaleChangedEvent(double) { } -void TimelineViewBase::SetYScale(const double &y_scale) +void TimeBasedView::SetYScale(const double &y_scale) { y_scale_ = y_scale; @@ -110,7 +110,7 @@ void TimelineViewBase::SetYScale(const double &y_scale) } } -void TimelineViewBase::SetTime(const int64_t time) +void TimeBasedView::SetTime(const int64_t time) { playhead_ = time; @@ -118,7 +118,7 @@ void TimelineViewBase::SetTime(const int64_t time) viewport()->update(); } -void TimelineViewBase::drawForeground(QPainter *painter, const QRectF &rect) +void TimeBasedView::drawForeground(QPainter *painter, const QRectF &rect) { QGraphicsView::drawForeground(painter, rect); @@ -154,12 +154,12 @@ void TimelineViewBase::drawForeground(QPainter *painter, const QRectF &rect) } } -rational TimelineViewBase::GetPlayheadTime() const +rational TimeBasedView::GetPlayheadTime() const { return Timecode::timestamp_to_time(playhead_, timebase()); } -bool TimelineViewBase::PlayheadPress(QMouseEvent *event) +bool TimeBasedView::PlayheadPress(QMouseEvent *event) { QPointF scene_pos = mapToScene(event->pos()); @@ -170,7 +170,7 @@ bool TimelineViewBase::PlayheadPress(QMouseEvent *event) return dragging_playhead_; } -bool TimelineViewBase::PlayheadMove(QMouseEvent *event) +bool TimeBasedView::PlayheadMove(QMouseEvent *event) { if (!dragging_playhead_) { return false; @@ -198,7 +198,7 @@ bool TimelineViewBase::PlayheadMove(QMouseEvent *event) return true; } -bool TimelineViewBase::PlayheadRelease(QMouseEvent*) +bool TimeBasedView::PlayheadRelease(QMouseEvent*) { if (dragging_playhead_) { dragging_playhead_ = false; @@ -213,19 +213,19 @@ bool TimelineViewBase::PlayheadRelease(QMouseEvent*) return false; } -qreal TimelineViewBase::GetPlayheadX() +qreal TimeBasedView::GetPlayheadX() { return TimeToScene(Timecode::timestamp_to_time(playhead_, timebase())); } -void TimelineViewBase::SetEndTime(const rational &length) +void TimeBasedView::SetEndTime(const rational &length) { end_time_ = length; UpdateSceneRect(); } -void TimelineViewBase::UpdateSceneRect() +void TimeBasedView::UpdateSceneRect() { QRectF bounding_rect = scene_.itemsBoundingRect(); @@ -244,16 +244,16 @@ void TimelineViewBase::UpdateSceneRect() } } -void TimelineViewBase::resizeEvent(QResizeEvent *event) +void TimeBasedView::resizeEvent(QResizeEvent *event) { QGraphicsView::resizeEvent(event); UpdateSceneRect(); } -void TimelineViewBase::ScaleChangedEvent(const double &scale) +void TimeBasedView::ScaleChangedEvent(const double &scale) { - TimelineScaledObject::ScaleChangedEvent(scale); + TimeScaledObject::ScaleChangedEvent(scale); // Update scene rect UpdateSceneRect(); @@ -262,7 +262,7 @@ void TimelineViewBase::ScaleChangedEvent(const double &scale) viewport()->update(); } -bool TimelineViewBase::HandleZoomFromScroll(QWheelEvent *event) +bool TimeBasedView::HandleZoomFromScroll(QWheelEvent *event) { if (WheelEventIsAZoomEvent(event)) { // If CTRL is held (or a preference is set to swap CTRL behavior), we zoom instead of scrolling @@ -326,7 +326,7 @@ bool TimelineViewBase::HandleZoomFromScroll(QWheelEvent *event) return false; } -bool TimelineViewBase::WheelEventIsAZoomEvent(QWheelEvent *event) +bool TimeBasedView::WheelEventIsAZoomEvent(QWheelEvent *event) { return (static_cast(event->modifiers() & Qt::ControlModifier) == !Config::Current()["ScrollZooms"].toBool()); } diff --git a/app/widget/timelinewidget/view/timelineviewbase.h b/app/widget/timebased/timebasedview.h similarity index 91% rename from app/widget/timelinewidget/view/timelineviewbase.h rename to app/widget/timebased/timebasedview.h index 4ae847391..f6549afa2 100644 --- a/app/widget/timelinewidget/view/timelineviewbase.h +++ b/app/widget/timebased/timebasedview.h @@ -24,17 +24,17 @@ #include #include "core.h" -#include "handmovableview.h" -#include "widget/timelinewidget/snapservice.h" -#include "widget/timelinewidget/timelinescaledobject.h" +#include "timescaledobject.h" +#include "widget/handmovableview/handmovableview.h" +#include "widget/snapservice/snapservice.h" namespace olive { -class TimelineViewBase : public HandMovableView, public TimelineScaledObject +class TimeBasedView : public HandMovableView, public TimeScaledObject { Q_OBJECT public: - TimelineViewBase(QWidget* parent = nullptr); + TimeBasedView(QWidget* parent = nullptr); static const double kMaximumScale; diff --git a/app/widget/timebased/timebased.cpp b/app/widget/timebased/timebasedwidget.cpp similarity index 99% rename from app/widget/timebased/timebased.cpp rename to app/widget/timebased/timebasedwidget.cpp index 90296bd64..d0c0a6152 100644 --- a/app/widget/timebased/timebased.cpp +++ b/app/widget/timebased/timebasedwidget.cpp @@ -18,7 +18,7 @@ ***/ -#include "timebased.h" +#include "timebasedwidget.h" #include #include @@ -132,7 +132,7 @@ void TimeBasedWidget::UpdateMaximumScroll() scrollbar_->setMaximum(qMax(0, qCeil(TimeToScene(length)) - width())); } - foreach (TimelineViewBase* base, timeline_views_) { + foreach (TimeBasedView* base, timeline_views_) { base->SetEndTime(length); } } @@ -238,7 +238,7 @@ TimelinePoints *TimeBasedWidget::GetConnectedTimelinePoints() const return points_; } -void TimeBasedWidget::ConnectTimelineView(TimelineViewBase *base) +void TimeBasedWidget::ConnectTimelineView(TimeBasedView *base) { timeline_views_.append(base); } diff --git a/app/widget/timebased/timebased.h b/app/widget/timebased/timebasedwidget.h similarity index 97% rename from app/widget/timebased/timebased.h rename to app/widget/timebased/timebasedwidget.h index ddca58835..089e5a209 100644 --- a/app/widget/timebased/timebased.h +++ b/app/widget/timebased/timebasedwidget.h @@ -26,7 +26,7 @@ #include "node/output/viewer/viewer.h" #include "timeline/timelinecommon.h" #include "widget/resizablescrollbar/resizabletimelinescrollbar.h" -#include "widget/timelinewidget/timelinescaledobject.h" +#include "widget/timebased/timescaledobject.h" #include "widget/timelinewidget/view/timelineview.h" #include "widget/timeruler/timeruler.h" @@ -121,7 +121,7 @@ protected: TimelinePoints* GetConnectedTimelinePoints() const; - void ConnectTimelineView(TimelineViewBase* base); + void ConnectTimelineView(TimeBasedView* base); void PassWheelEventsToScrollBar(QObject* object); @@ -194,7 +194,7 @@ private: TimelinePoints* points_; - QList timeline_views_; + QList timeline_views_; bool toggle_show_all_; diff --git a/app/widget/timelinewidget/timelinescaledobject.cpp b/app/widget/timebased/timescaledobject.cpp similarity index 66% rename from app/widget/timelinewidget/timelinescaledobject.cpp rename to app/widget/timebased/timescaledobject.cpp index 28453c391..e3aeab08d 100644 --- a/app/widget/timelinewidget/timelinescaledobject.cpp +++ b/app/widget/timebased/timescaledobject.cpp @@ -18,7 +18,7 @@ ***/ -#include "timelinescaledobject.h" +#include "timescaledobject.h" #include #include @@ -27,9 +27,9 @@ namespace olive { -const int TimelineScaledObject::kCalculateDimensionsPadding = 10; +const int TimeScaledObject::kCalculateDimensionsPadding = 10; -TimelineScaledObject::TimelineScaledObject() : +TimeScaledObject::TimeScaledObject() : scale_(1.0), min_scale_(0), max_scale_(DBL_MAX) @@ -37,7 +37,7 @@ TimelineScaledObject::TimelineScaledObject() : } -void TimelineScaledObject::SetTimebase(const rational &timebase) +void TimeScaledObject::SetTimebase(const rational &timebase) { timebase_ = timebase; timebase_dbl_ = timebase_.toDouble(); @@ -45,17 +45,17 @@ void TimelineScaledObject::SetTimebase(const rational &timebase) TimebaseChangedEvent(timebase); } -const rational &TimelineScaledObject::timebase() const +const rational &TimeScaledObject::timebase() const { return timebase_; } -const double &TimelineScaledObject::timebase_dbl() const +const double &TimeScaledObject::timebase_dbl() const { return timebase_dbl_; } -rational TimelineScaledObject::SceneToTime(const double &x, const double &x_scale, const rational &timebase, bool round) +rational TimeScaledObject::SceneToTime(const double &x, const double &x_scale, const rational &timebase, bool round) { double unscaled_time = x / x_scale / timebase.toDouble(); @@ -72,17 +72,17 @@ rational TimelineScaledObject::SceneToTime(const double &x, const double &x_scal return rational(rounded_x_mvmt * timebase.numerator(), timebase.denominator()); } -double TimelineScaledObject::TimeToScene(const rational &time) +double TimeScaledObject::TimeToScene(const rational &time) { return time.toDouble() * scale_; } -rational TimelineScaledObject::SceneToTime(const double &x, bool round) +rational TimeScaledObject::SceneToTime(const double &x, bool round) { return SceneToTime(x, scale_, timebase_, round); } -void TimelineScaledObject::SetMaximumScale(const double &max) +void TimeScaledObject::SetMaximumScale(const double &max) { max_scale_ = max; @@ -91,7 +91,7 @@ void TimelineScaledObject::SetMaximumScale(const double &max) } } -void TimelineScaledObject::SetMinimumScale(const double &min) +void TimeScaledObject::SetMinimumScale(const double &min) { min_scale_ = min; @@ -100,12 +100,12 @@ void TimelineScaledObject::SetMinimumScale(const double &min) } } -const double& TimelineScaledObject::GetScale() const +const double& TimeScaledObject::GetScale() const { return scale_; } -void TimelineScaledObject::SetScale(const double& scale) +void TimeScaledObject::SetScale(const double& scale) { Q_ASSERT(scale > 0); @@ -114,17 +114,17 @@ void TimelineScaledObject::SetScale(const double& scale) ScaleChangedEvent(scale_); } -void TimelineScaledObject::SetScaleFromDimensions(double viewport_width, double content_width) +void TimeScaledObject::SetScaleFromDimensions(double viewport_width, double content_width) { SetScale(CalculateScaleFromDimensions(viewport_width, content_width)); } -double TimelineScaledObject::CalculateScaleFromDimensions(double viewport_sz, double content_sz) +double TimeScaledObject::CalculateScaleFromDimensions(double viewport_sz, double content_sz) { return static_cast(viewport_sz / kCalculateDimensionsPadding * (kCalculateDimensionsPadding-1)) / static_cast(content_sz); } -double TimelineScaledObject::CalculatePaddingFromDimensionScale(double viewport_sz) +double TimeScaledObject::CalculatePaddingFromDimensionScale(double viewport_sz) { return (viewport_sz / (kCalculateDimensionsPadding * 2)); } diff --git a/app/widget/timelinewidget/timelinescaledobject.h b/app/widget/timebased/timescaledobject.h similarity index 89% rename from app/widget/timelinewidget/timelinescaledobject.h rename to app/widget/timebased/timescaledobject.h index 8e96ec122..ad90cb608 100644 --- a/app/widget/timelinewidget/timelinescaledobject.h +++ b/app/widget/timebased/timescaledobject.h @@ -27,11 +27,14 @@ namespace olive { -class TimelineScaledObject +/** + * @brief Provides base functionality for any object that uses time and scale + */ +class TimeScaledObject { public: - TimelineScaledObject(); - virtual ~TimelineScaledObject() = default; + TimeScaledObject(); + virtual ~TimeScaledObject() = default; void SetTimebase(const rational &timebase); @@ -75,7 +78,7 @@ private: }; -class TimelineScaledWidget : public QWidget, public TimelineScaledObject +class TimelineScaledWidget : public QWidget, public TimeScaledObject { Q_OBJECT public: diff --git a/app/widget/timelinewidget/CMakeLists.txt b/app/widget/timelinewidget/CMakeLists.txt index 86173dc1b..563fa03dd 100644 --- a/app/widget/timelinewidget/CMakeLists.txt +++ b/app/widget/timelinewidget/CMakeLists.txt @@ -21,12 +21,8 @@ add_subdirectory(view) set(OLIVE_SOURCES ${OLIVE_SOURCES} - widget/timelinewidget/snapservice.h - widget/timelinewidget/snapservice.cpp widget/timelinewidget/timelineandtrackview.h widget/timelinewidget/timelineandtrackview.cpp - widget/timelinewidget/timelinescaledobject.h - widget/timelinewidget/timelinescaledobject.cpp widget/timelinewidget/timelinewidget.h widget/timelinewidget/timelinewidget.cpp widget/timelinewidget/timelinewidgetselections.h diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index 05baf88b6..de6a66d86 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -160,7 +160,7 @@ TimelineWidget::TimelineWidget(QWidget *parent) : // FIXME: Magic number SetScale(90.0); - SetMaximumScale(TimelineViewBase::kMaximumScale); + SetMaximumScale(TimeBasedView::kMaximumScale); SetAutoSetTimebase(false); connect(Core::instance(), &Core::ToolChanged, this, &TimelineWidget::ToolChanged); diff --git a/app/widget/timelinewidget/timelinewidget.h b/app/widget/timelinewidget/timelinewidget.h index 3c5e728cf..5078a5a02 100644 --- a/app/widget/timelinewidget/timelinewidget.h +++ b/app/widget/timelinewidget/timelinewidget.h @@ -27,13 +27,13 @@ #include "core.h" #include "node/block/transition/transition.h" +#include "node/nodecopypaste.h" #include "node/output/viewer/viewer.h" -#include "snapservice.h" #include "timeline/timelinecommon.h" #include "timelineandtrackview.h" -#include "widget/nodecopypaste/nodecopypaste.h" #include "widget/slider/timeslider.h" -#include "widget/timebased/timebased.h" +#include "widget/snapservice/snapservice.h" +#include "widget/timebased/timebasedwidget.h" #include "widget/timelinewidget/timelinewidgetselections.h" #include "widget/timelinewidget/tool/import.h" #include "widget/timelinewidget/tool/tool.h" @@ -45,7 +45,7 @@ namespace olive { * * Encapsulates TimelineViews, TimeRulers, and scrollbars for a complete widget to manipulate Timelines */ -class TimelineWidget : public TimeBasedWidget, public NodeCopyPasteWidget, public SnapService +class TimelineWidget : public TimeBasedWidget, public NodeCopyPasteService, public SnapService { Q_OBJECT public: diff --git a/app/widget/timelinewidget/tool/zoom.cpp b/app/widget/timelinewidget/tool/zoom.cpp index 063a4afc6..58cf96d83 100644 --- a/app/widget/timelinewidget/tool/zoom.cpp +++ b/app/widget/timelinewidget/tool/zoom.cpp @@ -68,7 +68,7 @@ void ZoomTool::MouseRelease(TimelineViewMouseEvent *event) // Normalize scale to 1.0 scale double scene_width = (scene_right - scene_left) / parent()->GetScale(); - double new_scale = qMin(TimelineViewBase::kMaximumScale, static_cast(reference_view->viewport()->width()) / scene_width); + double new_scale = qMin(TimeBasedView::kMaximumScale, static_cast(reference_view->viewport()->width()) / scene_width); parent()->SetScale(new_scale); diff --git a/app/widget/timelinewidget/view/CMakeLists.txt b/app/widget/timelinewidget/view/CMakeLists.txt index 929652ed7..2c67d5378 100644 --- a/app/widget/timelinewidget/view/CMakeLists.txt +++ b/app/widget/timelinewidget/view/CMakeLists.txt @@ -16,19 +16,15 @@ set(OLIVE_SOURCES ${OLIVE_SOURCES} - widget/timelinewidget/view/handmovableview.h - widget/timelinewidget/view/handmovableview.cpp - widget/timelinewidget/view/timelineview.h widget/timelinewidget/view/timelineview.cpp - widget/timelinewidget/view/timelineviewmouseevent.h + widget/timelinewidget/view/timelineview.h widget/timelinewidget/view/timelineviewmouseevent.cpp - widget/timelinewidget/view/timelineviewrect.h + widget/timelinewidget/view/timelineviewmouseevent.h widget/timelinewidget/view/timelineviewrect.cpp - widget/timelinewidget/view/timelineviewbase.h - widget/timelinewidget/view/timelineviewbase.cpp - widget/timelinewidget/view/timelineviewblockitem.h + widget/timelinewidget/view/timelineviewrect.h widget/timelinewidget/view/timelineviewblockitem.cpp - widget/timelinewidget/view/timelineviewghostitem.h + widget/timelinewidget/view/timelineviewblockitem.h widget/timelinewidget/view/timelineviewghostitem.cpp + widget/timelinewidget/view/timelineviewghostitem.h PARENT_SCOPE ) diff --git a/app/widget/timelinewidget/view/timelineview.cpp b/app/widget/timelinewidget/view/timelineview.cpp index cb2930866..094b80b64 100644 --- a/app/widget/timelinewidget/view/timelineview.cpp +++ b/app/widget/timelinewidget/view/timelineview.cpp @@ -36,7 +36,7 @@ namespace olive { TimelineView::TimelineView(Qt::Alignment vertical_alignment, QWidget *parent) : - TimelineViewBase(parent), + TimeBasedView(parent), selections_(nullptr), ghosts_(nullptr), show_beam_cursor_(false), @@ -59,7 +59,7 @@ void TimelineView::mousePressEvent(QMouseEvent *event) } if (dragMode() != GetDefaultDragMode()) { - TimelineViewBase::mousePressEvent(event); + TimeBasedView::mousePressEvent(event); return; } @@ -76,7 +76,7 @@ void TimelineView::mouseMoveEvent(QMouseEvent *event) } if (dragMode() != GetDefaultDragMode()) { - TimelineViewBase::mouseMoveEvent(event); + TimeBasedView::mouseMoveEvent(event); return; } @@ -93,7 +93,7 @@ void TimelineView::mouseReleaseEvent(QMouseEvent *event) } if (dragMode() != GetDefaultDragMode()) { - TimelineViewBase::mouseReleaseEvent(event); + TimeBasedView::mouseReleaseEvent(event); return; } @@ -283,7 +283,7 @@ void TimelineView::drawForeground(QPainter *painter, const QRectF &rect) } // Draw standard TimelineViewBase things (such as playhead) - TimelineViewBase::drawForeground(painter, rect); + TimeBasedView::drawForeground(painter, rect); } void TimelineView::ToolChangedEvent(Tool::Item tool) diff --git a/app/widget/timelinewidget/view/timelineview.h b/app/widget/timelinewidget/view/timelineview.h index 71d6eb1d8..999a32157 100644 --- a/app/widget/timelinewidget/view/timelineview.h +++ b/app/widget/timelinewidget/view/timelineview.h @@ -28,10 +28,10 @@ #include #include "node/block/clip/clip.h" -#include "timelineviewbase.h" #include "timelineviewblockitem.h" #include "timelineviewmouseevent.h" #include "timelineviewghostitem.h" +#include "widget/timebased/timebasedview.h" #include "widget/timelinewidget/undo/undo.h" #include "undo/undostack.h" @@ -42,7 +42,7 @@ namespace olive { * * This widget primarily exposes users to viewing and modifying Block nodes, usually through a TimelineOutput node. */ -class TimelineView : public TimelineViewBase +class TimelineView : public TimeBasedView { Q_OBJECT public: diff --git a/app/widget/timelinewidget/view/timelineviewmouseevent.cpp b/app/widget/timelinewidget/view/timelineviewmouseevent.cpp index 61e697d63..d0d451f5b 100644 --- a/app/widget/timelinewidget/view/timelineviewmouseevent.cpp +++ b/app/widget/timelinewidget/view/timelineviewmouseevent.cpp @@ -22,7 +22,7 @@ #include -#include "widget/timelinewidget/timelinescaledobject.h" +#include "widget/timebased/timescaledobject.h" namespace olive { @@ -48,14 +48,14 @@ TimelineCoordinate TimelineViewMouseEvent::GetCoordinates(bool round_time) const return TimelineCoordinate(GetFrame(round_time), track_); } -const Qt::KeyboardModifiers TimelineViewMouseEvent::GetModifiers() const +const Qt::KeyboardModifiers &TimelineViewMouseEvent::GetModifiers() const { return modifiers_; } rational TimelineViewMouseEvent::GetFrame(bool round) const { - return TimelineScaledObject::SceneToTime(scene_x_, scale_x_, timebase_, round); + return TimeScaledObject::SceneToTime(scene_x_, scale_x_, timebase_, round); } const TrackReference &TimelineViewMouseEvent::GetTrack() const diff --git a/app/widget/timelinewidget/view/timelineviewmouseevent.h b/app/widget/timelinewidget/view/timelineviewmouseevent.h index f4371660e..8c466e426 100644 --- a/app/widget/timelinewidget/view/timelineviewmouseevent.h +++ b/app/widget/timelinewidget/view/timelineviewmouseevent.h @@ -40,7 +40,7 @@ public: const Qt::KeyboardModifiers& modifiers = Qt::NoModifier); TimelineCoordinate GetCoordinates(bool round_time = false) const; - const Qt::KeyboardModifiers GetModifiers() const; + const Qt::KeyboardModifiers& GetModifiers() const; /** * @brief Gets the time at this cursor point diff --git a/app/widget/timelinewidget/view/timelineviewrect.cpp b/app/widget/timelinewidget/view/timelineviewrect.cpp index 1145671ea..1fa9d7b11 100644 --- a/app/widget/timelinewidget/view/timelineviewrect.cpp +++ b/app/widget/timelinewidget/view/timelineviewrect.cpp @@ -50,14 +50,14 @@ void TimelineViewRect::SetTrack(const TrackReference &track) void TimelineViewRect::ScaleChangedEvent(const double &scale) { - TimelineScaledObject::ScaleChangedEvent(scale); + TimeScaledObject::ScaleChangedEvent(scale); UpdateRect(); } void TimelineViewRect::TimebaseChangedEvent(const rational &tb) { - TimelineScaledObject::TimebaseChangedEvent(tb); + TimeScaledObject::TimebaseChangedEvent(tb); UpdateRect(); } diff --git a/app/widget/timelinewidget/view/timelineviewrect.h b/app/widget/timelinewidget/view/timelineviewrect.h index 14311264a..974fc4364 100644 --- a/app/widget/timelinewidget/view/timelineviewrect.h +++ b/app/widget/timelinewidget/view/timelineviewrect.h @@ -24,14 +24,14 @@ #include #include "timeline/timelinecoordinate.h" -#include "../timelinescaledobject.h" +#include "widget/timebased/timescaledobject.h" namespace olive { /** * @brief A base class for graphical representations of Block nodes */ -class TimelineViewRect : public QGraphicsRectItem, public TimelineScaledObject +class TimelineViewRect : public QGraphicsRectItem, public TimeScaledObject { public: TimelineViewRect(QGraphicsItem* parent = nullptr); diff --git a/app/widget/timeruler/seekablewidget.h b/app/widget/timeruler/seekablewidget.h index b508e688c..6f884be39 100644 --- a/app/widget/timeruler/seekablewidget.h +++ b/app/widget/timeruler/seekablewidget.h @@ -23,8 +23,8 @@ #include "common/rational.h" #include "timeline/timelinepoints.h" -#include "widget/timelinewidget/snapservice.h" -#include "widget/timelinewidget/timelinescaledobject.h" +#include "widget/snapservice/snapservice.h" +#include "widget/timebased/timescaledobject.h" namespace olive { diff --git a/app/widget/viewer/viewer.h b/app/widget/viewer/viewer.h index 40bdc7053..7f24c46fa 100644 --- a/app/widget/viewer/viewer.h +++ b/app/widget/viewer/viewer.h @@ -40,7 +40,7 @@ #include "viewersizer.h" #include "viewerwindow.h" #include "widget/playbackcontrols/playbackcontrols.h" -#include "widget/timebased/timebased.h" +#include "widget/timebased/timebasedwidget.h" namespace olive {