From eb3ac10b7fa0c86ac0fe44c0cb91444616c006f4 Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Mon, 30 Aug 2021 11:38:50 +0200 Subject: [PATCH] UI VivyDocumentView: Small updates - Don't show the 'Open properties' action in views when it can be toggled by the QDockWidget's action - Use constexpr things to group all dock features -> easy to view and understand now --- src/UI/VivyDocumentView.cc | 15 +++++++-------- src/UI/VivyDocumentView.hh | 7 +++++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/UI/VivyDocumentView.cc b/src/UI/VivyDocumentView.cc index 289a319c..1bc93560 100644 --- a/src/UI/VivyDocumentView.cc +++ b/src/UI/VivyDocumentView.cc @@ -21,7 +21,7 @@ VivyDocumentView::VivyDocumentView(std::shared_ptr<VivyDocument> doc, QWidget *p loadAssView(); // Add some actions... - QAction *openPropertiesAct = new QAction("Open properties", this); + openPropertiesAct = new QAction("Open properties", this); connect(openPropertiesAct, &QAction::triggered, this, &VivyDocumentView::openProperties); connect(document.get(), &AbstractDocument::documentChanged, this, [=, this]() { if (property) @@ -79,9 +79,7 @@ VivyDocumentView::loadVideoView() noexcept if (!videoView) { videoView = new QDockWidget("Video View", this); videoView->setAllowedAreas(Qt::AllDockWidgetAreas); - videoView->setFeatures(QDockWidget::DockWidgetMovable | - QDockWidget::DockWidgetFloatable | - QDockWidget::DockWidgetClosable); + videoView->setFeatures(allDockFeatures); addDockWidget(Qt::BottomDockWidgetArea, videoView, Qt::Vertical); DockWidgetTitleBar::addToDock(videoView); } @@ -101,7 +99,7 @@ VivyDocumentView::loadAssView() noexcept if (document->checkDocumentCapabilities(VivyDocument::Capabilities::AssAble)) { if (!assLines) { assLines = new QDockWidget("ASS Lines", this); - assLines->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable); + assLines->setFeatures(onlyClosableDockFeatures); assLines->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea); addDockWidget(Qt::BottomDockWidgetArea, assLines, Qt::Vertical); @@ -133,8 +131,7 @@ VivyDocumentView::loadAudioView() noexcept visualizer->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum); visualizer->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea); - visualizer->setFeatures(QDockWidget::DockWidgetMovable | - QDockWidget::DockWidgetClosable); + visualizer->setFeatures(onlyClosableDockFeatures); addDockWidget(Qt::LeftDockWidgetArea, visualizer, Qt::Horizontal); DockWidgetTitleBar::addToDock(visualizer); } @@ -174,7 +171,7 @@ VivyDocumentView::getDocumentTabIcon() const noexcept void VivyDocumentView::openProperties() noexcept { - propertyModel.reset(new PropertyModel(*document.get())); + propertyModel = std::make_unique<PropertyModel>(*document.get()); QTreeView *view = new QTreeView(property); view->setModel(propertyModel.get()); view->header()->setSectionResizeMode(QHeaderView::ResizeToContents); @@ -183,9 +180,11 @@ VivyDocumentView::openProperties() noexcept if (!property) { property = new QDockWidget("Properties", this); property->setAllowedAreas(Qt::AllDockWidgetAreas); + property->setFeatures(allDockFeatures); addDockWidget(Qt::RightDockWidgetArea, property, Qt::Vertical); DockWidgetTitleBar::addToDock(property); } property->setWidget(view); + openPropertiesAct->setVisible(false); } diff --git a/src/UI/VivyDocumentView.hh b/src/UI/VivyDocumentView.hh index b38bd6c0..59db8987 100644 --- a/src/UI/VivyDocumentView.hh +++ b/src/UI/VivyDocumentView.hh @@ -18,6 +18,12 @@ class VivyDocumentView final : public AbstractDocumentView { Q_OBJECT VIVY_UNMOVABLE_OBJECT(VivyDocumentView) + static inline constexpr QDockWidget::DockWidgetFeatures allDockFeatures = + QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetFloatable | + QDockWidget::DockWidgetMovable; + static inline constexpr QDockWidget::DockWidgetFeatures onlyClosableDockFeatures = + QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable; + public: explicit VivyDocumentView(std::shared_ptr<VivyDocument>, QWidget *parent) noexcept; ~VivyDocumentView() noexcept override; @@ -44,6 +50,7 @@ private: QDockWidget *property{ nullptr }; QDockWidget *assLines{ nullptr }; QDockWidget *videoView{ nullptr }; + QAction *openPropertiesAct{ nullptr }; }; } -- GitLab