1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-20 02:36:34 +01:00

Improved hiding elements blocked by adblock + hiding blocked flash

objects when click2flash is enabled
This commit is contained in:
nowrep 2011-10-09 14:51:25 +02:00
parent cb7ca323fa
commit 1ff0e232b7
20 changed files with 583 additions and 395 deletions

Binary file not shown.

Binary file not shown.

View File

@ -250,8 +250,8 @@ bool WindowNotifier::winEvent(MSG *message, long *result)
foreach(QWidget * widget, widgets) {
if (widget) {
widget->setAttribute(Qt::WA_NoSystemBackground, compositionEnabled);
widget->update();
}
widget->update();
}
}
return QWidget::winEvent(message, result);

View File

@ -141,7 +141,8 @@ SOURCES += main.cpp\
network/qupzillaschemehandler.cpp \
tools/globalfunctions.cpp \
other/pagescreen.cpp \
downloads/downloadfilehelper.cpp
downloads/downloadfilehelper.cpp \
tools/certificateinfowidget.cpp
HEADERS += \
3rdparty/qtwin.h \
@ -237,7 +238,8 @@ HEADERS += \
network/qupzillaschemehandler.h \
tools/globalfunctions.h \
other/pagescreen.h \
downloads/downloadfilehelper.h
downloads/downloadfilehelper.h \
tools/certificateinfowidget.h
FORMS += \
preferences/autofillmanager.ui \
@ -272,7 +274,8 @@ FORMS += \
other/browsinglibrary.ui \
webview/searchtoolbar.ui \
preferences/thememanager.ui \
other/pagescreen.ui
other/pagescreen.ui \
tools/certificateinfowidget.ui
RESOURCES += \
data/icons.qrc \
@ -298,3 +301,6 @@ include(3rdparty/qtsingleapplication.pri)

View File

@ -119,7 +119,9 @@ void SourceViewer::findText()
return;
}
m_layout->insertWidget(1, new SourceViewerSearch(this));
SourceViewerSearch* s = new SourceViewerSearch(this);
m_layout->insertWidget(1, s);
s->activateLineEdit();
}
void SourceViewer::reload()

View File

@ -50,20 +50,12 @@ ClickToFlash::ClickToFlash(const QUrl &pluginUrl, const QStringList &argumentNam
: QWidget(parent)
, m_argumentNames(argumentNames)
, m_argumentValues(argumentValues)
, m_toolButton(0)
, m_layout1(0)
, m_layout2(0)
, m_frame(0)
, m_url(pluginUrl)
{
QHBoxLayout* horizontalLayout;
QFrame* frame;
QHBoxLayout* horizontalLayout_2;
horizontalLayout = new QHBoxLayout(this);
frame = new QFrame(this);
frame->setObjectName("click2flash-frame");
frame->setContentsMargins(0,0,0,0);
horizontalLayout_2 = new QHBoxLayout(frame);
toolButton = new QToolButton(this);
toolButton->setObjectName("click2flash-toolbutton");
//AdBlock
AdBlockManager* manager = AdBlockManager::instance();
if (manager->isEnabled()) {
@ -75,14 +67,22 @@ ClickToFlash::ClickToFlash(const QUrl &pluginUrl, const QStringList &argumentNam
}
}
toolButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
toolButton->setCursor(Qt::PointingHandCursor);
horizontalLayout_2->addWidget(toolButton);
horizontalLayout->addWidget(frame);
horizontalLayout->setContentsMargins(0,0,0,0);
horizontalLayout_2->setContentsMargins(0,0,0,0);
m_layout1 = new QHBoxLayout(this);
m_frame = new QFrame(this);
m_frame->setObjectName("click2flash-frame");
m_frame->setContentsMargins(0,0,0,0);
m_layout2 = new QHBoxLayout(m_frame);
m_toolButton = new QToolButton(this);
m_toolButton->setObjectName("click2flash-toolbutton");
connect(toolButton, SIGNAL(clicked()), this, SLOT(load()));
m_toolButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
m_toolButton->setCursor(Qt::PointingHandCursor);
m_layout2->addWidget(m_toolButton);
m_layout1->addWidget(m_frame);
m_layout1->setContentsMargins(0,0,0,0);
m_layout2->setContentsMargins(0,0,0,0);
connect(m_toolButton, SIGNAL(clicked()), this, SLOT(load()));
setMinimumSize(27,27);
setContextMenuPolicy(Qt::CustomContextMenu);
@ -117,6 +117,9 @@ void ClickToFlash::hideAdBlocked()
void ClickToFlash::findElement()
{
if (!m_toolButton)
return;
QWidget* parent = parentWidget();
QWebView* view = 0;
while (parent) {
@ -130,7 +133,7 @@ void ClickToFlash::findElement()
return;
QList<QWebFrame*> frames;
frames.append(view->page()->frameAt(view->mapFromGlobal(toolButton->mapToGlobal(toolButton->pos()))));
frames.append(view->page()->frameAt(view->mapFromGlobal(m_toolButton->mapToGlobal(m_toolButton->pos()))));
m_mainFrame = view->page()->mainFrame();
frames.append(m_mainFrame);
@ -215,3 +218,15 @@ void ClickToFlash::showInfo()
widg->setMaximumHeight(500);
widg->show();
}
ClickToFlash::~ClickToFlash()
{
if (m_toolButton)
delete m_toolButton;
if (m_layout1)
delete m_layout1;
if (m_layout2)
delete m_layout2;
if (m_frame)
delete m_frame;
}

View File

@ -63,6 +63,7 @@ class ClickToFlash : public QWidget
public:
explicit ClickToFlash(const QUrl &pluginUrl, const QStringList &argumentNames, const QStringList &argumentValues, QWidget* parent = 0);
~ClickToFlash();
private slots:
void load();
@ -81,7 +82,10 @@ private:
QWebElement m_element;
QWebFrame* m_mainFrame;
QToolButton* toolButton;
QToolButton* m_toolButton;
QHBoxLayout* m_layout1;
QHBoxLayout* m_layout2;
QFrame* m_frame;
/**
used to find the right QWebElement between the ones of the different plugins
*/

View File

@ -0,0 +1,34 @@
#include "certificateinfowidget.h"
#include "ui_certificateinfowidget.h"
QString CertificateInfoWidget::showCertInfo(const QString &string)
{
if (string.isEmpty())
return tr("<not set in certificate>");
else return string;
}
CertificateInfoWidget::CertificateInfoWidget(const QSslCertificate &cert, QWidget *parent)
: QWidget(parent)
, ui(new Ui::CertificateInfoWidget)
{
ui->setupUi(this);
//Issued to
ui->issuedToCN->setText( showCertInfo(cert.subjectInfo(QSslCertificate::CommonName)) );
ui->issuedToO->setText( showCertInfo(cert.subjectInfo(QSslCertificate::Organization)) );
ui->issuedToOU->setText( showCertInfo(cert.subjectInfo(QSslCertificate::OrganizationalUnitName)) );
ui->issuedToSN->setText( showCertInfo(cert.serialNumber()) );
//Issued By
ui->issuedByCN->setText( showCertInfo(cert.issuerInfo(QSslCertificate::CommonName)) );
ui->issuedByO->setText( showCertInfo(cert.issuerInfo(QSslCertificate::Organization)) );
ui->issuedByOU->setText( showCertInfo(cert.issuerInfo(QSslCertificate::OrganizationalUnitName)) );
//Validity
ui->validityIssuedOn->setText( cert.effectiveDate().toString("dddd d. MMMM yyyy") );
ui->validityExpiresOn->setText( cert.expiryDate().toString("dddd d. MMMM yyyy") );
}
CertificateInfoWidget::~CertificateInfoWidget()
{
delete ui;
}

View File

@ -0,0 +1,26 @@
#ifndef CERTIFICATEINFOWIDGET_H
#define CERTIFICATEINFOWIDGET_H
#include <QWidget>
#include <QSslCertificate>
#include <QDateTime>
namespace Ui {
class CertificateInfoWidget;
}
class CertificateInfoWidget : public QWidget
{
Q_OBJECT
public:
explicit CertificateInfoWidget(const QSslCertificate &cert, QWidget *parent = 0);
~CertificateInfoWidget();
static QString showCertInfo(const QString &string);
private:
Ui::CertificateInfoWidget *ui;
};
#endif // CERTIFICATEINFOWIDGET_H

View File

@ -0,0 +1,172 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CertificateInfoWidget</class>
<widget class="QWidget" name="CertificateInfoWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>512</width>
<height>264</height>
</rect>
</property>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="label">
<property name="text">
<string>&lt;b&gt;Issued To&lt;/b&gt;</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Common Name (CN):</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="SqueezeLabelV2" name="issuedToCN">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Organization (O):</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="SqueezeLabelV2" name="issuedToO">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Organizational Unit (OU):</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="SqueezeLabelV2" name="issuedToOU">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>Serial Number:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="SqueezeLabelV2" name="issuedToSN">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_16">
<property name="text">
<string>&lt;b&gt;Issued By&lt;/b&gt;</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_17">
<property name="text">
<string>Common Name (CN):</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="SqueezeLabelV2" name="issuedByCN">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="label_18">
<property name="text">
<string>Organization (O):</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="SqueezeLabelV2" name="issuedByO">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="label_19">
<property name="text">
<string>Organizational Unit (OU):</string>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="SqueezeLabelV2" name="issuedByOU">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QLabel" name="label_20">
<property name="text">
<string>&lt;b&gt;Validity&lt;/b&gt;</string>
</property>
</widget>
</item>
<item row="10" column="0">
<widget class="QLabel" name="label_21">
<property name="text">
<string>Issued On:</string>
</property>
</widget>
</item>
<item row="10" column="1">
<widget class="SqueezeLabelV2" name="validityIssuedOn">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="11" column="0">
<widget class="QLabel" name="label_22">
<property name="text">
<string>Expires On:</string>
</property>
</widget>
</item>
<item row="11" column="1">
<widget class="SqueezeLabelV2" name="validityExpiresOn">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>SqueezeLabelV2</class>
<extends>QLabel</extends>
<header>squeezelabelv2.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@ -45,6 +45,49 @@ void qz_centerWidgetOnScreen(QWidget *w)
w->move( (screen.width()-size.width())/2, (screen.height()-size.height())/2 );
}
QString qz_samePartOfStrings(const QString &one, const QString &other)
{
int i = 0;
int maxSize = qMin(one.size(), other.size());
while (one.at(i) == other.at(i)) {
i++;
if (i == maxSize)
break;
}
return one.left(i);
}
#include <QDebug>
QUrl qz_makeRelativeUrl(const QUrl &baseUrl, const QUrl &rUrl)
{
QString baseUrlPath = baseUrl.path();
QString rUrlPath = rUrl.path();
QString samePart = qz_samePartOfStrings(baseUrlPath, rUrlPath);
QUrl returnUrl;
if (samePart.isEmpty()) {
returnUrl = rUrl;
}
else if (samePart == "/") {
returnUrl = QUrl(rUrl.path());
}
else {
samePart = samePart.left(samePart.lastIndexOf("/") + 1);
int slashCount = samePart.count("/") + 1;
if (samePart.startsWith("/"))
slashCount--;
if (samePart.endsWith("/"))
slashCount--;
rUrlPath.remove(samePart);
rUrlPath.prepend(QString("../").repeated(slashCount));
returnUrl = QUrl(rUrlPath);
}
return returnUrl;
}
QString qz_buildSystem()
{
#ifdef Q_OS_LINUX

View File

@ -25,11 +25,15 @@
#include <QWidget>
#include <QApplication>
#include <QDesktopWidget>
#include <QUrl>
QByteArray qz_pixmapToByteArray(const QPixmap &pix);
QByteArray qz_readAllFileContents(const QString &filename);
void qz_centerWidgetOnScreen(QWidget* w);
QString qz_samePartOfStrings(const QString &one, const QString &other);
QUrl qz_makeRelativeUrl(const QUrl &baseUrl, const QUrl &rUrl);
QString qz_buildSystem();
#endif // GLOBALFUNCTIONS_H

View File

@ -116,7 +116,8 @@
<< "scrolling=\"" << "quality=\"" << "bgcolor=\""
<< "allowscriptaccess=\"" << "cols=\"" << "rows=\""
<< "profile=\"" << "colspan=\"" << "scope=\""
<< "data=\"" << "autoplay=\""
<< "data=\"" << "autoplay=\"" << "hspace=\""
<< "valign=\"" << "vspace=\""
<< "href=\"" << "title=\"" << "xmlns=\"";
foreach (const QString &pattern, optionsPatterns) {
rule.pattern = QRegExp(pattern);

View File

@ -21,6 +21,7 @@
#include "webview.h"
#include "webpage.h"
#include "downloaditem.h"
#include "certificateinfowidget.h"
QString SiteInfo::showCertInfo(const QString &string)
{
@ -29,10 +30,11 @@ QString SiteInfo::showCertInfo(const QString &string)
else return string;
}
SiteInfo::SiteInfo(QupZilla* mainClass, QWidget* parent) :
QDialog(parent)
,ui(new Ui::SiteInfo)
,p_QupZilla(mainClass)
SiteInfo::SiteInfo(QupZilla* mainClass, QWidget* parent)
: QDialog(parent)
, ui(new Ui::SiteInfo)
, p_QupZilla(mainClass)
, m_certWidget(0)
{
ui->setupUi(this);
WebView* view = p_QupZilla->weView();
@ -99,21 +101,11 @@ SiteInfo::SiteInfo(QupZilla* mainClass, QWidget* parent) :
if (cert.isValid()) {
ui->securityLabel->setText(tr("<b>Connection is Encrypted.</b>"));
ui->certLabel->setText(tr("<b>Your connection to this page is secured with this certificate: </b>"));
//Issued to
ui->issuedToCN->setText( showCertInfo(cert.subjectInfo(QSslCertificate::CommonName)) );
ui->issuedToO->setText( showCertInfo(cert.subjectInfo(QSslCertificate::Organization)) );
ui->issuedToOU->setText( showCertInfo(cert.subjectInfo(QSslCertificate::OrganizationalUnitName)) );
ui->issuedToSN->setText( showCertInfo(cert.serialNumber()) );
//Issued By
ui->issuedByCN->setText( showCertInfo(cert.issuerInfo(QSslCertificate::CommonName)) );
ui->issuedByO->setText( showCertInfo(cert.issuerInfo(QSslCertificate::Organization)) );
ui->issuedByOU->setText( showCertInfo(cert.issuerInfo(QSslCertificate::OrganizationalUnitName)) );
//Validity
ui->validityIssuedOn->setText( cert.effectiveDate().toString("dddd d. MMMM yyyy") );
ui->validityExpiresOn->setText( cert.expiryDate().toString("dddd d. MMMM yyyy") );
m_certWidget = new CertificateInfoWidget(cert);
ui->certFrame->addWidget(m_certWidget);
} else {
ui->securityLabel->setText(tr("<b>Connection Not Encrypted.</b>"));
ui->certFrame->setVisible(false);
ui->certLabel->setText(tr("<b>Your connection to this page is not secured!</b>"));
}
@ -222,4 +214,6 @@ void SiteInfo::itemChanged(QListWidgetItem *item)
SiteInfo::~SiteInfo()
{
delete ui;
if (m_certWidget)
delete m_certWidget;
}

View File

@ -28,6 +28,7 @@ namespace Ui {
}
class QupZilla;
class CertificateInfoWidget;
class SiteInfo : public QDialog
{
Q_OBJECT
@ -50,6 +51,7 @@ private slots:
private:
Ui::SiteInfo* ui;
QupZilla* p_QupZilla;
CertificateInfoWidget* m_certWidget;
};
#endif // SITEINFO_H

View File

@ -354,167 +354,14 @@
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QFrame" name="certFrame">
<layout class="QFormLayout" name="formLayout_2">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<item row="1" column="0" colspan="2">
<widget class="QLabel" name="label">
<property name="text">
<string>&lt;b&gt;Issued To&lt;/b&gt;</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Common Name (CN):</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="SqueezeLabelV2" name="issuedToCN">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Organization (O):</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="SqueezeLabelV2" name="issuedToO">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Organizational Unit (OU):</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="SqueezeLabelV2" name="issuedToOU">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>Serial Number:</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="SqueezeLabelV2" name="issuedToSN">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="label_16">
<property name="text">
<string>&lt;b&gt;Issued By&lt;/b&gt;</string>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="label_17">
<property name="text">
<string>Common Name (CN):</string>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="SqueezeLabelV2" name="issuedByCN">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QLabel" name="label_18">
<property name="text">
<string>Organization (O):</string>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="SqueezeLabelV2" name="issuedByO">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="10" column="0">
<widget class="QLabel" name="label_19">
<property name="text">
<string>Organizational Unit (OU):</string>
</property>
</widget>
</item>
<item row="10" column="1">
<widget class="SqueezeLabelV2" name="issuedByOU">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="11" column="0">
<widget class="QLabel" name="label_20">
<property name="text">
<string>&lt;b&gt;Validity&lt;/b&gt;</string>
</property>
</widget>
</item>
<item row="12" column="0">
<widget class="QLabel" name="label_21">
<property name="text">
<string>Issued On:</string>
</property>
</widget>
</item>
<item row="12" column="1">
<widget class="SqueezeLabelV2" name="validityIssuedOn">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="13" column="0">
<widget class="QLabel" name="label_22">
<property name="text">
<string>Expires On:</string>
</property>
</widget>
</item>
<item row="13" column="1">
<widget class="SqueezeLabelV2" name="validityExpiresOn">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
@ -523,6 +370,9 @@
</property>
</spacer>
</item>
<item row="1" column="0">
<layout class="QVBoxLayout" name="certFrame"/>
</item>
</layout>
</widget>
</widget>

View File

@ -44,6 +44,13 @@ WebPage::WebPage(WebView* parent, QupZilla* mainClass)
connect(this, SIGNAL(loadStarted()), this, SLOT(loadingStarted()));
connect(this, SIGNAL(loadProgress(int)), this, SLOT(progress(int)));
connect(this, SIGNAL(loadFinished(bool)), this, SLOT(finished()));
connect(m_view, SIGNAL(urlChanged(QUrl)), this, SLOT(urlChanged(QUrl)));
}
void WebPage::urlChanged(const QUrl &url)
{
Q_UNUSED(url)
m_adBlockedEntries.clear();
}
void WebPage::progress(int prog)
@ -60,11 +67,12 @@ void WebPage::progress(int prog)
void WebPage::finished()
{
progress(100);
QTimer::singleShot(100, this, SLOT(cleanBlockedObjects()));
}
void WebPage::loadingStarted()
{
m_adBlockedEntries.clear();
// m_adBlockedEntries.clear();
m_blockAlerts = false;
//m_SslCert.clear();
}
@ -170,11 +178,33 @@ void WebPage::addAdBlockRule(const QString &filter, const QUrl &url)
entry.rule = filter;
entry.url = url;
m_adBlockedEntries.append(entry);
if (!m_adBlockedEntries.contains(entry))
m_adBlockedEntries.append(entry);
}
void WebPage::cleanBlockedObjects()
{
QStringList findingStrings;
foreach (AdBlockedEntry entry, m_adBlockedEntries) {
if (entry.url.toString().endsWith(".js"))
continue;
findingStrings.append(entry.url.toString());
QUrl mainFrameUrl = mainFrame()->url();
if (entry.url.scheme() == mainFrameUrl.scheme() && entry.url.host() == mainFrameUrl.host()) {
//May be relative url
QString relativeUrl = qz_makeRelativeUrl(mainFrameUrl, entry.url).toString();
findingStrings.append(relativeUrl);
if (relativeUrl.startsWith("/"))
findingStrings.append(relativeUrl.right(relativeUrl.size() - 1));
}
}
QWebElement docElement = mainFrame()->documentElement();
QWebElementCollection elements;
elements.append(docElement.findAll("*[src=\"" + url.toString() + "\"]"));
foreach (QString s, findingStrings)
elements.append(docElement.findAll("*[src=\"" + s + "\"]"));
foreach (QWebElement element, elements)
element.setAttribute("style", "display:none;");
}

View File

@ -40,6 +40,11 @@ public:
struct AdBlockedEntry {
QString rule;
QUrl url;
bool operator==(const AdBlockedEntry &other)
{
return (this->rule == other.rule && this->url == other.url);
}
};
WebPage(WebView* parent, QupZilla* mainClass);
@ -68,6 +73,10 @@ protected slots:
void progress(int prog);
void finished();
private slots:
void cleanBlockedObjects();
void urlChanged(const QUrl &url);
private:
virtual bool supportsExtension(Extension extension) const { return (extension == ErrorPageExtension); }
virtual bool extension(Extension extension, const ExtensionOption* option, ExtensionReturn* output = 0);

View File

@ -600,6 +600,62 @@ p, li { white-space: pre-wrap; }
<translation>Databáze byla úspěšně optimalizována.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Velikost databáze před: &lt;/b&gt;%1&lt;br/&gt;&lt;b&gt;Velikost databáze po: &lt;/b&gt;%2</translation>
</message>
</context>
<context>
<name>CertificateInfoWidget</name>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="17"/>
<source>&lt;b&gt;Issued To&lt;/b&gt;</source>
<translation>&lt;b&gt;Vydáno pro&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="24"/>
<location filename="../src/tools/certificateinfowidget.ui" line="87"/>
<source>Common Name (CN):</source>
<translation>Obecné jméno (CN):</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="38"/>
<location filename="../src/tools/certificateinfowidget.ui" line="101"/>
<source>Organization (O):</source>
<translation>Organizace (O):</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="52"/>
<location filename="../src/tools/certificateinfowidget.ui" line="115"/>
<source>Organizational Unit (OU):</source>
<translation>Jednotka organizace (OU):</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="66"/>
<source>Serial Number:</source>
<translation>Sériové číslo:</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="80"/>
<source>&lt;b&gt;Issued By&lt;/b&gt;</source>
<translation>&lt;b&gt;Vydal&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="129"/>
<source>&lt;b&gt;Validity&lt;/b&gt;</source>
<translation>&lt;b&gt;Platnost&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="136"/>
<source>Issued On:</source>
<translation>Vydáno dne:</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="150"/>
<source>Expires On:</source>
<translation>Platný do:</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.cpp" line="7"/>
<source>&lt;not set in certificate&gt;</source>
<translation>&lt;není součástí certifikátu&gt;</translation>
</message>
</context>
<context>
<name>ClearPrivateData</name>
<message>
@ -838,13 +894,13 @@ p, li { white-space: pre-wrap; }
<context>
<name>DownloadFileHelper</name>
<message>
<location filename="../src/downloads/downloadfilehelper.cpp" line="99"/>
<location filename="../src/downloads/downloadfilehelper.cpp" line="103"/>
<location filename="../src/downloads/downloadfilehelper.cpp" line="100"/>
<location filename="../src/downloads/downloadfilehelper.cpp" line="104"/>
<source>Save file as...</source>
<translation>Uložit soubor jako...</translation>
</message>
<message>
<location filename="../src/downloads/downloadfilehelper.cpp" line="189"/>
<location filename="../src/downloads/downloadfilehelper.cpp" line="191"/>
<source>NoNameDownload</source>
<translation>BezNazvu</translation>
</message>
@ -1011,29 +1067,29 @@ nebyl nalezen!</translation>
<translation>% - Správce stahování</translation>
</message>
<message>
<location filename="../src/downloads/downloadmanager.cpp" line="191"/>
<location filename="../src/downloads/downloadmanager.cpp" line="194"/>
<source>Download Finished</source>
<translation>Stahování dokončeno</translation>
</message>
<message>
<location filename="../src/downloads/downloadmanager.cpp" line="191"/>
<location filename="../src/downloads/downloadmanager.cpp" line="194"/>
<source>All files have been successfuly downloaded.</source>
<translation>Všechna stahování byla úspěšně dokončena.</translation>
</message>
<message>
<location filename="../src/downloads/downloadmanager.cpp" line="235"/>
<location filename="../src/downloads/downloadmanager.cpp" line="238"/>
<source>Warning</source>
<translation>Varování</translation>
</message>
<message>
<location filename="../src/downloads/downloadmanager.cpp" line="236"/>
<location filename="../src/downloads/downloadmanager.cpp" line="239"/>
<source>Are you sure to quit? All uncompleted downloads will be cancelled!</source>
<translation>Jste si jistý že chcete skončit? Všechna nedokončená stahování budou zrušena!</translation>
</message>
<message>
<location filename="../src/downloads/downloadmanager.ui" line="20"/>
<location filename="../src/downloads/downloadmanager.cpp" line="95"/>
<location filename="../src/downloads/downloadmanager.cpp" line="196"/>
<location filename="../src/downloads/downloadmanager.cpp" line="199"/>
<source>Download Manager</source>
<translation>Správce stahování</translation>
</message>
@ -1324,12 +1380,12 @@ nebyl nalezen!</translation>
<context>
<name>MainApplication</name>
<message>
<location filename="../src/app/mainapplication.cpp" line="556"/>
<location filename="../src/app/mainapplication.cpp" line="557"/>
<source>Last session crashed</source>
<translation>Poslední relace spadla</translation>
</message>
<message>
<location filename="../src/app/mainapplication.cpp" line="557"/>
<location filename="../src/app/mainapplication.cpp" line="558"/>
<source>&lt;b&gt;QupZilla crashed :-(&lt;/b&gt;&lt;br/&gt;Oops, last session of QupZilla ends with its crash. We are very sorry. Would you try to restore saved state?</source>
<translation>&lt;b&gt;QupZilla spadla :-(&lt;/b&gt;&lt;br/&gt;Oops, poslední relace QupZilly skončila jejím pádem. Velice se omlouváme. Přejete si obnovit uložený stav?</translation>
</message>
@ -2496,7 +2552,7 @@ nebyl nalezen!</translation>
<translation>Prázdný</translation>
</message>
<message>
<location filename="../src/app/qupzilla.h" line="145"/>
<location filename="../src/app/qupzilla.h" line="137"/>
<source>New tab</source>
<translation>Nový panel</translation>
</message>
@ -2779,62 +2835,52 @@ nebyl nalezen!</translation>
<translation>Copyright</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="159"/>
<source>Linux</source>
<translation>Linux</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="162"/>
<source>Windows</source>
<translation>Windows</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="165"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="158"/>
<source>Version</source>
<translation>Verze</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="166"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="159"/>
<source>WebKit version</source>
<translation>Verze WebKitu</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="167"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="160"/>
<source>Build time</source>
<translation>Sestaveno</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="168"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="161"/>
<source>Platform</source>
<translation>Platforma</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="172"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="164"/>
<source>Settings</source>
<translation>Nastavení</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="173"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="165"/>
<source>Saved session</source>
<translation>Uložené relace</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="174"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="166"/>
<source>Pinned tabs</source>
<translation>Připíchnuté panely</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="175"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="167"/>
<source>Themes</source>
<translation>Témata</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="176"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="168"/>
<source>Plugins</source>
<translation>Doplňky</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="177"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="169"/>
<source>Translations</source>
<translation>Překlady</translation>
</message>
@ -3150,54 +3196,6 @@ Prosím přidejte si nějaký kliknutím na RSS ikonku v navigačním řádku.</
<source>&lt;b&gt;Preview&lt;/b&gt;</source>
<translation>&lt;b&gt;Náhled&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="366"/>
<source>&lt;b&gt;Issued To&lt;/b&gt;</source>
<translation>&lt;b&gt;Vydáno pro&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="373"/>
<location filename="../src/webview/siteinfo.ui" line="436"/>
<source>Common Name (CN):</source>
<translation>Obecné jméno (CN):</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="387"/>
<location filename="../src/webview/siteinfo.ui" line="450"/>
<source>Organization (O):</source>
<translation>Organizace (O):</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="401"/>
<location filename="../src/webview/siteinfo.ui" line="464"/>
<source>Organizational Unit (OU):</source>
<translation>Jednotka organizace (OU):</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="415"/>
<source>Serial Number:</source>
<translation>Sériové číslo:</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="429"/>
<source>&lt;b&gt;Issued By&lt;/b&gt;</source>
<translation>&lt;b&gt;Vydal&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="478"/>
<source>&lt;b&gt;Validity&lt;/b&gt;</source>
<translation>&lt;b&gt;Platnost&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="485"/>
<source>Issued On:</source>
<translation>Vydáno dne:</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="499"/>
<source>Expires On:</source>
<translation>Platný do:</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="186"/>
<source>Site address:</source>
@ -3210,68 +3208,68 @@ Prosím přidejte si nějaký kliknutím na RSS ikonku v navigačním řádku.</
<translation>Meta tagy na stránce:</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="28"/>
<location filename="../src/webview/siteinfo.cpp" line="29"/>
<source>&lt;not set in certificate&gt;</source>
<translation>&lt;není součástí certifikátu&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="100"/>
<location filename="../src/webview/siteinfo.cpp" line="102"/>
<source>&lt;b&gt;Connection is Encrypted.&lt;/b&gt;</source>
<translation>&lt;b&gt;Připojení je zabezpečené.&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="101"/>
<location filename="../src/webview/siteinfo.cpp" line="103"/>
<source>&lt;b&gt;Your connection to this page is secured with this certificate: &lt;/b&gt;</source>
<translation>&lt;b&gt;Vaše připojení k serveru je zabezpečeno tímto certifikátem: &lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="115"/>
<location filename="../src/webview/siteinfo.cpp" line="108"/>
<source>&lt;b&gt;Connection Not Encrypted.&lt;/b&gt;</source>
<translation>&lt;b&gt;Připojení není zabezpečené.&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="117"/>
<location filename="../src/webview/siteinfo.cpp" line="109"/>
<source>&lt;b&gt;Your connection to this page is not secured!&lt;/b&gt;</source>
<translation>&lt;b&gt;Vaše připojení k serveru není zabezpečené!&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="134"/>
<location filename="../src/webview/siteinfo.cpp" line="126"/>
<source>Copy Image Location</source>
<translation>Kopírovat adresu obrázku</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="135"/>
<location filename="../src/webview/siteinfo.cpp" line="127"/>
<source>Copy Image Name</source>
<translation>Kopírovat jméno obrázku</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="137"/>
<location filename="../src/webview/siteinfo.cpp" line="129"/>
<source>Save Image to Disk</source>
<translation>Uložit obrázek na disk</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="162"/>
<location filename="../src/webview/siteinfo.cpp" line="172"/>
<location filename="../src/webview/siteinfo.cpp" line="154"/>
<location filename="../src/webview/siteinfo.cpp" line="164"/>
<source>Error!</source>
<translation>Chyba!</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="162"/>
<location filename="../src/webview/siteinfo.cpp" line="154"/>
<source>This preview is not available!</source>
<translation>Tento náhled není k dispozici!</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="166"/>
<location filename="../src/webview/siteinfo.cpp" line="158"/>
<source>Save image...</source>
<translation>Uložit obrázek...</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="172"/>
<location filename="../src/webview/siteinfo.cpp" line="164"/>
<source>Cannot write to file!</source>
<translation>Nemohu zapisovat do souboru!</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="202"/>
<location filename="../src/webview/siteinfo.cpp" line="194"/>
<source>Preview not available</source>
<translation>Náhled není k dispozici</translation>
</message>
@ -3615,17 +3613,17 @@ Prosím přidejte si nějaký kliknutím na RSS ikonku v navigačním řádku.</
<context>
<name>Updater</name>
<message>
<location filename="../src/other/updater.cpp" line="51"/>
<location filename="../src/other/updater.cpp" line="98"/>
<source>Update available</source>
<translation>Dostupná aktualizace</translation>
</message>
<message>
<location filename="../src/other/updater.cpp" line="51"/>
<location filename="../src/other/updater.cpp" line="98"/>
<source>New version of QupZilla is ready to download.</source>
<translation>Nová verze QupZilly je připravena ke stažení.</translation>
</message>
<message>
<location filename="../src/other/updater.cpp" line="62"/>
<location filename="../src/other/updater.cpp" line="109"/>
<source>Update</source>
<translation>Aktualizovat</translation>
</message>

View File

@ -604,6 +604,62 @@ p, li { white-space: pre-wrap; }
<translation>Databáza bola úspešne optimalizovaná.&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Veľkosť databáze pred: &lt;/b&gt;%1&lt;br/&gt;&lt;b&gt;Veľkosť databáze por: &lt;/b&gt;%2</translation>
</message>
</context>
<context>
<name>CertificateInfoWidget</name>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="17"/>
<source>&lt;b&gt;Issued To&lt;/b&gt;</source>
<translation>&lt;b&gt;Vydané pre&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="24"/>
<location filename="../src/tools/certificateinfowidget.ui" line="87"/>
<source>Common Name (CN):</source>
<translation>Obyčajné meno (CN):</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="38"/>
<location filename="../src/tools/certificateinfowidget.ui" line="101"/>
<source>Organization (O):</source>
<translation>Organizácia (O):</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="52"/>
<location filename="../src/tools/certificateinfowidget.ui" line="115"/>
<source>Organizational Unit (OU):</source>
<translation>Organizačná jednotka (OU):</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="66"/>
<source>Serial Number:</source>
<translation>Sériové číslo:</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="80"/>
<source>&lt;b&gt;Issued By&lt;/b&gt;</source>
<translation>&lt;b&gt;Vydal&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="129"/>
<source>&lt;b&gt;Validity&lt;/b&gt;</source>
<translation>&lt;b&gt;Platnosť&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="136"/>
<source>Issued On:</source>
<translation>Vdané dňa:</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.ui" line="150"/>
<source>Expires On:</source>
<translation>Platný do:</translation>
</message>
<message>
<location filename="../src/tools/certificateinfowidget.cpp" line="7"/>
<source>&lt;not set in certificate&gt;</source>
<translation>&lt;nie je súčasťou certifikátu&gt;</translation>
</message>
</context>
<context>
<name>ClearPrivateData</name>
<message>
@ -841,13 +897,13 @@ p, li { white-space: pre-wrap; }
<context>
<name>DownloadFileHelper</name>
<message>
<location filename="../src/downloads/downloadfilehelper.cpp" line="99"/>
<location filename="../src/downloads/downloadfilehelper.cpp" line="103"/>
<location filename="../src/downloads/downloadfilehelper.cpp" line="100"/>
<location filename="../src/downloads/downloadfilehelper.cpp" line="104"/>
<source>Save file as...</source>
<translation>Uložiť súbor ako...</translation>
</message>
<message>
<location filename="../src/downloads/downloadfilehelper.cpp" line="189"/>
<location filename="../src/downloads/downloadfilehelper.cpp" line="191"/>
<source>NoNameDownload</source>
<translation>BezNazvu</translation>
</message>
@ -1014,29 +1070,29 @@ p, li { white-space: pre-wrap; }
<translation>% - Správca sťahovania</translation>
</message>
<message>
<location filename="../src/downloads/downloadmanager.cpp" line="191"/>
<location filename="../src/downloads/downloadmanager.cpp" line="194"/>
<source>Download Finished</source>
<translation>Sťahovanie dokončené</translation>
</message>
<message>
<location filename="../src/downloads/downloadmanager.cpp" line="191"/>
<location filename="../src/downloads/downloadmanager.cpp" line="194"/>
<source>All files have been successfuly downloaded.</source>
<translation>Všetky súbory boli úspešne stiahnuté.</translation>
</message>
<message>
<location filename="../src/downloads/downloadmanager.cpp" line="235"/>
<location filename="../src/downloads/downloadmanager.cpp" line="238"/>
<source>Warning</source>
<translation>Upozornenie</translation>
</message>
<message>
<location filename="../src/downloads/downloadmanager.cpp" line="236"/>
<location filename="../src/downloads/downloadmanager.cpp" line="239"/>
<source>Are you sure to quit? All uncompleted downloads will be cancelled!</source>
<translation>Ste si istý, že chcete skončiť? Všetky nedokončené sťahovania budú zrušene!</translation>
</message>
<message>
<location filename="../src/downloads/downloadmanager.ui" line="20"/>
<location filename="../src/downloads/downloadmanager.cpp" line="95"/>
<location filename="../src/downloads/downloadmanager.cpp" line="196"/>
<location filename="../src/downloads/downloadmanager.cpp" line="199"/>
<source>Download Manager</source>
<translation>Správca sťahovania</translation>
</message>
@ -1326,12 +1382,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>MainApplication</name>
<message>
<location filename="../src/app/mainapplication.cpp" line="556"/>
<location filename="../src/app/mainapplication.cpp" line="557"/>
<source>Last session crashed</source>
<translation>Posledná relácia spadla</translation>
</message>
<message>
<location filename="../src/app/mainapplication.cpp" line="557"/>
<location filename="../src/app/mainapplication.cpp" line="558"/>
<source>&lt;b&gt;QupZilla crashed :-(&lt;/b&gt;&lt;br/&gt;Oops, last session of QupZilla ends with its crash. We are very sorry. Would you try to restore saved state?</source>
<translation>&lt;b&gt;QupZilla spadla :-(&lt;/b&gt;&lt;br/&gt;Oops, posledná relácia QupZilly skončila chybou. Prepáčte. Chcete obnoviť uložený stav?</translation>
</message>
@ -2497,7 +2553,7 @@ p, li { white-space: pre-wrap; }
<translation>Prázdny</translation>
</message>
<message>
<location filename="../src/app/qupzilla.h" line="145"/>
<location filename="../src/app/qupzilla.h" line="137"/>
<source>New tab</source>
<translation>Nový panel</translation>
</message>
@ -2780,62 +2836,52 @@ p, li { white-space: pre-wrap; }
<translation>Copyright</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="159"/>
<source>Linux</source>
<translation>Linux</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="162"/>
<source>Windows</source>
<translation>Windows</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="165"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="158"/>
<source>Version</source>
<translation>Verzia</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="166"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="159"/>
<source>WebKit version</source>
<translation>Verzia WebKitu</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="167"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="160"/>
<source>Build time</source>
<translation>Vyrobene</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="168"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="161"/>
<source>Platform</source>
<translation>Platforma</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="172"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="164"/>
<source>Settings</source>
<translation>Nastavenia</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="173"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="165"/>
<source>Saved session</source>
<translation>Uložiť reláciu</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="174"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="166"/>
<source>Pinned tabs</source>
<translation>Pripevnené panely</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="175"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="167"/>
<source>Themes</source>
<translation>Témy</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="176"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="168"/>
<source>Plugins</source>
<translation>Doplnky</translation>
</message>
<message>
<location filename="../src/network/qupzillaschemehandler.cpp" line="177"/>
<location filename="../src/network/qupzillaschemehandler.cpp" line="169"/>
<source>Translations</source>
<translation>Preklady</translation>
</message>
@ -3151,54 +3197,6 @@ Prosím pridajte si nejaký kliknutím na RSS ikonku v navigačnom riadku.</tran
<source>&lt;b&gt;Preview&lt;/b&gt;</source>
<translation>&lt;b&gt;Náhlad&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="366"/>
<source>&lt;b&gt;Issued To&lt;/b&gt;</source>
<translation>&lt;b&gt;Vydané pre&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="373"/>
<location filename="../src/webview/siteinfo.ui" line="436"/>
<source>Common Name (CN):</source>
<translation>Obyčajné meno (CN):</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="387"/>
<location filename="../src/webview/siteinfo.ui" line="450"/>
<source>Organization (O):</source>
<translation>Organizácia (O):</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="401"/>
<location filename="../src/webview/siteinfo.ui" line="464"/>
<source>Organizational Unit (OU):</source>
<translation>Organizačná jednotka (OU):</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="415"/>
<source>Serial Number:</source>
<translation>Sériové číslo:</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="429"/>
<source>&lt;b&gt;Issued By&lt;/b&gt;</source>
<translation>&lt;b&gt;Vydal&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="478"/>
<source>&lt;b&gt;Validity&lt;/b&gt;</source>
<translation>&lt;b&gt;Platnosť&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="485"/>
<source>Issued On:</source>
<translation>Vdané dňa:</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="499"/>
<source>Expires On:</source>
<translation>Platný do:</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.ui" line="186"/>
<source>Site address:</source>
@ -3210,68 +3208,68 @@ Prosím pridajte si nejaký kliknutím na RSS ikonku v navigačnom riadku.</tran
<translation>Meta tágy na stránke:</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="28"/>
<location filename="../src/webview/siteinfo.cpp" line="29"/>
<source>&lt;not set in certificate&gt;</source>
<translation>&lt;nie je súčasťou certifikátu&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="100"/>
<location filename="../src/webview/siteinfo.cpp" line="102"/>
<source>&lt;b&gt;Connection is Encrypted.&lt;/b&gt;</source>
<translation>&lt;b&gt;Pripojenie je zabezpečené.&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="101"/>
<location filename="../src/webview/siteinfo.cpp" line="103"/>
<source>&lt;b&gt;Your connection to this page is secured with this certificate: &lt;/b&gt;</source>
<translation>&lt;b&gt;Vaše pripojenie k serveru je zabezpečené týmto certifikátom: &lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="115"/>
<location filename="../src/webview/siteinfo.cpp" line="108"/>
<source>&lt;b&gt;Connection Not Encrypted.&lt;/b&gt;</source>
<translation>&lt;b&gt;Pripojenie nie je zabezpečené.&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="117"/>
<location filename="../src/webview/siteinfo.cpp" line="109"/>
<source>&lt;b&gt;Your connection to this page is not secured!&lt;/b&gt;</source>
<translation>&lt;b&gt;Vaše pripojenie k serveru nie je zabezpečené&lt;/b&gt;</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="134"/>
<location filename="../src/webview/siteinfo.cpp" line="126"/>
<source>Copy Image Location</source>
<translation>Kopírovať adresu obrázku</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="135"/>
<location filename="../src/webview/siteinfo.cpp" line="127"/>
<source>Copy Image Name</source>
<translation>Kopírovať meno obrázku</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="137"/>
<location filename="../src/webview/siteinfo.cpp" line="129"/>
<source>Save Image to Disk</source>
<translation>Uložiť obrázok na disk</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="162"/>
<location filename="../src/webview/siteinfo.cpp" line="172"/>
<location filename="../src/webview/siteinfo.cpp" line="154"/>
<location filename="../src/webview/siteinfo.cpp" line="164"/>
<source>Error!</source>
<translation>Chyba!</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="162"/>
<location filename="../src/webview/siteinfo.cpp" line="154"/>
<source>This preview is not available!</source>
<translation>Tento náhlad nie je k dispozícií!</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="166"/>
<location filename="../src/webview/siteinfo.cpp" line="158"/>
<source>Save image...</source>
<translation>Uložiť obrázok...</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="172"/>
<location filename="../src/webview/siteinfo.cpp" line="164"/>
<source>Cannot write to file!</source>
<translation>Nemôžem zapisovať do súboru!</translation>
</message>
<message>
<location filename="../src/webview/siteinfo.cpp" line="202"/>
<location filename="../src/webview/siteinfo.cpp" line="194"/>
<source>Preview not available</source>
<translation>Náhlad nie je k dispozícií</translation>
</message>
@ -3615,17 +3613,17 @@ Prosím pridajte si nejaký kliknutím na RSS ikonku v navigačnom riadku.</tran
<context>
<name>Updater</name>
<message>
<location filename="../src/other/updater.cpp" line="51"/>
<location filename="../src/other/updater.cpp" line="98"/>
<source>Update available</source>
<translation>Dostupná aktualizácia</translation>
</message>
<message>
<location filename="../src/other/updater.cpp" line="51"/>
<location filename="../src/other/updater.cpp" line="98"/>
<source>New version of QupZilla is ready to download.</source>
<translation>Nová verzia QupZilly je pripravená na stiahnutie.</translation>
</message>
<message>
<location filename="../src/other/updater.cpp" line="62"/>
<location filename="../src/other/updater.cpp" line="109"/>
<source>Update</source>
<translation>Aktualizivať</translation>
</message>