Mercurial > hg > octave-lyh
changeset 13412:6579e4c2769a
Added basic browsing capabilities.
author | Jacob Dawid <jacob.dawid@googlemail.com> |
---|---|
date | Tue, 12 Apr 2011 14:09:48 +0200 |
parents | 9969324c53c3 |
children | 82196fa2a103 |
files | gui//Quint.pro gui//src/BrowserWidget.cpp gui//src/BrowserWidget.h gui//src/MainWindow.cpp gui//src/MainWindow.h |
diffstat | 5 files changed, 93 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/gui//Quint.pro +++ b/gui//Quint.pro @@ -45,7 +45,8 @@ src/FilesDockWidget.cpp \ src/CodeEdit.cpp \ src/FileEditorMdiSubWindow.cpp \ - src/SyntaxHighlighter.cpp + src/SyntaxHighlighter.cpp \ + src/BrowserWidget.cpp HEADERS += \ src/TerminalCharacterDecoder.h \ @@ -87,7 +88,8 @@ src/FilesDockWidget.h \ src/CodeEdit.h \ src/FileEditorMdiSubWindow.h \ - src/SyntaxHighlighter.h + src/SyntaxHighlighter.h \ + src/BrowserWidget.h INCFLAGS = -g3 $$system(mkoctfile -p INCFLAGS) LFLAGS = $$system(mkoctfile -p LFLAGS) \
new file mode 100644 --- /dev/null +++ b/gui//src/BrowserWidget.cpp @@ -0,0 +1,55 @@ +#include "BrowserWidget.h" +#include <QVBoxLayout> +#include <QAction> +#include <QStyle> +#include <QApplication> + +BrowserWidget::BrowserWidget(QWidget *parent) + : QWidget(parent) { + construct(); +} + +void BrowserWidget::construct() { + QStyle *style = QApplication::style(); + m_navigationToolBar = new QToolBar(this); + m_webView = new QWebView(this); + m_urlLineEdit = new QLineEdit(this); + m_statusBar = new QStatusBar(this); + + QAction *backAction = new QAction(style->standardIcon(QStyle::SP_ArrowLeft), + "", m_navigationToolBar); + QAction *forwardAction = new QAction(style->standardIcon(QStyle::SP_ArrowRight), + "", m_navigationToolBar); + + m_navigationToolBar->addAction(backAction); + m_navigationToolBar->addAction(forwardAction); + m_navigationToolBar->addWidget(m_urlLineEdit); + + QVBoxLayout *layout = new QVBoxLayout(); + layout->addWidget(m_navigationToolBar); + layout->addWidget(m_webView); + layout->addWidget(m_statusBar); + layout->setMargin(2); + setLayout(layout); + + connect(backAction, SIGNAL(triggered()), m_webView, SLOT(back())); + connect(forwardAction, SIGNAL(triggered()), m_webView, SLOT(forward())); + connect(m_webView, SIGNAL(urlChanged(QUrl)), this, SLOT(setUrl(QUrl))); + connect(m_urlLineEdit, SIGNAL(returnPressed()), this, SLOT(jumpToWebsite())); + connect(m_webView, SIGNAL(statusBarMessage(QString)), m_statusBar, SLOT(showMessage(QString))); +} + +void BrowserWidget::setUrl(QUrl url) { + m_urlLineEdit->setText(url.toString()); +} + +void BrowserWidget::jumpToWebsite() { + QString url = m_urlLineEdit->text(); + if(!url.startsWith("http://")) + url = "http://" + url; + load(url); +} + +void BrowserWidget::load(QUrl url) { + m_webView->load(url); +}
new file mode 100644 --- /dev/null +++ b/gui//src/BrowserWidget.h @@ -0,0 +1,29 @@ +#ifndef BROWSERMDISUBWINDOW_H +#define BROWSERMDISUBWINDOW_H + +#include <QWidget> +#include <QToolBar> +#include <QLineEdit> +#include <QtWebKit/QWebView> +#include <QStatusBar> + +class BrowserWidget : public QWidget { + Q_OBJECT +public: + BrowserWidget(QWidget *parent = 0); + void load(QUrl url); + +public slots: + void setUrl(QUrl url); + void jumpToWebsite(); + +private: + void construct(); + + QLineEdit *m_urlLineEdit; + QToolBar *m_navigationToolBar; + QWebView *m_webView; + QStatusBar *m_statusBar; +}; + +#endif // BROWSERMDISUBWINDOW_H
--- a/gui//src/MainWindow.cpp +++ b/gui//src/MainWindow.cpp @@ -49,7 +49,7 @@ } void MainWindow::openWebPage(QString url) { - m_webView->load(QUrl(url)); + m_browserWidget->load(QUrl(url)); } void MainWindow::closeEvent(QCloseEvent *closeEvent) { @@ -69,11 +69,11 @@ m_filesDockWidget = new FilesDockWidget(this); m_openedFiles = new QMdiArea(this); m_statusBar = new QStatusBar(this); - m_webView = new QWebView(this); + m_browserWidget = new BrowserWidget(this); m_centralTabWidget = new QTabWidget(this); m_centralTabWidget->addTab(m_octaveTerminal, "Terminal"); m_centralTabWidget->addTab(m_openedFiles, "Editor"); - m_centralTabWidget->addTab(m_webView, "Documentation"); + m_centralTabWidget->addTab(m_browserWidget, "Documentation"); // TODO: Add meaningfull toolbar items. QAction *commandAction = new QAction(style->standardIcon(QStyle::SP_CommandLink),
--- a/gui//src/MainWindow.h +++ b/gui//src/MainWindow.h @@ -25,13 +25,13 @@ #include <QMdiArea> #include <QStatusBar> #include <QToolBar> -#include <QtWebKit/QWebView> #include "OctaveTerminal.h" #include "OctaveLink.h" #include "VariablesDockWidget.h" #include "HistoryDockWidget.h" #include "FilesDockWidget.h" #include "CodeEdit.h" +#include "BrowserWidget.h" // Octave includes #undef PACKAGE_BUGREPORT @@ -115,7 +115,7 @@ QTabWidget *m_centralTabWidget; QStatusBar *m_statusBar; QToolBar *m_generalPurposeToolbar; - QWebView *m_webView; + BrowserWidget *m_browserWidget; QString m_settingsFile; // Threads for running octave and managing the data interaction.