From 44bb7b573b225d9021c1110203f4650dd79c7297 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Mon, 22 Dec 2008 01:22:23 +0100 Subject: New Config Dialog. Yeah! --- src/CMakeLists.txt | 5 +- src/settings.cpp | 172 ++++++++++++++++++++++++++++++--------------- src/settings.h | 10 ++- src/settings_appearance.ui | 98 ++++++++++++++++++++++++++ src/settings_general.ui | 159 +++++++++++++++++++++++++++++++++++++++++ src/settings_privacy.ui | 130 ++++++++++++++++++++++++++++++++++ src/settings_proxy.ui | 148 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 663 insertions(+), 59 deletions(-) create mode 100644 src/settings_appearance.ui create mode 100644 src/settings_general.ui create mode 100644 src/settings_privacy.ui create mode 100644 src/settings_proxy.ui diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1e2a3866..d53a7add 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -28,7 +28,10 @@ KDE4_ADD_UI_FILES( rekonq_SRCS history.ui passworddialog.ui proxy.ui - settings.ui + settings_general.ui + settings_appearance.ui + settings_privacy.ui + settings_proxy.ui ) # include(${QT_USE_FILE}) diff --git a/src/settings.cpp b/src/settings.cpp index 895a22d9..f8fd818f 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -30,8 +30,16 @@ #include "networkaccessmanager.h" #include "webview.h" +//Ui Includes +#include "ui_settings_general.h" +#include "ui_settings_appearance.h" +#include "ui_settings_privacy.h" +#include "ui_settings_proxy.h" + // KDE Includes #include +#include +#include #include #include @@ -39,52 +47,103 @@ #include #include -SettingsDialog::SettingsDialog(QWidget *parent) - : KDialog(parent) + +class Private { - QWidget *widget = new QWidget; +private: + Ui::general generalUi; + Ui::appearance appearanceUi; + Ui::privacy privacyUi; + Ui::proxy proxyUi; + + Private(SettingsDialog *parent); + +friend class SettingsDialog; +}; + + +Private::Private(SettingsDialog *parent) +{ + QWidget *widget; + KPageWidgetItem *pageItem; + + widget = new QWidget; + generalUi.setupUi( widget ); + widget->layout()->setMargin(0); + pageItem = parent->addPage( widget , i18n("General") ); + pageItem->setIcon( KIcon("rekonq") ); + generalUi.kurlrequester->setMode( KFile::Directory ); + + widget = new QWidget; + appearanceUi.setupUi( widget ); + widget->layout()->setMargin(0); + pageItem = parent->addPage( widget , i18n("Appearance") ); + pageItem->setIcon( KIcon("kfontview") ); + + widget = new QWidget; + privacyUi.setupUi( widget ); + widget->layout()->setMargin(0); + pageItem = parent->addPage( widget , i18n("Privacy") ); + pageItem->setIcon( KIcon("preferences-desktop-personal") ); + + widget = new QWidget; + proxyUi.setupUi( widget ); + widget->layout()->setMargin(0); + pageItem = parent->addPage( widget , i18n("Proxy") ); + pageItem->setIcon( KIcon("preferences-system-network") ); +} - setupUi(widget); +// ----------------------------------------------------------------------------------------------------- - setMainWidget(widget); +SettingsDialog::SettingsDialog(QWidget *parent) + : KConfigDialog(parent, "Settings", new KConfigSkeleton("rekonqrc") ) + , d(new Private(this) ) +{ + setFaceType(KPageDialog::List); + setButtons(KDialog::Ok | KDialog::Cancel | KDialog::Apply); + showButtonSeparator(true); setWindowTitle( i18n("Setting rekonq..") ); - setButtons( KDialog::Ok | KDialog::Close | KDialog::Apply ); - kurlrequester->setMode( KFile::Directory ); setModal(true); connect(this, SIGNAL( okClicked() ), this, SLOT( slotOk() ) ); connect(this, SIGNAL( closeClicked() ), this, SLOT( close() ) ); connect(this, SIGNAL( applyClicked() ), this, SLOT( slotApply() ) ); - connect(exceptionsButton, SIGNAL(clicked()), this, SLOT( showExceptions() ) ); - connect(setHomeToCurrentPageButton, SIGNAL(clicked()), this, SLOT( setHomeToCurrentPage() ) ); - connect(cookiesButton, SIGNAL(clicked()), this, SLOT( showCookies() ) ); - connect(standardFontButton, SIGNAL(clicked()), this, SLOT( chooseFont() ) ); - connect(fixedFontButton, SIGNAL(clicked()), this, SLOT( chooseFixedFont() ) ); + connect( d->generalUi.setHomeToCurrentPageButton, SIGNAL(clicked()), this, SLOT( setHomeToCurrentPage() ) ); + connect( d->privacyUi.exceptionsButton, SIGNAL(clicked()), this, SLOT( showExceptions() ) ); + connect( d->privacyUi.cookiesButton, SIGNAL(clicked()), this, SLOT( showCookies() ) ); + connect( d->appearanceUi.standardFontButton, SIGNAL(clicked()), this, SLOT( chooseFont() ) ); + connect( d->appearanceUi.fixedFontButton, SIGNAL(clicked()), this, SLOT( chooseFixedFont() ) ); loadDefaults(); loadFromSettings(); } +SettingsDialog::~SettingsDialog() +{ + delete d; +} + + void SettingsDialog::loadDefaults() { QWebSettings *defaultSettings = QWebSettings::globalSettings(); QString standardFontFamily = defaultSettings->fontFamily(QWebSettings::StandardFont); int standardFontSize = defaultSettings->fontSize(QWebSettings::DefaultFontSize); m_standardFont = QFont(standardFontFamily, standardFontSize); - standardLabel->setText(QString(QLatin1String("%1 %2")).arg( m_standardFont.family() ).arg( m_standardFont.pointSize() )); + d->appearanceUi.standardLabel->setText(QString(QLatin1String("%1 %2")).arg( m_standardFont.family() ).arg( m_standardFont.pointSize() )); QString fixedFontFamily = defaultSettings->fontFamily(QWebSettings::FixedFont); int fixedFontSize = defaultSettings->fontSize(QWebSettings::DefaultFixedFontSize); m_fixedFont = QFont(fixedFontFamily, fixedFontSize); - fixedLabel->setText(QString(QLatin1String("%1 %2")).arg( m_fixedFont.family() ).arg( m_fixedFont.pointSize() )); + d->appearanceUi.fixedLabel->setText(QString(QLatin1String("%1 %2")).arg( m_fixedFont.family() ).arg( m_fixedFont.pointSize() )); - kurlrequester->setUrl( KUrl( "~" ) ); // QDesktopServices::storageLocation(QDesktopServices::DesktopLocation) ); + d->generalUi.kurlrequester->setUrl( KUrl( "~" ) ); // QDesktopServices::storageLocation(QDesktopServices::DesktopLocation) ); - enableJavascript->setChecked(defaultSettings->testAttribute(QWebSettings::JavascriptEnabled)); - enablePlugins->setChecked(defaultSettings->testAttribute(QWebSettings::PluginsEnabled)); + d->privacyUi.enableJavascript->setChecked(defaultSettings->testAttribute(QWebSettings::JavascriptEnabled)); + d->privacyUi.enablePlugins->setChecked(defaultSettings->testAttribute(QWebSettings::PluginsEnabled)); } @@ -94,7 +153,7 @@ void SettingsDialog::loadFromSettings() KConfigGroup group1 = config.group("Global Settings"); QString defaultHome = QString("http://www.kde.org"); - homeLineEdit->setText( group1.readEntry(QString("home"), defaultHome) ); + d->generalUi.homeLineEdit->setText( group1.readEntry(QString("home"), defaultHome) ); int historyExpire = group1.readEntry( QString("historyExpire"), QString().toInt() ); int idx = 0; @@ -108,12 +167,12 @@ void SettingsDialog::loadFromSettings() case -1: idx = 5; break; default: idx = 5; } - expireHistory->setCurrentIndex(idx); + d->generalUi.expireHistory->setCurrentIndex(idx); QString downloadDirectory = group1.readEntry( QString("downloadDirectory") , QString() ); - kurlrequester->setUrl( KUrl(downloadDirectory) ); + d->generalUi.kurlrequester->setUrl( KUrl(downloadDirectory) ); - openLinksIn->setCurrentIndex( group1.readEntry( QString("openLinksIn"), openLinksIn->currentIndex() ) ); + d->generalUi.openLinksIn->setCurrentIndex( group1.readEntry( QString("openLinksIn"), d->generalUi.openLinksIn->currentIndex() ) ); // Appearance @@ -122,15 +181,15 @@ void SettingsDialog::loadFromSettings() m_fixedFont = group2.readEntry( QString("fixedFont"), m_fixedFont ); m_standardFont = group2.readEntry( QString("standardFont"), m_standardFont ); - standardLabel->setText(QString(QLatin1String("%1 %2")).arg( m_standardFont.family() ).arg( m_standardFont.pointSize() ) ); - fixedLabel->setText(QString(QLatin1String("%1 %2")).arg( m_fixedFont.family() ).arg( m_fixedFont.pointSize() ) ); - - enableJavascript->setChecked( group2.readEntry( QString("enableJavascript"), enableJavascript->isChecked() ) ); - enablePlugins->setChecked( group2.readEntry( QString("enablePlugins"), enablePlugins->isChecked() ) ); + d->appearanceUi.standardLabel->setText(QString(QLatin1String("%1 %2")).arg( m_standardFont.family() ).arg( m_standardFont.pointSize() ) ); + d->appearanceUi.fixedLabel->setText(QString(QLatin1String("%1 %2")).arg( m_fixedFont.family() ).arg( m_fixedFont.pointSize() ) ); // Privacy KConfigGroup group3 = config.group("Privacy Settings"); + d->privacyUi.enableJavascript->setChecked( group3.readEntry( QString("enableJavascript"), d->privacyUi.enableJavascript->isChecked() ) ); + d->privacyUi.enablePlugins->setChecked( group3.readEntry( QString("enablePlugins"), d->privacyUi.enablePlugins->isChecked() ) ); + CookieJar *jar = BrowserApplication::cookieJar(); QString value = group3.readEntry( QString("acceptCookies"), QString("AcceptOnlyFromSitesNavigatedTo") ) ; QMetaEnum acceptPolicyEnum = jar->staticMetaObject.enumerator(jar->staticMetaObject.indexOfEnumerator("AcceptPolicy")); @@ -140,13 +199,13 @@ void SettingsDialog::loadFromSettings() switch(acceptCookies) { case CookieJar::AcceptAlways: - acceptCombo->setCurrentIndex(0); + d->privacyUi.acceptCombo->setCurrentIndex(0); break; case CookieJar::AcceptNever: - acceptCombo->setCurrentIndex(1); + d->privacyUi.acceptCombo->setCurrentIndex(1); break; case CookieJar::AcceptOnlyFromSitesNavigatedTo: - acceptCombo->setCurrentIndex(2); + d->privacyUi.acceptCombo->setCurrentIndex(2); break; } @@ -155,27 +214,28 @@ void SettingsDialog::loadFromSettings() CookieJar::KeepPolicy keepCookies = keepPolicyEnum.keyToValue( value.toLocal8Bit() ) == -1 ? CookieJar::KeepUntilExpire : static_cast(keepPolicyEnum.keyToValue( value.toLocal8Bit() ) ); - switch(keepCookies) { + switch(keepCookies) + { case CookieJar::KeepUntilExpire: - keepUntilCombo->setCurrentIndex(0); + d->privacyUi.keepUntilCombo->setCurrentIndex(0); break; case CookieJar::KeepUntilExit: - keepUntilCombo->setCurrentIndex(1); + d->privacyUi.keepUntilCombo->setCurrentIndex(1); break; case CookieJar::KeepUntilTimeLimit: - keepUntilCombo->setCurrentIndex(2); + d->privacyUi.keepUntilCombo->setCurrentIndex(2); break; } // Proxy KConfigGroup group4 = config.group("Proxy Settings"); - proxySupport->setChecked( group4.readEntry( QString("enabled"), false ) ); - proxyType->setCurrentIndex( group4.readEntry( QString("type"), 0) ); - proxyHostName->setText( group4.readEntry( QString("hostName"), QString() ) ); - proxyPort->setValue( group4.readEntry( QString("port"), QString().toInt() ) ); - proxyUserName->setText( group4.readEntry( QString("userName") , QString() ) ); - proxyPassword->setText( group4.readEntry( QString("password") , QString() ) ); + d->proxyUi.proxySupport->setChecked( group4.readEntry( QString("enabled"), false ) ); + d->proxyUi.proxyType->setCurrentIndex( group4.readEntry( QString("type"), 0) ); + d->proxyUi.proxyHostName->setText( group4.readEntry( QString("hostName"), QString() ) ); + d->proxyUi.proxyPort->setValue( group4.readEntry( QString("port"), QString().toInt() ) ); + d->proxyUi.proxyUserName->setText( group4.readEntry( QString("userName") , QString() ) ); + d->proxyUi.proxyPassword->setText( group4.readEntry( QString("password") , QString() ) ); } @@ -185,11 +245,11 @@ void SettingsDialog::saveToSettings() KConfig config("rekonqrc"); KConfigGroup group1 = config.group("Global Settings"); - group1.writeEntry(QString("home"), homeLineEdit->text() ); - group1.writeEntry(QString("openLinksIn"), openLinksIn->currentIndex() ); - group1.writeEntry(QString("downloadDirectory"), kurlrequester->url().path() ); + group1.writeEntry(QString("home"), d->generalUi.homeLineEdit->text() ); + group1.writeEntry(QString("openLinksIn"), d->generalUi.openLinksIn->currentIndex() ); + group1.writeEntry(QString("downloadDirectory"), d->generalUi.kurlrequester->url().path() ); - int historyExpire = expireHistory->currentIndex(); + int historyExpire = d->generalUi.expireHistory->currentIndex(); int idx = -1; switch (historyExpire) { @@ -207,11 +267,11 @@ void SettingsDialog::saveToSettings() group2.writeEntry(QString("standardFont"), m_standardFont); KConfigGroup group3 = config.group("Privacy Settings"); - group3.writeEntry(QString("enableJavascript"), enableJavascript->isChecked() ); - group3.writeEntry(QString("enablePlugins"), enablePlugins->isChecked() ); + group3.writeEntry(QString("enableJavascript"), d->privacyUi.enableJavascript->isChecked() ); + group3.writeEntry(QString("enablePlugins"), d->privacyUi.enablePlugins->isChecked() ); CookieJar::KeepPolicy keepCookies; - switch(acceptCombo->currentIndex()) + switch( d->privacyUi.acceptCombo->currentIndex() ) { default: case 0: @@ -229,7 +289,7 @@ void SettingsDialog::saveToSettings() group3.writeEntry(QString("acceptCookies"), QString(acceptPolicyEnum.valueToKey(keepCookies) ) ); CookieJar::KeepPolicy keepPolicy; - switch(keepUntilCombo->currentIndex()) + switch( d->privacyUi.keepUntilCombo->currentIndex() ) { default: case 0: @@ -248,12 +308,12 @@ void SettingsDialog::saveToSettings() KConfigGroup group4 = config.group("Proxy Settings"); - group4.writeEntry(QString("enabled"), proxySupport->isChecked() ); - group4.writeEntry(QString("type"), proxyType->currentIndex() ); - group4.writeEntry(QString("hostName"), proxyHostName->text() ); - group4.writeEntry(QString("port"), proxyPort->text() ); - group4.writeEntry(QString("userName"), proxyUserName->text() ); - group4.writeEntry(QString("password"), proxyPassword->text() ); + group4.writeEntry(QString("enabled"), d->proxyUi.proxySupport->isChecked() ); + group4.writeEntry(QString("type"), d->proxyUi.proxyType->currentIndex() ); + group4.writeEntry(QString("hostName"), d->proxyUi.proxyHostName->text() ); + group4.writeEntry(QString("port"), d->proxyUi.proxyPort->text() ); + group4.writeEntry(QString("userName"), d->proxyUi.proxyUserName->text() ); + group4.writeEntry(QString("password"), d->proxyUi.proxyPassword->text() ); config.sync(); @@ -286,7 +346,7 @@ void SettingsDialog::chooseFont() if ( result == KFontDialog::Accepted ) { m_standardFont = myFont; - standardLabel->setText(QString(QLatin1String("%1 %2")).arg( m_standardFont.family() ).arg( m_standardFont.pointSize() ) ); + d->appearanceUi.standardLabel->setText(QString(QLatin1String("%1 %2")).arg( m_standardFont.family() ).arg( m_standardFont.pointSize() ) ); } } @@ -299,7 +359,7 @@ void SettingsDialog::chooseFixedFont() if ( result == KFontDialog::Accepted ) { m_fixedFont = myFont; - fixedLabel->setText(QString(QLatin1String("%1 %2")).arg( m_fixedFont.family() ).arg( m_fixedFont.pointSize() ) ); + d->appearanceUi.fixedLabel->setText(QString(QLatin1String("%1 %2")).arg( m_fixedFont.family() ).arg( m_fixedFont.pointSize() ) ); } } @@ -310,7 +370,7 @@ void SettingsDialog::setHomeToCurrentPage() WebView *webView = mw->currentTab(); if (webView) { - homeLineEdit->setText( webView->url().prettyUrl() ); + d->generalUi.homeLineEdit->setText( webView->url().prettyUrl() ); } } diff --git a/src/settings.h b/src/settings.h index 39845c63..e76d6da6 100644 --- a/src/settings.h +++ b/src/settings.h @@ -25,18 +25,24 @@ #include "ui_settings.h" // KDE Includes -#include +#include // Qt Includes #include -class SettingsDialog : public KDialog, private Ui::Settings +class Private; + +class SettingsDialog : public KConfigDialog { Q_OBJECT public: SettingsDialog(QWidget *parent = 0); + ~SettingsDialog(); +private: + Private* const d; + private slots: void loadDefaults(); void loadFromSettings(); diff --git a/src/settings_appearance.ui b/src/settings_appearance.ui new file mode 100644 index 00000000..ec82297c --- /dev/null +++ b/src/settings_appearance.ui @@ -0,0 +1,98 @@ + + appearance + + + + 0 + 0 + 445 + 92 + + + + Appearance + + + + + + + + Standard font: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Fixed-width font: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + 0 + 0 + + + + QFrame::StyledPanel + + + Times 16 + + + Qt::AlignCenter + + + + + + + QFrame::StyledPanel + + + Courier 13 + + + Qt::AlignCenter + + + + + + + + + + + Select... + + + + + + + Select... + + + + + + + + + + diff --git a/src/settings_general.ui b/src/settings_general.ui new file mode 100644 index 00000000..4857488a --- /dev/null +++ b/src/settings_general.ui @@ -0,0 +1,159 @@ + + general + + + + 0 + 0 + 575 + 209 + + + + General + + + + + + Home: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + Set to current page + + + + + + + Qt::Horizontal + + + + 233 + 25 + + + + + + + + Remove history items: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + After one day + + + + + After one week + + + + + After two weeks + + + + + After one month + + + + + After one year + + + + + Manually + + + + + + + + Save downloads to: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + Open links from applications: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + In a tab in the current window + + + + + In a new window + + + + + + + + Qt::Vertical + + + + 384 + 36 + + + + + + + + + KLineEdit + QLineEdit +
klineedit.h
+
+ + KUrlRequester + QFrame +
kurlrequester.h
+
+
+ + +
diff --git a/src/settings_privacy.ui b/src/settings_privacy.ui new file mode 100644 index 00000000..dfa61998 --- /dev/null +++ b/src/settings_privacy.ui @@ -0,0 +1,130 @@ + + privacy + + + + 0 + 0 + 461 + 212 + + + + Privacy + + + + + + Web Content + + + + + + Enable Plugins + + + true + + + + + + + Enable Javascript + + + true + + + + + + + + + + Cookies + + + + + + Accept Cookies: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + Always + + + + + Never + + + + + Only from sites you navigate to + + + + + + + + Exceptions... + + + + + + + Keep until: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + They expire + + + + + I exit the application + + + + + At most 90 days + + + + + + + + Cookies... + + + + + + + + + + + diff --git a/src/settings_proxy.ui b/src/settings_proxy.ui new file mode 100644 index 00000000..c02dad27 --- /dev/null +++ b/src/settings_proxy.ui @@ -0,0 +1,148 @@ + + proxy + + + + 0 + 0 + 472 + 221 + + + + Proxy + + + + + + Enable proxy + + + true + + + + + + Type: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + Socks5 + + + + + Http + + + + + + + + Host: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + Port: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + 10000 + + + 1080 + + + + + + + Qt::Horizontal + + + + 293 + 20 + + + + + + + + User Name: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + Password: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + Qt::Vertical + + + + 20 + 8 + + + + + + + + + + + + KLineEdit + QLineEdit +
klineedit.h
+
+
+ + +
-- cgit v1.2.1