From 7a4d3771bc24cf66d77d9bf32d26a3eb9d8489f3 Mon Sep 17 00:00:00 2001 From: "Felix (xq) Queißner" Date: Mon, 8 Jun 2020 00:48:53 +0200 Subject: Some minor improvements in gopher rendering. --- src/browsertab.cpp | 41 ++++++++++++++++++++++++++++++++++++----- src/gophermaprenderer.cpp | 1 + src/mainwindow.ui | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 5 deletions(-) (limited to 'src') 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 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(); + 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); diff --git a/src/gophermaprenderer.cpp b/src/gophermaprenderer.cpp index bcdf11f..e02e3fc 100644 --- a/src/gophermaprenderer.cpp +++ b/src/gophermaprenderer.cpp @@ -152,6 +152,7 @@ std::unique_ptr GophermapRenderer::render(const QByteArray &input qDebug() << line << dst_url; } + cursor.insertText("[" + icon + "] ", standard); QTextCharFormat fmt = standard_link; fmt.setAnchor(true); diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 08ba787..f2a54f4 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -193,6 +193,8 @@ File + + @@ -219,6 +221,8 @@ + + @@ -301,6 +305,34 @@ About Qt... + + + Save + + + + + Save as... + + + Ctrl+S + + + + + true + + + + :/icons/heart.svg:/icons/heart.svg + + + Add to favourites + + + Ctrl+D + + -- cgit v1.2.3