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 | |
| parent | f02ccb928fd4ed591d2efe118a571e154f5df68a (diff) | |
| download | kristall-7a4d3771bc24cf66d77d9bf32d26a3eb9d8489f3.tar.gz | |
Some minor improvements in gopher rendering.
Diffstat (limited to 'src')
| -rw-r--r-- | src/browsertab.cpp | 41 | ||||
| -rw-r--r-- | src/gophermaprenderer.cpp | 1 | ||||
| -rw-r--r-- | src/mainwindow.ui | 32 |
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"/> |
