Skip to content
Extraits de code Groupes Projets
Vérifiée Valider eb3ac10b rédigé par Kubat's avatar Kubat
Parcourir les fichiers

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
parent 7b9c9120
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!18Implement the VivyDocument specification
...@@ -21,7 +21,7 @@ VivyDocumentView::VivyDocumentView(std::shared_ptr<VivyDocument> doc, QWidget *p ...@@ -21,7 +21,7 @@ VivyDocumentView::VivyDocumentView(std::shared_ptr<VivyDocument> doc, QWidget *p
loadAssView(); loadAssView();
// Add some actions... // Add some actions...
QAction *openPropertiesAct = new QAction("Open properties", this); openPropertiesAct = new QAction("Open properties", this);
connect(openPropertiesAct, &QAction::triggered, this, &VivyDocumentView::openProperties); connect(openPropertiesAct, &QAction::triggered, this, &VivyDocumentView::openProperties);
connect(document.get(), &AbstractDocument::documentChanged, this, [=, this]() { connect(document.get(), &AbstractDocument::documentChanged, this, [=, this]() {
if (property) if (property)
...@@ -79,9 +79,7 @@ VivyDocumentView::loadVideoView() noexcept ...@@ -79,9 +79,7 @@ VivyDocumentView::loadVideoView() noexcept
if (!videoView) { if (!videoView) {
videoView = new QDockWidget("Video View", this); videoView = new QDockWidget("Video View", this);
videoView->setAllowedAreas(Qt::AllDockWidgetAreas); videoView->setAllowedAreas(Qt::AllDockWidgetAreas);
videoView->setFeatures(QDockWidget::DockWidgetMovable | videoView->setFeatures(allDockFeatures);
QDockWidget::DockWidgetFloatable |
QDockWidget::DockWidgetClosable);
addDockWidget(Qt::BottomDockWidgetArea, videoView, Qt::Vertical); addDockWidget(Qt::BottomDockWidgetArea, videoView, Qt::Vertical);
DockWidgetTitleBar::addToDock(videoView); DockWidgetTitleBar::addToDock(videoView);
} }
...@@ -101,7 +99,7 @@ VivyDocumentView::loadAssView() noexcept ...@@ -101,7 +99,7 @@ VivyDocumentView::loadAssView() noexcept
if (document->checkDocumentCapabilities(VivyDocument::Capabilities::AssAble)) { if (document->checkDocumentCapabilities(VivyDocument::Capabilities::AssAble)) {
if (!assLines) { if (!assLines) {
assLines = new QDockWidget("ASS Lines", this); assLines = new QDockWidget("ASS Lines", this);
assLines->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable); assLines->setFeatures(onlyClosableDockFeatures);
assLines->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | assLines->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea |
Qt::BottomDockWidgetArea); Qt::BottomDockWidgetArea);
addDockWidget(Qt::BottomDockWidgetArea, assLines, Qt::Vertical); addDockWidget(Qt::BottomDockWidgetArea, assLines, Qt::Vertical);
...@@ -133,8 +131,7 @@ VivyDocumentView::loadAudioView() noexcept ...@@ -133,8 +131,7 @@ VivyDocumentView::loadAudioView() noexcept
visualizer->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum); visualizer->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Minimum);
visualizer->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea | visualizer->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::TopDockWidgetArea |
Qt::BottomDockWidgetArea); Qt::BottomDockWidgetArea);
visualizer->setFeatures(QDockWidget::DockWidgetMovable | visualizer->setFeatures(onlyClosableDockFeatures);
QDockWidget::DockWidgetClosable);
addDockWidget(Qt::LeftDockWidgetArea, visualizer, Qt::Horizontal); addDockWidget(Qt::LeftDockWidgetArea, visualizer, Qt::Horizontal);
DockWidgetTitleBar::addToDock(visualizer); DockWidgetTitleBar::addToDock(visualizer);
} }
...@@ -174,7 +171,7 @@ VivyDocumentView::getDocumentTabIcon() const noexcept ...@@ -174,7 +171,7 @@ VivyDocumentView::getDocumentTabIcon() const noexcept
void void
VivyDocumentView::openProperties() noexcept VivyDocumentView::openProperties() noexcept
{ {
propertyModel.reset(new PropertyModel(*document.get())); propertyModel = std::make_unique<PropertyModel>(*document.get());
QTreeView *view = new QTreeView(property); QTreeView *view = new QTreeView(property);
view->setModel(propertyModel.get()); view->setModel(propertyModel.get());
view->header()->setSectionResizeMode(QHeaderView::ResizeToContents); view->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
...@@ -183,9 +180,11 @@ VivyDocumentView::openProperties() noexcept ...@@ -183,9 +180,11 @@ VivyDocumentView::openProperties() noexcept
if (!property) { if (!property) {
property = new QDockWidget("Properties", this); property = new QDockWidget("Properties", this);
property->setAllowedAreas(Qt::AllDockWidgetAreas); property->setAllowedAreas(Qt::AllDockWidgetAreas);
property->setFeatures(allDockFeatures);
addDockWidget(Qt::RightDockWidgetArea, property, Qt::Vertical); addDockWidget(Qt::RightDockWidgetArea, property, Qt::Vertical);
DockWidgetTitleBar::addToDock(property); DockWidgetTitleBar::addToDock(property);
} }
property->setWidget(view); property->setWidget(view);
openPropertiesAct->setVisible(false);
} }
...@@ -18,6 +18,12 @@ class VivyDocumentView final : public AbstractDocumentView { ...@@ -18,6 +18,12 @@ class VivyDocumentView final : public AbstractDocumentView {
Q_OBJECT Q_OBJECT
VIVY_UNMOVABLE_OBJECT(VivyDocumentView) 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: public:
explicit VivyDocumentView(std::shared_ptr<VivyDocument>, QWidget *parent) noexcept; explicit VivyDocumentView(std::shared_ptr<VivyDocument>, QWidget *parent) noexcept;
~VivyDocumentView() noexcept override; ~VivyDocumentView() noexcept override;
...@@ -44,6 +50,7 @@ private: ...@@ -44,6 +50,7 @@ private:
QDockWidget *property{ nullptr }; QDockWidget *property{ nullptr };
QDockWidget *assLines{ nullptr }; QDockWidget *assLines{ nullptr };
QDockWidget *videoView{ nullptr }; QDockWidget *videoView{ nullptr };
QAction *openPropertiesAct{ nullptr };
}; };
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter