From 51f46dce66ac660507dc7abad5506650bc863d7f Mon Sep 17 00:00:00 2001 From: "Felix (xq) Queißner" Date: Mon, 8 Jun 2020 19:18:50 +0200 Subject: Adds two new options for text display: gophermap rendering with text or icons, all text documents as text/plain, prepares option for text highlighting. --- src/gophermaprenderer.cpp | 52 ++++++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 21 deletions(-) (limited to 'src/gophermaprenderer.cpp') diff --git a/src/gophermaprenderer.cpp b/src/gophermaprenderer.cpp index 52f4442..d1e3bf6 100644 --- a/src/gophermaprenderer.cpp +++ b/src/gophermaprenderer.cpp @@ -9,6 +9,8 @@ #include #include +#include "kristall.hpp" + //Canonical Types //0 Text File //1 Gopher submenu or link to another gopher server @@ -43,21 +45,26 @@ std::unique_ptr GophermapRenderer::render(const QByteArray &input external_link.setFont(themed_style.standard_font); external_link.setForeground(QBrush(themed_style.external_link_color)); + bool emit_text_only = (global_settings.value("gophermap_display").toString() == "text"); + std::unique_ptr result = std::make_unique(); result->setDocumentMargin(themed_style.margin); - result->addResource(QTextDocument::ImageResource, QUrl("gopher/binary"), QVariant::fromValue(QImage(":/icons/gopher/binary.svg"))); - result->addResource(QTextDocument::ImageResource, QUrl("gopher/directory"), QVariant::fromValue(QImage(":/icons/gopher/directory.svg"))); - result->addResource(QTextDocument::ImageResource, QUrl("gopher/dns"), QVariant::fromValue(QImage(":/icons/gopher/dns.svg"))); - result->addResource(QTextDocument::ImageResource, QUrl("gopher/error"), QVariant::fromValue(QImage(":/icons/gopher/error.svg"))); - result->addResource(QTextDocument::ImageResource, QUrl("gopher/gif"), QVariant::fromValue(QImage(":/icons/gopher/gif.svg"))); - result->addResource(QTextDocument::ImageResource, QUrl("gopher/html"), QVariant::fromValue(QImage(":/icons/gopher/html.svg"))); - result->addResource(QTextDocument::ImageResource, QUrl("gopher/image"), QVariant::fromValue(QImage(":/icons/gopher/image.svg"))); - result->addResource(QTextDocument::ImageResource, QUrl("gopher/mirror"), QVariant::fromValue(QImage(":/icons/gopher/mirror.svg"))); - result->addResource(QTextDocument::ImageResource, QUrl("gopher/search"), QVariant::fromValue(QImage(":/icons/gopher/search.svg"))); - result->addResource(QTextDocument::ImageResource, QUrl("gopher/sound"), QVariant::fromValue(QImage(":/icons/gopher/sound.svg"))); - result->addResource(QTextDocument::ImageResource, QUrl("gopher/telnet"), QVariant::fromValue(QImage(":/icons/gopher/telnet.svg"))); - result->addResource(QTextDocument::ImageResource, QUrl("gopher/text"), QVariant::fromValue(QImage(":/icons/gopher/text.svg"))); + if(not emit_text_only) + { + result->addResource(QTextDocument::ImageResource, QUrl("gopher/binary"), QVariant::fromValue(QImage(":/icons/gopher/binary.svg"))); + result->addResource(QTextDocument::ImageResource, QUrl("gopher/directory"), QVariant::fromValue(QImage(":/icons/gopher/directory.svg"))); + result->addResource(QTextDocument::ImageResource, QUrl("gopher/dns"), QVariant::fromValue(QImage(":/icons/gopher/dns.svg"))); + result->addResource(QTextDocument::ImageResource, QUrl("gopher/error"), QVariant::fromValue(QImage(":/icons/gopher/error.svg"))); + result->addResource(QTextDocument::ImageResource, QUrl("gopher/gif"), QVariant::fromValue(QImage(":/icons/gopher/gif.svg"))); + result->addResource(QTextDocument::ImageResource, QUrl("gopher/html"), QVariant::fromValue(QImage(":/icons/gopher/html.svg"))); + result->addResource(QTextDocument::ImageResource, QUrl("gopher/image"), QVariant::fromValue(QImage(":/icons/gopher/image.svg"))); + result->addResource(QTextDocument::ImageResource, QUrl("gopher/mirror"), QVariant::fromValue(QImage(":/icons/gopher/mirror.svg"))); + result->addResource(QTextDocument::ImageResource, QUrl("gopher/search"), QVariant::fromValue(QImage(":/icons/gopher/search.svg"))); + result->addResource(QTextDocument::ImageResource, QUrl("gopher/sound"), QVariant::fromValue(QImage(":/icons/gopher/sound.svg"))); + result->addResource(QTextDocument::ImageResource, QUrl("gopher/telnet"), QVariant::fromValue(QImage(":/icons/gopher/telnet.svg"))); + result->addResource(QTextDocument::ImageResource, QUrl("gopher/text"), QVariant::fromValue(QImage(":/icons/gopher/text.svg"))); + } QTextCursor cursor{result.get()}; @@ -169,16 +176,19 @@ std::unique_ptr GophermapRenderer::render(const QByteArray &input qDebug() << line << dst_url; } - QTextImageFormat icon_fmt; - icon_fmt.setName(QString("gopher/%1").arg(icon)); - icon_fmt.setVerticalAlignment(QTextImageFormat::AlignTop); - - cursor.insertImage(icon_fmt); - - // cursor.insertImage(QImage(QString(":/icons/gopher/%1.svg").arg(icon))); + if(emit_text_only) + { + cursor.insertText("[" + icon + "] ", standard); + } + else + { + QTextImageFormat icon_fmt; + icon_fmt.setName(QString("gopher/%1").arg(icon)); + icon_fmt.setVerticalAlignment(QTextImageFormat::AlignTop); - cursor.insertText(" "); - // cursor.insertText("[" + icon + "] ", standard); + cursor.insertImage(icon_fmt); + cursor.insertText(" "); + } QTextCharFormat fmt = standard_link; fmt.setAnchor(true); -- cgit v1.2.3