From 67af296c10de639c6d2391ae4608ec5c307549d2 Mon Sep 17 00:00:00 2001 From: "Felix (xq) Queißner" Date: Mon, 8 Jun 2020 11:02:39 +0200 Subject: Adds support for multimedia modules: Now can pla audio/ (tested) and video/ (untested). --- src/browsertab.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/browsertab.cpp') diff --git a/src/browsertab.cpp b/src/browsertab.cpp index 6f6e453..0e94770 100644 --- a/src/browsertab.cpp +++ b/src/browsertab.cpp @@ -45,6 +45,7 @@ BrowserTab::BrowserTab(MainWindow * mainWindow) : this->updateUI(); + this->ui->media_browser->setVisible(false); this->ui->graphics_browser->setVisible(false); this->ui->text_browser->setVisible(true); @@ -223,6 +224,9 @@ void BrowserTab::on_requestComplete(const QByteArray &data, const QString &mime) ui->text_browser->setStyleSheet(""); + enum DocumentType { Text, Image, Media }; + + DocumentType doc_type = Text; std::unique_ptr document; this->outline.clear(); @@ -267,6 +271,7 @@ void BrowserTab::on_requestComplete(const QByteArray &data, const QString &mime) document->setPlainText(QString::fromUtf8(data)); } else if(mime.startsWith("image/")) { + doc_type = Image; QImage img; if(img.loadFromData(data, nullptr)) @@ -279,7 +284,10 @@ void BrowserTab::on_requestComplete(const QByteArray &data, const QString &mime) } this->ui->graphics_browser->fitInView(graphics_scene.sceneRect(), Qt::KeepAspectRatio); - + } + else if(mime.startsWith("video/") or mime.startsWith("audio/")) { + doc_type = Media; + this->ui->media_browser->setMedia(data, this->current_location, mime); } else { document = std::make_unique(); @@ -298,10 +306,11 @@ File Size: %2 )md").arg(mime).arg(size_human(data.size()))); } + assert((document != nullptr) == (doc_type == Text)); - this->ui->text_browser->setVisible(document != nullptr); - this->ui->graphics_browser->setVisible(document == nullptr); - + this->ui->text_browser->setVisible(doc_type == Text); + this->ui->graphics_browser->setVisible(doc_type == Image); + this->ui->media_browser->setVisible(doc_type == Media); this->ui->text_browser->setDocument(document.get()); this->current_document = std::move(document); -- cgit v1.2.3