From 3d1f480798f8708a85785d16f10ae10ed997bfeb Mon Sep 17 00:00:00 2001 From: "Felix (xq) Queißner" Date: Mon, 17 Aug 2020 12:05:40 +0200 Subject: Adds 'show document source' menu item. Closes #11. --- src/browsertab.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'src/browsertab.cpp') diff --git a/src/browsertab.cpp b/src/browsertab.cpp index 87c1c7d..2c34314 100644 --- a/src/browsertab.cpp +++ b/src/browsertab.cpp @@ -39,6 +39,11 @@ #include #include +#include +#include +#include +#include + #include #include @@ -215,6 +220,38 @@ void BrowserTab::focusSearchBar() this->ui->search_box->selectAll(); } +void BrowserTab::openSourceView() +{ + QFont monospace_font("monospace"); + monospace_font.setStyleHint(QFont::Monospace); + + auto dialog = std::make_unique(this); + dialog->setWindowTitle(QString("Source of %0").arg(this->current_location.toString())); + + auto layout = new QVBoxLayout(dialog.get()); + dialog->setLayout(layout); + + auto hint = new QLabel(dialog.get()); + hint->setText(QString("Mime type: %0").arg(current_mime.toString())); + layout->addWidget(hint); + + auto text = new QPlainTextEdit(dialog.get()); + text->setPlainText(QString::fromUtf8(current_buffer)); + text->setReadOnly(true); + text->setFont(monospace_font); + text->setWordWrapMode(QTextOption::NoWrap); + layout->addWidget(text); + + auto buttons = new QDialogButtonBox(dialog.get()); + buttons->setStandardButtons(QDialogButtonBox::Ok); + layout->addWidget(buttons); + + connect(buttons->button(QDialogButtonBox::Ok), &QPushButton::pressed, dialog.get(), &QDialog::accept); + + dialog->resize(640, 480); + dialog->exec(); +} + void BrowserTab::on_url_bar_returnPressed() { QUrl url { this->ui->url_bar->text().trimmed() }; -- cgit v1.2.3