From 0418c8ab85a161446e3ca5d06121ec75aafaca6b Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 13 Mar 2020 16:02:18 +1100 Subject: [PATCH] viewer: began waveformview widget --- app/widget/viewer/CMakeLists.txt | 2 ++ app/widget/viewer/viewer.cpp | 5 ++--- app/widget/viewer/viewer.h | 3 ++- app/widget/viewer/waveformview.cpp | 24 ++++++++++++++++++++++++ app/widget/viewer/waveformview.h | 16 ++++++++++++++++ 5 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 app/widget/viewer/waveformview.cpp create mode 100644 app/widget/viewer/waveformview.h diff --git a/app/widget/viewer/CMakeLists.txt b/app/widget/viewer/CMakeLists.txt index c5cf17d3b..6d99220dc 100644 --- a/app/widget/viewer/CMakeLists.txt +++ b/app/widget/viewer/CMakeLists.txt @@ -24,5 +24,7 @@ set(OLIVE_SOURCES widget/viewer/viewerglwidget.cpp widget/viewer/viewersizer.h widget/viewer/viewersizer.cpp + widget/viewer/waveformview.h + widget/viewer/waveformview.cpp PARENT_SCOPE ) diff --git a/app/widget/viewer/viewer.cpp b/app/widget/viewer/viewer.cpp index 0853868f7..c3b2de6d4 100644 --- a/app/widget/viewer/viewer.cpp +++ b/app/widget/viewer/viewer.cpp @@ -60,9 +60,8 @@ ViewerWidget::ViewerWidget(QWidget *parent) : sizer_->SetWidget(gl_widget_); // Create waveform view when audio is connected and video isn't - waveform_view_ = new QWidget(); - waveform_view_->setAutoFillBackground(true); - waveform_view_->setStyleSheet("background: black;"); + waveform_view_ = new WaveformView(); + stack_->addWidget(waveform_view_); // Create time ruler diff --git a/app/widget/viewer/viewer.h b/app/widget/viewer/viewer.h index 697ef7cbc..6e52b9fa1 100644 --- a/app/widget/viewer/viewer.h +++ b/app/widget/viewer/viewer.h @@ -35,6 +35,7 @@ #include "render/backend/audio/audiobackend.h" #include "viewerglwidget.h" #include "viewersizer.h" +#include "waveformview.h" #include "widget/playbackcontrols/playbackcontrols.h" #include "widget/timebased/timebased.h" @@ -154,7 +155,7 @@ private: bool time_changed_from_timer_; - QWidget* waveform_view_; + WaveformView* waveform_view_; private slots: void PlaybackTimerUpdate(); diff --git a/app/widget/viewer/waveformview.cpp b/app/widget/viewer/waveformview.cpp new file mode 100644 index 000000000..130993efb --- /dev/null +++ b/app/widget/viewer/waveformview.cpp @@ -0,0 +1,24 @@ +#include "waveformview.h" + +#include +#include + +WaveformView::WaveformView(QWidget *parent) : + TimeBasedWidget(parent) +{ + setAutoFillBackground(true); + setStyleSheet("background: black;"); +} + +void WaveformView::paintEvent(QPaintEvent *event) +{ + QWidget::paintEvent(event); + + QPainter p(this); + + p.setPen(Qt::green); + + for (int i=0;i(i) * 0.025) * (height() / 2)); + } +} diff --git a/app/widget/viewer/waveformview.h b/app/widget/viewer/waveformview.h new file mode 100644 index 000000000..cc1a1c17a --- /dev/null +++ b/app/widget/viewer/waveformview.h @@ -0,0 +1,16 @@ +#ifndef WAVEFORMVIEW_H +#define WAVEFORMVIEW_H + +#include "widget/timebased/timebased.h" + +class WaveformView : public TimeBasedWidget +{ +public: + WaveformView(QWidget* parent = nullptr); + +protected: + virtual void paintEvent(QPaintEvent* event) override; + +}; + +#endif // WAVEFORMVIEW_H