rockbox/rbutil/rbutilqt/configure.cpp

100 lines
3.1 KiB
C++

/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
*
* Copyright (C) 2007 by Dominik Riebeling
* $Id:$
*
* All files in this archive are subject to the GNU General Public License.
* See the file COPYING in the source tree root for full license agreement.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#include <QtGui>
#include "configure.h"
#include "ui_configurefrm.h"
Config::Config(QWidget *parent) : QDialog(parent)
{
ui.setupUi(this);
ui.radioManualProxy->setChecked(true);
QRegExpValidator *proxyValidator = new QRegExpValidator(this);
QRegExp validate("[0-9]*");
proxyValidator->setRegExp(validate);
ui.proxyPort->setValidator(proxyValidator);
ui.radioSystemProxy->setEnabled(false); // not implemented yet
connect(ui.buttonOk, SIGNAL(clicked()), this, SLOT(accept()));
connect(ui.buttonCancel, SIGNAL(clicked()), this, SLOT(abort()));
connect(ui.radioNoProxy, SIGNAL(toggled(bool)), this, SLOT(setNoProxy(bool)));
}
void Config::accept()
{
qDebug() << "Config::accept()";
QUrl proxy;
proxy.setScheme("http");
proxy.setUserName(ui.proxyUser->text());
proxy.setPassword(ui.proxyPass->text());
proxy.setHost(ui.proxyHost->text());
proxy.setPort(ui.proxyPort->text().toInt());
userSettings->setValue("defaults/proxy", proxy.toString());
qDebug() << "new proxy:" << proxy;
QString proxyType;
if(ui.radioNoProxy->isChecked()) proxyType = "none";
else if(ui.radioSystemProxy->isChecked()) proxyType = "system";
else proxyType = "manual";
userSettings->setValue("defaults/proxytype", proxyType);
userSettings->sync();
this->close();
emit settingsUpdated();
}
void Config::abort()
{
qDebug() << "Config::abort()";
this->close();
}
void Config::setUserSettings(QSettings *user)
{
userSettings = user;
QUrl proxy = userSettings->value("defaults/proxy").toString();
ui.proxyPort->insert(QString("%1").arg(proxy.port()));
ui.proxyHost->insert(proxy.host());
ui.proxyUser->insert(proxy.userName());
ui.proxyPass->insert(proxy.password());
QString proxyType = userSettings->value("defaults/proxytype").toString();
if(proxyType == "manual") ui.radioManualProxy->setChecked(true);
else if(proxyType == "system") ui.radioSystemProxy->setChecked(true);
else if(proxyType == "none") ui.radioNoProxy->setChecked(true);
}
void Config::setNoProxy(bool checked)
{
bool i = !checked;
ui.proxyPort->setEnabled(i);
ui.proxyHost->setEnabled(i);
ui.proxyUser->setEnabled(i);
ui.proxyPass->setEnabled(i);
}