closes #26; closes #24

This commit is contained in:
Marc Wäckerlin
2011-02-28 08:30:57 +00:00
parent 32349ded77
commit 06d04776ee
11 changed files with 818 additions and 494 deletions

View File

@@ -0,0 +1,35 @@
/*! @file
@id $Id$
*/
// 1 2 3 4 5 6 7 8
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
#ifndef __AUTHENTICATION_HXX__
#define __AUTHENTICATION_HXX__
#include <ui_authentication.h>
#include <QtGui/QDialog>
#include <QtNetwork/QAuthenticator>
class Authentication: public QDialog, protected Ui::Authentication {
Q_OBJECT;
public:
Authentication(QAuthenticator* auth, QWidget* p=0):
QDialog(p), _auth(auth) {
setupUi(this);
_realm->setText(_auth->realm());
_user->setText(_auth->user());
_password->setText(_auth->password());
}
public Q_SLOTS:
virtual void accept() {
_auth->setUser(_user->text());
_auth->setPassword(_password->text());
QDialog::accept();
}
private:
QAuthenticator* _auth;
};
#endif

View File

@@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Authentication</class>
<widget class="QDialog" name="Authentication">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>277</width>
<height>172</height>
</rect>
</property>
<property name="windowTitle">
<string>Authorization</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Authentication required for:</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="_realm">
<property name="text">
<string>realm</string>
</property>
<property name="wordWrap">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Username:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="_user"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Password:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="_password">
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
<property name="centerButtons">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>Authentication</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>Authentication</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@@ -32,6 +32,8 @@
#include <smartcardauth.hxx>
#include <downloadmanager.hxx>
#include <authentication.hxx>
#include <webpage.hxx>
#include <settings.hxx>
#include <sslclientnetworkmanager.hxx>
@@ -201,6 +203,271 @@ class Browser: public QMainWindow, protected Ui::Browser {
return true;
}
QWebView* newTab() {
QWebView* browser(new QWebView);
browser->setPage(new WebPage(this, browser));
browser->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
browser->page()->setNetworkAccessManager(&_networkManager);
browser->page()->setForwardUnsupportedContent(true);
_url->setFocus();
// QWebView
assert(connect(browser, SIGNAL(urlChanged(const QUrl&)),
SLOT(urlChanged(const QUrl&))));
assert(connect(browser, SIGNAL(linkClicked(const QUrl&)),
SLOT(linkClicked(const QUrl&))));
assert(connect(browser, SIGNAL(iconChanged()),
SLOT(iconChanged())));
assert(connect(browser, SIGNAL(titleChanged(const QString&)),
SLOT(titleChanged(const QString&))));
assert(connect(browser, SIGNAL(statusBarMessage(const QString&)),
SLOT(statusBarMessage(const QString&))));
assert(connect(browser, SIGNAL(loadProgress(int)),
SLOT(loadProgress(int))));
assert(connect(browser, SIGNAL(loadStarted()),
SLOT(loadStarted())));
assert(connect(browser, SIGNAL(loadFinished(bool)),
SLOT(loadFinished(bool))));
// QWebPage WebAction
assert(connect(browser->pageAction(QWebPage::OpenLink),
SIGNAL(triggered(bool)),
SLOT(triggeredOpenLink(bool))));
assert(connect(browser->pageAction(QWebPage::OpenLinkInNewWindow),
SIGNAL(triggered(bool)),
SLOT(triggeredOpenLinkInNewWindow(bool))));
assert(connect(browser->pageAction(QWebPage::OpenFrameInNewWindow),
SIGNAL(triggered(bool)),
SLOT(triggeredOpenFrameInNewWindow(bool))));
assert(connect(browser->pageAction(QWebPage::DownloadLinkToDisk),
SIGNAL(triggered(bool)),
SLOT(triggeredDownloadLinkToDisk(bool))));
assert(connect(browser->pageAction(QWebPage::CopyLinkToClipboard),
SIGNAL(triggered(bool)),
SLOT(triggeredCopyLinkToClipboard(bool))));
assert(connect(browser->pageAction(QWebPage::OpenImageInNewWindow),
SIGNAL(triggered(bool)),
SLOT(triggeredOpenImageInNewWindow(bool))));
assert(connect(browser->pageAction(QWebPage::DownloadImageToDisk),
SIGNAL(triggered(bool)),
SLOT(triggeredDownloadImageToDisk(bool))));
assert(connect(browser->pageAction(QWebPage::CopyImageToClipboard),
SIGNAL(triggered(bool)),
SLOT(triggeredCopyImageToClipboard(bool))));
assert(connect(browser->pageAction(QWebPage::Back),
SIGNAL(triggered(bool)),
SLOT(triggeredBack(bool))));
assert(connect(browser->pageAction(QWebPage::Forward),
SIGNAL(triggered(bool)),
SLOT(triggeredForward(bool))));
assert(connect(browser->pageAction(QWebPage::Stop),
SIGNAL(triggered(bool)),
SLOT(triggeredStop(bool))));
assert(connect(browser->pageAction(QWebPage::Reload),
SIGNAL(triggered(bool)),
SLOT(triggeredReload(bool))));
assert(connect(browser->pageAction(QWebPage::Cut),
SIGNAL(triggered(bool)),
SLOT(triggeredCut(bool))));
assert(connect(browser->pageAction(QWebPage::Copy),
SIGNAL(triggered(bool)),
SLOT(triggeredCopy(bool))));
assert(connect(browser->pageAction(QWebPage::Paste),
SIGNAL(triggered(bool)),
SLOT(triggeredPaste(bool))));
assert(connect(browser->pageAction(QWebPage::Undo),
SIGNAL(triggered(bool)),
SLOT(triggeredUndo(bool))));
assert(connect(browser->pageAction(QWebPage::Redo),
SIGNAL(triggered(bool)),
SLOT(triggeredRedo(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToNextChar),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToNextChar(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToPreviousChar),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToPreviousChar(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToNextWord),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToNextWord(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToPreviousWord),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToPreviousWord(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToNextLine),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToNextLine(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToPreviousLine),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToPreviousLine(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToStartOfLine),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToStartOfLine(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToEndOfLine),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToEndOfLine(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToStartOfBlock),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToStartOfBlock(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToEndOfBlock),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToEndOfBlock(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToStartOfDocument),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToStartOfDocument(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToEndOfDocument),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToEndOfDocument(bool))));
assert(connect(browser->pageAction(QWebPage::SelectNextChar),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectNextChar(bool))));
assert(connect(browser->pageAction(QWebPage::SelectPreviousChar),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectPreviousChar(bool))));
assert(connect(browser->pageAction(QWebPage::SelectNextWord),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectNextWord(bool))));
assert(connect(browser->pageAction(QWebPage::SelectPreviousWord),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectPreviousWord(bool))));
assert(connect(browser->pageAction(QWebPage::SelectNextLine),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectNextLine(bool))));
assert(connect(browser->pageAction(QWebPage::SelectPreviousLine),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectPreviousLine(bool))));
assert(connect(browser->pageAction(QWebPage::SelectStartOfLine),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectStartOfLine(bool))));
assert(connect(browser->pageAction(QWebPage::SelectEndOfLine),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectEndOfLine(bool))));
assert(connect(browser->pageAction(QWebPage::SelectStartOfBlock),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectStartOfBlock(bool))));
assert(connect(browser->pageAction(QWebPage::SelectEndOfBlock),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectEndOfBlock(bool))));
assert(connect(browser->pageAction(QWebPage::SelectStartOfDocument),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectStartOfDocument(bool))));
assert(connect(browser->pageAction(QWebPage::SelectEndOfDocument),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectEndOfDocument(bool))));
assert(connect(browser->pageAction(QWebPage::DeleteStartOfWord),
SIGNAL(triggered(bool)),
SLOT(triggeredDeleteStartOfWord(bool))));
assert(connect(browser->pageAction(QWebPage::DeleteEndOfWord),
SIGNAL(triggered(bool)),
SLOT(triggeredDeleteEndOfWord(bool))));
assert(connect(browser->pageAction(QWebPage::SetTextDirectionDefault),
SIGNAL(triggered(bool)),
SLOT(triggeredSetTextDirectionDefault(bool))));
assert(connect(browser->pageAction(QWebPage::SetTextDirectionLeftToRight),
SIGNAL(triggered(bool)),
SLOT(triggeredSetTextDirectionLeftToRight(bool))));
assert(connect(browser->pageAction(QWebPage::SetTextDirectionRightToLeft),
SIGNAL(triggered(bool)),
SLOT(triggeredSetTextDirectionRightToLeft(bool))));
assert(connect(browser->pageAction(QWebPage::ToggleBold),
SIGNAL(triggered(bool)),
SLOT(triggeredToggleBold(bool))));
assert(connect(browser->pageAction(QWebPage::ToggleItalic),
SIGNAL(triggered(bool)),
SLOT(triggeredToggleItalic(bool))));
assert(connect(browser->pageAction(QWebPage::ToggleUnderline),
SIGNAL(triggered(bool)),
SLOT(triggeredToggleUnderline(bool))));
assert(connect(browser->pageAction(QWebPage::InspectElement),
SIGNAL(triggered(bool)),
SLOT(triggeredInspectElement(bool))));
assert(connect(browser->pageAction(QWebPage::InsertParagraphSeparator),
SIGNAL(triggered(bool)),
SLOT(triggeredInsertParagraphSeparator(bool))));
assert(connect(browser->pageAction(QWebPage::InsertLineSeparator),
SIGNAL(triggered(bool)),
SLOT(triggeredInsertLineSeparator(bool))));
assert(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(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);
return browser;
}
protected:
void closeEvent(QCloseEvent *event) {
@@ -472,215 +739,215 @@ class Browser: public QMainWindow, protected Ui::Browser {
//@{
void triggeredOpenLink(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredOpenLinkInNewWindow(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredOpenFrameInNewWindow(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredDownloadLinkToDisk(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredCopyLinkToClipboard(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredOpenImageInNewWindow(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredDownloadImageToDisk(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredCopyImageToClipboard(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredBack(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredForward(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredStop(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredReload(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredCut(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredCopy(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredPaste(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredUndo(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredRedo(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredMoveToNextChar(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredMoveToPreviousChar(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredMoveToNextWord(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredMoveToPreviousWord(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredMoveToNextLine(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredMoveToPreviousLine(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredMoveToStartOfLine(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredMoveToEndOfLine(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredMoveToStartOfBlock(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredMoveToEndOfBlock(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredMoveToStartOfDocument(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredMoveToEndOfDocument(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSelectNextChar(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSelectPreviousChar(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSelectNextWord(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSelectPreviousWord(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSelectNextLine(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSelectPreviousLine(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSelectStartOfLine(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSelectEndOfLine(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSelectStartOfBlock(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSelectEndOfBlock(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSelectStartOfDocument(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSelectEndOfDocument(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredDeleteStartOfWord(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredDeleteEndOfWord(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSetTextDirectionDefault(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSetTextDirectionLeftToRight(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSetTextDirectionRightToLeft(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredToggleBold(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredToggleItalic(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredToggleUnderline(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredInspectElement(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredInsertParagraphSeparator(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredInsertLineSeparator(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
void triggeredSelectAll(bool) {
LOG;
LOG<<qobject_cast<QAction*>(sender())->data().toString();
}
//@}
@@ -872,11 +1139,8 @@ class Browser: public QMainWindow, protected Ui::Browser {
QAuthenticator* authenticator) {
LOG;
statusBar()->showMessage(tr("authentication required"));
// _error[sender()] += tr("<h2>%1</h2><p>URL: %3</p><p>%2</p>")
// .arg(tr("Authentication Required"))
// .arg(networkError(reply->error()))
// .arg(reply->url().toString());
// _errorUrl[sender()] = reply->url();
Authentication auth(authenticator, this);
auth.exec();
}
void proxyAuthenticationRequired(const QNetworkProxy& proxy,
@@ -944,270 +1208,6 @@ class Browser: public QMainWindow, protected Ui::Browser {
->history()->canGoBack());
}
QWebView* newTab() {
QWebView* browser(new QWebView);
browser->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
browser->page()->setNetworkAccessManager(&_networkManager);
browser->page()->setForwardUnsupportedContent(true);
_url->setFocus();
// QWebView
assert(connect(browser, SIGNAL(urlChanged(const QUrl&)),
SLOT(urlChanged(const QUrl&))));
assert(connect(browser, SIGNAL(linkClicked(const QUrl&)),
SLOT(linkClicked(const QUrl&))));
assert(connect(browser, SIGNAL(iconChanged()),
SLOT(iconChanged())));
assert(connect(browser, SIGNAL(titleChanged(const QString&)),
SLOT(titleChanged(const QString&))));
assert(connect(browser, SIGNAL(statusBarMessage(const QString&)),
SLOT(statusBarMessage(const QString&))));
assert(connect(browser, SIGNAL(loadProgress(int)),
SLOT(loadProgress(int))));
assert(connect(browser, SIGNAL(loadStarted()),
SLOT(loadStarted())));
assert(connect(browser, SIGNAL(loadFinished(bool)),
SLOT(loadFinished(bool))));
// QWebPage WebAction
assert(connect(browser->pageAction(QWebPage::OpenLink),
SIGNAL(triggered(bool)),
SLOT(triggeredOpenLink(bool))));
assert(connect(browser->pageAction(QWebPage::OpenLinkInNewWindow),
SIGNAL(triggered(bool)),
SLOT(triggeredOpenLinkInNewWindow(bool))));
assert(connect(browser->pageAction(QWebPage::OpenFrameInNewWindow),
SIGNAL(triggered(bool)),
SLOT(triggeredOpenFrameInNewWindow(bool))));
assert(connect(browser->pageAction(QWebPage::DownloadLinkToDisk),
SIGNAL(triggered(bool)),
SLOT(triggeredDownloadLinkToDisk(bool))));
assert(connect(browser->pageAction(QWebPage::CopyLinkToClipboard),
SIGNAL(triggered(bool)),
SLOT(triggeredCopyLinkToClipboard(bool))));
assert(connect(browser->pageAction(QWebPage::OpenImageInNewWindow),
SIGNAL(triggered(bool)),
SLOT(triggeredOpenImageInNewWindow(bool))));
assert(connect(browser->pageAction(QWebPage::DownloadImageToDisk),
SIGNAL(triggered(bool)),
SLOT(triggeredDownloadImageToDisk(bool))));
assert(connect(browser->pageAction(QWebPage::CopyImageToClipboard),
SIGNAL(triggered(bool)),
SLOT(triggeredCopyImageToClipboard(bool))));
assert(connect(browser->pageAction(QWebPage::Back),
SIGNAL(triggered(bool)),
SLOT(triggeredBack(bool))));
assert(connect(browser->pageAction(QWebPage::Forward),
SIGNAL(triggered(bool)),
SLOT(triggeredForward(bool))));
assert(connect(browser->pageAction(QWebPage::Stop),
SIGNAL(triggered(bool)),
SLOT(triggeredStop(bool))));
assert(connect(browser->pageAction(QWebPage::Reload),
SIGNAL(triggered(bool)),
SLOT(triggeredReload(bool))));
assert(connect(browser->pageAction(QWebPage::Cut),
SIGNAL(triggered(bool)),
SLOT(triggeredCut(bool))));
assert(connect(browser->pageAction(QWebPage::Copy),
SIGNAL(triggered(bool)),
SLOT(triggeredCopy(bool))));
assert(connect(browser->pageAction(QWebPage::Paste),
SIGNAL(triggered(bool)),
SLOT(triggeredPaste(bool))));
assert(connect(browser->pageAction(QWebPage::Undo),
SIGNAL(triggered(bool)),
SLOT(triggeredUndo(bool))));
assert(connect(browser->pageAction(QWebPage::Redo),
SIGNAL(triggered(bool)),
SLOT(triggeredRedo(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToNextChar),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToNextChar(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToPreviousChar),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToPreviousChar(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToNextWord),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToNextWord(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToPreviousWord),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToPreviousWord(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToNextLine),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToNextLine(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToPreviousLine),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToPreviousLine(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToStartOfLine),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToStartOfLine(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToEndOfLine),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToEndOfLine(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToStartOfBlock),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToStartOfBlock(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToEndOfBlock),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToEndOfBlock(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToStartOfDocument),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToStartOfDocument(bool))));
assert(connect(browser->pageAction(QWebPage::MoveToEndOfDocument),
SIGNAL(triggered(bool)),
SLOT(triggeredMoveToEndOfDocument(bool))));
assert(connect(browser->pageAction(QWebPage::SelectNextChar),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectNextChar(bool))));
assert(connect(browser->pageAction(QWebPage::SelectPreviousChar),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectPreviousChar(bool))));
assert(connect(browser->pageAction(QWebPage::SelectNextWord),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectNextWord(bool))));
assert(connect(browser->pageAction(QWebPage::SelectPreviousWord),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectPreviousWord(bool))));
assert(connect(browser->pageAction(QWebPage::SelectNextLine),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectNextLine(bool))));
assert(connect(browser->pageAction(QWebPage::SelectPreviousLine),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectPreviousLine(bool))));
assert(connect(browser->pageAction(QWebPage::SelectStartOfLine),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectStartOfLine(bool))));
assert(connect(browser->pageAction(QWebPage::SelectEndOfLine),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectEndOfLine(bool))));
assert(connect(browser->pageAction(QWebPage::SelectStartOfBlock),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectStartOfBlock(bool))));
assert(connect(browser->pageAction(QWebPage::SelectEndOfBlock),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectEndOfBlock(bool))));
assert(connect(browser->pageAction(QWebPage::SelectStartOfDocument),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectStartOfDocument(bool))));
assert(connect(browser->pageAction(QWebPage::SelectEndOfDocument),
SIGNAL(triggered(bool)),
SLOT(triggeredSelectEndOfDocument(bool))));
assert(connect(browser->pageAction(QWebPage::DeleteStartOfWord),
SIGNAL(triggered(bool)),
SLOT(triggeredDeleteStartOfWord(bool))));
assert(connect(browser->pageAction(QWebPage::DeleteEndOfWord),
SIGNAL(triggered(bool)),
SLOT(triggeredDeleteEndOfWord(bool))));
assert(connect(browser->pageAction(QWebPage::SetTextDirectionDefault),
SIGNAL(triggered(bool)),
SLOT(triggeredSetTextDirectionDefault(bool))));
assert(connect(browser->pageAction(QWebPage::SetTextDirectionLeftToRight),
SIGNAL(triggered(bool)),
SLOT(triggeredSetTextDirectionLeftToRight(bool))));
assert(connect(browser->pageAction(QWebPage::SetTextDirectionRightToLeft),
SIGNAL(triggered(bool)),
SLOT(triggeredSetTextDirectionRightToLeft(bool))));
assert(connect(browser->pageAction(QWebPage::ToggleBold),
SIGNAL(triggered(bool)),
SLOT(triggeredToggleBold(bool))));
assert(connect(browser->pageAction(QWebPage::ToggleItalic),
SIGNAL(triggered(bool)),
SLOT(triggeredToggleItalic(bool))));
assert(connect(browser->pageAction(QWebPage::ToggleUnderline),
SIGNAL(triggered(bool)),
SLOT(triggeredToggleUnderline(bool))));
assert(connect(browser->pageAction(QWebPage::InspectElement),
SIGNAL(triggered(bool)),
SLOT(triggeredInspectElement(bool))));
assert(connect(browser->pageAction(QWebPage::InsertParagraphSeparator),
SIGNAL(triggered(bool)),
SLOT(triggeredInsertParagraphSeparator(bool))));
assert(connect(browser->pageAction(QWebPage::InsertLineSeparator),
SIGNAL(triggered(bool)),
SLOT(triggeredInsertLineSeparator(bool))));
assert(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(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);
return browser;
}
private:
QComboBox* _url;

View File

@@ -20,12 +20,13 @@ TRANSLATIONS = @PACKAGENAME@_en.ts \
@PACKAGENAME@_fr.ts \
@PACKAGENAME@_it.ts
SOURCES = main.cxx smartcardauth.cxx pindialog.cxx
SOURCES = main.cxx smartcardauth.cxx pindialog.cxx webpage.cxx
HEADERS = browser.hxx smartcardauth.hxx pindialog.hxx \
downloadmanager.hxx settings.hxx sslclientnetworkmanager.hxx
downloadmanager.hxx settings.hxx sslclientnetworkmanager.hxx \
authentication.hxx webpage.hxx
FORMS = browser.ui settings.ui pinentry.ui
FORMS = browser.ui settings.ui pinentry.ui authentication.ui
RESOURCES = languages.qrc resources.qrc

View File

@@ -59,6 +59,7 @@ std::map<ssl_ctx_st*, QSslSocket*> sockets;
int client_cert_cb(SSL* ssl, X509 **x509, EVP_PKEY **pkey) {
if (!e) return 0;
while (!_mutex.tryLock()) QCoreApplication::processEvents();
static std::set<QString> allowedUrls;
std::map<ssl_ctx_st*, QSslSocket*>::iterator it(sockets.find(ssl->ctx));
if (it!=sockets.end()) {
@@ -76,7 +77,6 @@ int client_cert_cb(SSL* ssl, X509 **x509, EVP_PKEY **pkey) {
sockets.erase(it);
}
while (!_mutex.tryLock()) QCoreApplication::processEvents();
// NB: Keep in mind that this function is called for EVERY SSL connection to be opened.
for(size_t i=certs_found->num_certs;i--;)

View File

@@ -2,6 +2,34 @@
<!DOCTYPE TS>
<TS version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>Authentication</name>
<message>
<location filename="authentication.ui" line="14"/>
<source>Authorization</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="22"/>
<source>Authentication required for:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="32"/>
<source>realm</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="46"/>
<source>Username:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="56"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
@@ -193,210 +221,210 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="150"/>
<location filename="browser.hxx" line="152"/>
<source>The connection to the proxy server was refused (the proxy server is not accepting requests).</source>
<oldsource>the connection to the proxy timed out or the proxy did not reply in time to the request sent</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="162"/>
<location filename="browser.hxx" line="164"/>
<source>The proxy requires authentication in order to honour the request but did not accept any credentials offered (if any).</source>
<oldsource>the Network Access API cannot honor the request because the protocol is not known</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="228"/>
<location filename="browser.hxx" line="495"/>
<source>Checking: %1</source>
<oldsource>Opening: %1</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="240"/>
<location filename="browser.hxx" line="507"/>
<source>Reading: %1</source>
<oldsource>Reading: %1%</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="255"/>
<location filename="browser.hxx" line="522"/>
<source>Zoom: %1%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="130"/>
<location filename="browser.hxx" line="132"/>
<source>Network connection successful, remote host can be reached.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="133"/>
<location filename="browser.hxx" line="135"/>
<source>The remote server refused the connection (the server is not accepting requests).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="136"/>
<location filename="browser.hxx" line="138"/>
<source>The remote server closed the connection prematurely, before the entire reply was received and processed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="139"/>
<location filename="browser.hxx" line="141"/>
<source>The remote host name was not found (invalid hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="141"/>
<location filename="browser.hxx" line="143"/>
<source>The connection to the remote server timed out.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="143"/>
<location filename="browser.hxx" line="145"/>
<source>The operation was canceled via calls to abort() or close() before it was finished.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="146"/>
<location filename="browser.hxx" line="148"/>
<source>The SSL/TLS handshake failed and the encrypted channel could not be established. The sslErrors() signal should have been emitted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="153"/>
<location filename="browser.hxx" line="155"/>
<source>The proxy server closed the connection prematurely, before the entire reply was received and processed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="156"/>
<location filename="browser.hxx" line="158"/>
<source>The proxy host name was not found (invalid proxy hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="159"/>
<location filename="browser.hxx" line="161"/>
<source>The connection to the proxy timed out or the proxy did not reply in time to the request sent.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="166"/>
<location filename="browser.hxx" line="168"/>
<source>The access to the remote content was denied (similar to HTTP error 401).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="169"/>
<location filename="browser.hxx" line="171"/>
<source>The operation requested on the remote content is not permitted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="172"/>
<location filename="browser.hxx" line="174"/>
<source>The remote content was not found at the server (similar to HTTP error 404).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="175"/>
<location filename="browser.hxx" line="177"/>
<source>The remote server requires authentication to serve the content but the credentials provided were not accepted (if any).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="179"/>
<location filename="browser.hxx" line="181"/>
<source>The Network Access API cannot honor the request because the protocol is not known.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="182"/>
<location filename="browser.hxx" line="184"/>
<source>The requested operation is invalid for this protocol.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="184"/>
<location filename="browser.hxx" line="186"/>
<source>An unknown network-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="186"/>
<location filename="browser.hxx" line="188"/>
<source>An unknown proxy-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="188"/>
<location filename="browser.hxx" line="190"/>
<source>An unknonwn error related to the remote content was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="191"/>
<location filename="browser.hxx" line="193"/>
<source>A breakdown in protocol was detected (parsing error, invalid or unexpected responses, etc.).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="194"/>
<location filename="browser.hxx" line="196"/>
<source>&lt;strong&gt;Unknown network error (code: %1).&lt;/string&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="242"/>
<location filename="browser.hxx" line="509"/>
<source>Illegal URL: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="302"/>
<location filename="browser.hxx" line="569"/>
<source>Print Document</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="323"/>
<location filename="browser.hxx" line="590"/>
<source>%1 - %2</source>
<oldsource>Back to %1 - %2</oldsource>
<comment>statusbar actionBack_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="452"/>
<location filename="browser.hxx" line="719"/>
<source>Info: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="465"/>
<location filename="browser.hxx" line="732"/>
<source>done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="718"/>
<location filename="browser.hxx" line="985"/>
<source>%1</source>
<comment>statusbar for hovered link %1=url</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="231"/>
<location filename="browser.hxx" line="498"/>
<source>Forbidden: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="232"/>
<location filename="browser.hxx" line="499"/>
<source>Access Denied</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="233"/>
<location filename="browser.hxx" line="500"/>
<source>&lt;p&gt;Access denied due to security considerations.&lt;/p&gt;&lt;p&gt;You are not allowed to connect to %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="342"/>
<location filename="browser.hxx" line="609"/>
<source>%1 - %2</source>
<comment>statusbar actionForward_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="447"/>
<location filename="browser.hxx" line="714"/>
<source>%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="819"/>
<location filename="browser.hxx" line="1086"/>
<source>Save File As ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="874"/>
<location filename="browser.hxx" line="1141"/>
<source>authentication required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="889"/>
<location filename="browser.hxx" line="1153"/>
<source>ssl error</source>
<translation type="unfinished"></translation>
</message>
@@ -505,12 +533,12 @@ Try: %1 --help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="66"/>
<location filename="smartcardauth.cxx" line="67"/>
<source>Send Authentication?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="67"/>
<location filename="smartcardauth.cxx" line="68"/>
<source>Do you want to authenticate yourself to %1?</source>
<translation type="unfinished"></translation>
</message>

View File

@@ -2,6 +2,34 @@
<!DOCTYPE TS>
<TS version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>Authentication</name>
<message>
<location filename="authentication.ui" line="14"/>
<source>Authorization</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="22"/>
<source>Authentication required for:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="32"/>
<source>realm</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="46"/>
<source>Username:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="56"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
@@ -193,210 +221,210 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="150"/>
<location filename="browser.hxx" line="152"/>
<source>The connection to the proxy server was refused (the proxy server is not accepting requests).</source>
<oldsource>the connection to the proxy timed out or the proxy did not reply in time to the request sent</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="162"/>
<location filename="browser.hxx" line="164"/>
<source>The proxy requires authentication in order to honour the request but did not accept any credentials offered (if any).</source>
<oldsource>the Network Access API cannot honor the request because the protocol is not known</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="228"/>
<location filename="browser.hxx" line="495"/>
<source>Checking: %1</source>
<oldsource>Opening: %1</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="240"/>
<location filename="browser.hxx" line="507"/>
<source>Reading: %1</source>
<oldsource>Reading: %1%</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="255"/>
<location filename="browser.hxx" line="522"/>
<source>Zoom: %1%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="130"/>
<location filename="browser.hxx" line="132"/>
<source>Network connection successful, remote host can be reached.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="133"/>
<location filename="browser.hxx" line="135"/>
<source>The remote server refused the connection (the server is not accepting requests).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="136"/>
<location filename="browser.hxx" line="138"/>
<source>The remote server closed the connection prematurely, before the entire reply was received and processed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="139"/>
<location filename="browser.hxx" line="141"/>
<source>The remote host name was not found (invalid hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="141"/>
<location filename="browser.hxx" line="143"/>
<source>The connection to the remote server timed out.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="143"/>
<location filename="browser.hxx" line="145"/>
<source>The operation was canceled via calls to abort() or close() before it was finished.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="146"/>
<location filename="browser.hxx" line="148"/>
<source>The SSL/TLS handshake failed and the encrypted channel could not be established. The sslErrors() signal should have been emitted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="153"/>
<location filename="browser.hxx" line="155"/>
<source>The proxy server closed the connection prematurely, before the entire reply was received and processed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="156"/>
<location filename="browser.hxx" line="158"/>
<source>The proxy host name was not found (invalid proxy hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="159"/>
<location filename="browser.hxx" line="161"/>
<source>The connection to the proxy timed out or the proxy did not reply in time to the request sent.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="166"/>
<location filename="browser.hxx" line="168"/>
<source>The access to the remote content was denied (similar to HTTP error 401).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="169"/>
<location filename="browser.hxx" line="171"/>
<source>The operation requested on the remote content is not permitted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="172"/>
<location filename="browser.hxx" line="174"/>
<source>The remote content was not found at the server (similar to HTTP error 404).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="175"/>
<location filename="browser.hxx" line="177"/>
<source>The remote server requires authentication to serve the content but the credentials provided were not accepted (if any).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="179"/>
<location filename="browser.hxx" line="181"/>
<source>The Network Access API cannot honor the request because the protocol is not known.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="182"/>
<location filename="browser.hxx" line="184"/>
<source>The requested operation is invalid for this protocol.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="184"/>
<location filename="browser.hxx" line="186"/>
<source>An unknown network-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="186"/>
<location filename="browser.hxx" line="188"/>
<source>An unknown proxy-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="188"/>
<location filename="browser.hxx" line="190"/>
<source>An unknonwn error related to the remote content was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="191"/>
<location filename="browser.hxx" line="193"/>
<source>A breakdown in protocol was detected (parsing error, invalid or unexpected responses, etc.).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="194"/>
<location filename="browser.hxx" line="196"/>
<source>&lt;strong&gt;Unknown network error (code: %1).&lt;/string&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="242"/>
<location filename="browser.hxx" line="509"/>
<source>Illegal URL: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="302"/>
<location filename="browser.hxx" line="569"/>
<source>Print Document</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="323"/>
<location filename="browser.hxx" line="590"/>
<source>%1 - %2</source>
<oldsource>Back to %1 - %2</oldsource>
<comment>statusbar actionBack_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="452"/>
<location filename="browser.hxx" line="719"/>
<source>Info: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="465"/>
<location filename="browser.hxx" line="732"/>
<source>done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="718"/>
<location filename="browser.hxx" line="985"/>
<source>%1</source>
<comment>statusbar for hovered link %1=url</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="231"/>
<location filename="browser.hxx" line="498"/>
<source>Forbidden: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="232"/>
<location filename="browser.hxx" line="499"/>
<source>Access Denied</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="233"/>
<location filename="browser.hxx" line="500"/>
<source>&lt;p&gt;Access denied due to security considerations.&lt;/p&gt;&lt;p&gt;You are not allowed to connect to %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="342"/>
<location filename="browser.hxx" line="609"/>
<source>%1 - %2</source>
<comment>statusbar actionForward_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="447"/>
<location filename="browser.hxx" line="714"/>
<source>%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="819"/>
<location filename="browser.hxx" line="1086"/>
<source>Save File As ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="874"/>
<location filename="browser.hxx" line="1141"/>
<source>authentication required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="889"/>
<location filename="browser.hxx" line="1153"/>
<source>ssl error</source>
<translation type="unfinished"></translation>
</message>
@@ -505,12 +533,12 @@ Try: %1 --help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="66"/>
<location filename="smartcardauth.cxx" line="67"/>
<source>Send Authentication?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="67"/>
<location filename="smartcardauth.cxx" line="68"/>
<source>Do you want to authenticate yourself to %1?</source>
<translation type="unfinished"></translation>
</message>

View File

@@ -2,6 +2,34 @@
<!DOCTYPE TS>
<TS version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>Authentication</name>
<message>
<location filename="authentication.ui" line="14"/>
<source>Authorization</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="22"/>
<source>Authentication required for:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="32"/>
<source>realm</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="46"/>
<source>Username:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="56"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
@@ -193,210 +221,210 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="150"/>
<location filename="browser.hxx" line="152"/>
<source>The connection to the proxy server was refused (the proxy server is not accepting requests).</source>
<oldsource>the connection to the proxy timed out or the proxy did not reply in time to the request sent</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="162"/>
<location filename="browser.hxx" line="164"/>
<source>The proxy requires authentication in order to honour the request but did not accept any credentials offered (if any).</source>
<oldsource>the Network Access API cannot honor the request because the protocol is not known</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="228"/>
<location filename="browser.hxx" line="495"/>
<source>Checking: %1</source>
<oldsource>Opening: %1</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="240"/>
<location filename="browser.hxx" line="507"/>
<source>Reading: %1</source>
<oldsource>Reading: %1%</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="255"/>
<location filename="browser.hxx" line="522"/>
<source>Zoom: %1%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="130"/>
<location filename="browser.hxx" line="132"/>
<source>Network connection successful, remote host can be reached.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="133"/>
<location filename="browser.hxx" line="135"/>
<source>The remote server refused the connection (the server is not accepting requests).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="136"/>
<location filename="browser.hxx" line="138"/>
<source>The remote server closed the connection prematurely, before the entire reply was received and processed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="139"/>
<location filename="browser.hxx" line="141"/>
<source>The remote host name was not found (invalid hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="141"/>
<location filename="browser.hxx" line="143"/>
<source>The connection to the remote server timed out.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="143"/>
<location filename="browser.hxx" line="145"/>
<source>The operation was canceled via calls to abort() or close() before it was finished.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="146"/>
<location filename="browser.hxx" line="148"/>
<source>The SSL/TLS handshake failed and the encrypted channel could not be established. The sslErrors() signal should have been emitted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="153"/>
<location filename="browser.hxx" line="155"/>
<source>The proxy server closed the connection prematurely, before the entire reply was received and processed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="156"/>
<location filename="browser.hxx" line="158"/>
<source>The proxy host name was not found (invalid proxy hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="159"/>
<location filename="browser.hxx" line="161"/>
<source>The connection to the proxy timed out or the proxy did not reply in time to the request sent.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="166"/>
<location filename="browser.hxx" line="168"/>
<source>The access to the remote content was denied (similar to HTTP error 401).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="169"/>
<location filename="browser.hxx" line="171"/>
<source>The operation requested on the remote content is not permitted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="172"/>
<location filename="browser.hxx" line="174"/>
<source>The remote content was not found at the server (similar to HTTP error 404).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="175"/>
<location filename="browser.hxx" line="177"/>
<source>The remote server requires authentication to serve the content but the credentials provided were not accepted (if any).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="179"/>
<location filename="browser.hxx" line="181"/>
<source>The Network Access API cannot honor the request because the protocol is not known.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="182"/>
<location filename="browser.hxx" line="184"/>
<source>The requested operation is invalid for this protocol.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="184"/>
<location filename="browser.hxx" line="186"/>
<source>An unknown network-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="186"/>
<location filename="browser.hxx" line="188"/>
<source>An unknown proxy-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="188"/>
<location filename="browser.hxx" line="190"/>
<source>An unknonwn error related to the remote content was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="191"/>
<location filename="browser.hxx" line="193"/>
<source>A breakdown in protocol was detected (parsing error, invalid or unexpected responses, etc.).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="194"/>
<location filename="browser.hxx" line="196"/>
<source>&lt;strong&gt;Unknown network error (code: %1).&lt;/string&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="242"/>
<location filename="browser.hxx" line="509"/>
<source>Illegal URL: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="302"/>
<location filename="browser.hxx" line="569"/>
<source>Print Document</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="323"/>
<location filename="browser.hxx" line="590"/>
<source>%1 - %2</source>
<oldsource>Back to %1 - %2</oldsource>
<comment>statusbar actionBack_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="452"/>
<location filename="browser.hxx" line="719"/>
<source>Info: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="465"/>
<location filename="browser.hxx" line="732"/>
<source>done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="718"/>
<location filename="browser.hxx" line="985"/>
<source>%1</source>
<comment>statusbar for hovered link %1=url</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="231"/>
<location filename="browser.hxx" line="498"/>
<source>Forbidden: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="232"/>
<location filename="browser.hxx" line="499"/>
<source>Access Denied</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="233"/>
<location filename="browser.hxx" line="500"/>
<source>&lt;p&gt;Access denied due to security considerations.&lt;/p&gt;&lt;p&gt;You are not allowed to connect to %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="342"/>
<location filename="browser.hxx" line="609"/>
<source>%1 - %2</source>
<comment>statusbar actionForward_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="447"/>
<location filename="browser.hxx" line="714"/>
<source>%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="819"/>
<location filename="browser.hxx" line="1086"/>
<source>Save File As ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="874"/>
<location filename="browser.hxx" line="1141"/>
<source>authentication required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="889"/>
<location filename="browser.hxx" line="1153"/>
<source>ssl error</source>
<translation type="unfinished"></translation>
</message>
@@ -505,12 +533,12 @@ Try: %1 --help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="66"/>
<location filename="smartcardauth.cxx" line="67"/>
<source>Send Authentication?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="67"/>
<location filename="smartcardauth.cxx" line="68"/>
<source>Do you want to authenticate yourself to %1?</source>
<translation type="unfinished"></translation>
</message>

View File

@@ -2,6 +2,34 @@
<!DOCTYPE TS>
<TS version="2.0">
<defaultcodec>UTF-8</defaultcodec>
<context>
<name>Authentication</name>
<message>
<location filename="authentication.ui" line="14"/>
<source>Authorization</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="22"/>
<source>Authentication required for:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="32"/>
<source>realm</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="46"/>
<source>Username:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="authentication.ui" line="56"/>
<source>Password:</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Browser</name>
<message>
@@ -193,210 +221,210 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="150"/>
<location filename="browser.hxx" line="152"/>
<source>The connection to the proxy server was refused (the proxy server is not accepting requests).</source>
<oldsource>the connection to the proxy timed out or the proxy did not reply in time to the request sent</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="162"/>
<location filename="browser.hxx" line="164"/>
<source>The proxy requires authentication in order to honour the request but did not accept any credentials offered (if any).</source>
<oldsource>the Network Access API cannot honor the request because the protocol is not known</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="228"/>
<location filename="browser.hxx" line="495"/>
<source>Checking: %1</source>
<oldsource>Opening: %1</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="240"/>
<location filename="browser.hxx" line="507"/>
<source>Reading: %1</source>
<oldsource>Reading: %1%</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="255"/>
<location filename="browser.hxx" line="522"/>
<source>Zoom: %1%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="130"/>
<location filename="browser.hxx" line="132"/>
<source>Network connection successful, remote host can be reached.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="133"/>
<location filename="browser.hxx" line="135"/>
<source>The remote server refused the connection (the server is not accepting requests).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="136"/>
<location filename="browser.hxx" line="138"/>
<source>The remote server closed the connection prematurely, before the entire reply was received and processed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="139"/>
<location filename="browser.hxx" line="141"/>
<source>The remote host name was not found (invalid hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="141"/>
<location filename="browser.hxx" line="143"/>
<source>The connection to the remote server timed out.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="143"/>
<location filename="browser.hxx" line="145"/>
<source>The operation was canceled via calls to abort() or close() before it was finished.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="146"/>
<location filename="browser.hxx" line="148"/>
<source>The SSL/TLS handshake failed and the encrypted channel could not be established. The sslErrors() signal should have been emitted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="153"/>
<location filename="browser.hxx" line="155"/>
<source>The proxy server closed the connection prematurely, before the entire reply was received and processed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="156"/>
<location filename="browser.hxx" line="158"/>
<source>The proxy host name was not found (invalid proxy hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="159"/>
<location filename="browser.hxx" line="161"/>
<source>The connection to the proxy timed out or the proxy did not reply in time to the request sent.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="166"/>
<location filename="browser.hxx" line="168"/>
<source>The access to the remote content was denied (similar to HTTP error 401).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="169"/>
<location filename="browser.hxx" line="171"/>
<source>The operation requested on the remote content is not permitted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="172"/>
<location filename="browser.hxx" line="174"/>
<source>The remote content was not found at the server (similar to HTTP error 404).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="175"/>
<location filename="browser.hxx" line="177"/>
<source>The remote server requires authentication to serve the content but the credentials provided were not accepted (if any).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="179"/>
<location filename="browser.hxx" line="181"/>
<source>The Network Access API cannot honor the request because the protocol is not known.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="182"/>
<location filename="browser.hxx" line="184"/>
<source>The requested operation is invalid for this protocol.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="184"/>
<location filename="browser.hxx" line="186"/>
<source>An unknown network-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="186"/>
<location filename="browser.hxx" line="188"/>
<source>An unknown proxy-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="188"/>
<location filename="browser.hxx" line="190"/>
<source>An unknonwn error related to the remote content was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="191"/>
<location filename="browser.hxx" line="193"/>
<source>A breakdown in protocol was detected (parsing error, invalid or unexpected responses, etc.).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="194"/>
<location filename="browser.hxx" line="196"/>
<source>&lt;strong&gt;Unknown network error (code: %1).&lt;/string&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="242"/>
<location filename="browser.hxx" line="509"/>
<source>Illegal URL: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="302"/>
<location filename="browser.hxx" line="569"/>
<source>Print Document</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="323"/>
<location filename="browser.hxx" line="590"/>
<source>%1 - %2</source>
<oldsource>Back to %1 - %2</oldsource>
<comment>statusbar actionBack_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="452"/>
<location filename="browser.hxx" line="719"/>
<source>Info: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="465"/>
<location filename="browser.hxx" line="732"/>
<source>done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="718"/>
<location filename="browser.hxx" line="985"/>
<source>%1</source>
<comment>statusbar for hovered link %1=url</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="231"/>
<location filename="browser.hxx" line="498"/>
<source>Forbidden: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="232"/>
<location filename="browser.hxx" line="499"/>
<source>Access Denied</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="233"/>
<location filename="browser.hxx" line="500"/>
<source>&lt;p&gt;Access denied due to security considerations.&lt;/p&gt;&lt;p&gt;You are not allowed to connect to %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="342"/>
<location filename="browser.hxx" line="609"/>
<source>%1 - %2</source>
<comment>statusbar actionForward_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="447"/>
<location filename="browser.hxx" line="714"/>
<source>%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="819"/>
<location filename="browser.hxx" line="1086"/>
<source>Save File As ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="874"/>
<location filename="browser.hxx" line="1141"/>
<source>authentication required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="889"/>
<location filename="browser.hxx" line="1153"/>
<source>ssl error</source>
<translation type="unfinished"></translation>
</message>
@@ -505,12 +533,12 @@ Try: %1 --help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="66"/>
<location filename="smartcardauth.cxx" line="67"/>
<source>Send Authentication?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="67"/>
<location filename="smartcardauth.cxx" line="68"/>
<source>Do you want to authenticate yourself to %1?</source>
<translation type="unfinished"></translation>
</message>

View File

@@ -0,0 +1,20 @@
/*! @file
@id $Id$
*/
// 1 2 3 4 5 6 7 8
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
#include <webpage.hxx>
#include <browser.hxx>
QWebPage* WebPage::createWindow(WebWindowType type) {
switch (type) {
case QWebPage::WebBrowserWindow:
case QWebPage::WebModalDialog: {
return _browser->newTab()->page();
} break;
}
return 0;
}

View File

@@ -0,0 +1,24 @@
/*! @file
@id $Id$
*/
// 1 2 3 4 5 6 7 8
// 45678901234567890123456789012345678901234567890123456789012345678901234567890
#ifndef __WEBPAGE_HXX__
#define __WEBPAGE_HXX__
#include <QtWebKit/QWebPage>
class Browser;
class WebPage: public QWebPage {
public:
WebPage(Browser* b, QObject *parent = 0): QWebPage(parent), _browser(b) {}
protected:
QWebPage* createWindow(WebWindowType type);
private:
Browser* _browser;
};
#endif