diff --git a/src/UI/VivyDocumentView.cc b/src/UI/VivyDocumentView.cc index 67f94bb9c99a0357624be0db27ac154ea4c144a8..b7e9a6128d18ee2a69df471ac88847d77103d70c 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 493b75e1112f8d4e2e259ef3f173448a5b4aab5b..b30b27d14dcbc2290f6e0b4c082ab029607cede1 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 }; }; }