From 2bf8ddaf3a1bec8712ef0189c60f3f61cb8fa392 Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Mon, 12 Jul 2021 23:32:43 +0200 Subject: [PATCH] UI: Display the ASS view if possible on loadAssSubDocument --- src/UI/VivyDocumentView.cc | 19 +++++++++++++++++++ src/UI/VivyDocumentView.hh | 5 ++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/UI/VivyDocumentView.cc b/src/UI/VivyDocumentView.cc index 67f94bb9..b7e9a612 100644 --- a/src/UI/VivyDocumentView.cc +++ b/src/UI/VivyDocumentView.cc @@ -7,6 +7,7 @@ #include <QHeaderView> #include <QTreeView> #include <QVBoxLayout> +#include <QTableView> using namespace Vivy; @@ -76,6 +77,24 @@ VivyDocumentView::loadVideoView() noexcept void VivyDocumentView::loadAssView() noexcept { + if (assLines) + delDockWidget(&assLines); + + if (document->checkDocumentCapabilities(VivyDocument::Capabilities::AssAble)) { + assModel.reset(new AssLinesModel(document->getAssSubDocument()->getLines())); + assLines = new QDockWidget("ASS Lines", this); + QTableView *view = new QTableView(assLines); + view->setModel(assModel.get()); + view->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + view->horizontalHeader()->setStretchLastSection(true); + view->verticalHeader()->setVisible(true); + view->setSelectionMode(QAbstractItemView::ExtendedSelection); + assLines->setWidget(view); + assLines->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable); + assLines->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | + Qt::BottomDockWidgetArea); + addDockWidget(Qt::BottomDockWidgetArea, assLines, Qt::Vertical); + } } void diff --git a/src/UI/VivyDocumentView.hh b/src/UI/VivyDocumentView.hh index 493b75e1..b30b27d1 100644 --- a/src/UI/VivyDocumentView.hh +++ b/src/UI/VivyDocumentView.hh @@ -7,6 +7,7 @@ #include "../Lib/Document/VivyDocument.hh" #include "DocumentViews/AudioVisualizer.hh" +#include "DocumentViews/AssLinesModel.hh" #include "AbstractDocumentView.hh" #include "PropertyModel.hh" @@ -39,9 +40,11 @@ public slots: private: std::shared_ptr<VivyDocument> document; - std::unique_ptr<PropertyModel> propertyModel; + std::unique_ptr<PropertyModel> propertyModel{ nullptr }; + std::unique_ptr<AssLinesModel> assModel{ nullptr }; QDockWidget *visualizer{ nullptr }; QDockWidget *property{ nullptr }; + QDockWidget *assLines{ nullptr }; }; } -- GitLab