@@ -17,6 +17,9 @@
|
||||
#include <QtGui/QPrinter>
|
||||
#include <QtGui/QPrintDialog>
|
||||
#include <QtGui/QPrintPreviewDialog>
|
||||
#include <QtWebKit/QWebPage>
|
||||
#include <QtWebKit/QWebView>
|
||||
#include <QtWebKit/QWebFrame>
|
||||
#include <QtWebKit/QWebHistory>
|
||||
#include <QtNetwork/QNetworkReply>
|
||||
#include <QtNetwork/QNetworkAccessManager>
|
||||
@@ -42,9 +45,6 @@ class SslClientAuthNetworkAccessManager: public QNetworkAccessManager {
|
||||
SslClientAuthNetworkAccessManager(QObject* parent = 0):
|
||||
QNetworkAccessManager(parent) {
|
||||
LOG;
|
||||
assert
|
||||
(connect(this, SIGNAL(extendedContextInitialization(ssl_ctx_st*)),
|
||||
&_scAuth, SLOT(extendedContextInitialization(ssl_ctx_st*))));
|
||||
}
|
||||
|
||||
virtual ~SslClientAuthNetworkAccessManager() {
|
||||
@@ -72,7 +72,8 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
|
||||
public:
|
||||
|
||||
Browser(const QString& url, bool kiosk = false, bool proxydetection = false):
|
||||
Browser(const QString& url, bool kiosk = false,
|
||||
bool proxydetection = false):
|
||||
_url(0), _home(url), _proxy(0),
|
||||
_kiosk(kiosk) {
|
||||
LOG<<url;
|
||||
@@ -80,6 +81,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
throw std::runtime_error(tr("access to URL %1 not allowed")
|
||||
.arg(url).toStdString());
|
||||
setupUi(this);
|
||||
on_actionNewTab_triggered();
|
||||
actionProxySettings->setEnabled(proxydetection);
|
||||
if (proxydetection) {
|
||||
_proxy = new gui::Proxy(url, this);
|
||||
@@ -97,6 +99,12 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
_toolbar->addWidget(_url = new QLineEdit(_toolbar));
|
||||
_url->setText(url);
|
||||
assert(connect(_url, SIGNAL(returnPressed()), SLOT(load())));
|
||||
assert(connect(&_networkManager,
|
||||
SIGNAL(extendedContextInitialization(ssl_ctx_st*,
|
||||
QSslSocket*)),
|
||||
&_scAuth,
|
||||
SLOT(extendedContextInitialization(ssl_ctx_st*,
|
||||
QSslSocket*))));
|
||||
if (_kiosk) {
|
||||
_menu->hide();
|
||||
_url->setEnabled(false);
|
||||
@@ -107,248 +115,6 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
_zoom->setMaximum(100);
|
||||
_zoom->setValue(10);
|
||||
assert(connect(_zoom, SIGNAL(valueChanged(int)), SLOT(zoom(int))));
|
||||
_browser->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
|
||||
_browser->page()->setNetworkAccessManager
|
||||
(new SslClientAuthNetworkAccessManager);
|
||||
// QWebPage WebAction
|
||||
connect(_browser->pageAction(QWebPage::OpenLink),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredOpenLink(bool)));
|
||||
connect(_browser->pageAction(QWebPage::OpenLinkInNewWindow),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredOpenLinkInNewWindow(bool)));
|
||||
connect(_browser->pageAction(QWebPage::OpenFrameInNewWindow),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredOpenFrameInNewWindow(bool)));
|
||||
connect(_browser->pageAction(QWebPage::DownloadLinkToDisk),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredDownloadLinkToDisk(bool)));
|
||||
connect(_browser->pageAction(QWebPage::CopyLinkToClipboard),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredCopyLinkToClipboard(bool)));
|
||||
connect(_browser->pageAction(QWebPage::OpenImageInNewWindow),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredOpenImageInNewWindow(bool)));
|
||||
connect(_browser->pageAction(QWebPage::DownloadImageToDisk),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredDownloadImageToDisk(bool)));
|
||||
connect(_browser->pageAction(QWebPage::CopyImageToClipboard),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredCopyImageToClipboard(bool)));
|
||||
connect(_browser->pageAction(QWebPage::Back),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredBack(bool)));
|
||||
connect(_browser->pageAction(QWebPage::Forward),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredForward(bool)));
|
||||
connect(_browser->pageAction(QWebPage::Stop),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredStop(bool)));
|
||||
connect(_browser->pageAction(QWebPage::Reload),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredReload(bool)));
|
||||
connect(_browser->pageAction(QWebPage::Cut),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredCut(bool)));
|
||||
connect(_browser->pageAction(QWebPage::Copy),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredCopy(bool)));
|
||||
connect(_browser->pageAction(QWebPage::Paste),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredPaste(bool)));
|
||||
connect(_browser->pageAction(QWebPage::Undo),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredUndo(bool)));
|
||||
connect(_browser->pageAction(QWebPage::Redo),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredRedo(bool)));
|
||||
connect(_browser->pageAction(QWebPage::MoveToNextChar),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToNextChar(bool)));
|
||||
connect(_browser->pageAction(QWebPage::MoveToPreviousChar),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToPreviousChar(bool)));
|
||||
connect(_browser->pageAction(QWebPage::MoveToNextWord),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToNextWord(bool)));
|
||||
connect(_browser->pageAction(QWebPage::MoveToPreviousWord),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToPreviousWord(bool)));
|
||||
connect(_browser->pageAction(QWebPage::MoveToNextLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToNextLine(bool)));
|
||||
connect(_browser->pageAction(QWebPage::MoveToPreviousLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToPreviousLine(bool)));
|
||||
connect(_browser->pageAction(QWebPage::MoveToStartOfLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToStartOfLine(bool)));
|
||||
connect(_browser->pageAction(QWebPage::MoveToEndOfLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToEndOfLine(bool)));
|
||||
connect(_browser->pageAction(QWebPage::MoveToStartOfBlock),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToStartOfBlock(bool)));
|
||||
connect(_browser->pageAction(QWebPage::MoveToEndOfBlock),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToEndOfBlock(bool)));
|
||||
connect(_browser->pageAction(QWebPage::MoveToStartOfDocument),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToStartOfDocument(bool)));
|
||||
connect(_browser->pageAction(QWebPage::MoveToEndOfDocument),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToEndOfDocument(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SelectNextChar),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectNextChar(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SelectPreviousChar),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectPreviousChar(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SelectNextWord),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectNextWord(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SelectPreviousWord),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectPreviousWord(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SelectNextLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectNextLine(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SelectPreviousLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectPreviousLine(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SelectStartOfLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectStartOfLine(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SelectEndOfLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectEndOfLine(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SelectStartOfBlock),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectStartOfBlock(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SelectEndOfBlock),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectEndOfBlock(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SelectStartOfDocument),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectStartOfDocument(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SelectEndOfDocument),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectEndOfDocument(bool)));
|
||||
connect(_browser->pageAction(QWebPage::DeleteStartOfWord),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredDeleteStartOfWord(bool)));
|
||||
connect(_browser->pageAction(QWebPage::DeleteEndOfWord),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredDeleteEndOfWord(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SetTextDirectionDefault),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSetTextDirectionDefault(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SetTextDirectionLeftToRight),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSetTextDirectionLeftToRight(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SetTextDirectionRightToLeft),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSetTextDirectionRightToLeft(bool)));
|
||||
connect(_browser->pageAction(QWebPage::ToggleBold),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredToggleBold(bool)));
|
||||
connect(_browser->pageAction(QWebPage::ToggleItalic),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredToggleItalic(bool)));
|
||||
connect(_browser->pageAction(QWebPage::ToggleUnderline),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredToggleUnderline(bool)));
|
||||
connect(_browser->pageAction(QWebPage::InspectElement),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredInspectElement(bool)));
|
||||
connect(_browser->pageAction(QWebPage::InsertParagraphSeparator),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredInsertParagraphSeparator(bool)));
|
||||
connect(_browser->pageAction(QWebPage::InsertLineSeparator),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredInsertLineSeparator(bool)));
|
||||
connect(_browser->pageAction(QWebPage::SelectAll),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectAll(bool)));
|
||||
// QWebPage
|
||||
assert(connect(_browser->page(), SIGNAL(contentsChanged()),
|
||||
SLOT(contentsChanged())));
|
||||
assert(connect(_browser->page(),
|
||||
SIGNAL(databaseQuotaExceeded(QWebFrame*, QString)),
|
||||
SLOT(databaseQuotaExceeded(QWebFrame*, QString))));
|
||||
assert(connect(_browser->page(),
|
||||
SIGNAL(downloadRequested(const QNetworkRequest&)),
|
||||
SLOT(downloadRequested(const QNetworkRequest&))));
|
||||
assert(connect(_browser->page(), SIGNAL(frameCreated(QWebFrame*)),
|
||||
SLOT(frameCreated(QWebFrame*))));
|
||||
assert(connect(_browser->page(),
|
||||
SIGNAL(geometryChangeRequested(const QRect&)),
|
||||
SLOT(geometryChangeRequested(const QRect&))));
|
||||
assert(connect(_browser->page(), SIGNAL(linkClicked(const QUrl&)),
|
||||
SLOT(linkClicked(const QUrl&))));
|
||||
assert(connect(_browser->page(),
|
||||
SIGNAL(linkHovered(const QString&, const QString&,
|
||||
const QString&)),
|
||||
SLOT(linkHovered(const QString&, const QString&,
|
||||
const QString&))));
|
||||
assert(connect(_browser->page(), SIGNAL(loadFinished(bool)),
|
||||
SLOT(loadFinished(bool))));
|
||||
assert(connect(_browser->page(), SIGNAL(loadProgress(int)),
|
||||
SLOT(loadProgress(int))));
|
||||
assert(connect(_browser->page(), SIGNAL(loadStarted()),
|
||||
SLOT(loadStarted())));
|
||||
assert(connect(_browser->page(),
|
||||
SIGNAL(menuBarVisibilityChangeRequested(bool)),
|
||||
SLOT(menuBarVisibilityChangeRequested(bool))));
|
||||
assert(connect(_browser->page(), SIGNAL(microFocusChanged()),
|
||||
SLOT(microFocusChanged())));
|
||||
assert(connect(_browser->page(), SIGNAL(printRequested(QWebFrame*)),
|
||||
SLOT(printRequested(QWebFrame*))));
|
||||
assert(connect(_browser->page(), SIGNAL(repaintRequested(const QRect&)),
|
||||
SLOT(repaintRequested(const QRect&))));
|
||||
assert(connect(_browser->page(),
|
||||
SIGNAL(restoreFrameStateRequested(QWebFrame*)),
|
||||
SLOT(restoreFrameStateRequested(QWebFrame*))));
|
||||
assert(connect(_browser->page(),
|
||||
SIGNAL(saveFrameStateRequested(QWebFrame*,
|
||||
QWebHistoryItem*)),
|
||||
SLOT(saveFrameStateRequested(QWebFrame*,
|
||||
QWebHistoryItem*))));
|
||||
assert(connect(_browser->page(),
|
||||
SIGNAL(scrollRequested(int, int, const QRect&)),
|
||||
SLOT(scrollRequested(int, int, const QRect&))));
|
||||
assert(connect(_browser->page(), SIGNAL(selectionChanged()),
|
||||
SLOT(selectionChanged())));
|
||||
assert(connect(_browser->page(), SIGNAL(statusBarMessage(const QString&)),
|
||||
SLOT(statusBarMessage(const QString&))));
|
||||
assert(connect(_browser->page(),
|
||||
SIGNAL(statusBarVisibilityChangeRequested(bool)),
|
||||
SLOT(statusBarVisibilityChangeRequested(bool))));
|
||||
assert(connect(_browser->page(),
|
||||
SIGNAL(toolBarVisibilityChangeRequested(bool)),
|
||||
SLOT(toolBarVisibilityChangeRequested(bool))));
|
||||
assert(connect(_browser->page(),
|
||||
SIGNAL(unsupportedContent(QNetworkReply*)),
|
||||
SLOT(unsupportedContent(QNetworkReply*))));
|
||||
assert(connect(_browser->page(), SIGNAL(windowCloseRequested()),
|
||||
SLOT(windowCloseRequested())));
|
||||
// QNetworkAccessManager
|
||||
assert(connect(_browser->page()->networkAccessManager(),
|
||||
SIGNAL(authenticationRequired(QNetworkReply*,
|
||||
QAuthenticator*)),
|
||||
SLOT(authenticationRequired(QNetworkReply*,
|
||||
QAuthenticator*))));
|
||||
assert(connect(_browser->page()->networkAccessManager(),
|
||||
SIGNAL(finished(QNetworkReply*)),
|
||||
SLOT(finished(QNetworkReply*))));
|
||||
assert(connect(_browser->page()->networkAccessManager(),
|
||||
SIGNAL(proxyAuthenticationRequired(const QNetworkProxy&,
|
||||
QAuthenticator*)),
|
||||
SLOT(proxyAuthenticationRequired(const QNetworkProxy&,
|
||||
QAuthenticator*))));
|
||||
assert(connect(_browser->page()->networkAccessManager(),
|
||||
SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)),
|
||||
SLOT(sslErrors(QNetworkReply*, const QList<QSslError>&))));
|
||||
load(url);
|
||||
}
|
||||
|
||||
@@ -480,7 +246,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
return;
|
||||
}
|
||||
//if (url.scheme()=="") url.setScheme("http");
|
||||
_browser->load(url);
|
||||
dynamic_cast<QWebView*>(_tabs->currentWidget())->load(url);
|
||||
}
|
||||
|
||||
void reply_error(QNetworkReply::NetworkError err) {
|
||||
@@ -510,13 +276,13 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
_error = tr("<h2>%1</h2><p>%2</p>")
|
||||
.arg(tr("Connection Cannot Be Established"))
|
||||
.arg(networkError(err)) + _error;
|
||||
on__browser_loadFinished(false);
|
||||
// on__browser_loadFinished(false); //! @todo
|
||||
}
|
||||
|
||||
void zoom(int i) {
|
||||
LOG<<100.0*i/10.0;
|
||||
statusBar()->showMessage(tr("Zoom: %1%").arg(100.0*i/10.0));
|
||||
_browser->setZoomFactor(i/10.0);
|
||||
dynamic_cast<QWebView*>(_tabs->currentWidget())->setZoomFactor(i/10.0);
|
||||
}
|
||||
|
||||
void on_actionHome_activated() {
|
||||
@@ -524,90 +290,343 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
load(_home);
|
||||
}
|
||||
|
||||
void on__browser_urlChanged(const QUrl& url) {
|
||||
LOG<<url.toString();
|
||||
if (_url) _url->setText(url.toString());
|
||||
}
|
||||
// void on__browser_urlChanged(const QUrl& url) { //!@todo
|
||||
// LOG<<url.toString();
|
||||
// if (_url) _url->setText(url.toString());
|
||||
// }
|
||||
|
||||
void on__browser_linkClicked(const QUrl& url) {
|
||||
LOG<<url.toString();
|
||||
load(url);
|
||||
}
|
||||
// void on__browser_linkClicked(const QUrl& url) { //!@todo
|
||||
// LOG<<url.toString();
|
||||
// load(url);
|
||||
// }
|
||||
|
||||
void on__browser_iconChanged() {
|
||||
LOG;
|
||||
setWindowIcon(_browser->icon());
|
||||
}
|
||||
// void on__browser_iconChanged() { //!@todo
|
||||
// LOG;
|
||||
// setWindowIcon(_browser->icon());
|
||||
// }
|
||||
|
||||
void on__browser_titleChanged(const QString& text) {
|
||||
LOG<<text;
|
||||
setWindowTitle(trUtf8("%1 - SwissSurfer").arg(text));
|
||||
}
|
||||
// void on__browser_titleChanged(const QString& text) { //!@todo
|
||||
// LOG<<text;
|
||||
// setWindowTitle(trUtf8("%1 - SwissSurfer").arg(text));
|
||||
// }
|
||||
|
||||
void on__browser_statusBarMessage(const QString& text) {
|
||||
LOG<<text;
|
||||
qDebug()<<"Message: "<<text;
|
||||
if (text.size()) statusBar()->showMessage(tr("Info: %1").arg(text));
|
||||
}
|
||||
// void on__browser_statusBarMessage(const QString& text) { //!@todo
|
||||
// LOG<<text;
|
||||
// qDebug()<<"Message: "<<text;
|
||||
// if (text.size()) statusBar()->showMessage(tr("Info: %1").arg(text));
|
||||
// }
|
||||
|
||||
void on__browser_loadProgress(int i) {
|
||||
LOG<<i;
|
||||
_progress->setValue(i);
|
||||
}
|
||||
// void on__browser_loadProgress(int i) {
|
||||
// LOG<<i;
|
||||
// _progress->setValue(i);
|
||||
// }
|
||||
|
||||
void on__browser_loadStarted() {
|
||||
LOG;
|
||||
_progress->setValue(0);
|
||||
_progress->setMaximum(100);
|
||||
_progress->show();
|
||||
actionStop->setEnabled(true);
|
||||
actionForward->setEnabled(false);
|
||||
actionBack->setEnabled(false);
|
||||
actionReload->setEnabled(false);
|
||||
actionHome->setEnabled(false);
|
||||
}
|
||||
// void on__browser_loadStarted() {
|
||||
// LOG;
|
||||
// _progress->setValue(0);
|
||||
// _progress->setMaximum(100);
|
||||
// _progress->show();
|
||||
// actionStop->setEnabled(true);
|
||||
// actionForward->setEnabled(false);
|
||||
// actionBack->setEnabled(false);
|
||||
// actionReload->setEnabled(false);
|
||||
// actionHome->setEnabled(false);
|
||||
// }
|
||||
|
||||
void on__browser_loadFinished(bool ok) {
|
||||
LOG<<(ok?"success":"error");
|
||||
if (!ok) {
|
||||
_browser->setHtml(tr("<html><title>Page Load Error</title>"
|
||||
"<body><h1>Page Load Error</h1>%1"
|
||||
"</body></html>")
|
||||
.arg(_error),
|
||||
_errorUrl);
|
||||
statusBar()->showMessage(tr("download error"));
|
||||
} else {
|
||||
statusBar()->showMessage(tr("done."));
|
||||
}
|
||||
_error.clear();
|
||||
_progress->hide();
|
||||
on__browser_iconChanged();
|
||||
actionStop->setEnabled(false);
|
||||
actionForward->setEnabled(_browser->history()->canGoForward());
|
||||
actionBack->setEnabled(_browser->history()->canGoBack());
|
||||
actionReload->setEnabled(true);
|
||||
actionHome->setEnabled(true);
|
||||
// void on__browser_loadFinished(bool ok) {
|
||||
// LOG<<(ok?"success":"error");
|
||||
// if (!ok) {
|
||||
// _browser->setHtml(tr("<html><title>Page Load Error</title>"
|
||||
// "<body><h1>Page Load Error</h1>%1"
|
||||
// "</body></html>")
|
||||
// .arg(_error),
|
||||
// _errorUrl);
|
||||
// statusBar()->showMessage(tr("download error"));
|
||||
// } else {
|
||||
// statusBar()->showMessage(tr("done."));
|
||||
// }
|
||||
// _error.clear();
|
||||
// _progress->hide();
|
||||
// on__browser_iconChanged();
|
||||
// actionStop->setEnabled(false);
|
||||
// actionForward->setEnabled(_browser->history()->canGoForward());
|
||||
// actionBack->setEnabled(_browser->history()->canGoBack());
|
||||
// actionReload->setEnabled(true);
|
||||
// actionHome->setEnabled(true);
|
||||
// }
|
||||
|
||||
// //!@todo ^^^
|
||||
|
||||
// void on_actionNew_triggered() { //@!todo exec new process
|
||||
// LOG;
|
||||
// (new Browser(dynamic_cast<QWebView*>(_tabs->currentWidget())->url().toString(), _kiosk, false))->show();
|
||||
// }
|
||||
|
||||
void on_actionNewTab_triggered() {
|
||||
QWebView* browser(new QWebView);
|
||||
browser->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
|
||||
browser->page()->setNetworkAccessManager(&_networkManager);
|
||||
// QWebPage WebAction
|
||||
connect(browser->pageAction(QWebPage::OpenLink),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredOpenLink(bool)));
|
||||
connect(browser->pageAction(QWebPage::OpenLinkInNewWindow),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredOpenLinkInNewWindow(bool)));
|
||||
connect(browser->pageAction(QWebPage::OpenFrameInNewWindow),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredOpenFrameInNewWindow(bool)));
|
||||
connect(browser->pageAction(QWebPage::DownloadLinkToDisk),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredDownloadLinkToDisk(bool)));
|
||||
connect(browser->pageAction(QWebPage::CopyLinkToClipboard),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredCopyLinkToClipboard(bool)));
|
||||
connect(browser->pageAction(QWebPage::OpenImageInNewWindow),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredOpenImageInNewWindow(bool)));
|
||||
connect(browser->pageAction(QWebPage::DownloadImageToDisk),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredDownloadImageToDisk(bool)));
|
||||
connect(browser->pageAction(QWebPage::CopyImageToClipboard),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredCopyImageToClipboard(bool)));
|
||||
connect(browser->pageAction(QWebPage::Back),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredBack(bool)));
|
||||
connect(browser->pageAction(QWebPage::Forward),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredForward(bool)));
|
||||
connect(browser->pageAction(QWebPage::Stop),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredStop(bool)));
|
||||
connect(browser->pageAction(QWebPage::Reload),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredReload(bool)));
|
||||
connect(browser->pageAction(QWebPage::Cut),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredCut(bool)));
|
||||
connect(browser->pageAction(QWebPage::Copy),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredCopy(bool)));
|
||||
connect(browser->pageAction(QWebPage::Paste),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredPaste(bool)));
|
||||
connect(browser->pageAction(QWebPage::Undo),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredUndo(bool)));
|
||||
connect(browser->pageAction(QWebPage::Redo),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredRedo(bool)));
|
||||
connect(browser->pageAction(QWebPage::MoveToNextChar),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToNextChar(bool)));
|
||||
connect(browser->pageAction(QWebPage::MoveToPreviousChar),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToPreviousChar(bool)));
|
||||
connect(browser->pageAction(QWebPage::MoveToNextWord),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToNextWord(bool)));
|
||||
connect(browser->pageAction(QWebPage::MoveToPreviousWord),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToPreviousWord(bool)));
|
||||
connect(browser->pageAction(QWebPage::MoveToNextLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToNextLine(bool)));
|
||||
connect(browser->pageAction(QWebPage::MoveToPreviousLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToPreviousLine(bool)));
|
||||
connect(browser->pageAction(QWebPage::MoveToStartOfLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToStartOfLine(bool)));
|
||||
connect(browser->pageAction(QWebPage::MoveToEndOfLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToEndOfLine(bool)));
|
||||
connect(browser->pageAction(QWebPage::MoveToStartOfBlock),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToStartOfBlock(bool)));
|
||||
connect(browser->pageAction(QWebPage::MoveToEndOfBlock),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToEndOfBlock(bool)));
|
||||
connect(browser->pageAction(QWebPage::MoveToStartOfDocument),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToStartOfDocument(bool)));
|
||||
connect(browser->pageAction(QWebPage::MoveToEndOfDocument),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredMoveToEndOfDocument(bool)));
|
||||
connect(browser->pageAction(QWebPage::SelectNextChar),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectNextChar(bool)));
|
||||
connect(browser->pageAction(QWebPage::SelectPreviousChar),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectPreviousChar(bool)));
|
||||
connect(browser->pageAction(QWebPage::SelectNextWord),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectNextWord(bool)));
|
||||
connect(browser->pageAction(QWebPage::SelectPreviousWord),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectPreviousWord(bool)));
|
||||
connect(browser->pageAction(QWebPage::SelectNextLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectNextLine(bool)));
|
||||
connect(browser->pageAction(QWebPage::SelectPreviousLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectPreviousLine(bool)));
|
||||
connect(browser->pageAction(QWebPage::SelectStartOfLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectStartOfLine(bool)));
|
||||
connect(browser->pageAction(QWebPage::SelectEndOfLine),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectEndOfLine(bool)));
|
||||
connect(browser->pageAction(QWebPage::SelectStartOfBlock),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectStartOfBlock(bool)));
|
||||
connect(browser->pageAction(QWebPage::SelectEndOfBlock),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectEndOfBlock(bool)));
|
||||
connect(browser->pageAction(QWebPage::SelectStartOfDocument),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectStartOfDocument(bool)));
|
||||
connect(browser->pageAction(QWebPage::SelectEndOfDocument),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectEndOfDocument(bool)));
|
||||
connect(browser->pageAction(QWebPage::DeleteStartOfWord),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredDeleteStartOfWord(bool)));
|
||||
connect(browser->pageAction(QWebPage::DeleteEndOfWord),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredDeleteEndOfWord(bool)));
|
||||
connect(browser->pageAction(QWebPage::SetTextDirectionDefault),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSetTextDirectionDefault(bool)));
|
||||
connect(browser->pageAction(QWebPage::SetTextDirectionLeftToRight),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSetTextDirectionLeftToRight(bool)));
|
||||
connect(browser->pageAction(QWebPage::SetTextDirectionRightToLeft),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSetTextDirectionRightToLeft(bool)));
|
||||
connect(browser->pageAction(QWebPage::ToggleBold),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredToggleBold(bool)));
|
||||
connect(browser->pageAction(QWebPage::ToggleItalic),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredToggleItalic(bool)));
|
||||
connect(browser->pageAction(QWebPage::ToggleUnderline),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredToggleUnderline(bool)));
|
||||
connect(browser->pageAction(QWebPage::InspectElement),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredInspectElement(bool)));
|
||||
connect(browser->pageAction(QWebPage::InsertParagraphSeparator),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredInsertParagraphSeparator(bool)));
|
||||
connect(browser->pageAction(QWebPage::InsertLineSeparator),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredInsertLineSeparator(bool)));
|
||||
connect(browser->pageAction(QWebPage::SelectAll),
|
||||
SIGNAL(triggered(bool)),
|
||||
SLOT(triggeredSelectAll(bool)));
|
||||
// QWebPage
|
||||
assert(connect(browser->page(), SIGNAL(contentsChanged()),
|
||||
SLOT(contentsChanged())));
|
||||
assert(connect(browser->page(),
|
||||
SIGNAL(databaseQuotaExceeded(QWebFrame*, QString)),
|
||||
SLOT(databaseQuotaExceeded(QWebFrame*, QString))));
|
||||
assert(connect(browser->page(),
|
||||
SIGNAL(downloadRequested(const QNetworkRequest&)),
|
||||
SLOT(downloadRequested(const QNetworkRequest&))));
|
||||
assert(connect(browser->page(), SIGNAL(frameCreated(QWebFrame*)),
|
||||
SLOT(frameCreated(QWebFrame*))));
|
||||
assert(connect(browser->page(),
|
||||
SIGNAL(geometryChangeRequested(const QRect&)),
|
||||
SLOT(geometryChangeRequested(const QRect&))));
|
||||
assert(connect(browser->page(), SIGNAL(linkClicked(const QUrl&)),
|
||||
SLOT(linkClicked(const QUrl&))));
|
||||
assert(connect(browser->page(),
|
||||
SIGNAL(linkHovered(const QString&, const QString&,
|
||||
const QString&)),
|
||||
SLOT(linkHovered(const QString&, const QString&,
|
||||
const QString&))));
|
||||
assert(connect(browser->page(), SIGNAL(loadFinished(bool)),
|
||||
SLOT(loadFinished(bool))));
|
||||
assert(connect(browser->page(), SIGNAL(loadProgress(int)),
|
||||
SLOT(loadProgress(int))));
|
||||
assert(connect(browser->page(), SIGNAL(loadStarted()),
|
||||
SLOT(loadStarted())));
|
||||
assert(connect(browser->page(),
|
||||
SIGNAL(menuBarVisibilityChangeRequested(bool)),
|
||||
SLOT(menuBarVisibilityChangeRequested(bool))));
|
||||
assert(connect(browser->page(), SIGNAL(microFocusChanged()),
|
||||
SLOT(microFocusChanged())));
|
||||
assert(connect(browser->page(), SIGNAL(printRequested(QWebFrame*)),
|
||||
SLOT(printRequested(QWebFrame*))));
|
||||
assert(connect(browser->page(), SIGNAL(repaintRequested(const QRect&)),
|
||||
SLOT(repaintRequested(const QRect&))));
|
||||
assert(connect(browser->page(),
|
||||
SIGNAL(restoreFrameStateRequested(QWebFrame*)),
|
||||
SLOT(restoreFrameStateRequested(QWebFrame*))));
|
||||
assert(connect(browser->page(),
|
||||
SIGNAL(saveFrameStateRequested(QWebFrame*,
|
||||
QWebHistoryItem*)),
|
||||
SLOT(saveFrameStateRequested(QWebFrame*,
|
||||
QWebHistoryItem*))));
|
||||
assert(connect(browser->page(),
|
||||
SIGNAL(scrollRequested(int, int, const QRect&)),
|
||||
SLOT(scrollRequested(int, int, const QRect&))));
|
||||
assert(connect(browser->page(), SIGNAL(selectionChanged()),
|
||||
SLOT(selectionChanged())));
|
||||
assert(connect(browser->page(), SIGNAL(statusBarMessage(const QString&)),
|
||||
SLOT(statusBarMessage(const QString&))));
|
||||
assert(connect(browser->page(),
|
||||
SIGNAL(statusBarVisibilityChangeRequested(bool)),
|
||||
SLOT(statusBarVisibilityChangeRequested(bool))));
|
||||
assert(connect(browser->page(),
|
||||
SIGNAL(toolBarVisibilityChangeRequested(bool)),
|
||||
SLOT(toolBarVisibilityChangeRequested(bool))));
|
||||
assert(connect(browser->page(),
|
||||
SIGNAL(unsupportedContent(QNetworkReply*)),
|
||||
SLOT(unsupportedContent(QNetworkReply*))));
|
||||
assert(connect(browser->page(), SIGNAL(windowCloseRequested()),
|
||||
SLOT(windowCloseRequested())));
|
||||
// QNetworkAccessManager
|
||||
assert(connect(browser->page()->networkAccessManager(),
|
||||
SIGNAL(authenticationRequired(QNetworkReply*,
|
||||
QAuthenticator*)),
|
||||
SLOT(authenticationRequired(QNetworkReply*,
|
||||
QAuthenticator*))));
|
||||
assert(connect(browser->page()->networkAccessManager(),
|
||||
SIGNAL(finished(QNetworkReply*)),
|
||||
SLOT(finished(QNetworkReply*))));
|
||||
assert(connect(browser->page()->networkAccessManager(),
|
||||
SIGNAL(proxyAuthenticationRequired(const QNetworkProxy&,
|
||||
QAuthenticator*)),
|
||||
SLOT(proxyAuthenticationRequired(const QNetworkProxy&,
|
||||
QAuthenticator*))));
|
||||
assert(connect(browser->page()->networkAccessManager(),
|
||||
SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)),
|
||||
SLOT(sslErrors(QNetworkReply*, const QList<QSslError>&))));
|
||||
_tabs->setCurrentIndex(_tabs->addTab(browser, "*empty*"));
|
||||
_tabs->setTabsClosable(_tabs->count()>1);
|
||||
}
|
||||
|
||||
void on_actionNew_triggered() {
|
||||
LOG;
|
||||
(new Browser(_browser->url().toString(), _kiosk, false))->show();
|
||||
void on__tabs_currentChanged(int index) {
|
||||
}
|
||||
|
||||
void on_actionClose_triggered() {
|
||||
LOG;
|
||||
close();
|
||||
|
||||
void on__tabs_tabCloseRequested(int index) {
|
||||
_tabs->removeTab(index);
|
||||
_tabs->setTabsClosable(_tabs->count()>1);
|
||||
}
|
||||
|
||||
void on_actionPrintPreview_triggered() {
|
||||
QPrintPreviewDialog preview(&_printer, this);
|
||||
connect(&preview, SIGNAL(paintRequested(QPrinter*)),
|
||||
_browser, SLOT(print(QPrinter*)));
|
||||
dynamic_cast<QWebView*>(_tabs->currentWidget()),
|
||||
SLOT(print(QPrinter*)));
|
||||
preview.exec();
|
||||
}
|
||||
|
||||
void on_actionInstantPrint_triggered() {
|
||||
_browser->print(&_printer);
|
||||
dynamic_cast<QWebView*>(_tabs->currentWidget())->print(&_printer);
|
||||
}
|
||||
|
||||
void on_actionPrint_triggered() {
|
||||
@@ -617,6 +636,11 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
on_actionInstantPrint_triggered();
|
||||
}
|
||||
|
||||
void on_actionClose_triggered() {
|
||||
LOG;
|
||||
close();
|
||||
}
|
||||
|
||||
void on_actionProxySettings_triggered() {
|
||||
LOG;
|
||||
if (_proxy) _proxy->show();
|
||||
@@ -1006,6 +1030,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
|
||||
QString _error;
|
||||
QUrl _errorUrl;
|
||||
QPrinter _printer;
|
||||
SslClientAuthNetworkAccessManager _networkManager;
|
||||
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user