aboutsummaryrefslogtreecommitdiff
path: root/src
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
parentf02ccb928fd4ed591d2efe118a571e154f5df68a (diff)
downloadkristall-7a4d3771bc24cf66d77d9bf32d26a3eb9d8489f3.tar.gz
Some minor improvements in gopher rendering.
Diffstat (limited to 'src')
-rw-r--r--src/browsertab.cpp41
-rw-r--r--src/gophermaprenderer.cpp1
-rw-r--r--src/mainwindow.ui32
3 files changed, 69 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);
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<QTextDocument> 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 @@
<string>File</string>
</property>
<addaction name="actionNew_Tab"/>
+ <addaction name="separator"/>
+ <addaction name="actionSave_as"/>
<addaction name="actionClose_Tab"/>
<addaction name="separator"/>
<addaction name="actionSettings"/>
@@ -219,6 +221,8 @@
<addaction name="actionForward"/>
<addaction name="separator"/>
<addaction name="actionRefresh"/>
+ <addaction name="separator"/>
+ <addaction name="actionAdd_to_favourites"/>
</widget>
<addaction name="menuFile"/>
<addaction name="menuNavigation"/>
@@ -301,6 +305,34 @@
<string>About Qt...</string>
</property>
</action>
+ <action name="actionSave">
+ <property name="text">
+ <string>Save</string>
+ </property>
+ </action>
+ <action name="actionSave_as">
+ <property name="text">
+ <string>Save as...</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+S</string>
+ </property>
+ </action>
+ <action name="actionAdd_to_favourites">
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="icon">
+ <iconset resource="icons.qrc">
+ <normaloff>:/icons/heart.svg</normaloff>:/icons/heart.svg</iconset>
+ </property>
+ <property name="text">
+ <string>Add to favourites</string>
+ </property>
+ <property name="shortcut">
+ <string>Ctrl+D</string>
+ </property>
+ </action>
</widget>
<resources>
<include location="icons.qrc"/>