aboutsummaryrefslogtreecommitdiff
path: root/src/browsertab.cpp
diff options
context:
space:
mode:
authorFelix (xq) Queißner <git@mq32.de>2020-06-08 11:02:39 +0200
committerFelix (xq) Queißner <git@mq32.de>2020-06-08 11:02:39 +0200
commit67af296c10de639c6d2391ae4608ec5c307549d2 (patch)
treebd8fbbc3b7304b0c0eb585c0e9049376296c3f31 /src/browsertab.cpp
parent7a4d3771bc24cf66d77d9bf32d26a3eb9d8489f3 (diff)
downloadkristall-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.cpp17
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);