Sélectionner une révision Git
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";
}
}