Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 294b72af10ff983d242388d290c801ffad01a1b4
  • master par défaut protégée
  • rust-playlist-sync
  • rust
  • fix-qt-deprecated-qvariant-type
  • fix-mpris-qtwindow-race-condition
  • rust-appimage-wayland
  • windows-build-rebased
  • v2.5 protégée
  • v2.4 protégée
  • v2.3-1 protégée
  • v2.3 protégée
  • v2.2 protégée
  • v2.1 protégée
  • v2.0 protégée
  • v1.8-3 protégée
  • v1.8-2 protégée
  • v1.8-1 protégée
  • v1.8 protégée
  • v1.7 protégée
  • v1.6 protégée
  • v1.5 protégée
  • v1.4 protégée
  • v1.3 protégée
  • v1.2 protégée
  • v1.1 protégée
  • v1.0 protégée
27 résultats

mpv.c

Blame
  • VivyDocumentView.cc 3,94 Kio
    #include "VivyDocumentView.hh"
    #include "PropertyModel.hh"
    #include "DocumentViews/AudioVisualizer.hh"
    #include "../VivyApplication.hh"
    #include "../Lib/Document/VivyDocument.hh"
    
    #include <QHeaderView>
    #include <QTreeView>
    #include <QVBoxLayout>
    
    using namespace Vivy;
    
    VivyDocumentView::VivyDocumentView(std::shared_ptr<VivyDocument> doc, QWidget *parent) noexcept
        : DocumentView(parent)
        , document(doc)
    {
        qDebug() << "Create view for document" << doc->getName() << "with capabilities"
                 << doc->getDocumentCapabilitiesString();
        loadAudioView();
    }
    
    VivyDocumentView::~VivyDocumentView() noexcept
    {
        qDebug()
            << "Deleting the document view: ref count on document" << document->getName() << "is"
            << document.use_count() << "and" << (visualizer ? "has visualizer" : "without visualizer");
        closeDocument();
    }
    
    std::shared_ptr<VivyDocument>
    VivyDocumentView::getDocument() const noexcept
    {
        return document;
    }
    
    QString
    VivyDocumentView::getDocumentTabName() const noexcept
    {
        return (document->checkDocumentOption(VivyDocument::UntouchedByDefault) ? "(*) " : "") +
               document->getName();
    }
    
    QString
    VivyDocumentView::getDocumentTabToolTip() const noexcept
    {
        return "UUID: " + document->getUuid().toString() + "\nCapabilities: [" +
               document->getDocumentCapabilitiesString() + "]" +
               (document->checkDocumentOption(VivyDocument::UntouchedByDefault) ? "\nUntouched document"
                                                                                : "");
    }
    
    void
    VivyDocumentView::loadAudioView() noexcept
    {
        if (document->checkDocumentCapabilities(VivyDocument::AudioAble)) {
            std::shared_ptr<AudioSubDocument> audioDocument = document->getAudioSubDocument();
            qDebug() << "Create an audio vizualizer for the audio sub document"
                     << audioDocument->getFilePath();
    
            AudioContext::StreamPtr stream = audioDocument->getDefaultStream();
            if (stream == nullptr) {
                qCritical() << "Failed to get default audio stream";
                return;
            }
    
            if (visualizer)
                delete visualizer;
            visualizer = new QDockWidget("Visualizer", this);
    
            AudioVisualizer *visualizerInner = new AudioVisualizer(stream, visualizer);
            if (visualizerInner == nullptr) {
                qCritical() << "Failed to create visualizer for" << audioDocument->getFilePath();
                return;
            }
    
            visualizer->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
            visualizer->setWidget(visualizerInner);
            visualizer->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);
            addDockWidget(Qt::LeftDockWidgetArea, visualizer, Qt::Horizontal);
        }
    
        else {
            qDebug() << "The document" << document->getName() << "is not AudioAble";
        }
    }
    
    DocumentView::Type
    VivyDocumentView::getType() const noexcept
    {
        return DocumentView::Type::Vivy;
    }
    
    void
    VivyDocumentView::closeDocument() noexcept
    {
        qDebug() << "Closing the document:" << document->getName() << "( ref count is"
                 << document.use_count() << ")";
        vivyApp->documentStore.closeDocument(document->getUuid());
    
        // The visualizer pointer should have been deleted by the
        // deleteAllContent() call if it was created.
        deleteAllContent();
        visualizer = nullptr;
    }
    
    QIcon
    VivyDocumentView::getDocumentTabIcon() const noexcept
    {
        return QIcon(":/icons/vivy.png");
    }
    
    void
    VivyDocumentView::openProperties() noexcept
    {
        if (property) {
            removeDockWidget(property);
            delete property;
        }
    
        propertyModel.reset(new PropertyModel(*document.get()));
        property        = new QDockWidget("Properties", this);
        QTreeView *view = new QTreeView(property);
        view->setModel(propertyModel.get());
        view->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
        view->expandAll();
        property->setWidget(view);
        addDockWidget(Qt::RightDockWidgetArea, property, Qt::Vertical);
    }