settings.cpp Example File
demos/browser/settings.cpp
#include "settings.h"
#include "cookiejar.h"
#include "browsermainwindow.h"
#include <QtWebKit/QtWebKit>
#include <QtCore/QSettings>
#include <QtGui/QtGui>
SettingsDialog::SettingsDialog(CookieJar *cookieJar, QWidget *parent)
: QDialog(parent)
, m_jar(cookieJar)
{
setupUi(this);
connect(exceptionsButton, SIGNAL(clicked()), this, SLOT(showExceptions()));
connect(setHomeToCurrentPageButton, SIGNAL(clicked()), this, SLOT(setHomeToCurrentPage()));
connect(cookiesButton, SIGNAL(clicked()), this, SLOT(showCookies()));
QSettings settings;
settings.beginGroup("MainWindow");
homeLineEdit->setText(settings.value("home", "http:www.trolltech.com").toString());
settings.endGroup();
settings.beginGroup("cookies");
acceptCombo->setCurrentIndex(settings.value("acceptCookies").toInt());
keepUntilCombo->setCurrentIndex(settings.value("keepCookiesUntil").toInt());
settings.endGroup();
settings.beginGroup("history");
int historyExpire = settings.value("historyExpire").toInt();
int idx = 0;
switch (historyExpire) {
case 1: idx = 0; break;
case 7: idx = 1; break;
case 14: idx = 2; break;
case 30: idx = 3; break;
case 365: idx = 4; break;
case -1: idx = 5; break;
default:
idx = 5;
}
expireHistory->setCurrentIndex(idx);
settings.endGroup();
}
void SettingsDialog::accept()
{
QSettings settings;
settings.beginGroup("MainWindow");
settings.setValue("home", homeLineEdit->text());
settings.endGroup();
settings.beginGroup("cookies");
settings.setValue("acceptCookies", acceptCombo->currentIndex());
settings.setValue("keepCookiesUntil", keepUntilCombo->currentIndex());
settings.endGroup();
settings.beginGroup("history");
int historyExpire = keepUntilCombo->currentIndex();
int idx = -1;
switch (historyExpire) {
case 0: idx = 1; break;
case 1: idx = 7; break;
case 2: idx = 14; break;
case 3: idx = 30; break;
case 4: idx = 365; break;
case 5: idx = -1; break;
}
settings.setValue("historyExpire", idx);
QDialog::accept();
}
void SettingsDialog::showCookies()
{
CookiesDialog *dialog = new CookiesDialog(m_jar, this);
dialog->setWindowFlags(Qt::Sheet);
dialog->exec();
}
void SettingsDialog::showExceptions()
{
CookiesExceptionsDialog *dialog = new CookiesExceptionsDialog(m_jar, this);
dialog->setWindowFlags(Qt::Sheet);
dialog->exec();
}
void SettingsDialog::chooseFont()
{
bool ok;
QFont font = QFontDialog::getFont(&ok, QFont( "Helvetica [Cronyx]", 10 ), this);
if ( ok ) {
font is set to the font the user selected
} else {
the user canceled the dialog; font is set to the initial
value, in this case Helvetica [Cronyx], 10
}
}
void SettingsDialog::chooseFixedFont()
{
QFontDialog dialog;
dialog.exec();
}
void SettingsDialog::setHomeToCurrentPage()
{
BrowserMainWindow *mw = static_cast<BrowserMainWindow*>(parent());
homeLineEdit->setText(mw->currentPage());
}