From ddc44b7092bd1dfd40509cb536047f5010a9884e Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Tue, 3 Aug 2021 16:40:33 +0200 Subject: [PATCH] UI: Use slider to be able to set time in video + fix display of mpv messages --- src/UI/DocumentViews/MpvContainer.cc | 8 ++++++-- src/UI/DocumentViews/MpvControls.cc | 11 ++++++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/UI/DocumentViews/MpvContainer.cc b/src/UI/DocumentViews/MpvContainer.cc index 703466fe..fcc6d076 100644 --- a/src/UI/DocumentViews/MpvContainer.cc +++ b/src/UI/DocumentViews/MpvContainer.cc @@ -79,6 +79,7 @@ MpvContainer::handleMpvEvent(mpv_event *event) noexcept // Declare here variables that can be used in the switch-case statements qint64 w, h; double time; + QString msgText; union { mpv_event_log_message *msg; mpv_event_property *prop; @@ -103,8 +104,11 @@ MpvContainer::handleMpvEvent(mpv_event *event) noexcept break; case MPV_EVENT_LOG_MESSAGE: - msg = reinterpret_cast<mpv_event_log_message *>(event->data); - qDebug("MPV - MSG [%s] %s: %s", msg->prefix, msg->level, msg->text); + msg = reinterpret_cast<mpv_event_log_message *>(event->data); + msgText = msg->text; + msgText.replace('\n', ""); + qDebug().nospace().noquote() + << "MPV - MSG [" << msg->prefix << "] " << msg->level << ": " << msgText; break; case MPV_EVENT_PROPERTY_CHANGE: diff --git a/src/UI/DocumentViews/MpvControls.cc b/src/UI/DocumentViews/MpvControls.cc index b129142b..57151389 100644 --- a/src/UI/DocumentViews/MpvControls.cc +++ b/src/UI/DocumentViews/MpvControls.cc @@ -1,7 +1,7 @@ #include "MpvControls.hh" #include "MpvContainer.hh" -#include <QProgressBar> +#include <QSlider> #include <QVBoxLayout> using namespace Vivy; @@ -10,14 +10,19 @@ MpvControls::MpvControls(MpvContainer *passedContainer, QWidget *parent) noexcep : QWidget(parent) , mpv(passedContainer) { - QProgressBar *progressBar = new QProgressBar(this); + auto *progressBar = new QSlider(this); + progressBar->setTracking(false); + progressBar->setOrientation(Qt::Horizontal); mpv->registerMpvDurationCallback([progressBar](double time) noexcept -> void { progressBar->setMaximum(static_cast<int>(time)); progressBar->setValue(0); }); mpv->registerMpvTimeCallback([progressBar](double time) noexcept -> void { - progressBar->setValue(static_cast<int>(time)); + if (!progressBar->isSliderDown()) { + // The user is not pressing the slider + progressBar->setValue(static_cast<int>(time)); + } }); auto *centralLayout = new QVBoxLayout(this); -- GitLab