diff --git a/app/node/block/block.cpp b/app/node/block/block.cpp index 2daad454d..0f086d47d 100644 --- a/app/node/block/block.cpp +++ b/app/node/block/block.cpp @@ -29,3 +29,8 @@ QString Block::Category() { return tr("Block"); } + +rational Block::out() +{ + return in() + length(); +} diff --git a/app/node/block/block.h b/app/node/block/block.h index d274e023f..34f90d7e5 100644 --- a/app/node/block/block.h +++ b/app/node/block/block.h @@ -31,6 +31,11 @@ public: virtual QString Category() override; + virtual rational in(); + virtual rational out(); + + virtual rational length() = 0; + public slots: // virtual void Process(const rational &time) override; diff --git a/app/ui/style/olive-dark/olive-dark.qrc b/app/ui/style/olive-dark/olive-dark.qrc index 5f620ebd9..2c8a935e4 100644 --- a/app/ui/style/olive-dark/olive-dark.qrc +++ b/app/ui/style/olive-dark/olive-dark.qrc @@ -37,6 +37,10 @@ png/beam.32.png png/beam.64.png png/beam.128.png + png/box.16.png + png/box.32.png + png/box.64.png + png/box.128.png png/clock.16.png png/clock.32.png png/clock.64.png diff --git a/app/ui/style/olive-dark/png/arrow.128.png b/app/ui/style/olive-dark/png/arrow.128.png index 40bb07fee..8bd3a0112 100644 Binary files a/app/ui/style/olive-dark/png/arrow.128.png and b/app/ui/style/olive-dark/png/arrow.128.png differ diff --git a/app/ui/style/olive-dark/png/arrow.16.png b/app/ui/style/olive-dark/png/arrow.16.png index e178d430c..063c26afc 100644 Binary files a/app/ui/style/olive-dark/png/arrow.16.png and b/app/ui/style/olive-dark/png/arrow.16.png differ diff --git a/app/ui/style/olive-dark/png/arrow.32.png b/app/ui/style/olive-dark/png/arrow.32.png index 625782fe7..c087e9105 100644 Binary files a/app/ui/style/olive-dark/png/arrow.32.png and b/app/ui/style/olive-dark/png/arrow.32.png differ diff --git a/app/ui/style/olive-dark/png/arrow.64.png b/app/ui/style/olive-dark/png/arrow.64.png index 3d352903c..49b8d553a 100644 Binary files a/app/ui/style/olive-dark/png/arrow.64.png and b/app/ui/style/olive-dark/png/arrow.64.png differ diff --git a/app/ui/style/olive-dark/png/beam.128.png b/app/ui/style/olive-dark/png/beam.128.png index 296e43343..bf6a3470c 100644 Binary files a/app/ui/style/olive-dark/png/beam.128.png and b/app/ui/style/olive-dark/png/beam.128.png differ diff --git a/app/ui/style/olive-dark/png/beam.16.png b/app/ui/style/olive-dark/png/beam.16.png index 2ddebafa9..4f34e7935 100644 Binary files a/app/ui/style/olive-dark/png/beam.16.png and b/app/ui/style/olive-dark/png/beam.16.png differ diff --git a/app/ui/style/olive-dark/png/beam.32.png b/app/ui/style/olive-dark/png/beam.32.png index 3a98813c6..ba100da3b 100644 Binary files a/app/ui/style/olive-dark/png/beam.32.png and b/app/ui/style/olive-dark/png/beam.32.png differ diff --git a/app/ui/style/olive-dark/png/beam.64.png b/app/ui/style/olive-dark/png/beam.64.png index a1563674f..af751d38d 100644 Binary files a/app/ui/style/olive-dark/png/beam.64.png and b/app/ui/style/olive-dark/png/beam.64.png differ diff --git a/app/ui/style/olive-dark/png/box.128.png b/app/ui/style/olive-dark/png/box.128.png new file mode 100644 index 000000000..296e43343 Binary files /dev/null and b/app/ui/style/olive-dark/png/box.128.png differ diff --git a/app/ui/style/olive-dark/png/box.16.png b/app/ui/style/olive-dark/png/box.16.png new file mode 100644 index 000000000..2ddebafa9 Binary files /dev/null and b/app/ui/style/olive-dark/png/box.16.png differ diff --git a/app/ui/style/olive-dark/png/box.32.png b/app/ui/style/olive-dark/png/box.32.png new file mode 100644 index 000000000..3a98813c6 Binary files /dev/null and b/app/ui/style/olive-dark/png/box.32.png differ diff --git a/app/ui/style/olive-dark/png/box.64.png b/app/ui/style/olive-dark/png/box.64.png new file mode 100644 index 000000000..a1563674f Binary files /dev/null and b/app/ui/style/olive-dark/png/box.64.png differ diff --git a/app/ui/style/olive-dark/svg/arrow.svg b/app/ui/style/olive-dark/svg/arrow.svg index f5253dc8f..2c5ba8708 100644 --- a/app/ui/style/olive-dark/svg/arrow.svg +++ b/app/ui/style/olive-dark/svg/arrow.svg @@ -1,129 +1 @@ - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/ui/style/olive-dark/svg/beam.svg b/app/ui/style/olive-dark/svg/beam.svg index 830514e4a..096e0501e 100644 --- a/app/ui/style/olive-dark/svg/beam.svg +++ b/app/ui/style/olive-dark/svg/beam.svg @@ -1,170 +1,6 @@ - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + \ No newline at end of file diff --git a/app/ui/style/olive-dark/svg/box.svg b/app/ui/style/olive-dark/svg/box.svg new file mode 100644 index 000000000..830514e4a --- /dev/null +++ b/app/ui/style/olive-dark/svg/box.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/olive-light.qrc b/app/ui/style/olive-light/olive-light.qrc index d910c3a36..40ee077f2 100644 --- a/app/ui/style/olive-light/olive-light.qrc +++ b/app/ui/style/olive-light/olive-light.qrc @@ -37,6 +37,10 @@ png/beam.32.png png/beam.64.png png/beam.128.png + png/box.16.png + png/box.32.png + png/box.64.png + png/box.128.png png/clock.16.png png/clock.32.png png/clock.64.png diff --git a/app/ui/style/olive-light/png/arrow.128.png b/app/ui/style/olive-light/png/arrow.128.png index 6cb203542..a5b2c40cc 100644 Binary files a/app/ui/style/olive-light/png/arrow.128.png and b/app/ui/style/olive-light/png/arrow.128.png differ diff --git a/app/ui/style/olive-light/png/arrow.16.png b/app/ui/style/olive-light/png/arrow.16.png index 35901fd32..2578e6b2e 100644 Binary files a/app/ui/style/olive-light/png/arrow.16.png and b/app/ui/style/olive-light/png/arrow.16.png differ diff --git a/app/ui/style/olive-light/png/arrow.32.png b/app/ui/style/olive-light/png/arrow.32.png index c84aba186..50b68c170 100644 Binary files a/app/ui/style/olive-light/png/arrow.32.png and b/app/ui/style/olive-light/png/arrow.32.png differ diff --git a/app/ui/style/olive-light/png/arrow.64.png b/app/ui/style/olive-light/png/arrow.64.png index b70296aee..c71cd536c 100644 Binary files a/app/ui/style/olive-light/png/arrow.64.png and b/app/ui/style/olive-light/png/arrow.64.png differ diff --git a/app/ui/style/olive-light/png/beam.128.png b/app/ui/style/olive-light/png/beam.128.png index e165f63a6..dbbb855f2 100644 Binary files a/app/ui/style/olive-light/png/beam.128.png and b/app/ui/style/olive-light/png/beam.128.png differ diff --git a/app/ui/style/olive-light/png/beam.16.png b/app/ui/style/olive-light/png/beam.16.png index 6e99bb88b..2da6659a7 100644 Binary files a/app/ui/style/olive-light/png/beam.16.png and b/app/ui/style/olive-light/png/beam.16.png differ diff --git a/app/ui/style/olive-light/png/beam.32.png b/app/ui/style/olive-light/png/beam.32.png index c38c02329..28ed6d3ac 100644 Binary files a/app/ui/style/olive-light/png/beam.32.png and b/app/ui/style/olive-light/png/beam.32.png differ diff --git a/app/ui/style/olive-light/png/beam.64.png b/app/ui/style/olive-light/png/beam.64.png index 2ceea169f..364a5ab1a 100644 Binary files a/app/ui/style/olive-light/png/beam.64.png and b/app/ui/style/olive-light/png/beam.64.png differ diff --git a/app/ui/style/olive-light/png/box.128.png b/app/ui/style/olive-light/png/box.128.png new file mode 100644 index 000000000..e165f63a6 Binary files /dev/null and b/app/ui/style/olive-light/png/box.128.png differ diff --git a/app/ui/style/olive-light/png/box.16.png b/app/ui/style/olive-light/png/box.16.png new file mode 100644 index 000000000..6e99bb88b Binary files /dev/null and b/app/ui/style/olive-light/png/box.16.png differ diff --git a/app/ui/style/olive-light/png/box.32.png b/app/ui/style/olive-light/png/box.32.png new file mode 100644 index 000000000..c38c02329 Binary files /dev/null and b/app/ui/style/olive-light/png/box.32.png differ diff --git a/app/ui/style/olive-light/png/box.64.png b/app/ui/style/olive-light/png/box.64.png new file mode 100644 index 000000000..2ceea169f Binary files /dev/null and b/app/ui/style/olive-light/png/box.64.png differ diff --git a/app/ui/style/olive-light/svg/arrow.svg b/app/ui/style/olive-light/svg/arrow.svg index 0c9c18d96..1bc1fbb86 100644 --- a/app/ui/style/olive-light/svg/arrow.svg +++ b/app/ui/style/olive-light/svg/arrow.svg @@ -1,129 +1 @@ - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/app/ui/style/olive-light/svg/beam.svg b/app/ui/style/olive-light/svg/beam.svg index 87d51308c..898ce719e 100644 --- a/app/ui/style/olive-light/svg/beam.svg +++ b/app/ui/style/olive-light/svg/beam.svg @@ -1,170 +1,6 @@ - - - - - - - - - - - - - image/svg+xml - - - - Martin Ruskov - - - http://commons.wikimedia.org/wiki/Tango_icon - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + \ No newline at end of file diff --git a/app/ui/style/olive-light/svg/box.svg b/app/ui/style/olive-light/svg/box.svg new file mode 100644 index 000000000..87d51308c --- /dev/null +++ b/app/ui/style/olive-light/svg/box.svg @@ -0,0 +1,170 @@ + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/widget/CMakeLists.txt b/app/widget/CMakeLists.txt index b5345aaee..dcf59e623 100644 --- a/app/widget/CMakeLists.txt +++ b/app/widget/CMakeLists.txt @@ -24,6 +24,7 @@ add_subdirectory(playbackcontrols) add_subdirectory(projectexplorer) add_subdirectory(projecttoolbar) add_subdirectory(taskview) +add_subdirectory(timelineview) add_subdirectory(timeruler) add_subdirectory(toolbar) add_subdirectory(viewer) diff --git a/app/widget/timelineview/CMakeLists.txt b/app/widget/timelineview/CMakeLists.txt new file mode 100644 index 000000000..84c42fb5f --- /dev/null +++ b/app/widget/timelineview/CMakeLists.txt @@ -0,0 +1,24 @@ +# 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 . + +set(OLIVE_SOURCES + ${OLIVE_SOURCES} + widget/timelineview/timelineview.h + widget/timelineview/timelineview.cpp + widget/timelineview/timelineviewclipitem.h + widget/timelineview/timelineviewclipitem.cpp + PARENT_SCOPE +) diff --git a/app/widget/timelineview/timelineview.cpp b/app/widget/timelineview/timelineview.cpp new file mode 100644 index 000000000..e5f9450ee --- /dev/null +++ b/app/widget/timelineview/timelineview.cpp @@ -0,0 +1,16 @@ +#include "timelineview.h" + +TimelineView::TimelineView(QWidget *parent) : + QGraphicsView(parent), + sequence_(nullptr) +{ +} + +void TimelineView::SetSequence(Sequence *s) +{ + scene_.clear(); + + sequence_ = s; + + QList sequence_nodes = sequence_->nodes(); +} diff --git a/app/widget/timelineview/timelineview.h b/app/widget/timelineview/timelineview.h new file mode 100644 index 000000000..e098b861a --- /dev/null +++ b/app/widget/timelineview/timelineview.h @@ -0,0 +1,21 @@ +#ifndef TIMELINEVIEW_H +#define TIMELINEVIEW_H + +#include + +#include "project/item/sequence/sequence.h" + +class TimelineView : public QGraphicsView +{ +public: + TimelineView(QWidget* parent); + + void SetSequence(Sequence* s); + +private: + Sequence* sequence_; + + QGraphicsScene scene_; +}; + +#endif // TIMELINEVIEW_H diff --git a/app/widget/timelineview/timelineviewclipitem.cpp b/app/widget/timelineview/timelineviewclipitem.cpp new file mode 100644 index 000000000..3cb9c437e --- /dev/null +++ b/app/widget/timelineview/timelineviewclipitem.cpp @@ -0,0 +1,7 @@ +#include "timelineviewclipitem.h" + +TimelineViewClipItem::TimelineViewClipItem(QGraphicsItem* parent) : + QGraphicsRectItem(parent) +{ + +} diff --git a/app/widget/timelineview/timelineviewclipitem.h b/app/widget/timelineview/timelineviewclipitem.h new file mode 100644 index 000000000..cbc87d838 --- /dev/null +++ b/app/widget/timelineview/timelineviewclipitem.h @@ -0,0 +1,12 @@ +#ifndef TIMELINEVIEWCLIPITEM_H +#define TIMELINEVIEWCLIPITEM_H + +#include + +class TimelineViewClipItem : public QGraphicsRectItem +{ +public: + TimelineViewClipItem(QGraphicsItem* parent = nullptr); +}; + +#endif // TIMELINEVIEWCLIPITEM_H