#include "Widget.h" #include #include #include #include #include Widget::Widget(QWidget *parent) : QWidget(parent), m_reloadButtonOn(true) { QVBoxLayout *vLayout = new QVBoxLayout; m_webView = new QWebView; m_webView->setUrl(QUrl("http://www.zx2c4.com")); QHBoxLayout *buttonLayout = new QHBoxLayout; QPushButton *back = new QPushButton(tr("Back")); QPushButton *forward = new QPushButton(tr("Forward")); m_stopReload = new QPushButton(tr("Reload")); m_entry = new QLineEdit; buttonLayout->addWidget(back); buttonLayout->addWidget(forward); buttonLayout->addWidget(m_stopReload); buttonLayout->addWidget(m_entry); connect(back, SIGNAL(clicked()), m_webView, SLOT(back())); connect(forward, SIGNAL(clicked()), m_webView, SLOT(forward())); connect(m_stopReload, SIGNAL(clicked()), this, SLOT(doStopReload())); connect(m_entry, SIGNAL(returnPressed()), this, SLOT(navigate())); connect(m_webView, SIGNAL(urlChanged(QUrl)), this, SLOT(navigated(QUrl))); connect(m_webView, SIGNAL(loadStarted()), this, SLOT(setReloadOff())); connect(m_webView, SIGNAL(loadFinished(bool)), this, SLOT(setReloadOn())); vLayout->addLayout(buttonLayout); vLayout->addWidget(m_webView); setLayout(vLayout); } void Widget::navigate() { if (!m_entry->text().startsWith("http://") && !m_entry->text().startsWith("https://")) m_entry->setText(m_entry->text().prepend("http://")); m_webView->setUrl(QUrl(m_entry->text())); } void Widget::navigated(const QUrl &url) { m_entry->setText(url.toString()); } void Widget::doStopReload() { if (m_reloadButtonOn) m_webView->reload(); else m_webView->stop(); } void Widget::setReloadOff() { m_reloadButtonOn = false; m_stopReload->setText(tr("Stop")); } void Widget::setReloadOn() { m_reloadButtonOn = true; m_stopReload->setText(tr("Reload")); }