diff options
author | Eike Ziller <eike.ziller@qt.io> | 2021-04-20 09:34:29 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2021-04-20 09:38:43 +0000 |
commit | 0bc8d6d33bc36871f9ed9ce264b90bef95ca540e (patch) | |
tree | 6d772c07e3eacf4bee6edc5dabfd227ad9fe8875 | |
parent | aa4ad4b8525a61598978fa0eb97f5a671a2fb20c (diff) |
TestBrowser: Add Browse button
For opening local files.
Change-Id: I556954542894a4f399b46664f60dc94e21cabb64
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
-rw-r--r-- | tests/manual/browser/main.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/tests/manual/browser/main.cpp b/tests/manual/browser/main.cpp index 4ad7735..2f28a7d 100644 --- a/tests/manual/browser/main.cpp +++ b/tests/manual/browser/main.cpp @@ -27,12 +27,14 @@ #include <QAction> #include <QApplication> +#include <QFileDialog> #include <QHBoxLayout> #include <QLabel> #include <QLineEdit> #include <QLoggingCategory> #include <QNetworkAccessManager> #include <QNetworkReply> +#include <QPushButton> #include <QStatusBar> #include <QVBoxLayout> #include <QWidget> @@ -71,6 +73,8 @@ BrowserWindow::BrowserWindow() urlLayout->addWidget(new QLabel(tr("URL:"))); auto urlInput = new QLineEdit; urlLayout->addWidget(urlInput); + auto browseButton = new QPushButton(tr("Browse...")); + urlLayout->addWidget(browseButton); centerLayout->addLayout(urlLayout); auto htmlWidget = new QLiteHtmlWidget; @@ -101,12 +105,14 @@ BrowserWindow::BrowserWindow() connect(htmlWidget, &QLiteHtmlWidget::linkHighlighted, statusBar, [statusBar](const QUrl &url) { statusBar->showMessage(url.toString()); }); - connect(urlInput, &QLineEdit::returnPressed, htmlWidget, [this, htmlWidget, urlInput] { + + const auto loadUrl = [this, htmlWidget, urlInput, browseButton] { urlInput->setEnabled(false); + browseButton->setEnabled(false); const QUrl url = QUrl(urlInput->text().trimmed()); qCDebug(log) << "Url requested:" << url; QNetworkReply *reply = m_nam.get(QNetworkRequest(url)); - connect(reply, &QNetworkReply::finished, this, [htmlWidget, urlInput, reply] { + connect(reply, &QNetworkReply::finished, this, [htmlWidget, urlInput, browseButton, reply] { qCDebug(log) << "Url finished:" << reply->url() << reply->error(); if (reply->error() == QNetworkReply::NoError) { const QByteArray data = reply->readAll(); @@ -114,8 +120,17 @@ BrowserWindow::BrowserWindow() htmlWidget->setHtml(QString::fromUtf8(data)); } urlInput->setEnabled(true); + browseButton->setEnabled(true); reply->deleteLater(); }); + }; + connect(urlInput, &QLineEdit::returnPressed, this, loadUrl); + connect(browseButton, &QPushButton::clicked, this, [this, urlInput, loadUrl] { + const QUrl url = QFileDialog::getOpenFileUrl(this, tr("Open File")); + if (url.isValid()) { + urlInput->setText(url.toString()); + loadUrl(); + } }); QAction *action; |