diff options
| author | Felix (xq) Queißner <git@mq32.de> | 2020-06-08 11:02:39 +0200 |
|---|---|---|
| committer | Felix (xq) Queißner <git@mq32.de> | 2020-06-08 11:02:39 +0200 |
| commit | 67af296c10de639c6d2391ae4608ec5c307549d2 (patch) | |
| tree | bd8fbbc3b7304b0c0eb585c0e9049376296c3f31 /src/browsertab.cpp | |
| parent | 7a4d3771bc24cf66d77d9bf32d26a3eb9d8489f3 (diff) | |
| download | kristall-67af296c10de639c6d2391ae4608ec5c307549d2.tar.gz | |
Adds support for multimedia modules: Now can pla audio/ (tested) and video/ (untested).
Diffstat (limited to 'src/browsertab.cpp')
| -rw-r--r-- | src/browsertab.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
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<QTextDocument> 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<QTextDocument>(); @@ -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); |
