diff options
| author | Felix (xq) Queißner <git@mq32.de> | 2020-06-08 00:48:53 +0200 |
|---|---|---|
| committer | Felix (xq) Queißner <git@mq32.de> | 2020-06-08 00:48:53 +0200 |
| commit | 7a4d3771bc24cf66d77d9bf32d26a3eb9d8489f3 (patch) | |
| tree | e749e3a534c50a49c3279960e973f09645304587 /src/browsertab.cpp | |
| parent | f02ccb928fd4ed591d2efe118a571e154f5df68a (diff) | |
| download | kristall-7a4d3771bc24cf66d77d9bf32d26a3eb9d8489f3.tar.gz | |
Some minor improvements in gopher rendering.
Diffstat (limited to 'src/browsertab.cpp')
| -rw-r--r-- | src/browsertab.cpp | 41 |
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); |
