aboutsummaryrefslogtreecommitdiff
path: root/src/browsertab.cpp
diff options
context:
space:
mode:
authorFelix (xq) Queißner <git@mq32.de>2020-06-08 00:48:53 +0200
committerFelix (xq) Queißner <git@mq32.de>2020-06-08 00:48:53 +0200
commit7a4d3771bc24cf66d77d9bf32d26a3eb9d8489f3 (patch)
treee749e3a534c50a49c3279960e973f09645304587 /src/browsertab.cpp
parentf02ccb928fd4ed591d2efe118a571e154f5df68a (diff)
downloadkristall-7a4d3771bc24cf66d77d9bf32d26a3eb9d8489f3.tar.gz
Some minor improvements in gopher rendering.
Diffstat (limited to 'src/browsertab.cpp')
-rw-r--r--src/browsertab.cpp41
1 files changed, 36 insertions, 5 deletions
diff --git a/src/browsertab.cpp b/src/browsertab.cpp
index 2e02433..6f6e453 100644
--- a/src/browsertab.cpp
+++ b/src/browsertab.cpp
@@ -197,6 +197,23 @@ void BrowserTab::on_requestFailed(const QString &reason)
this->setErrorMessage(QString("Request failed:\n%1").arg(reason));
}
+QString size_human(int size)
+{
+ float num = size;
+ QStringList list;
+ list << "KB" << "MB" << "GB" << "TB";
+
+ QStringListIterator i(list);
+ QString unit("bytes");
+
+ while(num >= 1024.0 && i.hasNext())
+ {
+ unit = i.next();
+ num /= 1024.0;
+ }
+ return QString().setNum(num,'f',2)+" "+unit;
+}
+
void BrowserTab::on_requestComplete(const QByteArray &data, const QString &mime)
{
qDebug() << "Loaded" << data.length() << "bytes of type" << mime;
@@ -204,9 +221,6 @@ void BrowserTab::on_requestComplete(const QByteArray &data, const QString &mime)
this->graphics_scene.clear();
this->ui->text_browser->setText("");
- this->ui->text_browser->setVisible(mime.startsWith("text/"));
- this->ui->graphics_browser->setVisible(mime.startsWith("image/"));
-
ui->text_browser->setStyleSheet("");
std::unique_ptr<QTextDocument> document;
@@ -268,10 +282,27 @@ void BrowserTab::on_requestComplete(const QByteArray &data, const QString &mime)
}
else {
- this->ui->text_browser->setVisible(true);
- this->ui->text_browser->setText(QString("Unsupported Mime: %1").arg(mime));
+ document = std::make_unique<QTextDocument>();
+ document->setDefaultFont(doc_style.standard_font);
+ document->setDefaultStyleSheet(doc_style.toStyleSheet());
+
+ document->setMarkdown(QString(R"md(You accessed an unsupported media type!
+
+Use the *File* menu to save the file to your local disk or navigate somewhere else. I cannot display this for you. ☹
+
+Info:
+```
+MIME Type: %1
+File Size: %2
+```
+)md").arg(mime).arg(size_human(data.size())));
}
+
+ this->ui->text_browser->setVisible(document != nullptr);
+ this->ui->graphics_browser->setVisible(document == nullptr);
+
+
this->ui->text_browser->setDocument(document.get());
this->current_document = std::move(document);