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

Merge pull request #692 from pejakm/master

JavaScript privacy options in preferences
This commit is contained in:
David Rosca 2013-01-09 04:41:42 -08:00
commit 993c4edc04
11 changed files with 353 additions and 80 deletions

View File

@ -367,7 +367,7 @@ void MainApplication::loadSettings()
m_websettings->setAttribute(QWebSettings::JavascriptCanOpenWindows, settings.value("allowJavaScriptOpenWindow", false).toBool()); m_websettings->setAttribute(QWebSettings::JavascriptCanOpenWindows, settings.value("allowJavaScriptOpenWindow", false).toBool());
m_websettings->setAttribute(QWebSettings::JavaEnabled, settings.value("allowJava", true).toBool()); m_websettings->setAttribute(QWebSettings::JavaEnabled, settings.value("allowJava", true).toBool());
m_websettings->setAttribute(QWebSettings::DnsPrefetchEnabled, settings.value("DNS-Prefetch", false).toBool()); m_websettings->setAttribute(QWebSettings::DnsPrefetchEnabled, settings.value("DNS-Prefetch", false).toBool());
m_websettings->setAttribute(QWebSettings::JavascriptCanAccessClipboard, settings.value("JavaScriptCanAccessClipboard", true).toBool()); m_websettings->setAttribute(QWebSettings::JavascriptCanAccessClipboard, settings.value("allowJavaScriptAccessClipboard", true).toBool());
m_websettings->setAttribute(QWebSettings::LinksIncludedInFocusChain, settings.value("IncludeLinkInFocusChain", false).toBool()); m_websettings->setAttribute(QWebSettings::LinksIncludedInFocusChain, settings.value("IncludeLinkInFocusChain", false).toBool());
m_websettings->setAttribute(QWebSettings::ZoomTextOnly, settings.value("zoomTextOnly", false).toBool()); m_websettings->setAttribute(QWebSettings::ZoomTextOnly, settings.value("zoomTextOnly", false).toBool());
m_websettings->setAttribute(QWebSettings::PrintElementBackgrounds, settings.value("PrintElementBackground", true).toBool()); m_websettings->setAttribute(QWebSettings::PrintElementBackgrounds, settings.value("PrintElementBackground", true).toBool());
@ -387,7 +387,7 @@ void MainApplication::loadSettings()
#if (QTWEBKIT_VERSION >= QTWEBKIT_VERSION_CHECK(2, 2, 0)) #if (QTWEBKIT_VERSION >= QTWEBKIT_VERSION_CHECK(2, 2, 0))
m_websettings->setAttribute(QWebSettings::HyperlinkAuditingEnabled, true); m_websettings->setAttribute(QWebSettings::HyperlinkAuditingEnabled, true);
m_websettings->setAttribute(QWebSettings::JavascriptCanCloseWindows, true); m_websettings->setAttribute(QWebSettings::JavascriptCanCloseWindows, settings.value("allowJavaScriptCloseWindow", false).toBool());
#endif #endif
setWheelScrollLines(settings.value("wheelScrollLines", wheelScrollLines()).toInt()); setWheelScrollLines(settings.value("wheelScrollLines", wheelScrollLines()).toInt());

View File

@ -92,6 +92,7 @@ SOURCES += \
autofill/autofillnotification.cpp \ autofill/autofillnotification.cpp \
rss/rssnotification.cpp \ rss/rssnotification.cpp \
preferences/sslmanager.cpp \ preferences/sslmanager.cpp \
preferences/jsoptions.cpp \
tools/animatedwidget.cpp \ tools/animatedwidget.cpp \
tools/htmlhighlighter.cpp \ tools/htmlhighlighter.cpp \
tools/colors.cpp \ tools/colors.cpp \
@ -248,6 +249,7 @@ HEADERS += \
autofill/autofillnotification.h \ autofill/autofillnotification.h \
rss/rssnotification.h \ rss/rssnotification.h \
preferences/sslmanager.h \ preferences/sslmanager.h \
preferences/jsoptions.h \
tools/animatedwidget.h \ tools/animatedwidget.h \
tools/htmlhighlighter.h \ tools/htmlhighlighter.h \
other/sourceviewersearch.h \ other/sourceviewersearch.h \
@ -374,6 +376,7 @@ FORMS += \
autofill/autofillnotification.ui \ autofill/autofillnotification.ui \
rss/rssnotification.ui \ rss/rssnotification.ui \
preferences/sslmanager.ui \ preferences/sslmanager.ui \
preferences/jsoptions.ui \
other/clearprivatedata.ui \ other/clearprivatedata.ui \
other/sourceviewersearch.ui \ other/sourceviewersearch.ui \
adblock/adblockdialog.ui \ adblock/adblockdialog.ui \

View File

@ -46,6 +46,10 @@ void QzSettings::loadSettings()
loadTabsOnActivation = settings.value("LoadTabsOnActivation", false).toBool(); loadTabsOnActivation = settings.value("LoadTabsOnActivation", false).toBool();
autoOpenProtocols = settings.value("AutomaticallyOpenProtocols", QStringList()).toStringList(); autoOpenProtocols = settings.value("AutomaticallyOpenProtocols", QStringList()).toStringList();
blockedProtocols = settings.value("BlockOpeningProtocols", QStringList()).toStringList(); blockedProtocols = settings.value("BlockOpeningProtocols", QStringList()).toStringList();
allowJsGeometryChange = settings.value("allowJavaScriptGeometryChange", true).toBool();
allowJsHideMenuBar = settings.value("allowJavaScriptHideMenuBar", true).toBool();
allowJsHideStatusBar = settings.value("allowJavaScriptHideStatusBar", true).toBool();
allowJsHideToolBar = settings.value("allowJavaScriptHideToolBar", true).toBool();
settings.endGroup(); settings.endGroup();
settings.beginGroup("Browser-Tabs-Settings"); settings.beginGroup("Browser-Tabs-Settings");

View File

@ -47,6 +47,10 @@ public:
// Web-Browser-Settings // Web-Browser-Settings
int defaultZoom; int defaultZoom;
bool loadTabsOnActivation; bool loadTabsOnActivation;
bool allowJsGeometryChange;
bool allowJsHideMenuBar;
bool allowJsHideStatusBar;
bool allowJsHideToolBar;
QStringList autoOpenProtocols; QStringList autoOpenProtocols;
QStringList blockedProtocols; QStringList blockedProtocols;

View File

@ -21,6 +21,7 @@
#include "qupzilla.h" #include "qupzilla.h"
#include "tabwidget.h" #include "tabwidget.h"
#include "tabbedwebview.h" #include "tabbedwebview.h"
#include "qzsettings.h"
#include <QTimer> #include <QTimer>
#include <QStatusBar> #include <QStatusBar>
@ -56,7 +57,7 @@ PopupWebPage::PopupWebPage(QWebPage::WebWindowType type, QupZilla* mainClass)
void PopupWebPage::slotGeometryChangeRequested(const QRect &rect) void PopupWebPage::slotGeometryChangeRequested(const QRect &rect)
{ {
if (rect.isValid()) { if (rect.isValid() && qzSettings->allowJsGeometryChange) {
m_geometry = rect; m_geometry = rect;
m_createNewWindow = true; m_createNewWindow = true;
} }
@ -64,16 +65,19 @@ void PopupWebPage::slotGeometryChangeRequested(const QRect &rect)
void PopupWebPage::slotMenuBarVisibilityChangeRequested(bool visible) void PopupWebPage::slotMenuBarVisibilityChangeRequested(bool visible)
{ {
if (!qzSettings->allowJsHideMenuBar) return;
m_menuBarVisible = visible; m_menuBarVisible = visible;
} }
void PopupWebPage::slotStatusBarVisibilityChangeRequested(bool visible) void PopupWebPage::slotStatusBarVisibilityChangeRequested(bool visible)
{ {
if (!qzSettings->allowJsHideStatusBar) return;
m_statusBarVisible = visible; m_statusBarVisible = visible;
} }
void PopupWebPage::slotToolBarVisibilityChangeRequested(bool visible) void PopupWebPage::slotToolBarVisibilityChangeRequested(bool visible)
{ {
if (!qzSettings->allowJsHideToolBar) return;
m_toolBarVisible = visible; m_toolBarVisible = visible;
} }

View File

@ -0,0 +1,65 @@
/* ============================================================
* QupZilla - WebKit based browser
* Copyright (C) 2010-2012 David Rosca <nowrep@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* ============================================================ */
#include "jsoptions.h"
#include "ui_jsoptions.h"
#include "mainapplication.h"
#include "settings.h"
#include <QFileDialog>
JsOptions::JsOptions(QWidget* parent)
: QDialog(parent)
, ui(new Ui::JsOptions)
{
setAttribute(Qt::WA_DeleteOnClose);
ui->setupUi(this);
Settings settings;
settings.beginGroup("Web-Browser-Settings");
ui->jscanCloseWindow->setChecked(settings.value("allowJavaScriptCloseWindow", false).toBool());
ui->jscanOpenWindow->setChecked(settings.value("allowJavaScriptOpenWindow", false).toBool());
ui->jscanChangeSize->setChecked(settings.value("allowJavaScriptGeometryChange", true).toBool());
ui->jscanHideMenu->setChecked(settings.value("allowJavaScriptHideMenuBar", true).toBool());
ui->jscanHideStatus->setChecked(settings.value("allowJavaScriptHideStatusBar", true).toBool());
ui->jscanHideTool->setChecked(settings.value("allowJavaScriptHideToolBar", true).toBool());
ui->jscanAccessClipboard->setChecked(settings.value("allowJavaScriptAccessClipboard", false).toBool());
settings.endGroup();
connect(ui->jsoptsbbox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonClicked(QAbstractButton*)));
}
void JsOptions::accept()
{
Settings settings;
settings.beginGroup("Web-Browser-Settings");
settings.setValue("allowJavaScriptCloseWindow", ui->jscanCloseWindow->isChecked());
settings.setValue("allowJavaScriptOpenWindow", ui->jscanOpenWindow->isChecked());
settings.setValue("allowJavaScriptGeometryChange", ui->jscanChangeSize->isChecked());
settings.setValue("allowJavaScriptHideMenuBar", ui->jscanHideMenu->isChecked());
settings.setValue("allowJavaScriptHideStatusBar", ui->jscanHideStatus->isChecked());
settings.setValue("allowJavaScriptHideToolBar", ui->jscanHideTool->isChecked());
settings.setValue("allowJavaScriptAccessClipboard", ui->jscanAccessClipboard->isChecked());
settings.endGroup();
QDialog::close();
}
JsOptions::~JsOptions()
{
delete ui;
}

View File

@ -0,0 +1,46 @@
/* ============================================================
* QupZilla - WebKit based browser
* Copyright (C) 2010-2012 David Rosca <nowrep@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* ============================================================ */
#ifndef JSOPTIONS_H
#define JSOPTIONS_H
#include <QDialog>
#include "qz_namespace.h"
namespace Ui
{
class JsOptions;
}
class QT_QUPZILLA_EXPORT JsOptions : public QDialog
{
Q_OBJECT
public slots:
void accept();
public:
explicit JsOptions(QWidget* parent = 0);
~JsOptions();
private:
Ui::JsOptions* ui;
};
#endif // JSOPTIONS_H

View File

@ -0,0 +1,150 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>JsOptions</class>
<widget class="QDialog" name="JsOptions">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>214</width>
<height>247</height>
</rect>
</property>
<property name="windowTitle">
<string>JavaScript Options</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Allow JavaScript to:</string>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="jscanCloseWindow">
<property name="text">
<string>Close windows</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="jscanOpenWindow">
<property name="toolTip">
<string>If enabled, pages will be allowed to automatically open popup windows</string>
</property>
<property name="text">
<string>Open popup windows</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="jscanChangeSize">
<property name="text">
<string>Change window size</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="jscanHideMenu">
<property name="text">
<string>Hide menu bar</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="jscanHideStatus">
<property name="text">
<string>Hide status bar</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="jscanHideTool">
<property name="text">
<string>Hide tool bar</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="jscanAccessClipboard">
<property name="text">
<string>Access clipboard</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QDialogButtonBox" name="jsoptsbbox">
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>jsoptsbbox</sender>
<signal>accepted()</signal>
<receiver>JsOptions</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>jsoptsbbox</sender>
<signal>rejected()</signal>
<receiver>JsOptions</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

@ -30,6 +30,7 @@
#include "pluginsmanager.h" #include "pluginsmanager.h"
#include "qtwin.h" #include "qtwin.h"
#include "sslmanager.h" #include "sslmanager.h"
#include "jsoptions.h"
#include "networkproxyfactory.h" #include "networkproxyfactory.h"
#include "networkmanager.h" #include "networkmanager.h"
#include "desktopnotificationsfactory.h" #include "desktopnotificationsfactory.h"
@ -252,7 +253,7 @@ Preferences::Preferences(QupZilla* mainClass, QWidget* parent)
ui->xssAuditing->setChecked(settings.value("XSSAuditing", false).toBool()); ui->xssAuditing->setChecked(settings.value("XSSAuditing", false).toBool());
if (!ui->allowJavaScript->isChecked()) { if (!ui->allowJavaScript->isChecked()) {
ui->blockPopup->setEnabled(false); ui->jsOptionsButton->setEnabled(false);
} }
connect(ui->allowJavaScript, SIGNAL(toggled(bool)), this, SLOT(allowJavaScriptChanged(bool))); connect(ui->allowJavaScript, SIGNAL(toggled(bool)), this, SLOT(allowJavaScriptChanged(bool)));
//Cache //Cache
@ -289,8 +290,6 @@ Preferences::Preferences(QupZilla* mainClass, QWidget* parent)
ui->deleteHtml5storageOnClose->setChecked(settings.value("deleteHTML5StorageOnClose", false).toBool()); ui->deleteHtml5storageOnClose->setChecked(settings.value("deleteHTML5StorageOnClose", false).toBool());
connect(ui->html5storage, SIGNAL(toggled(bool)), this, SLOT(allowHtml5storageChanged(bool))); connect(ui->html5storage, SIGNAL(toggled(bool)), this, SLOT(allowHtml5storageChanged(bool)));
// Other // Other
ui->blockPopup->setChecked(!settings.value("allowJavaScriptOpenWindow", false).toBool());
ui->jscanAccessClipboard->setChecked(settings.value("JavaScriptCanAccessClipboard", true).toBool());
ui->doNotTrack->setChecked(settings.value("DoNotTrack", false).toBool()); ui->doNotTrack->setChecked(settings.value("DoNotTrack", false).toBool());
ui->sendReferer->setChecked(settings.value("SendReferer", true).toBool()); ui->sendReferer->setChecked(settings.value("SendReferer", true).toBool());
@ -458,6 +457,7 @@ Preferences::Preferences(QupZilla* mainClass, QWidget* parent)
connect(ui->preferredLanguages, SIGNAL(clicked()), this, SLOT(showAcceptLanguage())); connect(ui->preferredLanguages, SIGNAL(clicked()), this, SLOT(showAcceptLanguage()));
connect(ui->deleteHtml5storage, SIGNAL(clicked()), this, SLOT(deleteHtml5storage())); connect(ui->deleteHtml5storage, SIGNAL(clicked()), this, SLOT(deleteHtml5storage()));
connect(ui->uaManager, SIGNAL(clicked()), this, SLOT(openUserAgentManager())); connect(ui->uaManager, SIGNAL(clicked()), this, SLOT(openUserAgentManager()));
connect(ui->jsOptionsButton, SIGNAL(clicked()), this, SLOT(openJsOptions()));
connect(ui->listWidget, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(showStackedPage(QListWidgetItem*))); connect(ui->listWidget, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(showStackedPage(QListWidgetItem*)));
ui->listWidget->setItemSelected(ui->listWidget->itemAt(5, 5), true); ui->listWidget->setItemSelected(ui->listWidget->itemAt(5, 5), true);
@ -604,7 +604,7 @@ void Preferences::setManualProxyConfigurationEnabled(bool state)
void Preferences::allowJavaScriptChanged(bool state) void Preferences::allowJavaScriptChanged(bool state)
{ {
ui->blockPopup->setEnabled(state); ui->jsOptionsButton->setEnabled(state);
} }
void Preferences::saveHistoryChanged(bool stat) void Preferences::saveHistoryChanged(bool stat)
@ -637,6 +637,12 @@ void Preferences::openSslManager()
m->show(); m->show();
} }
void Preferences::openJsOptions()
{
JsOptions* m = new JsOptions(this);
m->show();
}
void Preferences::showAcceptLanguage() void Preferences::showAcceptLanguage()
{ {
AcceptLanguage a(this); AcceptLanguage a(this);
@ -886,10 +892,8 @@ void Preferences::saveSettings()
settings.beginGroup("Web-Browser-Settings"); settings.beginGroup("Web-Browser-Settings");
settings.setValue("allowFlash", ui->allowPlugins->isChecked()); settings.setValue("allowFlash", ui->allowPlugins->isChecked());
settings.setValue("allowJavaScript", ui->allowJavaScript->isChecked()); settings.setValue("allowJavaScript", ui->allowJavaScript->isChecked());
settings.setValue("allowJavaScriptOpenWindow", !ui->blockPopup->isChecked());
settings.setValue("allowJava", ui->allowJava->isChecked()); settings.setValue("allowJava", ui->allowJava->isChecked());
settings.setValue("DNS-Prefetch", ui->allowDNSPrefetch->isChecked()); settings.setValue("DNS-Prefetch", ui->allowDNSPrefetch->isChecked());
settings.setValue("JavaScriptCanAccessClipboard", ui->jscanAccessClipboard->isChecked());
settings.setValue("IncludeLinkInFocusChain", ui->linksInFocusChain->isChecked()); settings.setValue("IncludeLinkInFocusChain", ui->linksInFocusChain->isChecked());
settings.setValue("zoomTextOnly", ui->zoomTextOnly->isChecked()); settings.setValue("zoomTextOnly", ui->zoomTextOnly->isChecked());
settings.setValue("CaretBrowsing", ui->caretBrowsing->isChecked()); settings.setValue("CaretBrowsing", ui->caretBrowsing->isChecked());

View File

@ -61,6 +61,7 @@ private slots:
void deleteHtml5storage(); void deleteHtml5storage();
void chooseExternalDownloadManager(); void chooseExternalDownloadManager();
void openUserAgentManager(); void openUserAgentManager();
void openJsOptions();
void allowJavaScriptChanged(bool state); void allowJavaScriptChanged(bool state);
void saveHistoryChanged(bool state); void saveHistoryChanged(bool state);

View File

@ -167,16 +167,7 @@
<item row="4" column="2"> <item row="4" column="2">
<widget class="QFrame" name="newTabFrame"> <widget class="QFrame" name="newTabFrame">
<layout class="QHBoxLayout" name="horizontalLayout_3"> <layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="leftMargin"> <property name="margin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<item> <item>
@ -507,16 +498,7 @@
<string>Themes</string> <string>Themes</string>
</attribute> </attribute>
<layout class="QGridLayout" name="gridLayout_22"> <layout class="QGridLayout" name="gridLayout_22">
<property name="leftMargin"> <property name="margin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
@ -2047,21 +2029,30 @@
</widget> </widget>
<widget class="QWidget" name="privacyPage"> <widget class="QWidget" name="privacyPage">
<layout class="QGridLayout" name="gridLayout_12"> <layout class="QGridLayout" name="gridLayout_12">
<item row="26" column="1" colspan="4"> <item row="9" column="1" colspan="4">
<widget class="QCheckBox" name="jscanAccessClipboard"> <widget class="QCheckBox" name="saveCookies">
<property name="text"> <property name="text">
<string>JavaScript can access clipboard</string> <string>Allow storing of cookies</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="25" column="1" colspan="4"> <item row="10" column="1">
<widget class="QCheckBox" name="blockPopup"> <spacer name="horizontalSpacer">
<property name="text"> <property name="orientation">
<string>Block popup windows</string> <enum>Qt::Horizontal</enum>
</property> </property>
</widget> <property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item> </item>
<item row="20" column="1" colspan="4"> <item row="22" column="1" colspan="4">
<widget class="QCheckBox" name="sendReferer"> <widget class="QCheckBox" name="sendReferer">
<property name="text"> <property name="text">
<string>Send Referer header to servers</string> <string>Send Referer header to servers</string>
@ -2082,13 +2073,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="9" column="1" colspan="4">
<widget class="QCheckBox" name="saveCookies">
<property name="text">
<string>Allow storing of cookies</string>
</property>
</widget>
</item>
<item row="13" column="0"> <item row="13" column="0">
<spacer name="horizontalSpacer_20"> <spacer name="horizontalSpacer_20">
<property name="orientation"> <property name="orientation">
@ -2112,14 +2096,14 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="21" column="1" colspan="4"> <item row="23" column="1" colspan="4">
<widget class="QCheckBox" name="doNotTrack"> <widget class="QCheckBox" name="doNotTrack">
<property name="text"> <property name="text">
<string>Send Do Not Track header to servers</string> <string>Send Do Not Track header to servers</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="18" column="0" colspan="5"> <item row="20" column="0" colspan="5">
<widget class="QLabel" name="label_50"> <widget class="QLabel" name="label_50">
<property name="text"> <property name="text">
<string>&lt;b&gt;Other&lt;/b&gt;</string> <string>&lt;b&gt;Other&lt;/b&gt;</string>
@ -2188,29 +2172,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="10" column="2" colspan="2">
<widget class="QCheckBox" name="deleteCookiesOnClose">
<property name="text">
<string>Delete cookies on close</string>
</property>
</widget>
</item>
<item row="10" column="1">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="15" column="0" colspan="5"> <item row="15" column="0" colspan="5">
<widget class="QLabel" name="label_48"> <widget class="QLabel" name="label_48">
<property name="text"> <property name="text">
@ -2228,6 +2189,46 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="10" column="2" colspan="2">
<widget class="QCheckBox" name="deleteCookiesOnClose">
<property name="text">
<string>Delete cookies on close</string>
</property>
</widget>
</item>
<item row="18" column="0" colspan="5">
<widget class="QLabel" name="label_61">
<property name="mouseTracking">
<bool>true</bool>
</property>
<property name="text">
<string>&lt;b&gt;JavaScript&lt;/b&gt;</string>
</property>
</widget>
</item>
<item row="19" column="0" colspan="4">
<widget class="QLabel" name="label_25">
<property name="mouseTracking">
<bool>false</bool>
</property>
<property name="text">
<string>Manage JavaScript privacy options</string>
</property>
</widget>
</item>
<item row="19" column="4">
<widget class="QPushButton" name="jsOptionsButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>JavaScript options</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="notificationsPage"> <widget class="QWidget" name="notificationsPage">
@ -2368,16 +2369,7 @@
</sizepolicy> </sizepolicy>
</property> </property>
<layout class="QHBoxLayout" name="pluginsFrame"> <layout class="QHBoxLayout" name="pluginsFrame">
<property name="leftMargin"> <property name="margin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number> <number>0</number>
</property> </property>
</layout> </layout>