Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 6b874c0d5cb7142e0bdc785a09d8f7bd6ebd133f
  • master par défaut
  • script
  • new-devel
  • devel
  • timingView-edit
  • fix-mpv
7 résultats

VivyDocumentView.cc

Blame
  • VivyDocumentView.cc 2,25 Kio
    #include "VivyDocumentView.hh"
    #include "AudioVisualizer.hh"
    #include "../Document/VivyDocument.hh"
    
    #include <QVBoxLayout>
    
    using namespace Vivy;
    
    VivyDocumentView::VivyDocumentView(std::shared_ptr<VivyDocument> doc, QWidget *parent) noexcept
        : QWidget(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");
        if (visualizer)
            delete visualizer;
    }
    
    std::weak_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();
    
            if (AudioContext::StreamPtr stream = audioDocument->getDefaultStream();
                (stream == nullptr) || (visualizer = new AudioVisualizer(stream)) == nullptr) {
                qCritical() << "Failed to create visualizer for" << audioDocument->getFilePath();
                return;
            }
    
            QVBoxLayout *layout = new QVBoxLayout(this);
            layout->addWidget(visualizer);
    
            setLayout(layout);
        }
    
        else {
            qDebug() << "The document" << document->getName() << "is not AudioAble";