ready for weekend; several changes; refs #22

This commit is contained in:
Marc Wäckerlin
2011-01-21 13:32:27 +00:00
parent b8cb4c1489
commit debcfe1cea
12 changed files with 1403 additions and 761 deletions

View File

@@ -43,20 +43,22 @@
#define LOG qDebug()<<__PRETTY_FUNCTION__
#endif
extern SmartCardAuth _scAuth;
class Browser: public QMainWindow, protected Ui::Browser {
Q_OBJECT;
public:
Browser(const QStringList& urls, Settings::MimeTypes mimeTypes,
QSettings* settings=0, bool kiosk = false):
Browser(const QString& actlib, const QStringList& urls = QStringList(),
QSettings* settings=0,
Settings::MimeTypes mimeTypes = Settings::MimeTypes(),
bool kiosk = false):
_url(0), _clearUrl(0), _addBookmark(0), _find(0),
_home(urls.at(0)), _kiosk(kiosk),
_settings(mimeTypes, this, settings, !kiosk) {
_kiosk(kiosk),
_settings(mimeTypes, this, settings, !kiosk),
_scAuth(actlib) {
LOG<<urls;
if (urls.size()) _home = urls.at(0);
QNetworkProxyFactory::setUseSystemConfiguration(true);
setupUi(this);
statusBar()->addPermanentWidget(_progress = new QProgressBar());
@@ -72,7 +74,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
_url->setEditable(!kiosk);
_url->addItems(urls);
assert(connect(_url, SIGNAL(currentIndexChanged(const QString&)),
SLOT(load(const QString&))));
SLOT(load(QString))));
assert(connect(&_networkManager,
SIGNAL(extendedContextInitialization(ssl_ctx_st*,
QSslSocket*)),
@@ -103,7 +105,13 @@ class Browser: public QMainWindow, protected Ui::Browser {
assert(connect(_addBookmark, SIGNAL(clicked(bool)),
SLOT(addBookmark())));
}
load();
if (!_kiosk && _settings.flag("SaveWindowState") && _settings()) {
loadWin();
for (int i(0); i<urls.size(); ++i) load(urls.at(i), newTab());
} else {
if (urls.size()) load(urls.at(0));
for (int i(1); i<urls.size(); ++i) load(urls.at(i), newTab());
}
}
~Browser() {
@@ -117,7 +125,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
delete it->first;
}
}
QString networkError(QNetworkReply::NetworkError err) {
LOG<<err;
switch (err) {
@@ -195,7 +203,16 @@ class Browser: public QMainWindow, protected Ui::Browser {
bool check(QUrl page) {
return true;
}
protected:
void closeEvent(QCloseEvent *event) {
LOG;
if (!_kiosk && _settings.flag("SaveWindowState") && _settings())
saveWin();
QMainWindow::closeEvent(event);
}
private Q_SLOTS:
void load() {
@@ -204,18 +221,12 @@ class Browser: public QMainWindow, protected Ui::Browser {
}
void load(QString page) {
if (QUrl(page).scheme()=="")
page = "http://"+page;
if (page.contains(QRegExp("^gg[: ]")))
page = QString("http://google.com/search?q=%1")
.arg(page.mid(3));
if (page.contains(QRegExp("^wp[: ]")))
page = QString("http://%1.wikipedia.com/wiki/%2")
.arg(QLocale::system().name().left(2)).arg(page.mid(3));
_settings.replaceSearchEngine(page);
if (QUrl(page).scheme()=="") page = "http://"+page;
load(QUrl(page));
}
void load(QUrl page) {
void load(QUrl page, QWebView* view=0) {
LOG<<page.toString();
statusBar()->showMessage(tr("Checking: %1").arg(page.toString()));
if (!check(page)) {
@@ -228,28 +239,24 @@ class Browser: public QMainWindow, protected Ui::Browser {
.arg(page.toString()));
return;
}
startDownload(page);
statusBar()->showMessage(tr("Reading: %1").arg(page.toString()));
if (!page.isValid()) {
statusBar()->showMessage(tr("Illegal URL: %1").arg(page.errorString()));
return;
}
if (!view) view=qobject_cast<QWebView*>(_tabs->currentWidget());
view->load(page);
}
void addBookmark() {
_url->addItem(_url->currentText());
}
void startDownload(QUrl url) {
LOG<<url.toString();
statusBar()->showMessage(tr("Reading: %1").arg(url.toString()));
if (!url.isValid()) {
statusBar()->showMessage(tr("Illegal URL: %1").arg(url.errorString()));
return;
}
//if (url.scheme()=="") url.setScheme("http");
dynamic_cast<QWebView*>(_tabs->currentWidget())->load(url);
}
void zoom(int i) {
LOG<<100.0*i/10.0;
statusBar()->showMessage(tr("Zoom: %1%").arg(100.0*i/10.0));
dynamic_cast<QWebView*>(_tabs->currentWidget())->setZoomFactor(i/10.0);
qobject_cast<QWebView*>(_tabs->currentWidget())->setZoomFactor(i/10.0);
}
void on_actionHome_activated() {
@@ -257,279 +264,20 @@ class Browser: public QMainWindow, protected Ui::Browser {
load(_home);
}
// void on_actionNew_triggered() { //@!todo exec new process
// LOG;
// (new Browser(dynamic_cast<QWebView*>(_tabs->currentWidget())->url().toString(), _kiosk, false))->show();
// }
void on_actionNew_triggered() {
LOG;
QStringList args(QCoreApplication::arguments());
QString prg(args.takeFirst());
QProcess::startDetached(prg, args);
}
void on_actionNewTab_triggered() {
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))));
assert(connect(browser, SIGNAL(iconChanged()),
SLOT(iconChanged())));
// 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);
newTab();
}
void on__tabs_currentChanged(int index) {
_url->setEditText(dynamic_cast<QWebView*>(_tabs->currentWidget())
->url().toString());
_url->setEditText(qobject_cast<QWebView*>(_tabs->currentWidget())
->url().toString());
activateTab();
}
@@ -543,13 +291,13 @@ class Browser: public QMainWindow, protected Ui::Browser {
void on_actionPrintPreview_triggered() {
QPrintPreviewDialog preview(&_printer, this);
connect(&preview, SIGNAL(paintRequested(QPrinter*)),
dynamic_cast<QWebView*>(_tabs->currentWidget()),
qobject_cast<QWebView*>(_tabs->currentWidget()),
SLOT(print(QPrinter*)));
preview.exec();
}
void on_actionInstantPrint_triggered() {
dynamic_cast<QWebView*>(_tabs->currentWidget())->print(&_printer);
qobject_cast<QWebView*>(_tabs->currentWidget())->print(&_printer);
}
void on_actionPrint_triggered() {
@@ -566,64 +314,89 @@ class Browser: public QMainWindow, protected Ui::Browser {
void on_actionBack_triggered() {
LOG;
dynamic_cast<QWebView*>(_tabs->currentWidget())->history()->back();
qobject_cast<QWebView*>(_tabs->currentWidget())->history()->back();
}
void on_actionBack_hovered() {
LOG;
if (!dynamic_cast<QWebView*>(_tabs->currentWidget())->history()
if (!qobject_cast<QWebView*>(_tabs->currentWidget())->history()
->backItem().isValid())
return;
actionBack->setStatusTip
(tr("%1 - %2", "statusbar actionBack_hovered %1=url %2=title")
.arg(dynamic_cast<QWebView*>(_tabs->currentWidget())->history()
.arg(qobject_cast<QWebView*>(_tabs->currentWidget())->history()
->backItem().url().toString())
.arg(dynamic_cast<QWebView*>(_tabs->currentWidget())->history()
.arg(qobject_cast<QWebView*>(_tabs->currentWidget())->history()
->backItem().title()));
actionBack->showStatusText(this);
}
void on_actionForward_triggered() {
LOG;
dynamic_cast<QWebView*>(_tabs->currentWidget())->history()->forward();
qobject_cast<QWebView*>(_tabs->currentWidget())->history()->forward();
}
void on_actionForward_hovered() {
LOG;
if (!dynamic_cast<QWebView*>(_tabs->currentWidget())->history()
if (!qobject_cast<QWebView*>(_tabs->currentWidget())->history()
->forwardItem().isValid())
return;
actionForward->setStatusTip
(tr("%1 - %2", "statusbar actionForward_hovered %1=url %2=title")
.arg(dynamic_cast<QWebView*>(_tabs->currentWidget())->history()
.arg(qobject_cast<QWebView*>(_tabs->currentWidget())->history()
->forwardItem().url().toString())
.arg(dynamic_cast<QWebView*>(_tabs->currentWidget())->history()
.arg(qobject_cast<QWebView*>(_tabs->currentWidget())->history()
->forwardItem().title()));
actionForward->showStatusText(this);
}
void on_actionReload_triggered() {
LOG;
dynamic_cast<QWebView*>(_tabs->currentWidget())->reload();
qobject_cast<QWebView*>(_tabs->currentWidget())->reload();
}
void on_actionStop_triggered() {
LOG;
for (int i(0); i<_tabs->count(); ++i)
qobject_cast<QWebView*>(_tabs->widget(i))->stop();
_downloadManager.abort();
}
void on_actionFind_triggered() {
if (!_find) {
statusBar()->addPermanentWidget(_find = new QLineEdit);
_find->setText(dynamic_cast<QWebView*>(_tabs->currentWidget())
_find->setText(qobject_cast<QWebView*>(_tabs->currentWidget())
->selectedText());
assert(connect(_find, SIGNAL(returnPressed()), SLOT(find())));
}
disconnect(_find, SIGNAL(returnPressed()), this, SLOT(rfind()));
assert(connect(_find, SIGNAL(returnPressed()), SLOT(find())));
_find->setFocus();
}
void find() {
dynamic_cast<QWebView*>(_tabs->currentWidget())->findText(_find->text());
void on_actionReverseFind_triggered() {
if (!_find) {
statusBar()->addPermanentWidget(_find = new QLineEdit);
_find->setText(qobject_cast<QWebView*>(_tabs->currentWidget())
->selectedText());
}
disconnect(_find, SIGNAL(returnPressed()), this, SLOT(find()));
assert(connect(_find, SIGNAL(returnPressed()), SLOT(rfind())));
_find->setFocus();
}
void find(const QString& txt=QString()) {
qobject_cast<QWebView*>(_tabs->currentWidget())->findText
(_find->text(),
QWebPage::HighlightAllOccurrences
|QWebPage::FindWrapsAroundDocument);
}
void rfind(const QString& txt=QString()) {
qobject_cast<QWebView*>(_tabs->currentWidget())->findText
(_find->text(),
QWebPage::HighlightAllOccurrences
|QWebPage::FindWrapsAroundDocument
|QWebPage::FindBackward);
}
void on_actionUnFind_triggered() {
@@ -637,43 +410,37 @@ class Browser: public QMainWindow, protected Ui::Browser {
void on_actionSettings_triggered() {
_settings.show();
}
//@name QWebView slots
//@{
void urlChanged(const QUrl& url) { //!@todo
void urlChanged(const QUrl& url) {
LOG<<url.toString();
if (sender()!=_tabs->currentWidget()) return;
LOG<<"signal on current tab";
if (_url) _url->setEditText(url.toString());
}
void linkClicked(const QUrl& url) { //!@todo
void linkClicked(const QUrl& url) {
LOG<<url.toString();
if (sender()!=_tabs->currentWidget()) return;
LOG<<"signal on current tab";
load(url);
load(url, qobject_cast<QWebView*>(sender()));
}
void iconChanged() { //!@todo
void iconChanged() {
LOG;
if (sender()!=_tabs->currentWidget()) return;
LOG<<"signal on current tab";
setWindowIcon(dynamic_cast<QWebView*>(_tabs->currentWidget())->icon());
QWebView* view(qobject_cast<QWebView*>(sender()));
for (int i(0); i<_tabs->count(); ++i)
if (_tabs->widget(i)==view) _tabs->setTabIcon(i, view->icon());
}
void titleChanged(const QString& text) { //!@todo
void titleChanged(const QString& text) {
LOG<<text;
if (sender()!=_tabs->currentWidget()) return;
LOG<<"signal on current tab";
_tabs->setTabText(_tabs->indexOf(qobject_cast<QWidget*>(sender())),
trUtf8("%1").arg(text));
}
void statusBarMessage(const QString& text) { //!@todo
void statusBarMessage(const QString& text) {
LOG<<text;
if (sender()!=_tabs->currentWidget()) return;
LOG<<"signal on current tab";
if (text.size()) statusBar()->showMessage(tr("Info: %1").arg(text));
}
@@ -687,17 +454,6 @@ class Browser: public QMainWindow, protected Ui::Browser {
void loadFinished(bool ok) {
LOG<<(ok?"success":"error");
// if (!ok) {
// dynamic_cast<QWebView*>(sender())
// ->setHtml(tr("<html><title>Page Load Error</title>"
// "<body><h1>Page Load Error</h1>%1"
// "</body></html>")
// .arg(_error[sender()]),
// _errorUrl[sender()]);
// }
if (sender()!=_tabs->currentWidget()) return;
LOG<<"signal on current tab";
_error[sender()].clear();
if (ok) statusBar()->showMessage(tr("done."));
activateTab();
}
@@ -1046,7 +802,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
assert(connect(process, SIGNAL(finished(int, QProcess::ExitStatus)),
SLOT(processFinished())));
QStringList args(it.value().toStringList().at(1).split(" ")
.replaceInStrings("<FILENAME>", file->fileName()));
.replaceInStrings("%1", file->fileName()));
QString prg(args.takeFirst());
LOG<<"Running:"<<prg<<args.join(" ");
process->start(prg, args);
@@ -1141,6 +897,36 @@ class Browser: public QMainWindow, protected Ui::Browser {
private:
void saveWin() {
LOG<<"Save Window State";
QStringList urls;
for (int i(0); i<_url->count(); ++i)
urls<<_url->itemText(i);
_settings()->setValue("Window/Urls", urls);
QStringList tabs;
for (int i(0); i<_tabs->count(); ++i)
tabs<<qobject_cast<QWebView*>(_tabs->widget(i))->url().toString();
_settings()->setValue("Window/Tabs", tabs);
_settings()->setValue("Window/CurrentTab", _tabs->currentIndex());
_settings()->setValue("Window/Geometry", saveGeometry());
_settings()->setValue("Window/WindowState", saveState());
}
void loadWin() {
QStringList urls(_settings()->value("Window/Urls").toStringList());
urls.sort();
urls.removeDuplicates();
_url->addItems(urls);
QStringList tabs(_settings()->value("Window/Tabs").toStringList());
for (QStringList::iterator it(tabs.begin()); it!=tabs.end(); ++it)
load(*it, newTab());
if (_tabs->count()>1) _tabs->removeTab(0);
_tabs->setTabsClosable(_tabs->count()>1);
_tabs->setCurrentIndex(_settings()->value("Window/CurrentTab").toInt());
restoreGeometry(_settings()->value("Window/Geometry").toByteArray());
restoreState(_settings()->value("Window/WindowState").toByteArray());
}
void activateTab() {
iconChanged();
actionForward->setEnabled(dynamic_cast<QWebView*>(_tabs->currentWidget())
@@ -1148,7 +934,271 @@ class Browser: public QMainWindow, protected Ui::Browser {
actionBack->setEnabled(dynamic_cast<QWebView*>(_tabs->currentWidget())
->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;
@@ -1167,6 +1217,7 @@ class Browser: public QMainWindow, protected Ui::Browser {
typedef std::map<QProcess*, QTemporaryFile*> DownloadProcesses;
DownloadProcesses _downloadProcesses;
Settings _settings;
SmartCardAuth _scAuth;
};

View File

@@ -89,6 +89,7 @@
<string>Edit</string>
</property>
<addaction name="actionFind"/>
<addaction name="actionReverseFind"/>
<addaction name="actionUnFind"/>
<addaction name="separator"/>
<addaction name="actionSettings"/>
@@ -285,6 +286,14 @@
<enum>QAction::PreferencesRole</enum>
</property>
</action>
<action name="actionReverseFind">
<property name="text">
<string>&amp;Reverse Find</string>
</property>
<property name="shortcut">
<string>Ctrl+R</string>
</property>
</action>
</widget>
<resources>
<include location="resources.qrc"/>

View File

@@ -26,8 +26,6 @@
#include <memory>
SmartCardAuth _scAuth;
const QByteArray SWISSSIGN_GOLD_CA_G2
("-----BEGIN CERTIFICATE-----\n"
"MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJ\n"
@@ -196,6 +194,7 @@ int main(int argv, char** argc) try {
qDebug()<<"***************************************************************";
//----------------------------------------------------------------------------
QStringList urls;
QString actlib;
bool silent(false);
Settings::MimeTypes mimetypes;
QStringList args(app.arguments());
@@ -209,6 +208,8 @@ int main(int argv, char** argc) try {
" -h, --help show this help text\n"
" -k, --kiosk no url bar\n"
" if you sepcify -k and -s, -k must be first\n"
" -n, --no-settings don't load or store any settings\n"
" -l, --lib <file> path to file libengine_act.so\n"
" -s, --settings <file>\n"
" load settings from <file>\n"
" if you sepcify -k and -s, -k must be first\n"
@@ -231,6 +232,10 @@ int main(int argv, char** argc) try {
} else if ((*it=="-k" || *it=="--kiosk")) {
silent=true;
settings.reset();
} else if ((*it=="-n" || *it=="--no-settings")) {
settings.reset();
} else if ((*it=="-l" || *it=="--lib") && ++it!=args.end()) {
actlib = *it;
} else if ((*it=="-s" || *it=="--settings") && ++it!=args.end()) {
settings = std::auto_ptr<QSettings>
(new QSettings(*it, QSettings::IniFormat));
@@ -275,8 +280,7 @@ int main(int argv, char** argc) try {
sslConfig.setPeerVerifyMode(QSslSocket::VerifyPeer);
QSslConfiguration::setDefaultConfiguration(sslConfig);
//............................................................................
if (urls.size()==0) urls<<QObject::trUtf8("http://swisssign.com");
Browser browser(urls, mimetypes, settings.get(), silent);
Browser browser(actlib, urls, settings.get(), mimetypes, silent);
browser.show();
return app.exec();
} catch (std::exception& x) {

141
swisssurfer/src/pinentry.ui Normal file
View File

@@ -0,0 +1,141 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>PinEntry</class>
<widget class="QDialog" name="PinEntry">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>389</width>
<height>218</height>
</rect>
</property>
<property name="windowTitle">
<string>SwissSign Pin Entry</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Please enter your SwissSign Certificate PIN to authenticate yourself:</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>PIN:</string>
</property>
<property name="buddy">
<cstring>_pin</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="_pin"/>
</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>32</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="1">
<widget class="QLabel" name="_tries">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>You have %1 tries left</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="_status">
<property name="text">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'DejaVu Serif'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:24pt; color:#00b900;&quot;&gt;✔&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</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>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>PinEntry</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>PinEntry</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

@@ -10,8 +10,8 @@
#include <QtCore/QSettings>
#include <QtCore/QMap>
#include <QtCore/QList>
#include <QtGui/QLineEdit>
#include <cassert>
#include <QtCore/QDebug>
#ifndef LOG
#define LOG qDebug()<<__PRETTY_FUNCTION__
@@ -34,6 +34,7 @@ class Settings: public QDialog, protected Ui::Settings {
setupUi(this);
// Web Attributes
_attributes[QWebSettings::AutoLoadImages] =
_settingAutoLoadImages;
_attributes[QWebSettings::DnsPrefetchEnabled] =
@@ -81,6 +82,10 @@ class Settings: public QDialog, protected Ui::Settings {
_attributes[QWebSettings::SiteSpecificQuirksEnabled] =
_settingSiteSpecificQuirksEnabled;
// CheckBoxes
_checkboxes["SaveWindowState"] =
std::make_pair(_saveWindowState, _saveWindowState->isChecked());
load(!_mimetypes.size());
on__buttons_rejected();
}
@@ -89,27 +94,57 @@ class Settings: public QDialog, protected Ui::Settings {
_settings = settings;
}
QSettings* operator()() {
return _settings;
}
void setAttribute(QWebSettings::WebAttribute attr, bool state) {
//LOG;
QWebSettings::globalSettings()->setAttribute(attr, state);
_attributes[attr]->setChecked(state);
}
bool flag(const QString& name) {
assert(_checkboxes.find(name)!=_checkboxes.end());
return _checkboxes[name].second;
}
const MimeTypes& mimetypes() const {
return _mimetypes;
}
QString& replaceSearchEngine(QString& url) {
LOG;
int len(url.indexOf(QRegExp("[ :]")));
if (len<=0) return url;
QString scheme(url.left(len));
LOG<<"scheme:"<<scheme;
if (!_searchEngines.contains(scheme)) return url;
QString query(url.right(url.size()-len-1));
LOG<<"query:"<<query;
url = QString(_searchEngines[scheme].toString())
.arg(query).arg(QLocale::system().name().left(2));
return url;
}
bool save() {
LOG;
if (!_settings || !_settings->isWritable()) return false;
// Attributes
for (Attributes::iterator attribute(_attributes.begin());
attribute!=_attributes.end(); ++attribute)
for (Attributes::iterator it(_attributes.begin());
it!=_attributes.end(); ++it)
_settings->setValue
(QString("QWebSettings/%1").arg(attribute->first),
QWebSettings::globalSettings()->testAttribute(attribute->first));
(QString("QWebSettings/%1").arg(it->first),
QWebSettings::globalSettings()->testAttribute(it->first));
// CheckBoxes
for (CheckBoxes::iterator it(_checkboxes.begin());
it!=_checkboxes.end(); ++it)
_settings->setValue
(QString("Flags/%1").arg(it->first), it->second.second);
// MimeTypes
_settings->setValue("QWebSettings/MimeTypes", _mimetypes);
// Search Engines
_settings->setValue("QWebSettings/SearchEngines", _searchEngines);
return true;
}
@@ -117,20 +152,36 @@ class Settings: public QDialog, protected Ui::Settings {
LOG;
if (!_settings) return false;
// Attributes
for (Attributes::iterator attribute(_attributes.begin());
attribute!=_attributes.end(); ++attribute) {
for (Attributes::iterator it(_attributes.begin());
it!=_attributes.end(); ++it) {
QVariant val
(_settings->value
(QString("QWebSettings/%1").arg(attribute->first),
QWebSettings::globalSettings()->testAttribute(attribute->first)));
(QString("QWebSettings/%1").arg(it->first),
QWebSettings::globalSettings()->testAttribute(it->first)));
if (val.isValid() && val.canConvert(QVariant::Bool))
setAttribute(attribute->first, val.toBool());
setAttribute(it->first, val.toBool());
}
// CheckBoxes
for (CheckBoxes::iterator it(_checkboxes.begin());
it!=_checkboxes.end(); ++it) {
QVariant val
(_settings->value
(QString("Flags/%1").arg(it->first), it->second.second));
if (val.isValid() && val.canConvert(QVariant::Bool)) {
it->second.first->setChecked(val.toBool());
it->second.second = val.toBool();
}
}
// MimeTypes
if (!overwriteMimeTypes) return true;
QVariant val(_settings->value("QWebSettings/MimeTypes"));
if (overwriteMimeTypes) {
QVariant val(_settings->value("QWebSettings/MimeTypes"));
if (val.isValid() && val.canConvert(QVariant::Map))
_mimetypes = val.toMap();
}
// SearchEngines
QVariant val(_settings->value("QWebSettings/SearchEngines"));
if (val.isValid() && val.canConvert(QVariant::Map))
_mimetypes = val.toMap();
_searchEngines = val.toMap();
return true;
}
@@ -139,20 +190,26 @@ class Settings: public QDialog, protected Ui::Settings {
void on__buttons_accepted() {
LOG;
// Attributes
for (Attributes::iterator attribute(_attributes.begin());
attribute!=_attributes.end(); ++attribute)
for (Attributes::iterator it(_attributes.begin());
it!=_attributes.end(); ++it)
QWebSettings::globalSettings()
->setAttribute(attribute->first, attribute->second->isChecked());
->setAttribute(it->first, it->second->isChecked());
// CheckBoxes
for (CheckBoxes::iterator it(_checkboxes.begin());
it!=_checkboxes.end(); ++it)
it->second.second = it->second.first->isChecked();
// MimeTypes
_mimetypes.clear();
for (int row(_mimeTypeTable->rowCount()); row--;)
_mimetypes[qobject_cast<QLineEdit*>(_mimeTypeTable->cellWidget(row, 0))
->text()] =
_mimetypes[_mimeTypeTable->item(row, 0)->text()] =
QStringList()
<<qobject_cast<QLineEdit*>(_mimeTypeTable->cellWidget(row, 1))
->text()
<<qobject_cast<QLineEdit*>(_mimeTypeTable->cellWidget(row, 2))
->text();
<<_mimeTypeTable->item(row, 1)->text()
<<_mimeTypeTable->item(row, 2)->text();
// SearchEngines
_searchEngines.clear();
for (int row(_searchEngineTable->rowCount()); row--;)
_searchEngines[_searchEngineTable->item(row, 0)->text()] =
_searchEngineTable->item(row, 1)->text();
// Save
if (_autoWrite) save();
}
@@ -160,10 +217,14 @@ class Settings: public QDialog, protected Ui::Settings {
void on__buttons_rejected() {
LOG;
// Attributes
for (Attributes::iterator attribute(_attributes.begin());
attribute!=_attributes.end(); ++attribute)
attribute->second->setChecked
(QWebSettings::globalSettings()->testAttribute(attribute->first));
for (Attributes::iterator it(_attributes.begin());
it!=_attributes.end(); ++it)
it->second->setChecked
(QWebSettings::globalSettings()->testAttribute(it->first));
// CheckBoxes
for (CheckBoxes::iterator it(_checkboxes.begin());
it!=_checkboxes.end(); ++it)
it->second.first->setChecked(it->second.second);
// MimeTypes
_mimeTypeTable->setRowCount(_mimetypes.size());
_mimeTypeTable->verticalHeader()->show();
@@ -173,23 +234,37 @@ class Settings: public QDialog, protected Ui::Settings {
for (MimeTypes::iterator it(_mimetypes.begin());
it!=_mimetypes.end(); ++it, ++row) {
LOG<<"MimeType:"<<it.key()<<it.value().toStringList();
_mimeTypeTable->setCellWidget
(row, 0, new QLineEdit(it.key()));
_mimeTypeTable->setCellWidget
(row, 1, new QLineEdit(it.value().toStringList().at(0)));
_mimeTypeTable->setCellWidget
(row, 2, new QLineEdit(it.value().toStringList().at(1)));
_mimeTypeTable->setItem
(row, 0, new QTableWidgetItem(it.key()));
_mimeTypeTable->setItem
(row, 1, new QTableWidgetItem(it.value().toStringList().at(0)));
_mimeTypeTable->setItem
(row, 2, new QTableWidgetItem(it.value().toStringList().at(1)));
}
// SearchEngines
_searchEngineTable->setRowCount(_searchEngines.size());
_searchEngineTable->verticalHeader()->show();
_searchEngineTable->horizontalHeader()->show();
_searchEngineTable->horizontalHeader()->setStretchLastSection(true);
row = 0;
for (MimeTypes::iterator it(_searchEngines.begin());
it!=_searchEngines.end(); ++it, ++row) {
LOG<<"SearchEngine:"<<it.key()<<it.value().toString();
_searchEngineTable->setItem
(row, 0, new QTableWidgetItem(it.key()));
_searchEngineTable->setItem
(row, 1, new QTableWidgetItem(it.value().toString()));
}
}
void on__addMimeType_pressed() {
_mimeTypeTable->setRowCount(_mimeTypeTable->rowCount()+1);
_mimeTypeTable->setCellWidget(_mimeTypeTable->rowCount()-1, 0,
new QLineEdit);
_mimeTypeTable->setCellWidget(_mimeTypeTable->rowCount()-1, 1,
new QLineEdit);
_mimeTypeTable->setCellWidget(_mimeTypeTable->rowCount()-1, 2,
new QLineEdit);
_mimeTypeTable->setItem(_mimeTypeTable->rowCount()-1, 0,
new QTableWidgetItem);
_mimeTypeTable->setItem(_mimeTypeTable->rowCount()-1, 1,
new QTableWidgetItem);
_mimeTypeTable->setItem(_mimeTypeTable->rowCount()-1, 2,
new QTableWidgetItem);
}
void on__removeMimeType_pressed() {
@@ -201,12 +276,35 @@ class Settings: public QDialog, protected Ui::Settings {
_mimeTypeTable->removeRow(begin);
}
void on__addSearchEngine_pressed() {
_searchEngineTable->setRowCount(_searchEngineTable->rowCount()+1);
_searchEngineTable->setItem(_searchEngineTable->rowCount()-1, 0,
new QTableWidgetItem);
_searchEngineTable->setItem(_searchEngineTable->rowCount()-1, 1,
new QTableWidgetItem);
_searchEngineTable->setItem(_searchEngineTable->rowCount()-1, 2,
new QTableWidgetItem);
}
void on__removeSearchEngine_pressed() {
QList<QTableWidgetSelectionRange> ranges
(_searchEngineTable->selectedRanges());
if (ranges.isEmpty()) return;
for (int begin(ranges.at(0).topRow()), count(ranges.at(0).rowCount());
count; --count)
_searchEngineTable->removeRow(begin);
}
private:
typedef std::map<QWebSettings::WebAttribute, QCheckBox*> Attributes ;
Attributes _attributes;
typedef std::map<QString, std::pair<QCheckBox*, bool> > CheckBoxes;
CheckBoxes _checkboxes;
QSettings* _settings;
bool _autoWrite;
MimeTypes _mimetypes;
typedef QMap<QString, QVariant> SearchEngines;
SearchEngines _searchEngines;
};

View File

@@ -17,7 +17,7 @@
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
<number>2</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
@@ -412,7 +412,7 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'DejaVu Serif'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Verdana'; font-size:medium; color:#363534;&quot;&gt;Specifies whether locally loaded documents are allowed to access remote urls.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Verdana'; font-size:medium; color:#363534;&quot;&gt;Specifies whether locally loaded documents are allowed to access remote urls. &lt;/span&gt;&lt;span style=&quot; font-family:'Verdana'; font-size:medium; color:#363534;&quot;&gt;Local resources are by default restricted from accessing remote content, which means your &lt;/span&gt;&lt;span style=&quot; font-family:'Courier New,courier'; font-size:medium; color:#363534;&quot;&gt;file://&lt;/span&gt;&lt;span style=&quot; font-family:'Verdana'; font-size:medium; color:#363534;&quot;&gt; will not be able to access &lt;/span&gt;&lt;span style=&quot; font-family:'Courier New,courier'; font-size:medium; color:#363534;&quot;&gt;http://domain.com/foo.html&lt;/span&gt;&lt;span style=&quot; font-family:'Verdana'; font-size:medium; color:#363534;&quot;&gt;. &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>local content can access remote urls</string>
@@ -522,7 +522,7 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'DejaVu Serif'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;&amp;lt;FILENAME&amp;gt;&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;%1&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="wordWrap">
<bool>true</bool>
@@ -562,6 +562,123 @@ p, li { white-space: pre-wrap; }
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_5">
<attribute name="title">
<string>Search Engines</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_13">
<item>
<widget class="QTableWidget" name="_searchEngineTable">
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool>
</attribute>
<column>
<property name="text">
<string>Scheme</string>
</property>
</column>
<column>
<property name="text">
<string>Query URL</string>
</property>
</column>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Use %1 as placeholder for the query, use %2 as placeholder for your system language.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="_addSearchEngine">
<property name="text">
<string>+</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="_removeSearchEngine">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_4">
<attribute name="title">
<string>TBD</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_12">
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Session Management</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_11">
<item>
<widget class="QCheckBox" name="_saveWindowState">
<property name="text">
<string>save window state</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="_closeApps">
<property name="text">
<string>close mimetype helper applications on exit</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>191</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
<item>

View File

@@ -18,39 +18,41 @@ bool pin_configured=false;
bool pin_rejected=false;
QMutex _mutex;
SmartCardAuth::SmartCardAuth() {
SmartCardAuth::SmartCardAuth(const QString& actlib) {
//QSslSocketPrivate::ensureInitialized();
ENGINE_load_dynamic();
e = ENGINE_by_id("dynamic");
Q_ASSERT(e);
if (e || actlib.isEmpty()) return;
int r=ENGINE_ctrl_cmd_string(e, "SO_PATH", "../openssl-act-engine/src/.libs/libengine_act.so", 0);
Q_ASSERT(r);
r=ENGINE_ctrl_cmd_string(e, "ID", "act", 0);
Q_ASSERT(r);
r=ENGINE_ctrl_cmd_string(e, "LIST_ADD", "1", 0);
Q_ASSERT(r);
r=ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0);
Q_ASSERT(r);
ENGINE_load_dynamic();
e = ENGINE_by_id("dynamic");
Q_ASSERT(e);
int r=ENGINE_ctrl_cmd_string(e, "SO_PATH", actlib.toStdString().c_str(), 0);
Q_ASSERT(r);
r=ENGINE_ctrl_cmd_string(e, "ID", "act", 0);
Q_ASSERT(r);
r=ENGINE_ctrl_cmd_string(e, "LIST_ADD", "1", 0);
Q_ASSERT(r);
r=ENGINE_ctrl_cmd_string(e, "LOAD", NULL, 0);
Q_ASSERT(r);
if(!r)
{
unsigned int err = 0;
while((err = ERR_get_error()))
{
char *str = ERR_error_string(err, NULL);
fprintf(stderr,"%s\n", str);
}
if (!r) {
unsigned int err = 0;
while((err = ERR_get_error())) {
char *str = ERR_error_string(err, NULL);
fprintf(stderr,"%s\n", str);
}
}
r=ENGINE_init(e);
r=ENGINE_init(e);
}
SmartCardAuth::~SmartCardAuth() {
ENGINE_finish(e);
ENGINE_cleanup();
if (!e) return;
ENGINE_finish(e);
ENGINE_cleanup();
e=0;
}
std::map<ssl_ctx_st*, QSslSocket*> sockets;

View File

@@ -11,7 +11,7 @@ class SmartCardAuth: public QObject {
public:
SmartCardAuth();
SmartCardAuth(const QString& actlib);
~SmartCardAuth();
private Q_SLOTS:

View File

@@ -26,367 +26,377 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="98"/>
<location filename="browser.ui" line="99"/>
<source>Info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="115"/>
<location filename="browser.ui" line="116"/>
<source>neu laden</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="118"/>
<location filename="browser.ui" line="119"/>
<source>F5</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="130"/>
<location filename="browser.ui" line="131"/>
<source>stoppen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="145"/>
<location filename="browser.ui" line="146"/>
<source>zurückkehren</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="163"/>
<location filename="browser.ui" line="164"/>
<source>weitergehen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="178"/>
<location filename="browser.ui" line="179"/>
<source>Startseite</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="181"/>
<location filename="browser.ui" line="182"/>
<source>Ctrl+Home</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="189"/>
<location filename="browser.ui" line="190"/>
<source>&amp;New Browser</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="192"/>
<location filename="browser.ui" line="193"/>
<source>New Browser Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="195"/>
<location filename="browser.ui" line="196"/>
<source>Ctrl+N</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="200"/>
<location filename="browser.ui" line="201"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="205"/>
<location filename="browser.ui" line="206"/>
<source>&amp;Proxy...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="223"/>
<location filename="browser.ui" line="224"/>
<source>Ctrl+P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="228"/>
<location filename="browser.ui" line="229"/>
<source>Next Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="231"/>
<location filename="browser.ui" line="232"/>
<source>Shift+Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="236"/>
<location filename="browser.ui" line="237"/>
<source>Previous Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="239"/>
<location filename="browser.ui" line="240"/>
<source>Shift+Left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="244"/>
<location filename="browser.ui" line="245"/>
<source>New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="247"/>
<location filename="browser.ui" line="248"/>
<source>Add New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="250"/>
<location filename="browser.ui" line="251"/>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="255"/>
<location filename="browser.ui" line="256"/>
<source>Find</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="266"/>
<location filename="browser.ui" line="267"/>
<source>Close Find</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="274"/>
<location filename="browser.ui" line="275"/>
<source>&amp;About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="282"/>
<location filename="browser.ui" line="283"/>
<source>&amp;Settings ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="133"/>
<location filename="browser.ui" line="269"/>
<location filename="browser.ui" line="291"/>
<source>&amp;Reverse Find</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="294"/>
<source>Ctrl+R</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="134"/>
<location filename="browser.ui" line="270"/>
<source>Esc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="258"/>
<location filename="browser.ui" line="259"/>
<source>find in page</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="261"/>
<location filename="browser.ui" line="262"/>
<source>Ctrl+F</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="210"/>
<location filename="browser.ui" line="211"/>
<source>Print ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="220"/>
<location filename="browser.ui" line="221"/>
<source>Quick &amp;Print</source>
<oldsource>&amp;Print</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="215"/>
<location filename="browser.ui" line="216"/>
<source>Print Pre&amp;view ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="145"/>
<location filename="browser.hxx" line="153"/>
<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="157"/>
<location filename="browser.hxx" line="165"/>
<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="220"/>
<location filename="browser.hxx" line="231"/>
<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="243"/>
<source>Reading: %1</source>
<oldsource>Reading: %1%</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="251"/>
<location filename="browser.hxx" line="258"/>
<source>Zoom: %1%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="125"/>
<location filename="browser.hxx" line="133"/>
<source>Network connection successful, remote host can be reached.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="128"/>
<location filename="browser.hxx" line="136"/>
<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="131"/>
<location filename="browser.hxx" line="139"/>
<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="134"/>
<location filename="browser.hxx" line="142"/>
<source>The remote host name was not found (invalid hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="136"/>
<location filename="browser.hxx" line="144"/>
<source>The connection to the remote server timed out.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="138"/>
<location filename="browser.hxx" line="146"/>
<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="141"/>
<location filename="browser.hxx" line="149"/>
<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="148"/>
<location filename="browser.hxx" line="156"/>
<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="151"/>
<location filename="browser.hxx" line="159"/>
<source>The proxy host name was not found (invalid proxy hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="154"/>
<location filename="browser.hxx" line="162"/>
<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="161"/>
<location filename="browser.hxx" line="169"/>
<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="164"/>
<location filename="browser.hxx" line="172"/>
<source>The operation requested on the remote content is not permitted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="167"/>
<location filename="browser.hxx" line="175"/>
<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="170"/>
<location filename="browser.hxx" line="178"/>
<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="174"/>
<location filename="browser.hxx" line="182"/>
<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="177"/>
<location filename="browser.hxx" line="185"/>
<source>The requested operation is invalid for this protocol.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="179"/>
<location filename="browser.hxx" line="187"/>
<source>An unknown network-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="181"/>
<location filename="browser.hxx" line="189"/>
<source>An unknown proxy-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="183"/>
<location filename="browser.hxx" line="191"/>
<source>An unknonwn error related to the remote content was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="186"/>
<location filename="browser.hxx" line="194"/>
<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="189"/>
<location filename="browser.hxx" line="197"/>
<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="245"/>
<source>Illegal URL: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="557"/>
<location filename="browser.hxx" line="305"/>
<source>Print Document</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="578"/>
<location filename="browser.hxx" line="326"/>
<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="677"/>
<location filename="browser.hxx" line="444"/>
<source>Info: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="701"/>
<location filename="browser.hxx" line="457"/>
<source>done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="954"/>
<location filename="browser.hxx" line="710"/>
<source>%1</source>
<comment>statusbar for hovered link %1=url</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="223"/>
<location filename="browser.hxx" line="234"/>
<source>Forbidden: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="224"/>
<location filename="browser.hxx" line="235"/>
<source>Access Denied</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="225"/>
<location filename="browser.hxx" line="236"/>
<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="597"/>
<location filename="browser.hxx" line="345"/>
<source>%1 - %2</source>
<comment>statusbar actionForward_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="670"/>
<location filename="browser.hxx" line="439"/>
<source>%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1055"/>
<location filename="browser.hxx" line="811"/>
<source>Save File As ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1110"/>
<location filename="browser.hxx" line="866"/>
<source>authentication required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1125"/>
<location filename="browser.hxx" line="881"/>
<source>ssl error</source>
<translation type="unfinished"></translation>
</message>
@@ -444,12 +454,14 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
<location filename="main.cxx" line="206"/>
<location filename="main.cxx" line="205"/>
<source>Usage: %1 [OPTIONS...] [&lt;url&gt; ...]
Options:
-h, --help show this help text
-k, --kiosk no url bar
if you sepcify -k and -s, -k must be first
-n, --no-settings don&apos;t load or store any settings
-l, --lib &lt;file&gt; path to file libengine_act.so
-s, --settings &lt;file&gt;
load settings from &lt;file&gt;
if you sepcify -k and -s, -k must be first
@@ -467,43 +479,38 @@ Environment:
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="242"/>
<location filename="main.cxx" line="247"/>
<source>Cannot read PEM certificate from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="248"/>
<location filename="main.cxx" line="253"/>
<source>Read PEM certificates from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="255"/>
<location filename="main.cxx" line="260"/>
<source>Cannot read PEM RSA key from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="260"/>
<location filename="main.cxx" line="265"/>
<source>Read private key from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="271"/>
<location filename="main.cxx" line="276"/>
<source>Too few arguments.
Try: %1 --help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="278"/>
<source>http://swisssign.com</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="63"/>
<location filename="smartcardauth.cxx" line="65"/>
<source>Send Authentication?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="64"/>
<location filename="smartcardauth.cxx" line="66"/>
<source>Do you want to authenticate yourself to %1?</source>
<translation type="unfinished"></translation>
</message>
@@ -832,7 +839,48 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Serif&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;Specifies whether locally loaded documents are allowed to access remote urls.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;Specifies whether locally loaded documents are allowed to access remote urls. &lt;/span&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;Local resources are by default restricted from accessing remote content, which means your &lt;/span&gt;&lt;span style=&quot; font-family:&apos;Courier New,courier&apos;; font-size:medium; color:#363534;&quot;&gt;file://&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt; will not be able to access &lt;/span&gt;&lt;span style=&quot; font-family:&apos;Courier New,courier&apos;; font-size:medium; color:#363534;&quot;&gt;http://domain.com/foo.html&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;. &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="567"/>
<source>Search Engines</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="583"/>
<source>Scheme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="588"/>
<source>Query URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="596"/>
<source>Use %1 as placeholder for the query, use %2 as placeholder for your system language.</source>
<oldsource>Use &lt;QUERY&gt; as placeholder for the query.</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="638"/>
<source>TBD</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="644"/>
<source>Session Management</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="650"/>
<source>save window state</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="657"/>
<source>close mimetype helper applications on exit</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -894,16 +942,23 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Serif&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;&amp;lt;FILENAME&amp;gt;&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;%1&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<oldsource>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Serif&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;&amp;lt;FILENAME&amp;gt;&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="550"/>
<location filename="settings.ui" line="621"/>
<source>+</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="557"/>
<location filename="settings.ui" line="628"/>
<source>-</source>
<translation type="unfinished"></translation>
</message>

View File

@@ -26,367 +26,377 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="98"/>
<location filename="browser.ui" line="99"/>
<source>Info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="115"/>
<location filename="browser.ui" line="116"/>
<source>neu laden</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="118"/>
<location filename="browser.ui" line="119"/>
<source>F5</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="130"/>
<location filename="browser.ui" line="131"/>
<source>stoppen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="145"/>
<location filename="browser.ui" line="146"/>
<source>zurückkehren</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="163"/>
<location filename="browser.ui" line="164"/>
<source>weitergehen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="178"/>
<location filename="browser.ui" line="179"/>
<source>Startseite</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="181"/>
<location filename="browser.ui" line="182"/>
<source>Ctrl+Home</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="189"/>
<location filename="browser.ui" line="190"/>
<source>&amp;New Browser</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="192"/>
<location filename="browser.ui" line="193"/>
<source>New Browser Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="195"/>
<location filename="browser.ui" line="196"/>
<source>Ctrl+N</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="200"/>
<location filename="browser.ui" line="201"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="205"/>
<location filename="browser.ui" line="206"/>
<source>&amp;Proxy...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="223"/>
<location filename="browser.ui" line="224"/>
<source>Ctrl+P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="228"/>
<location filename="browser.ui" line="229"/>
<source>Next Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="231"/>
<location filename="browser.ui" line="232"/>
<source>Shift+Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="236"/>
<location filename="browser.ui" line="237"/>
<source>Previous Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="239"/>
<location filename="browser.ui" line="240"/>
<source>Shift+Left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="244"/>
<location filename="browser.ui" line="245"/>
<source>New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="247"/>
<location filename="browser.ui" line="248"/>
<source>Add New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="250"/>
<location filename="browser.ui" line="251"/>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="255"/>
<location filename="browser.ui" line="256"/>
<source>Find</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="266"/>
<location filename="browser.ui" line="267"/>
<source>Close Find</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="274"/>
<location filename="browser.ui" line="275"/>
<source>&amp;About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="282"/>
<location filename="browser.ui" line="283"/>
<source>&amp;Settings ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="133"/>
<location filename="browser.ui" line="269"/>
<location filename="browser.ui" line="291"/>
<source>&amp;Reverse Find</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="294"/>
<source>Ctrl+R</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="134"/>
<location filename="browser.ui" line="270"/>
<source>Esc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="258"/>
<location filename="browser.ui" line="259"/>
<source>find in page</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="261"/>
<location filename="browser.ui" line="262"/>
<source>Ctrl+F</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="210"/>
<location filename="browser.ui" line="211"/>
<source>Print ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="220"/>
<location filename="browser.ui" line="221"/>
<source>Quick &amp;Print</source>
<oldsource>&amp;Print</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="215"/>
<location filename="browser.ui" line="216"/>
<source>Print Pre&amp;view ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="145"/>
<location filename="browser.hxx" line="153"/>
<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="157"/>
<location filename="browser.hxx" line="165"/>
<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="220"/>
<location filename="browser.hxx" line="231"/>
<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="243"/>
<source>Reading: %1</source>
<oldsource>Reading: %1%</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="251"/>
<location filename="browser.hxx" line="258"/>
<source>Zoom: %1%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="125"/>
<location filename="browser.hxx" line="133"/>
<source>Network connection successful, remote host can be reached.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="128"/>
<location filename="browser.hxx" line="136"/>
<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="131"/>
<location filename="browser.hxx" line="139"/>
<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="134"/>
<location filename="browser.hxx" line="142"/>
<source>The remote host name was not found (invalid hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="136"/>
<location filename="browser.hxx" line="144"/>
<source>The connection to the remote server timed out.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="138"/>
<location filename="browser.hxx" line="146"/>
<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="141"/>
<location filename="browser.hxx" line="149"/>
<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="148"/>
<location filename="browser.hxx" line="156"/>
<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="151"/>
<location filename="browser.hxx" line="159"/>
<source>The proxy host name was not found (invalid proxy hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="154"/>
<location filename="browser.hxx" line="162"/>
<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="161"/>
<location filename="browser.hxx" line="169"/>
<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="164"/>
<location filename="browser.hxx" line="172"/>
<source>The operation requested on the remote content is not permitted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="167"/>
<location filename="browser.hxx" line="175"/>
<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="170"/>
<location filename="browser.hxx" line="178"/>
<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="174"/>
<location filename="browser.hxx" line="182"/>
<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="177"/>
<location filename="browser.hxx" line="185"/>
<source>The requested operation is invalid for this protocol.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="179"/>
<location filename="browser.hxx" line="187"/>
<source>An unknown network-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="181"/>
<location filename="browser.hxx" line="189"/>
<source>An unknown proxy-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="183"/>
<location filename="browser.hxx" line="191"/>
<source>An unknonwn error related to the remote content was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="186"/>
<location filename="browser.hxx" line="194"/>
<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="189"/>
<location filename="browser.hxx" line="197"/>
<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="245"/>
<source>Illegal URL: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="557"/>
<location filename="browser.hxx" line="305"/>
<source>Print Document</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="578"/>
<location filename="browser.hxx" line="326"/>
<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="677"/>
<location filename="browser.hxx" line="444"/>
<source>Info: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="701"/>
<location filename="browser.hxx" line="457"/>
<source>done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="954"/>
<location filename="browser.hxx" line="710"/>
<source>%1</source>
<comment>statusbar for hovered link %1=url</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="223"/>
<location filename="browser.hxx" line="234"/>
<source>Forbidden: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="224"/>
<location filename="browser.hxx" line="235"/>
<source>Access Denied</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="225"/>
<location filename="browser.hxx" line="236"/>
<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="597"/>
<location filename="browser.hxx" line="345"/>
<source>%1 - %2</source>
<comment>statusbar actionForward_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="670"/>
<location filename="browser.hxx" line="439"/>
<source>%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1055"/>
<location filename="browser.hxx" line="811"/>
<source>Save File As ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1110"/>
<location filename="browser.hxx" line="866"/>
<source>authentication required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1125"/>
<location filename="browser.hxx" line="881"/>
<source>ssl error</source>
<translation type="unfinished"></translation>
</message>
@@ -444,12 +454,14 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
<location filename="main.cxx" line="206"/>
<location filename="main.cxx" line="205"/>
<source>Usage: %1 [OPTIONS...] [&lt;url&gt; ...]
Options:
-h, --help show this help text
-k, --kiosk no url bar
if you sepcify -k and -s, -k must be first
-n, --no-settings don&apos;t load or store any settings
-l, --lib &lt;file&gt; path to file libengine_act.so
-s, --settings &lt;file&gt;
load settings from &lt;file&gt;
if you sepcify -k and -s, -k must be first
@@ -467,43 +479,38 @@ Environment:
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="242"/>
<location filename="main.cxx" line="247"/>
<source>Cannot read PEM certificate from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="248"/>
<location filename="main.cxx" line="253"/>
<source>Read PEM certificates from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="255"/>
<location filename="main.cxx" line="260"/>
<source>Cannot read PEM RSA key from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="260"/>
<location filename="main.cxx" line="265"/>
<source>Read private key from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="271"/>
<location filename="main.cxx" line="276"/>
<source>Too few arguments.
Try: %1 --help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="278"/>
<source>http://swisssign.com</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="63"/>
<location filename="smartcardauth.cxx" line="65"/>
<source>Send Authentication?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="64"/>
<location filename="smartcardauth.cxx" line="66"/>
<source>Do you want to authenticate yourself to %1?</source>
<translation type="unfinished"></translation>
</message>
@@ -832,7 +839,48 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Serif&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;Specifies whether locally loaded documents are allowed to access remote urls.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;Specifies whether locally loaded documents are allowed to access remote urls. &lt;/span&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;Local resources are by default restricted from accessing remote content, which means your &lt;/span&gt;&lt;span style=&quot; font-family:&apos;Courier New,courier&apos;; font-size:medium; color:#363534;&quot;&gt;file://&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt; will not be able to access &lt;/span&gt;&lt;span style=&quot; font-family:&apos;Courier New,courier&apos;; font-size:medium; color:#363534;&quot;&gt;http://domain.com/foo.html&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;. &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="567"/>
<source>Search Engines</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="583"/>
<source>Scheme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="588"/>
<source>Query URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="596"/>
<source>Use %1 as placeholder for the query, use %2 as placeholder for your system language.</source>
<oldsource>Use &lt;QUERY&gt; as placeholder for the query.</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="638"/>
<source>TBD</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="644"/>
<source>Session Management</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="650"/>
<source>save window state</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="657"/>
<source>close mimetype helper applications on exit</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -894,16 +942,23 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Serif&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;&amp;lt;FILENAME&amp;gt;&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;%1&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<oldsource>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Serif&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;&amp;lt;FILENAME&amp;gt;&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="550"/>
<location filename="settings.ui" line="621"/>
<source>+</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="557"/>
<location filename="settings.ui" line="628"/>
<source>-</source>
<translation type="unfinished"></translation>
</message>

View File

@@ -26,367 +26,377 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="98"/>
<location filename="browser.ui" line="99"/>
<source>Info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="115"/>
<location filename="browser.ui" line="116"/>
<source>neu laden</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="118"/>
<location filename="browser.ui" line="119"/>
<source>F5</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="130"/>
<location filename="browser.ui" line="131"/>
<source>stoppen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="145"/>
<location filename="browser.ui" line="146"/>
<source>zurückkehren</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="163"/>
<location filename="browser.ui" line="164"/>
<source>weitergehen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="178"/>
<location filename="browser.ui" line="179"/>
<source>Startseite</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="181"/>
<location filename="browser.ui" line="182"/>
<source>Ctrl+Home</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="189"/>
<location filename="browser.ui" line="190"/>
<source>&amp;New Browser</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="192"/>
<location filename="browser.ui" line="193"/>
<source>New Browser Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="195"/>
<location filename="browser.ui" line="196"/>
<source>Ctrl+N</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="200"/>
<location filename="browser.ui" line="201"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="205"/>
<location filename="browser.ui" line="206"/>
<source>&amp;Proxy...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="223"/>
<location filename="browser.ui" line="224"/>
<source>Ctrl+P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="228"/>
<location filename="browser.ui" line="229"/>
<source>Next Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="231"/>
<location filename="browser.ui" line="232"/>
<source>Shift+Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="236"/>
<location filename="browser.ui" line="237"/>
<source>Previous Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="239"/>
<location filename="browser.ui" line="240"/>
<source>Shift+Left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="244"/>
<location filename="browser.ui" line="245"/>
<source>New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="247"/>
<location filename="browser.ui" line="248"/>
<source>Add New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="250"/>
<location filename="browser.ui" line="251"/>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="255"/>
<location filename="browser.ui" line="256"/>
<source>Find</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="266"/>
<location filename="browser.ui" line="267"/>
<source>Close Find</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="274"/>
<location filename="browser.ui" line="275"/>
<source>&amp;About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="282"/>
<location filename="browser.ui" line="283"/>
<source>&amp;Settings ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="133"/>
<location filename="browser.ui" line="269"/>
<location filename="browser.ui" line="291"/>
<source>&amp;Reverse Find</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="294"/>
<source>Ctrl+R</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="134"/>
<location filename="browser.ui" line="270"/>
<source>Esc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="258"/>
<location filename="browser.ui" line="259"/>
<source>find in page</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="261"/>
<location filename="browser.ui" line="262"/>
<source>Ctrl+F</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="210"/>
<location filename="browser.ui" line="211"/>
<source>Print ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="220"/>
<location filename="browser.ui" line="221"/>
<source>Quick &amp;Print</source>
<oldsource>&amp;Print</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="215"/>
<location filename="browser.ui" line="216"/>
<source>Print Pre&amp;view ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="145"/>
<location filename="browser.hxx" line="153"/>
<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="157"/>
<location filename="browser.hxx" line="165"/>
<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="220"/>
<location filename="browser.hxx" line="231"/>
<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="243"/>
<source>Reading: %1</source>
<oldsource>Reading: %1%</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="251"/>
<location filename="browser.hxx" line="258"/>
<source>Zoom: %1%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="125"/>
<location filename="browser.hxx" line="133"/>
<source>Network connection successful, remote host can be reached.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="128"/>
<location filename="browser.hxx" line="136"/>
<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="131"/>
<location filename="browser.hxx" line="139"/>
<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="134"/>
<location filename="browser.hxx" line="142"/>
<source>The remote host name was not found (invalid hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="136"/>
<location filename="browser.hxx" line="144"/>
<source>The connection to the remote server timed out.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="138"/>
<location filename="browser.hxx" line="146"/>
<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="141"/>
<location filename="browser.hxx" line="149"/>
<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="148"/>
<location filename="browser.hxx" line="156"/>
<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="151"/>
<location filename="browser.hxx" line="159"/>
<source>The proxy host name was not found (invalid proxy hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="154"/>
<location filename="browser.hxx" line="162"/>
<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="161"/>
<location filename="browser.hxx" line="169"/>
<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="164"/>
<location filename="browser.hxx" line="172"/>
<source>The operation requested on the remote content is not permitted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="167"/>
<location filename="browser.hxx" line="175"/>
<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="170"/>
<location filename="browser.hxx" line="178"/>
<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="174"/>
<location filename="browser.hxx" line="182"/>
<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="177"/>
<location filename="browser.hxx" line="185"/>
<source>The requested operation is invalid for this protocol.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="179"/>
<location filename="browser.hxx" line="187"/>
<source>An unknown network-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="181"/>
<location filename="browser.hxx" line="189"/>
<source>An unknown proxy-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="183"/>
<location filename="browser.hxx" line="191"/>
<source>An unknonwn error related to the remote content was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="186"/>
<location filename="browser.hxx" line="194"/>
<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="189"/>
<location filename="browser.hxx" line="197"/>
<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="245"/>
<source>Illegal URL: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="557"/>
<location filename="browser.hxx" line="305"/>
<source>Print Document</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="578"/>
<location filename="browser.hxx" line="326"/>
<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="677"/>
<location filename="browser.hxx" line="444"/>
<source>Info: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="701"/>
<location filename="browser.hxx" line="457"/>
<source>done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="954"/>
<location filename="browser.hxx" line="710"/>
<source>%1</source>
<comment>statusbar for hovered link %1=url</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="223"/>
<location filename="browser.hxx" line="234"/>
<source>Forbidden: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="224"/>
<location filename="browser.hxx" line="235"/>
<source>Access Denied</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="225"/>
<location filename="browser.hxx" line="236"/>
<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="597"/>
<location filename="browser.hxx" line="345"/>
<source>%1 - %2</source>
<comment>statusbar actionForward_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="670"/>
<location filename="browser.hxx" line="439"/>
<source>%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1055"/>
<location filename="browser.hxx" line="811"/>
<source>Save File As ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1110"/>
<location filename="browser.hxx" line="866"/>
<source>authentication required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1125"/>
<location filename="browser.hxx" line="881"/>
<source>ssl error</source>
<translation type="unfinished"></translation>
</message>
@@ -444,12 +454,14 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
<location filename="main.cxx" line="206"/>
<location filename="main.cxx" line="205"/>
<source>Usage: %1 [OPTIONS...] [&lt;url&gt; ...]
Options:
-h, --help show this help text
-k, --kiosk no url bar
if you sepcify -k and -s, -k must be first
-n, --no-settings don&apos;t load or store any settings
-l, --lib &lt;file&gt; path to file libengine_act.so
-s, --settings &lt;file&gt;
load settings from &lt;file&gt;
if you sepcify -k and -s, -k must be first
@@ -467,43 +479,38 @@ Environment:
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="242"/>
<location filename="main.cxx" line="247"/>
<source>Cannot read PEM certificate from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="248"/>
<location filename="main.cxx" line="253"/>
<source>Read PEM certificates from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="255"/>
<location filename="main.cxx" line="260"/>
<source>Cannot read PEM RSA key from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="260"/>
<location filename="main.cxx" line="265"/>
<source>Read private key from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="271"/>
<location filename="main.cxx" line="276"/>
<source>Too few arguments.
Try: %1 --help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="278"/>
<source>http://swisssign.com</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="63"/>
<location filename="smartcardauth.cxx" line="65"/>
<source>Send Authentication?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="64"/>
<location filename="smartcardauth.cxx" line="66"/>
<source>Do you want to authenticate yourself to %1?</source>
<translation type="unfinished"></translation>
</message>
@@ -832,7 +839,48 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Serif&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;Specifies whether locally loaded documents are allowed to access remote urls.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;Specifies whether locally loaded documents are allowed to access remote urls. &lt;/span&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;Local resources are by default restricted from accessing remote content, which means your &lt;/span&gt;&lt;span style=&quot; font-family:&apos;Courier New,courier&apos;; font-size:medium; color:#363534;&quot;&gt;file://&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt; will not be able to access &lt;/span&gt;&lt;span style=&quot; font-family:&apos;Courier New,courier&apos;; font-size:medium; color:#363534;&quot;&gt;http://domain.com/foo.html&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;. &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="567"/>
<source>Search Engines</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="583"/>
<source>Scheme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="588"/>
<source>Query URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="596"/>
<source>Use %1 as placeholder for the query, use %2 as placeholder for your system language.</source>
<oldsource>Use &lt;QUERY&gt; as placeholder for the query.</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="638"/>
<source>TBD</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="644"/>
<source>Session Management</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="650"/>
<source>save window state</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="657"/>
<source>close mimetype helper applications on exit</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -894,16 +942,23 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Serif&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;&amp;lt;FILENAME&amp;gt;&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;%1&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<oldsource>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Serif&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;&amp;lt;FILENAME&amp;gt;&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="550"/>
<location filename="settings.ui" line="621"/>
<source>+</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="557"/>
<location filename="settings.ui" line="628"/>
<source>-</source>
<translation type="unfinished"></translation>
</message>

View File

@@ -26,367 +26,377 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="98"/>
<location filename="browser.ui" line="99"/>
<source>Info</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="115"/>
<location filename="browser.ui" line="116"/>
<source>neu laden</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="118"/>
<location filename="browser.ui" line="119"/>
<source>F5</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="130"/>
<location filename="browser.ui" line="131"/>
<source>stoppen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="145"/>
<location filename="browser.ui" line="146"/>
<source>zurückkehren</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="163"/>
<location filename="browser.ui" line="164"/>
<source>weitergehen</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="178"/>
<location filename="browser.ui" line="179"/>
<source>Startseite</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="181"/>
<location filename="browser.ui" line="182"/>
<source>Ctrl+Home</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="189"/>
<location filename="browser.ui" line="190"/>
<source>&amp;New Browser</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="192"/>
<location filename="browser.ui" line="193"/>
<source>New Browser Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="195"/>
<location filename="browser.ui" line="196"/>
<source>Ctrl+N</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="200"/>
<location filename="browser.ui" line="201"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="205"/>
<location filename="browser.ui" line="206"/>
<source>&amp;Proxy...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="223"/>
<location filename="browser.ui" line="224"/>
<source>Ctrl+P</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="228"/>
<location filename="browser.ui" line="229"/>
<source>Next Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="231"/>
<location filename="browser.ui" line="232"/>
<source>Shift+Right</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="236"/>
<location filename="browser.ui" line="237"/>
<source>Previous Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="239"/>
<location filename="browser.ui" line="240"/>
<source>Shift+Left</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="244"/>
<location filename="browser.ui" line="245"/>
<source>New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="247"/>
<location filename="browser.ui" line="248"/>
<source>Add New Tab</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="250"/>
<location filename="browser.ui" line="251"/>
<source>Ctrl+T</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="255"/>
<location filename="browser.ui" line="256"/>
<source>Find</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="266"/>
<location filename="browser.ui" line="267"/>
<source>Close Find</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="274"/>
<location filename="browser.ui" line="275"/>
<source>&amp;About</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="282"/>
<location filename="browser.ui" line="283"/>
<source>&amp;Settings ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="133"/>
<location filename="browser.ui" line="269"/>
<location filename="browser.ui" line="291"/>
<source>&amp;Reverse Find</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="294"/>
<source>Ctrl+R</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="134"/>
<location filename="browser.ui" line="270"/>
<source>Esc</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="258"/>
<location filename="browser.ui" line="259"/>
<source>find in page</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="261"/>
<location filename="browser.ui" line="262"/>
<source>Ctrl+F</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="210"/>
<location filename="browser.ui" line="211"/>
<source>Print ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="220"/>
<location filename="browser.ui" line="221"/>
<source>Quick &amp;Print</source>
<oldsource>&amp;Print</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.ui" line="215"/>
<location filename="browser.ui" line="216"/>
<source>Print Pre&amp;view ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="145"/>
<location filename="browser.hxx" line="153"/>
<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="157"/>
<location filename="browser.hxx" line="165"/>
<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="220"/>
<location filename="browser.hxx" line="231"/>
<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="243"/>
<source>Reading: %1</source>
<oldsource>Reading: %1%</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="251"/>
<location filename="browser.hxx" line="258"/>
<source>Zoom: %1%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="125"/>
<location filename="browser.hxx" line="133"/>
<source>Network connection successful, remote host can be reached.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="128"/>
<location filename="browser.hxx" line="136"/>
<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="131"/>
<location filename="browser.hxx" line="139"/>
<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="134"/>
<location filename="browser.hxx" line="142"/>
<source>The remote host name was not found (invalid hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="136"/>
<location filename="browser.hxx" line="144"/>
<source>The connection to the remote server timed out.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="138"/>
<location filename="browser.hxx" line="146"/>
<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="141"/>
<location filename="browser.hxx" line="149"/>
<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="148"/>
<location filename="browser.hxx" line="156"/>
<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="151"/>
<location filename="browser.hxx" line="159"/>
<source>The proxy host name was not found (invalid proxy hostname).</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="154"/>
<location filename="browser.hxx" line="162"/>
<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="161"/>
<location filename="browser.hxx" line="169"/>
<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="164"/>
<location filename="browser.hxx" line="172"/>
<source>The operation requested on the remote content is not permitted.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="167"/>
<location filename="browser.hxx" line="175"/>
<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="170"/>
<location filename="browser.hxx" line="178"/>
<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="174"/>
<location filename="browser.hxx" line="182"/>
<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="177"/>
<location filename="browser.hxx" line="185"/>
<source>The requested operation is invalid for this protocol.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="179"/>
<location filename="browser.hxx" line="187"/>
<source>An unknown network-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="181"/>
<location filename="browser.hxx" line="189"/>
<source>An unknown proxy-related error was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="183"/>
<location filename="browser.hxx" line="191"/>
<source>An unknonwn error related to the remote content was detected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="186"/>
<location filename="browser.hxx" line="194"/>
<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="189"/>
<location filename="browser.hxx" line="197"/>
<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="245"/>
<source>Illegal URL: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="557"/>
<location filename="browser.hxx" line="305"/>
<source>Print Document</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="578"/>
<location filename="browser.hxx" line="326"/>
<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="677"/>
<location filename="browser.hxx" line="444"/>
<source>Info: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="701"/>
<location filename="browser.hxx" line="457"/>
<source>done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="954"/>
<location filename="browser.hxx" line="710"/>
<source>%1</source>
<comment>statusbar for hovered link %1=url</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="223"/>
<location filename="browser.hxx" line="234"/>
<source>Forbidden: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="224"/>
<location filename="browser.hxx" line="235"/>
<source>Access Denied</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="225"/>
<location filename="browser.hxx" line="236"/>
<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="597"/>
<location filename="browser.hxx" line="345"/>
<source>%1 - %2</source>
<comment>statusbar actionForward_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="670"/>
<location filename="browser.hxx" line="439"/>
<source>%1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1055"/>
<location filename="browser.hxx" line="811"/>
<source>Save File As ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1110"/>
<location filename="browser.hxx" line="866"/>
<source>authentication required</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1125"/>
<location filename="browser.hxx" line="881"/>
<source>ssl error</source>
<translation type="unfinished"></translation>
</message>
@@ -444,12 +454,14 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
<location filename="main.cxx" line="206"/>
<location filename="main.cxx" line="205"/>
<source>Usage: %1 [OPTIONS...] [&lt;url&gt; ...]
Options:
-h, --help show this help text
-k, --kiosk no url bar
if you sepcify -k and -s, -k must be first
-n, --no-settings don&apos;t load or store any settings
-l, --lib &lt;file&gt; path to file libengine_act.so
-s, --settings &lt;file&gt;
load settings from &lt;file&gt;
if you sepcify -k and -s, -k must be first
@@ -467,43 +479,38 @@ Environment:
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="242"/>
<location filename="main.cxx" line="247"/>
<source>Cannot read PEM certificate from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="248"/>
<location filename="main.cxx" line="253"/>
<source>Read PEM certificates from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="255"/>
<location filename="main.cxx" line="260"/>
<source>Cannot read PEM RSA key from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="260"/>
<location filename="main.cxx" line="265"/>
<source>Read private key from file: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="271"/>
<location filename="main.cxx" line="276"/>
<source>Too few arguments.
Try: %1 --help</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="main.cxx" line="278"/>
<source>http://swisssign.com</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="63"/>
<location filename="smartcardauth.cxx" line="65"/>
<source>Send Authentication?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="smartcardauth.cxx" line="64"/>
<location filename="smartcardauth.cxx" line="66"/>
<source>Do you want to authenticate yourself to %1?</source>
<translation type="unfinished"></translation>
</message>
@@ -832,7 +839,48 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Serif&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;Specifies whether locally loaded documents are allowed to access remote urls.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;Specifies whether locally loaded documents are allowed to access remote urls. &lt;/span&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;Local resources are by default restricted from accessing remote content, which means your &lt;/span&gt;&lt;span style=&quot; font-family:&apos;Courier New,courier&apos;; font-size:medium; color:#363534;&quot;&gt;file://&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt; will not be able to access &lt;/span&gt;&lt;span style=&quot; font-family:&apos;Courier New,courier&apos;; font-size:medium; color:#363534;&quot;&gt;http://domain.com/foo.html&lt;/span&gt;&lt;span style=&quot; font-family:&apos;Verdana&apos;; font-size:medium; color:#363534;&quot;&gt;. &lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="567"/>
<source>Search Engines</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="583"/>
<source>Scheme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="588"/>
<source>Query URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="596"/>
<source>Use %1 as placeholder for the query, use %2 as placeholder for your system language.</source>
<oldsource>Use &lt;QUERY&gt; as placeholder for the query.</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="638"/>
<source>TBD</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="644"/>
<source>Session Management</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="650"/>
<source>save window state</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="657"/>
<source>close mimetype helper applications on exit</source>
<translation type="unfinished"></translation>
</message>
<message>
@@ -894,16 +942,23 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Serif&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;&amp;lt;FILENAME&amp;gt;&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;%1&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<oldsource>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;DejaVu Serif&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;In the &lt;span style=&quot; font-weight:600;&quot;&gt;Program&lt;/span&gt;-column, enter &lt;span style=&quot; font-weight:600;&quot;&gt;&amp;lt;FILENAME&amp;gt;&lt;/span&gt; as file name placeholder.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="550"/>
<location filename="settings.ui" line="621"/>
<source>+</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="settings.ui" line="557"/>
<location filename="settings.ui" line="628"/>
<source>-</source>
<translation type="unfinished"></translation>
</message>