-rw-r--r-- | library/proxies.cpp | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/library/proxies.cpp b/library/proxies.cpp new file mode 100644 index 0000000..eff943e --- a/dev/null +++ b/library/proxies.cpp @@ -0,0 +1,118 @@ +/********************************************************************** +** Copyright (C) 2000 Trolltech AS. All rights reserved. +** +** This file is part of Qtopia Environment. +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See http://www.trolltech.com/gpl/ for GPL licensing information. +** +** Contact info@trolltech.com if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ + +#include "proxies.h" +#include "proxiesbase_p.h" +#include "config.h" + +#include <qcombobox.h> +#include <qlineedit.h> +#include <qframe.h> +#include <qvalidator.h> +#include <qspinbox.h> +#include <qradiobutton.h> + +Proxies::Proxies( QWidget* parent ) : + QVBox(parent) +{ + d = new ProxiesBase( this ); + connect(d->type,SIGNAL(activated(int)),this,SLOT(typeChanged(int))); +} + +void Proxies::typeChanged(int t) +{ + switch (t) { + case 0: d->autopanel->hide(); d->setpanel->hide(); break; + case 1: d->setpanel->hide(); d->autopanel->show(); break; + case 2: d->autopanel->hide(); d->setpanel->show(); break; + } +} + +class ProxyValidator : public QValidator { +public: + ProxyValidator( QWidget * parent, const char *name = 0 ) : + QValidator(parent,name) + { + } + + State validate( QString &s, int &pos ) const + { + int i; + for (i=0; i<(int)s.length(); i++) { + if ( s[i] == ',' || s[i] == ';' || s[i] == '\n' || s[i] == '\r' ) + s[i] = ' '; + } + for (i=0; i<(int)s.length()-1; ) { + if ( s[i] == ' ' && s[i+1] == ' ' ) { + if (pos>i) pos--; + s = s.left(i)+s.mid(i+2); + } else + i++; + } + return Valid; + } +}; + +void Proxies::readConfig(Config& cfg) +{ + int t = cfg.readNumEntry("type",0); + d->type->setCurrentItem(t); + typeChanged(t); + + QString s; + + s = cfg.readEntry("autoconfig"); + if ( !s.isEmpty() ) + d->autoconfig->insertItem(s); + + + s = cfg.readEntry("httphost"); + if ( !s.isEmpty() ) + d->httphost->setText(s); + + int i; + i = cfg.readNumEntry("httpport"); + if ( i>0 ) + d->httpport->setValue(i); + + s = cfg.readEntry("ftphost"); + if ( !s.isEmpty() ) + d->ftphost->setText(s); + + i = cfg.readNumEntry("ftpport"); + if ( i>0 ) + d->ftpport->setValue(i); + + s = cfg.readEntry("noproxies"); + d->noproxies->setValidator(new ProxyValidator(this)); + d->noproxies->setText(s); +} + +void Proxies::writeConfig( Config &cfg ) +{ + cfg.writeEntry("type",d->type->currentItem()); + cfg.writeEntry("autoconfig", d->autoconfig->currentText()); + cfg.writeEntry("httphost", d->httphost->text()); + cfg.writeEntry("httpport", d->httpport->text()); + cfg.writeEntry("ftphost", d->ftphost->text()); + cfg.writeEntry("ftpport", d->ftpport->text()); + cfg.writeEntry("noproxies", d->noproxies->text()); +} + |