summaryrefslogtreecommitdiffstats
path: root/Widget.cpp
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2011-03-02 02:05:07 -0500
committerJason A. Donenfeld <Jason@zx2c4.com>2011-03-02 02:05:07 -0500
commit8716cd14abd820f8419b4be58e884785d63fb6d2 (patch)
tree13c315f3b73788cf8dfe553123c02e8208b4e8d7 /Widget.cpp
downloadTalkBrowser-master.tar.xz
TalkBrowser-master.zip
Initial commit.HEADmaster
Diffstat (limited to 'Widget.cpp')
-rw-r--r--Widget.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/Widget.cpp b/Widget.cpp
new file mode 100644
index 0000000..5ff6ea1
--- /dev/null
+++ b/Widget.cpp
@@ -0,0 +1,61 @@
+#include "Widget.h"
+#include <QWebView>
+#include <QPushButton>
+#include <QLineEdit>
+#include <QVBoxLayout>
+#include <QHBoxLayout>
+
+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"));
+}