summaryrefslogtreecommitdiff
path: root/src/settings
diff options
context:
space:
mode:
Diffstat (limited to 'src/settings')
-rw-r--r--src/settings/advancedwidget.cpp70
-rw-r--r--src/settings/advancedwidget.h62
-rw-r--r--src/settings/appearancewidget.cpp119
-rw-r--r--src/settings/appearancewidget.h65
-rw-r--r--src/settings/generalwidget.cpp130
-rw-r--r--src/settings/generalwidget.h62
-rw-r--r--src/settings/networkwidget.cpp100
-rw-r--r--src/settings/networkwidget.h63
-rw-r--r--src/settings/passexceptionswidget.cpp73
-rw-r--r--src/settings/passexceptionswidget.h53
-rw-r--r--src/settings/password_exceptions.ui55
-rw-r--r--src/settings/privacywidget.cpp135
-rw-r--r--src/settings/privacywidget.h67
-rw-r--r--src/settings/settings_advanced.ui153
-rw-r--r--src/settings/settings_appearance.ui284
-rw-r--r--src/settings/settings_general.ui267
-rw-r--r--src/settings/settings_privacy.ui260
-rw-r--r--src/settings/settings_tabs.ui290
-rw-r--r--src/settings/settings_webkit.ui200
-rw-r--r--src/settings/settingsdialog.cpp227
-rw-r--r--src/settings/settingsdialog.h63
-rw-r--r--src/settings/tabswidget.cpp52
-rw-r--r--src/settings/tabswidget.h58
-rw-r--r--src/settings/webkitwidget.cpp71
-rw-r--r--src/settings/webkitwidget.h60
25 files changed, 3039 insertions, 0 deletions
diff --git a/src/settings/advancedwidget.cpp b/src/settings/advancedwidget.cpp
new file mode 100644
index 00000000..73c889dc
--- /dev/null
+++ b/src/settings/advancedwidget.cpp
@@ -0,0 +1,70 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2012 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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/>.
+*
+* ============================================================ */
+
+
+// Local Includes
+#include "advancedwidget.h"
+#include "advancedwidget.moc"
+
+// Qt Includes
+#include <QProcess>
+
+
+AdvancedWidget::AdvancedWidget(QWidget *parent)
+ : QWidget(parent)
+ , _changed(false)
+{
+ setupUi(this);
+
+ connect(proxyButton, SIGNAL(clicked()), this, SLOT(launchProxySettings()));
+}
+
+
+void AdvancedWidget::save()
+{
+}
+
+
+bool AdvancedWidget::changed()
+{
+ return _changed;
+}
+
+
+void AdvancedWidget::hasChanged()
+{
+ _changed = true;
+ emit changed(true);
+}
+
+
+void AdvancedWidget::launchProxySettings()
+{
+ QString program = QL1S("kcmshell4");
+ QStringList arguments;
+ arguments << QL1S("proxy");
+ QProcess *proc = new QProcess(this);
+ proc->start(program, arguments);
+}
diff --git a/src/settings/advancedwidget.h b/src/settings/advancedwidget.h
new file mode 100644
index 00000000..c9509c9d
--- /dev/null
+++ b/src/settings/advancedwidget.h
@@ -0,0 +1,62 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2012 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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 ADVANCED_WIDGET_H
+#define ADVANCED_WIDGET_H
+
+
+// Rekonq Includes
+#include "rekonq_defines.h"
+
+// Ui Includes
+#include "ui_settings_advanced.h"
+
+// Qt Includes
+#include <QWidget>
+
+
+class AdvancedWidget : public QWidget, private Ui::advanced
+{
+ Q_OBJECT
+
+public:
+ AdvancedWidget(QWidget *parent = 0);
+
+ void save();
+ bool changed();
+
+Q_SIGNALS:
+ void changed(bool);
+
+private Q_SLOTS:
+ void hasChanged();
+ void launchProxySettings();
+
+private:
+ bool _changed;
+};
+
+#endif // ADVANCED_WIDGET_H
diff --git a/src/settings/appearancewidget.cpp b/src/settings/appearancewidget.cpp
new file mode 100644
index 00000000..42c9db14
--- /dev/null
+++ b/src/settings/appearancewidget.cpp
@@ -0,0 +1,119 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2010-2011 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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/>.
+*
+* ============================================================ */
+
+
+// Self Includes
+#include "appearancewidget.h"
+#include "appearancewidget.moc"
+
+// Auto Includes
+#include "rekonq.h"
+
+// KDE Includes
+#include <KGlobal>
+#include <KCharsets>
+
+AppearanceWidget::AppearanceWidget(QWidget *parent)
+ : QWidget(parent)
+ , _changed(false)
+{
+ setupUi(this);
+
+ fixedFontChooser->setOnlyFixed(true);
+
+ standardFontChooser->setCurrentFont(QFont(ReKonfig::standardFontFamily()));
+ fixedFontChooser->setCurrentFont(QFont(ReKonfig::fixedFontFamily()));
+ serifFontChooser->setCurrentFont(QFont(ReKonfig::serifFontFamily()));
+ sansSerifFontChooser->setCurrentFont(QFont(ReKonfig::sansSerifFontFamily()));
+ cursiveFontChooser->setCurrentFont(QFont(ReKonfig::cursiveFontFamily()));
+ fantasyFontChooser->setCurrentFont(QFont(ReKonfig::fantasyFontFamily()));
+
+ connect(standardFontChooser, SIGNAL(currentFontChanged(QFont)), this, SLOT(hasChanged()));
+ connect(fixedFontChooser, SIGNAL(currentFontChanged(QFont)), this, SLOT(hasChanged()));
+ connect(serifFontChooser, SIGNAL(currentFontChanged(QFont)), this, SLOT(hasChanged()));
+ connect(sansSerifFontChooser, SIGNAL(currentFontChanged(QFont)), this, SLOT(hasChanged()));
+ connect(cursiveFontChooser, SIGNAL(currentFontChanged(QFont)), this, SLOT(hasChanged()));
+ connect(fantasyFontChooser, SIGNAL(currentFontChanged(QFont)), this, SLOT(hasChanged()));
+
+ populateEncodingMenu();
+}
+
+
+void AppearanceWidget::save()
+{
+ ReKonfig::setStandardFontFamily(standardFontChooser->currentFont().family());
+ ReKonfig::setFixedFontFamily(fixedFontChooser->currentFont().family());
+ ReKonfig::setSerifFontFamily(serifFontChooser->currentFont().family());
+ ReKonfig::setSansSerifFontFamily(sansSerifFontChooser->currentFont().family());
+ ReKonfig::setCursiveFontFamily(cursiveFontChooser->currentFont().family());
+ ReKonfig::setFantasyFontFamily(fantasyFontChooser->currentFont().family());
+}
+
+
+bool AppearanceWidget::changed()
+{
+ return _changed;
+}
+
+
+void AppearanceWidget::hasChanged()
+{
+ _changed = true;
+ emit changed(true);
+}
+
+
+bool AppearanceWidget::isDefault()
+{
+ bool def = true;
+
+ // TODO: implement me!!
+
+ return def;
+}
+
+
+void AppearanceWidget::populateEncodingMenu()
+{
+ encodingCombo->setEditable(false);
+ QStringList encodings = KGlobal::charsets()->availableEncodingNames();
+ encodingCombo->addItems(encodings);
+
+ encodingCombo->setWhatsThis(i18n("Select the default encoding to be used; normally, you will be fine with 'Use language encoding' "
+ "and should not have to change this."));
+
+ connect(encodingCombo, SIGNAL(activated(QString)), this, SLOT(setEncoding(QString)));
+ connect(encodingCombo, SIGNAL(activated(QString)), this, SLOT(hasChanged()));
+
+ QString enc = ReKonfig::defaultEncoding();
+ int indexOfEnc = encodings.indexOf(enc);
+ encodingCombo->setCurrentIndex(indexOfEnc);
+}
+
+
+void AppearanceWidget::setEncoding(const QString &enc)
+{
+ ReKonfig::setDefaultEncoding(enc);
+}
diff --git a/src/settings/appearancewidget.h b/src/settings/appearancewidget.h
new file mode 100644
index 00000000..86f6d66a
--- /dev/null
+++ b/src/settings/appearancewidget.h
@@ -0,0 +1,65 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2010-2011 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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 APPEARANCE_WIDGET_H
+#define APPEARANCE_WIDGET_H
+
+
+// Rekonq Includes
+#include "rekonq_defines.h"
+
+// Ui Includes
+#include "ui_settings_appearance.h"
+
+// Qt Includes
+#include <QtGui/QWidget>
+
+
+class AppearanceWidget : public QWidget, private Ui::appearance
+{
+ Q_OBJECT
+
+public:
+ AppearanceWidget(QWidget *parent = 0);
+
+ void save();
+ bool changed();
+ bool isDefault();
+
+Q_SIGNALS:
+ void changed(bool);
+
+private Q_SLOTS:
+ void hasChanged();
+ void setEncoding(const QString &);
+
+private:
+ void populateEncodingMenu();
+
+ bool _changed;
+};
+
+#endif // APPEARANCE_WIDGET_H
diff --git a/src/settings/generalwidget.cpp b/src/settings/generalwidget.cpp
new file mode 100644
index 00000000..34bea602
--- /dev/null
+++ b/src/settings/generalwidget.cpp
@@ -0,0 +1,130 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2010-2012 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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/>.
+*
+* ============================================================ */
+
+
+// Self Includes
+#include "generalwidget.h"
+#include "generalwidget.moc"
+
+// Auto Includes
+#include "rekonq.h"
+
+// Local Includes
+#include "application.h"
+#include "tabwindow.h"
+#include "webwindow.h"
+
+//KDE Includes
+#include <kstandarddirs.h>
+#include <KUrlRequester>
+
+
+GeneralWidget::GeneralWidget(QWidget *parent)
+ : QWidget(parent)
+ , _changed(false)
+{
+ setupUi(this);
+
+ connect(setHomeToCurrentPageButton, SIGNAL(clicked()), this, SLOT(setHomeToCurrentPage()));
+
+ disableHomeSettings(ReKonfig::useNewTabPage());
+
+ connect(kcfg_useNewTabPage, SIGNAL(toggled(bool)), this, SLOT(disableHomeSettings(bool)));
+
+ checkKGetPresence();
+
+ connect(kcfg_homePage, SIGNAL(editingFinished()), this, SLOT(fixHomePageURL()));
+
+ kcfg_downloadPath->setMode(KFile::Directory);
+
+ askDownloadYes->setChecked(ReKonfig::askDownloadPath());
+ askDownloadNo->setChecked(!ReKonfig::askDownloadPath());
+
+ kcfg_downloadPath->setEnabled(!ReKonfig::askDownloadPath());
+ connect(askDownloadNo, SIGNAL(toggled(bool)), kcfg_downloadPath, SLOT(setEnabled(bool)));
+ connect(askDownloadNo, SIGNAL(toggled(bool)), this, SLOT(hasChanged()));
+}
+
+
+void GeneralWidget::save()
+{
+ ReKonfig::setAskDownloadPath(askDownloadYes->isChecked());
+
+ _changed = false;
+}
+
+
+bool GeneralWidget::changed()
+{
+ return _changed;
+}
+
+
+void GeneralWidget::hasChanged()
+{
+ _changed = true;
+ emit changed(true);
+}
+
+
+void GeneralWidget::setHomeToCurrentPage()
+{
+ TabWindow *tw = rApp->tabWindow();
+ WebWindow *tab = tw->currentWebWindow();
+ if (tab)
+ {
+ kcfg_homePage->setText(tab->url().toString());
+ }
+}
+
+
+void GeneralWidget::disableHomeSettings(bool b)
+{
+ kcfg_homePage->setEnabled(!b);
+ setHomeToCurrentPageButton->setEnabled(!b);
+}
+
+
+void GeneralWidget::checkKGetPresence()
+{
+ if (KStandardDirs::findExe("kget").isNull())
+ {
+ kcfg_kgetDownload->setDisabled(true);
+ kcfg_kgetList->setDisabled(true);
+ kcfg_kgetDownload->setToolTip(i18n("Install KGet to enable rekonq to use it as download manager"));
+ }
+ else
+ {
+ kcfg_kgetDownload->setDisabled(false);
+ kcfg_kgetList->setDisabled(false);
+ }
+}
+
+
+void GeneralWidget::fixHomePageURL()
+{
+ QString fixedURL = QUrl::fromUserInput(kcfg_homePage->text()).toString();
+ kcfg_homePage->setText(fixedURL);
+}
diff --git a/src/settings/generalwidget.h b/src/settings/generalwidget.h
new file mode 100644
index 00000000..33dfe610
--- /dev/null
+++ b/src/settings/generalwidget.h
@@ -0,0 +1,62 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2010-2012 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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 GENERAL_WIDGET_H
+#define GENERAL_WIDGET_H
+
+
+// Ui Includes
+#include "ui_settings_general.h"
+
+// Qt Includes
+#include <QWidget>
+
+
+class GeneralWidget : public QWidget, private Ui::general
+{
+ Q_OBJECT
+
+public:
+ GeneralWidget(QWidget *parent = 0);
+
+ void save();
+ bool changed();
+ void checkKGetPresence();
+
+Q_SIGNALS:
+ void changed(bool);
+
+private Q_SLOTS:
+ void hasChanged();
+ void setHomeToCurrentPage();
+ void disableHomeSettings(bool);
+ void fixHomePageURL();
+
+private:
+ bool _changed;
+};
+
+#endif // GENERAL_WIDGET_H
diff --git a/src/settings/networkwidget.cpp b/src/settings/networkwidget.cpp
new file mode 100644
index 00000000..c2988eb1
--- /dev/null
+++ b/src/settings/networkwidget.cpp
@@ -0,0 +1,100 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2010-2011 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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/>.
+*
+* ============================================================ */
+
+
+// Self Includes
+#include "networkwidget.h"
+#include "networkwidget.moc"
+
+// KDE Includes
+#include <KTabWidget>
+#include <KCModuleInfo>
+
+// Qt Includes
+#include <QVBoxLayout>
+
+
+NetworkWidget::NetworkWidget(QWidget *parent)
+ : QWidget(parent)
+ , _cacheModule(0)
+ , _cookiesModule(0)
+ , _proxyModule(0)
+ , _changed(false)
+{
+ QVBoxLayout *l = new QVBoxLayout(this);
+ l->setMargin(0);
+ l->setSpacing(0);
+
+ KTabWidget *tabWidget = new KTabWidget(this);
+ l->addWidget(tabWidget);
+
+ KCModuleInfo cacheInfo("cache.desktop");
+ _cacheModule = new KCModuleProxy(cacheInfo, parent);
+ tabWidget->addTab(_cacheModule, i18n(cacheInfo.moduleName().toUtf8()));
+
+ KCModuleInfo cookiesInfo("cookies.desktop");
+ _cookiesModule = new KCModuleProxy(cookiesInfo, parent);
+ tabWidget->addTab(_cookiesModule, i18n(cookiesInfo.moduleName().toUtf8()));
+
+ KCModuleInfo proxyInfo("proxy.desktop");
+ _proxyModule = new KCModuleProxy(proxyInfo, parent);
+ tabWidget->addTab(_proxyModule, i18n(proxyInfo.moduleName().toUtf8()));
+
+ connect(_cacheModule, SIGNAL(changed(bool)), this, SLOT(hasChanged()));
+ connect(_cookiesModule, SIGNAL(changed(bool)), this, SLOT(hasChanged()));
+ connect(_proxyModule, SIGNAL(changed(bool)), this, SLOT(hasChanged()));
+}
+
+
+NetworkWidget::~NetworkWidget()
+{
+ delete _cacheModule;
+ delete _cookiesModule;
+ delete _proxyModule;
+}
+
+
+void NetworkWidget::save()
+{
+ _cookiesModule->save();
+ _proxyModule->save();
+ _cacheModule->save();
+
+ _changed = false;
+ emit changed(false);
+}
+
+
+void NetworkWidget::hasChanged()
+{
+ _changed = true;
+ emit changed(true);
+}
+
+
+bool NetworkWidget::changed()
+{
+ return _changed;
+}
diff --git a/src/settings/networkwidget.h b/src/settings/networkwidget.h
new file mode 100644
index 00000000..74a0e312
--- /dev/null
+++ b/src/settings/networkwidget.h
@@ -0,0 +1,63 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2010-2011 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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 NETWORK_WIDGET_H
+#define NETWORK_WIDGET_H
+
+
+// KDE Includes
+#include <KCModuleProxy>
+
+// Qt Includes
+#include <QWidget>
+
+
+class NetworkWidget : public QWidget
+{
+ Q_OBJECT
+
+public:
+ NetworkWidget(QWidget *parent = 0);
+ ~NetworkWidget();
+
+ void save();
+ bool changed();
+
+Q_SIGNALS:
+ void changed(bool);
+
+private Q_SLOTS:
+ void hasChanged();
+
+private:
+ KCModuleProxy *_cacheModule;
+ KCModuleProxy *_cookiesModule;
+ KCModuleProxy *_proxyModule;
+
+ bool _changed;
+};
+
+#endif // NETWORK_WIDGET_H
diff --git a/src/settings/passexceptionswidget.cpp b/src/settings/passexceptionswidget.cpp
new file mode 100644
index 00000000..fe20e711
--- /dev/null
+++ b/src/settings/passexceptionswidget.cpp
@@ -0,0 +1,73 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2012 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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/>.
+*
+* ============================================================ */
+
+
+// Self Includes
+#include "passexceptionswidget.h"
+#include "passexceptionswidget.moc"
+
+// Auto Includes
+#include "rekonq.h"
+
+
+PassExWidget::PassExWidget(QWidget *parent)
+ : QWidget(parent)
+{
+ setupUi(this);
+
+ setAttribute(Qt::WA_DeleteOnClose, true);
+
+ connect(removeOneButton, SIGNAL(clicked()), this, SLOT(removeOne()));
+ connect(removeAllButton, SIGNAL(clicked()), this, SLOT(removeAll()));
+
+ QStringList exList = ReKonfig::walletBlackList();
+ Q_FOREACH(const QString & str, exList)
+ {
+ QListWidgetItem *item = new QListWidgetItem(str, listWidget);
+ listWidget->addItem(item);
+ }
+}
+
+
+void PassExWidget::removeOne()
+{
+ const int currentRow(listWidget->currentRow());
+ if (currentRow == -1)
+ return;
+ QString item = listWidget->takeItem(currentRow)->text();
+
+ QStringList exList = ReKonfig::walletBlackList();
+ exList.removeOne(item);
+ ReKonfig::setWalletBlackList(exList);
+}
+
+
+void PassExWidget::removeAll()
+{
+ listWidget->clear();
+
+ QStringList clearList;
+ ReKonfig::setWalletBlackList(clearList);
+}
diff --git a/src/settings/passexceptionswidget.h b/src/settings/passexceptionswidget.h
new file mode 100644
index 00000000..6b02c4e6
--- /dev/null
+++ b/src/settings/passexceptionswidget.h
@@ -0,0 +1,53 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2012 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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 PASS_EX_WIDGET_H
+#define PASS_EX_WIDGET_H
+
+
+// Rekonq Includes
+#include "rekonq_defines.h"
+
+// Ui Includes
+#include "ui_password_exceptions.h"
+
+// Qt Includes
+#include <QWidget>
+
+
+class PassExWidget : public QWidget, private Ui::PassExceptions
+{
+ Q_OBJECT
+
+public:
+ PassExWidget(QWidget *parent = 0);
+
+private Q_SLOTS:
+ void removeOne();
+ void removeAll();
+};
+
+#endif // PASS_EX_WIDGET_H
diff --git a/src/settings/password_exceptions.ui b/src/settings/password_exceptions.ui
new file mode 100644
index 00000000..97cf621b
--- /dev/null
+++ b/src/settings/password_exceptions.ui
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>PassExceptions</class>
+ <widget class="QWidget" name="PassExceptions">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Password Exceptions</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QListWidget" name="listWidget"/>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <spacer name="horizontalSpacer">
+ <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="removeOneButton">
+ <property name="text">
+ <string>Remove one</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="removeAllButton">
+ <property name="text">
+ <string>Remove all</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/settings/privacywidget.cpp b/src/settings/privacywidget.cpp
new file mode 100644
index 00000000..46774a63
--- /dev/null
+++ b/src/settings/privacywidget.cpp
@@ -0,0 +1,135 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2012 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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/>.
+*
+* ============================================================ */
+
+
+// Self Includes
+#include "privacywidget.h"
+#include "privacywidget.moc"
+
+// Local Includes
+#include "passexceptionswidget.h"
+
+// Auto Includes
+#include "rekonq.h"
+
+// KDE Includes
+#include <KDialog>
+#include <KPushButton>
+
+// Qt Includes
+#include <QProcess>
+
+
+PrivacyWidget::PrivacyWidget(QWidget *parent)
+ : QWidget(parent)
+ , _changed(false)
+{
+ setupUi(this);
+
+ reload();
+
+ // DO NOT TRACK
+ KConfigGroup cg = KConfigGroup(KSharedConfig::openConfig("kioslaverc", KConfig::NoGlobals), QString());
+ doNotTrackCheckBox->setChecked(cg.readEntry("DoNotTrack", false));
+ connect(doNotTrackCheckBox, SIGNAL(clicked()), this, SLOT(hasChanged()));
+
+ // CACHE & COOKIES
+ connect(cacheButton, SIGNAL(clicked()), this, SLOT(launchCacheSettings()));
+ connect(cookiesButton, SIGNAL(clicked()), this, SLOT(launchCookieSettings()));
+
+ // PASSWORDS
+ connect(managePassExceptionsButton, SIGNAL(clicked()), this, SLOT(showPassExceptions()));
+}
+
+
+void PrivacyWidget::save()
+{
+ KConfigGroup cg = KConfigGroup(KSharedConfig::openConfig("kioslaverc", KConfig::NoGlobals), QString());
+ cg.writeEntry("DoNotTrack", doNotTrackCheckBox->isChecked());
+ cg.sync();
+
+ reload();
+}
+
+
+void PrivacyWidget::reload()
+{
+ bool b = ReKonfig::javascriptEnabled();
+
+ kcfg_javascriptCanAccessClipboard->setEnabled(b);
+ kcfg_javascriptCanOpenWindows->setEnabled(b);
+
+ if (b)
+ {
+ kcfg_javascriptCanOpenWindows->setToolTip(i18n("If enabled, JavaScript programs are allowed to open new windows."));
+ kcfg_javascriptCanAccessClipboard->setToolTip(i18n("If enabled, JavaScript programs are allowed to read from and to write to the clipboard."));
+ }
+ else
+ {
+ QString str = i18n("Javascript is NOT enabled, cannot change these settings");
+ kcfg_javascriptCanOpenWindows->setToolTip(str);
+ kcfg_javascriptCanAccessClipboard->setToolTip(str);
+ }
+}
+
+
+bool PrivacyWidget::changed()
+{
+ return _changed;
+}
+
+
+void PrivacyWidget::hasChanged()
+{
+ _changed = true;
+ emit changed(true);
+}
+
+
+void PrivacyWidget::launchCacheSettings()
+{
+ QString program = QL1S("kcmshell4");
+ QStringList arguments;
+ arguments << QL1S("cache");
+ QProcess *proc = new QProcess(this);
+ proc->start(program, arguments);
+}
+
+
+void PrivacyWidget::launchCookieSettings()
+{
+ QString program = QL1S("kcmshell4");
+ QStringList arguments;
+ arguments << QL1S("cookies");
+ QProcess *proc = new QProcess(this);
+ proc->start(program, arguments);
+}
+
+
+void PrivacyWidget::showPassExceptions()
+{
+ PassExWidget *widg = new PassExWidget;
+ widg->show();
+}
diff --git a/src/settings/privacywidget.h b/src/settings/privacywidget.h
new file mode 100644
index 00000000..229cb7df
--- /dev/null
+++ b/src/settings/privacywidget.h
@@ -0,0 +1,67 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2012 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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 PRIVACY_WIDGET_H
+#define PRIVACY_WIDGET_H
+
+
+// Rekonq Includes
+#include "rekonq_defines.h"
+
+// Ui Includes
+#include "ui_settings_privacy.h"
+
+// Qt Includes
+#include <QWidget>
+
+
+class PrivacyWidget : public QWidget, private Ui::privacy
+{
+ Q_OBJECT
+
+public:
+ PrivacyWidget(QWidget *parent = 0);
+
+ void save();
+ void reload();
+
+ bool changed();
+
+Q_SIGNALS:
+ void changed(bool);
+
+private Q_SLOTS:
+ void hasChanged();
+
+ void launchCacheSettings();
+ void launchCookieSettings();
+ void showPassExceptions();
+
+private:
+ bool _changed;
+};
+
+#endif // PRIVACY_WIDGET_H
diff --git a/src/settings/settings_advanced.ui b/src/settings/settings_advanced.ui
new file mode 100644
index 00000000..9457ca22
--- /dev/null
+++ b/src/settings/settings_advanced.ui
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>advanced</class>
+ <widget class="QWidget" name="advanced">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>480</width>
+ <height>440</height>
+ </rect>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>Proxy</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Rekonq is using your system's proxy settings</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>60</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="proxyButton">
+ <property name="text">
+ <string>Change them!</string>
+ </property>
+ <property name="icon">
+ <iconset theme="preferences-system-network"/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>Misc</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QCheckBox" name="kcfg_hScrollWheelHistory">
+ <property name="text">
+ <string>Use horizontal scroll wheel to go through web history</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_useFavicon">
+ <property name="text">
+ <string>Use favicon of the current website as window icon</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_smoothScrolling">
+ <property name="toolTip">
+ <string>Scroll pages with an eye candy effect</string>
+ </property>
+ <property name="text">
+ <string>Enable smooth scrolling</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_enableViShortcuts">
+ <property name="text">
+ <string>Enable Vi-like navigation shortcuts</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_accessKeysEnabled">
+ <property name="text">
+ <string>Enable keyboard navigation using the Ctrl key</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QLabel" name="label_11">
+ <property name="text">
+ <string>Middle click should:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="kcfg_middleClickAction">
+ <item>
+ <property name="text">
+ <string>Auto-scroll</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Load Clipboard URL</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Do Nothing</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>155</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/settings/settings_appearance.ui b/src/settings/settings_appearance.ui
new file mode 100644
index 00000000..b0232089
--- /dev/null
+++ b/src/settings/settings_appearance.ui
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>appearance</class>
+ <widget class="QWidget" name="appearance">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>570</width>
+ <height>562</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Appearance</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>Fonts</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Standard font:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Fixed font:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Serif font:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="KFontComboBox" name="standardFontChooser"/>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Sans Serif font:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="KFontComboBox" name="fixedFontChooser"/>
+ </item>
+ <item row="2" column="1">
+ <widget class="KFontComboBox" name="serifFontChooser"/>
+ </item>
+ <item row="3" column="1">
+ <widget class="KFontComboBox" name="sansSerifFontChooser"/>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_7">
+ <property name="text">
+ <string>Cursive font:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="KFontComboBox" name="cursiveFontChooser"/>
+ </item>
+ <item row="5" column="0">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
+ <string>Fantasy font:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="1">
+ <widget class="KFontComboBox" name="fantasyFontChooser"/>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>Font size</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_9">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Default font size:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="KIntNumInput" name="kcfg_defaultFontSize"/>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Minimal font size:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="KIntNumInput" name="kcfg_minFontSize"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_4">
+ <property name="title">
+ <string>Character Encoding</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="label_10">
+ <property name="text">
+ <string>Default character encoding:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="KComboBox" name="encodingCombo"/>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_3">
+ <property name="title">
+ <string>Custom Style Sheet</string>
+ </property>
+ <layout class="QFormLayout" name="formLayout_3">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::ExpandingFieldsGrow</enum>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_5">
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Path to custom CSS file:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="KUrlRequester" name="kcfg_userCSS">
+ <property name="filter">
+ <string>*.css</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>149</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>KFontComboBox</class>
+ <extends>KComboBox</extends>
+ <header>kfontcombobox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>KComboBox</class>
+ <extends>QComboBox</extends>
+ <header>kcombobox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>KUrlRequester</class>
+ <extends>QFrame</extends>
+ <header>kurlrequester.h</header>
+ </customwidget>
+ <customwidget>
+ <class>KIntNumInput</class>
+ <extends>QWidget</extends>
+ <header>knuminput.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/settings/settings_general.ui b/src/settings/settings_general.ui
new file mode 100644
index 00000000..7d4419b8
--- /dev/null
+++ b/src/settings/settings_general.ui
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>general</class>
+ <widget class="QWidget" name="general">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>573</width>
+ <height>410</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>General</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>Startup</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="layoutDirection">
+ <enum>Qt::LeftToRight</enum>
+ </property>
+ <property name="text">
+ <string>When starting rekonq:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="KComboBox" name="kcfg_startupBehaviour">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <item>
+ <property name="text">
+ <string>Open the Home Page</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Open the New Tab Page</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Restore the Last Opened Tabs</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>Home Page</string>
+ </property>
+ <layout class="QFormLayout" name="formLayout_2">
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Home page URL:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="KLineEdit" name="kcfg_homePage">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QPushButton" name="setHomeToCurrentPageButton">
+ <property name="text">
+ <string>Set to Current Page</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="1">
+ <widget class="QCheckBox" name="kcfg_useNewTabPage">
+ <property name="text">
+ <string>Use the New Tab Page as home page</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_4">
+ <property name="title">
+ <string>Download Manager</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QRadioButton" name="askDownloadNo">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Save files to:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="KUrlRequester" name="kcfg_downloadPath">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="askDownloadYes">
+ <property name="text">
+ <string>Always ask me where to save files</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>10</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_kgetDownload">
+ <property name="text">
+ <string>Use KGet for downloading files</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_kgetList">
+ <property name="whatsThis">
+ <string>If enabled, rekonq will display an additional context menu entry, which, when selected, lists all available links of the current website in KGet.</string>
+ </property>
+ <property name="text">
+ <string>List links with KGet</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>179</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>KComboBox</class>
+ <extends>QComboBox</extends>
+ <header>kcombobox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>KLineEdit</class>
+ <extends>QLineEdit</extends>
+ <header>klineedit.h</header>
+ </customwidget>
+ <customwidget>
+ <class>KUrlRequester</class>
+ <extends>QFrame</extends>
+ <header>kurlrequester.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/settings/settings_privacy.ui b/src/settings/settings_privacy.ui
new file mode 100644
index 00000000..04f36bad
--- /dev/null
+++ b/src/settings/settings_privacy.ui
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>privacy</class>
+ <widget class="QWidget" name="privacy">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>535</width>
+ <height>520</height>
+ </rect>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_7">
+ <item>
+ <widget class="QGroupBox" name="groupBox_4">
+ <property name="title">
+ <string>Javascript</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_5">
+ <item>
+ <widget class="QCheckBox" name="kcfg_javascriptCanOpenWindows">
+ <property name="text">
+ <string>Let Javascript open new windows</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_javascriptCanAccessClipboard">
+ <property name="text">
+ <string>Let Javascript access clipboard</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>Tracking</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="QCheckBox" name="doNotTrackCheckBox">
+ <property name="text">
+ <string>Tell websites you do not want to be tracked</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>History</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Remove history items:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="kcfg_expireHistory">
+ <item>
+ <property name="text">
+ <string>never</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>every 3 months</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>every month</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>every day</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>at application exit</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>don't even store them</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_5">
+ <property name="title">
+ <string>Passwords</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QCheckBox" name="kcfg_passwordSavingEnabled">
+ <property name="text">
+ <string>Remember passwords for sites</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_3">
+ <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="managePassExceptionsButton">
+ <property name="text">
+ <string>Manage Exceptions</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_3">
+ <property name="title">
+ <string>Cookies</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Rekonq is sharing cookies settings with all other KDE applications</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QPushButton" name="cookiesButton">
+ <property name="text">
+ <string>Manage Cookies</string>
+ </property>
+ <property name="icon">
+ <iconset theme="preferences-web-browser-cookies">
+ <normaloff/>
+ </iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_6">
+ <property name="title">
+ <string>Cache</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_6">
+ <item>
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>Rekonq is sharing cache settings with all other KDE applications</string>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <item>
+ <widget class="QPushButton" name="cacheButton">
+ <property name="text">
+ <string>Manage Cache</string>
+ </property>
+ <property name="icon">
+ <iconset theme="preferences-web-browser-cache">
+ <normaloff/>
+ </iconset>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_4">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>135</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/settings/settings_tabs.ui b/src/settings/settings_tabs.ui
new file mode 100644
index 00000000..4e19545f
--- /dev/null
+++ b/src/settings/settings_tabs.ui
@@ -0,0 +1,290 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>tabs</class>
+ <widget class="QWidget" name="tabs">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>483</width>
+ <height>427</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Tabs</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QGroupBox" name="groupBox_3">
+ <property name="title">
+ <string>New Tab Behavior</string>
+ </property>
+ <layout class="QFormLayout" name="formLayout">
+ <property name="fieldGrowthPolicy">
+ <enum>QFormLayout::ExpandingFieldsGrow</enum>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>New tab opens:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="KComboBox" name="kcfg_newTabsBehaviour">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <item>
+ <property name="text">
+ <string>New Tab Page</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Blank Page</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string comment="@item:inlistbox">Home Page</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_5">
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>New Tab Page starts with:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="KComboBox" name="kcfg_newTabStartPage">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <item>
+ <property name="text">
+ <string>Favorites</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Closed Tabs</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Bookmarks</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>History</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Downloads</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Tabs</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_4">
+ <property name="title">
+ <string>Tabbed Browsing</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label_6">
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>When hovering a tab show:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="KComboBox" name="kcfg_hoveringTabOption">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <item>
+ <property name="text">
+ <string>Tab Preview</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Tab's Title in a Tooltip</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Tab's URL in a Tooltip</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string comment="@item:inlistbox">Nothing</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </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>
+ <item>
+ <widget class="QCheckBox" name="kcfg_alwaysShowTabBar">
+ <property name="text">
+ <string>Always show tab bar</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_openLinksInNewWindow">
+ <property name="text">
+ <string>Don't use tabs: open links in new windows</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_openExternalLinksInNewWindow">
+ <property name="text">
+ <string>Open as new window when URL is called externally</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_lastTabClosesWindow">
+ <property name="text">
+ <string>Closing last tab closes window</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_openNewTabsInBackground">
+ <property name="text">
+ <string>Open new tabs in the background</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_openNewTabsNearCurrent">
+ <property name="text">
+ <string>Open new tabs after currently active one</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_closeTabSelectPrevious">
+ <property name="text">
+ <string>Activate previously used tab when closing the current one</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_animatedTabHighlighting">
+ <property name="text">
+ <string>Animated tab highlighting</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>120</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>KComboBox</class>
+ <extends>QComboBox</extends>
+ <header>kcombobox.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/settings/settings_webkit.ui b/src/settings/settings_webkit.ui
new file mode 100644
index 00000000..62f3bafd
--- /dev/null
+++ b/src/settings/settings_webkit.ui
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>webkit</class>
+ <widget class="QWidget" name="webkit">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>503</width>
+ <height>514</height>
+ </rect>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>General</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QCheckBox" name="kcfg_javascriptEnabled">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Enable JavaScript</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_javaEnabled">
+ <property name="text">
+ <string>Load java applets</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_webGL">
+ <property name="text">
+ <string>WebGL</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_spatialNavigation">
+ <property name="text">
+ <string>Spatial Navigation</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_frameFlattening">
+ <property name="text">
+ <string>Frame Flattening</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_dnsPrefetch">
+ <property name="text">
+ <string>Prefetch DNS entries</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_printElementBackgrounds">
+ <property name="text">
+ <string>Print element backgrounds</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_3">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Plugins</string>
+ </property>
+ <layout class="QFormLayout" name="formLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>150</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>When loading web pages:</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="KComboBox" name="kcfg_pluginsEnabled">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <item>
+ <property name="text">
+ <string>Autoload Plugins</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Manually Load Plugins</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Never Load Plugins</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_4">
+ <property name="title">
+ <string>HTML 5</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <widget class="QCheckBox" name="kcfg_offlineStorageDatabaseEnabled">
+ <property name="text">
+ <string>Offline storage database</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_offlineWebApplicationCacheEnabled">
+ <property name="text">
+ <string>Offline web application cache</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="kcfg_localStorageEnabled">
+ <property name="text">
+ <string>Local Storage</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </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>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>KComboBox</class>
+ <extends>QComboBox</extends>
+ <header>kcombobox.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/settings/settingsdialog.cpp b/src/settings/settingsdialog.cpp
new file mode 100644
index 00000000..9f6b372a
--- /dev/null
+++ b/src/settings/settingsdialog.cpp
@@ -0,0 +1,227 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2008-2012 by Andrea Diamantini <adjam7 at gmail dot com>
+* Copyright (C) 2009-2011 by Lionel Chauvin <megabigbug@yahoo.fr>
+*
+*
+* 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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/>.
+*
+* ============================================================ */
+
+
+// Self Includes
+#include "settingsdialog.h"
+#include "settingsdialog.moc"
+
+// Auto Includes
+#include "rekonq.h"
+
+// Local Includes
+#include "searchengine.h"
+
+// Widget Includes
+#include "advancedwidget.h"
+#include "appearancewidget.h"
+#include "generalwidget.h"
+#include "privacywidget.h"
+#include "tabswidget.h"
+#include "webkitwidget.h"
+
+// KDE Includes
+#include <KConfig>
+#include <KStandardDirs>
+#include <KPageWidgetItem>
+#include <KShortcutsEditor>
+#include <KCModuleInfo>
+#include <KCModuleProxy>
+
+// Qt Includes
+#include <QtGui/QWidget>
+
+
+class Private
+{
+private:
+ Private(SettingsDialog *parent);
+
+private:
+ GeneralWidget *generalWidg;
+ TabsWidget *tabsWidg;
+ AppearanceWidget *appearanceWidg;
+ WebKitWidget *webkitWidg;
+ PrivacyWidget *privacyWidg;
+ AdvancedWidget *advancedWidg;
+
+ KCModuleProxy *ebrowsingModule;
+
+ KShortcutsEditor *shortcutsEditor;
+
+ friend class SettingsDialog;
+};
+
+
+Private::Private(SettingsDialog *parent)
+{
+ KPageWidgetItem *pageItem;
+
+ // -- 1
+ generalWidg = new GeneralWidget(parent);
+ generalWidg->layout()->setMargin(0);
+ pageItem = parent->addPage(generalWidg, i18n("General"));
+ pageItem->setIcon(KIcon("rekonq"));
+
+ // -- 2
+ tabsWidg = new TabsWidget(parent);
+ tabsWidg->layout()->setMargin(0);
+ pageItem = parent->addPage(tabsWidg, i18n("Tabs"));
+ pageItem->setIcon(KIcon("tab-duplicate"));
+
+ // -- 3
+ appearanceWidg = new AppearanceWidget(parent);
+ appearanceWidg->layout()->setMargin(0);
+ pageItem = parent->addPage(appearanceWidg, i18n("Appearance"));
+ pageItem->setIcon(KIcon("preferences-desktop-font"));
+
+ // -- 4
+ webkitWidg = new WebKitWidget(parent);
+ webkitWidg->layout()->setMargin(0);
+ pageItem = parent->addPage(webkitWidg, i18n("WebKit"));
+ QString webkitIconPath = KStandardDirs::locate("appdata", "pics/webkit-icon.png");
+ KIcon webkitIcon = KIcon(QIcon(webkitIconPath));
+ pageItem->setIcon(webkitIcon);
+
+ // -- 5
+ privacyWidg = new PrivacyWidget(parent);
+ privacyWidg->layout()->setMargin(0);
+ pageItem = parent->addPage(privacyWidg, i18n("Privacy"));
+ pageItem->setIcon(KIcon("view-media-artist"));
+
+ // -- 6
+ advancedWidg = new AdvancedWidget(parent);
+ advancedWidg->layout()->setMargin(0);
+ pageItem = parent->addPage(advancedWidg, i18n("Advanced"));
+ pageItem->setIcon(KIcon("applications-system"));
+
+// // -- 7
+// shortcutsEditor = new KShortcutsEditor(rApp->mainWindow()->actionCollection(), parent);
+// pageItem = parent->addPage(shortcutsEditor , i18n("Shortcuts"));
+// pageItem->setIcon(KIcon("configure-shortcuts"));
+
+ // -- 8
+ KCModuleInfo ebrowsingInfo("ebrowsing.desktop");
+ ebrowsingModule = new KCModuleProxy(ebrowsingInfo, parent);
+ pageItem = parent->addPage(ebrowsingModule, i18n("Search Engines"));
+ KIcon wsIcon("edit-web-search");
+ if (wsIcon.isNull())
+ {
+ wsIcon = KIcon("preferences-web-browser-shortcuts");
+ }
+ pageItem->setIcon(wsIcon);
+
+ // WARNING
+ // remember wheh changing here that the smallest netbooks
+ // have a 1024x576 resolution. So DON'T bother that limits!!
+ parent->setMinimumSize(700, 525);
+}
+
+
+// -----------------------------------------------------------------------------------------------------
+
+
+SettingsDialog::SettingsDialog(QWidget *parent)
+ : KConfigDialog(parent, "rekonfig", ReKonfig::self())
+ , d(new Private(this))
+{
+ showButtonSeparator(false);
+ setWindowTitle(i18nc("Window title of the settings dialog", "Configure – rekonq"));
+
+ // update buttons
+ connect(d->generalWidg, SIGNAL(changed(bool)), this, SLOT(updateButtons()));
+ connect(d->tabsWidg, SIGNAL(changed(bool)), this, SLOT(updateButtons()));
+ connect(d->appearanceWidg, SIGNAL(changed(bool)), this, SLOT(updateButtons()));
+ connect(d->webkitWidg, SIGNAL(changed(bool)), this, SLOT(updateButtons()));
+ connect(d->ebrowsingModule, SIGNAL(changed(bool)), this, SLOT(updateButtons()));
+ connect(d->advancedWidg, SIGNAL(changed(bool)), this, SLOT(updateButtons()));
+ connect(d->privacyWidg, SIGNAL(changed(bool)), this, SLOT(updateButtons()));
+
+ connect(d->shortcutsEditor, SIGNAL(keyChange()), this, SLOT(updateButtons()));
+
+ // save settings
+ connect(this, SIGNAL(applyClicked()), this, SLOT(saveSettings()));
+ connect(this, SIGNAL(okClicked()), this, SLOT(saveSettings()));
+ setHelp("Config-rekonq", "rekonq");
+}
+
+
+SettingsDialog::~SettingsDialog()
+{
+ kDebug() << "bye bye settings...";
+ delete d;
+}
+
+
+// we need this function to SAVE settings in rc file..
+void SettingsDialog::saveSettings()
+{
+ ReKonfig::self()->writeConfig();
+
+ d->generalWidg->save();
+ d->tabsWidg->save();
+ d->appearanceWidg->save();
+ d->webkitWidg->save();
+ d->advancedWidg->save();
+ d->privacyWidg->save();
+ d->shortcutsEditor->save();
+ d->ebrowsingModule->save();
+
+ d->privacyWidg->reload();
+
+ SearchEngine::reload();
+
+ updateButtons();
+ emit settingsChanged("ReKonfig");
+}
+
+
+bool SettingsDialog::hasChanged()
+{
+ return KConfigDialog::hasChanged()
+ || d->generalWidg->changed()
+ || d->tabsWidg->changed()
+ || d->appearanceWidg->changed()
+ || d->webkitWidg->changed()
+ || d->advancedWidg->changed()
+ || d->privacyWidg->changed()
+ || d->ebrowsingModule->changed()
+ || d->shortcutsEditor->isModified();
+ ;
+}
+
+
+bool SettingsDialog::isDefault()
+{
+ bool isDef = KConfigDialog::isDefault();
+
+ if (isDef)
+ {
+ // check our private widget values
+ isDef = d->appearanceWidg->isDefault();
+ }
+ return isDef;
+}
diff --git a/src/settings/settingsdialog.h b/src/settings/settingsdialog.h
new file mode 100644
index 00000000..ad03602b
--- /dev/null
+++ b/src/settings/settingsdialog.h
@@ -0,0 +1,63 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2008-2012 by Andrea Diamantini <adjam7 at gmail dot com>
+* Copyright (C) 2009-2011 by Lionel Chauvin <megabigbug@yahoo.fr>
+*
+*
+* 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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 SETTINGS_DIALOG_H
+#define SETTINGS_DIALOG_H
+
+
+// Rekonq Includes
+#include "rekonq_defines.h"
+
+// KDE Includes
+#include <KConfigDialog>
+
+// Forward Declarations
+class QWidget;
+class Private;
+
+
+class REKONQ_TESTS_EXPORT SettingsDialog : public KConfigDialog
+{
+ Q_OBJECT
+
+public:
+ SettingsDialog(QWidget *parent = 0);
+ ~SettingsDialog();
+
+ virtual bool hasChanged();
+
+protected:
+ virtual bool isDefault();
+
+private:
+ Private* const d;
+
+private Q_SLOTS:
+ void saveSettings();
+};
+
+#endif // SETTINGS_DIALOG_H
diff --git a/src/settings/tabswidget.cpp b/src/settings/tabswidget.cpp
new file mode 100644
index 00000000..67829f82
--- /dev/null
+++ b/src/settings/tabswidget.cpp
@@ -0,0 +1,52 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2010-2011 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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/>.
+*
+* ============================================================ */
+
+
+// Local Includes
+#include "tabswidget.h"
+#include "tabswidget.moc"
+
+
+TabsWidget::TabsWidget(QWidget *parent)
+ : QWidget(parent)
+ , _changed(false)
+{
+ setupUi(this);
+}
+
+
+void TabsWidget::save()
+{
+}
+
+bool TabsWidget::changed()
+{
+ return _changed;
+}
+
+
+void TabsWidget::hasChanged()
+{
+}
diff --git a/src/settings/tabswidget.h b/src/settings/tabswidget.h
new file mode 100644
index 00000000..056f030c
--- /dev/null
+++ b/src/settings/tabswidget.h
@@ -0,0 +1,58 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2010-2011 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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 TABS_WIDGET_H
+#define TABS_WIDGET_H
+
+
+// Ui Includes
+#include "ui_settings_tabs.h"
+
+// Qt Includes
+#include <QtGui/QWidget>
+
+
+class TabsWidget : public QWidget, private Ui::tabs
+{
+ Q_OBJECT
+
+public:
+ TabsWidget(QWidget *parent = 0);
+
+ void save();
+ bool changed();
+
+Q_SIGNALS:
+ void changed(bool);
+
+private Q_SLOTS:
+ void hasChanged();
+
+private:
+ bool _changed;
+};
+
+#endif // TABS_WIDGET_H
diff --git a/src/settings/webkitwidget.cpp b/src/settings/webkitwidget.cpp
new file mode 100644
index 00000000..31224f05
--- /dev/null
+++ b/src/settings/webkitwidget.cpp
@@ -0,0 +1,71 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2010-2011 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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/>.
+*
+* ============================================================ */
+
+
+// Local Includes
+#include "webkitwidget.h"
+#include "webkitwidget.moc"
+
+
+WebKitWidget::WebKitWidget(QWidget *parent)
+ : QWidget(parent)
+ , _changed(false)
+{
+ setupUi(this);
+ setWebSettingsToolTips();
+}
+
+
+void WebKitWidget::save()
+{
+}
+
+
+bool WebKitWidget::changed()
+{
+ return _changed;
+}
+
+
+void WebKitWidget::hasChanged()
+{
+ _changed = true;
+ emit changed(true);
+}
+
+
+void WebKitWidget::setWebSettingsToolTips()
+{
+ kcfg_webGL->setToolTip(i18n("Enables WebGL technology"));
+ kcfg_spatialNavigation->setToolTip(i18n("Lets you navigating between focusable elements using arrow keys."));
+ kcfg_frameFlattening->setToolTip(i18n("Flatten all the frames to become one scrollable page."));
+ kcfg_dnsPrefetch->setToolTip(i18n("Specifies whether WebKit will try to prefetch DNS entries to speed up browsing."));
+ kcfg_printElementBackgrounds->setToolTip(i18n("If enabled, background colors and images are also drawn when the page is printed."));
+ kcfg_javascriptEnabled->setToolTip(i18n("Enables the execution of JavaScript programs."));
+ kcfg_javaEnabled->setToolTip(i18n("Enables support for Java applets."));
+ kcfg_offlineStorageDatabaseEnabled->setToolTip(i18n("Enables support for the HTML 5 offline storage feature."));
+ kcfg_offlineWebApplicationCacheEnabled->setToolTip(i18n("Enables support for the HTML 5 web application cache feature."));
+ kcfg_localStorageEnabled->setToolTip(i18n("Enables support for the HTML 5 local storage feature."));
+}
diff --git a/src/settings/webkitwidget.h b/src/settings/webkitwidget.h
new file mode 100644
index 00000000..1a41a6a1
--- /dev/null
+++ b/src/settings/webkitwidget.h
@@ -0,0 +1,60 @@
+/* ============================================================
+*
+* This file is a part of the rekonq project
+*
+* Copyright (C) 2010-2011 by Andrea Diamantini <adjam7 at gmail dot 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 2 of
+* the License or (at your option) version 3 or any later version
+* accepted by the membership of KDE e.V. (or its successor approved
+* by the membership of KDE e.V.), which shall act as a proxy
+* defined in Section 14 of version 3 of the license.
+*
+* 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 WEBKIT_WIDGET_H
+#define WEBKIT_WIDGET_H
+
+
+// Ui Includes
+#include "ui_settings_webkit.h"
+
+// Qt Includes
+#include <QtGui/QWidget>
+
+
+class WebKitWidget : public QWidget, private Ui::webkit
+{
+ Q_OBJECT
+
+public:
+ WebKitWidget(QWidget *parent = 0);
+
+ void save();
+ bool changed();
+
+Q_SIGNALS:
+ void changed(bool);
+
+private Q_SLOTS:
+ void hasChanged();
+
+private:
+ void setWebSettingsToolTips();
+
+ bool _changed;
+};
+
+#endif // WEBKIT_WIDGET_H