diff --git a/src/UI/DocumentViews/AudioVisualizer.cc b/src/UI/DocumentViews/AudioVisualizer.cc index c0f0fa31a601044eb2e7876d1d6cebb2c786fe14..8c641453f999dd9407276bee9206b3229ccbfa8b 100644 --- a/src/UI/DocumentViews/AudioVisualizer.cc +++ b/src/UI/DocumentViews/AudioVisualizer.cc @@ -65,20 +65,17 @@ AudioVisualizer::AudioVisualizer(AudioContext::StreamPtr stream, QWidget *parent void AudioVisualizer::printSpectrum(QImage pixmap, quint64 audioLength) noexcept { - TimingView *timer = new TimingView(pixmap, audioLength, this); - QHBoxLayout *layout = new QHBoxLayout; - - QSlider *slider = new QSlider(Qt::Vertical); - slider->setMinimum(0); - slider->setMaximum(100); - slider->setSingleStep(0); - slider->setPageStep(0); - slider->setValue(0); + TimingView *timer = new TimingView(pixmap, audioLength, this); + TimingParams *params = new TimingParams(this); + + // The only that we want to take all the space is the timer in itself + QGridLayout *layout = new QGridLayout; + layout->addWidget(timer, 1, 0); + layout->setColumnStretch(0, 10); + layout->addWidget(params, 1, 1); + layout->setColumnStretch(1, 0); + setLayout(layout); - connect(slider, &QSlider::valueChanged, timer->getTimingScene()->getAxis(), + connect(params->getZoomSlider(), &QSlider::valueChanged, timer->getTimingScene()->getAxis(), &TimingAxis::refreshTicks); - - layout->addWidget(timer); - layout->addWidget(slider); - setLayout(layout); } diff --git a/src/UI/DocumentViews/AudioVisualizer.hh b/src/UI/DocumentViews/AudioVisualizer.hh index 33523f7ac34ec8720537a3373a4550c8f1f56dbf..82a1dad979eaf13a816ac87bd85a7c3c7a1f9603 100644 --- a/src/UI/DocumentViews/AudioVisualizer.hh +++ b/src/UI/DocumentViews/AudioVisualizer.hh @@ -6,6 +6,7 @@ #endif #include "TimingView.hh" +#include "TimingParams.hh" #include "../../Lib/Audio.hh" namespace Vivy diff --git a/src/UI/DocumentViews/TimingParams.cc b/src/UI/DocumentViews/TimingParams.cc new file mode 100644 index 0000000000000000000000000000000000000000..c50397b15314843d02847c14463b73580b5c883c --- /dev/null +++ b/src/UI/DocumentViews/TimingParams.cc @@ -0,0 +1,42 @@ +#include "TimingParams.hh" + +using namespace Vivy; + +TimingParams::TimingParams(QWidget *parent) noexcept + : QWidget(parent) +{ + QHBoxLayout *layout = new QHBoxLayout; + + zoomSlider = std::make_unique<QSlider>(new QSlider(Qt::Vertical)); + if (QSlider *slider = zoomSlider.get()) { + slider->setMinimum(0); + slider->setMaximum(100); + slider->setSingleStep(0); + slider->setPageStep(0); + slider->setValue(0); + layout->addWidget(slider); + } + sensibilitySlider = std::make_unique<QSlider>(new QSlider(Qt::Vertical)); + if (QSlider *slider = sensibilitySlider.get()) { + slider->setMinimum(0); + slider->setMaximum(100); + slider->setSingleStep(0); + slider->setPageStep(0); + slider->setValue(0); + layout->addWidget(slider); + } + + setLayout(layout); +} + +QSlider * +TimingParams::getZoomSlider() const noexcept +{ + return zoomSlider.get(); +} + +QSlider * +TimingParams::getSensibilitySlider() const noexcept +{ + return sensibilitySlider.get(); +} diff --git a/src/UI/DocumentViews/TimingParams.hh b/src/UI/DocumentViews/TimingParams.hh new file mode 100644 index 0000000000000000000000000000000000000000..6cf92c6df16f35bf979b4715acccb7a8fd0646da --- /dev/null +++ b/src/UI/DocumentViews/TimingParams.hh @@ -0,0 +1,33 @@ +#ifndef VIVY_TIMING_PARAMS_H +#define VIVY_TIMING_PARAMS_H + +#ifndef __cplusplus +#error "This is a C++ header" +#endif + +#include "../../Lib/Utils.hh" + +#include <QWidget> +#include <QSlider> +#include <QLayout> + +namespace Vivy +{ +class TimingParams final : public QWidget { + Q_OBJECT + +public: + explicit TimingParams(QWidget * = nullptr) noexcept; + +private: + std::unique_ptr<QSlider> zoomSlider; + std::unique_ptr<QSlider> sensibilitySlider; + +public: + QSlider *getZoomSlider() const noexcept; + QSlider *getSensibilitySlider() const noexcept; +}; + +} + +#endif // VIVY_TIMING_PARAMS_H