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 @@
-
-
-
-
+
\ 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 @@
-
-
-
-
+
+
+
+
\ 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 @@
+
+
+
+
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 @@
-
-
-
-
+
\ 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 @@
-
-
-
-
+
+
+
+
\ 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 @@
+
+
+
+
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